Class: Colors
- Inherits:
-
Object
- Object
- Colors
- Defined in:
- lib/ncurses_ui.rb
Class Method Summary collapse
- .add(key, fg, bg, attrs = []) ⇒ Object
- .debug ⇒ Object
- .init(colormap = {}, palette = {}) ⇒ Object
-
.ncg(color) ⇒ Object
get ncurses color constant.
- .pairMap(key) ⇒ Object
Class Method Details
.add(key, fg, bg, attrs = []) ⇒ Object
296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 |
# File 'lib/ncurses_ui.rb', line 296 def self.add(key, fg, bg, attrs=[]) Curses.init_pair $pairCounter, ncg(fg), ncg(bg) $pairMap[key] = Curses.color_pair $pairCounter $attrMap[key] = attrs.map do |a| case a.to_sym when :bold Curses::A_BOLD when :underline Curses::A_UNDERLINE when :blink Curses::A_BLINK when :dim Curses::A_DIM when :normal Curses::A_NORMAL when :standout Curses::A_STANDOUT when :reverse Curses::A_REVERSE end end.compact.reduce :| $pairCounter += 1 end |
.debug ⇒ Object
320 321 322 323 324 325 |
# File 'lib/ncurses_ui.rb', line 320 def self.debug puts "colors supported: #{Curses.colors}" puts "pairMap: #{$pairMap}" puts "attributes: #{$attrMap}" puts "colorPalette: #{$colorMap}" end |
.init(colormap = {}, palette = {}) ⇒ Object
255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 |
# File 'lib/ncurses_ui.rb', line 255 def self.init colormap = {}, palette = {} Curses.use_default_colors $pairCounter += 1 Curses::constants.grep(/COLOR_/).each do |c| color = c.to_s.split("_")[1] $colorMap[color.downcase.to_sym] = Curses.const_get "#{c}" $colorCounter += 1; end if Curses.can_change_color? palette.each do |name, definition| if $colorCounter >= Curses.colors || name.length == 0 $colorMap[name] = $colorMap[:white] elsif $colorMap[name] if definition.is_a? Integer $colorMap[name] = definition elsif definition.is_a?(Array) and definition.length == 3 Curses.init_color $colorMap[name], definition[0], definition[1], definition[2] end else if definition.is_a? Integer $colorMap[name] = definition elsif definition.is_a?(Array) and definition.length == 3 $colorMap[name] = $colorCounter; Curses.init_color $colorCounter, definition[0], definition[1], definition[2] $colorCounter += 1; end end end end colormap.each do |key, colors| self.add(key, colors[0], colors[1], colors[2..-1]) end end |
.ncg(color) ⇒ Object
get ncurses color constant
328 329 330 331 332 333 334 335 336 |
# File 'lib/ncurses_ui.rb', line 328 def self.ncg(color) if color.is_a? Integer color else color = -1 unless color color = color.to_sym $colorMap[color] || -1 end end |
.pairMap(key) ⇒ Object
292 293 294 |
# File 'lib/ncurses_ui.rb', line 292 def self.pairMap(key) ($pairMap[key] || $pairMap[:default] ) | ($attrMap[key] || 0) end |