Class: CDK::FSLIDER

Inherits:
SLIDER show all
Defined in:
lib/cdk/components/fslider.rb

Instance Attribute Summary

Attributes included from HasTitle

#title_attrib

Attributes included from HasScreen

#is_visible, #screen, #screen_index

Attributes included from ExitConditions

#exit_type

Attributes included from Bindings

#binding_list

Attributes included from Focusable

#accepts_focus, #has_focus

Attributes included from Borders

#BXAttr, #HZChar, #LLChar, #LRChar, #ULChar, #URChar, #VTChar, #border_size, #box

Instance Method Summary collapse

Methods inherited from SLIDER

Decrement, Increment, #activate, #destroy, #draw, #erase, #focus, #getHighValue, #getLowValue, #getValue, #inject, #limitCurrentValue, #move, #moveToEditPosition, #performEdit, #position, removeChar, #set, #setBKattr, #setEditPosition, #setLowHigh, #setValue, #unfocus, #validEditPosition

Methods inherited from CDKOBJS

#setBackgroundColor, #timeout, #validCDKObject, #validObjType

Methods included from WindowHooks

#destroy, #draw, #erase, #refreshData, #saveData

Methods included from WindowInput

#getc, #getch, #inject, #setPostProcess, #setPreProcess

Methods included from HasTitle

#cleanTitle, #drawTitle, #init_title, #setTitle

Methods included from HasScreen

#SCREEN_XPOS, #SCREEN_YPOS, #init_screen, #wrefresh

Methods included from ExitConditions

#init_exit_conditions, #resetExitType, #setExitType

Methods included from Bindings

#bind, #bindableObject, #checkBind, #cleanBindings, #init_bindings, #isBind, #unbind

Methods included from Focusable

#focus, #init_focus, #unfocus

Methods included from Borders

#getBox, #init_borders, #setBXattr, #setBox, #setHZchar, #setLLchar, #setLRchar, #setULchar, #setURchar, #setVTchar

Methods included from Movement

#move, #move_specific, #position

Methods included from Converters

#char2Chtype, #charOf, #chtype2Char, #chtype2String, #decode_attribute, #encode_attribute

Methods included from Justifications

#justify_string

Methods included from Alignments

#alignxy

Constructor Details

#initialize(cdkscreen, xplace, yplace, title, label, filler, field_width, start, low, high, inc, fast_inc, digits, box, shadow) ⇒ FSLIDER

Returns a new instance of FSLIDER.



5
6
7
8
9
10
# File 'lib/cdk/components/fslider.rb', line 5

def initialize(cdkscreen, xplace, yplace, title, label, filler,
    field_width, start, low, high, inc, fast_inc, digits, box, shadow)
  @digits = digits
  super(cdkscreen, xplace, yplace, title, label, filler, field_width,
      start, low, high, inc, fast_inc, box, shadow)
end

Instance Method Details

#drawFieldObject

This draws the widget.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/cdk/components/fslider.rb', line 13

def drawField
  step = 1.0 * @field_width / (@high - @low)

  # Determine how many filler characters need to be drawn.
  filler_characters = (@current - @low) * step

  @field_win.werase

  # Add the character to the window.
  (0...filler_characters).each do |x|
    @field_win.mvwaddch(0, x, @filler)
  end

  # Draw the value in the field.
  digits = [@digits, 30].min
  format = '%%.%if' % [digits]
  temp = format % [@current]

  Draw.writeCharAttrib(@field_win, @field_width, 0, temp,
      Ncurses::A_NORMAL, CDK::HORIZONTAL, 0, temp.size)

  self.moveToEditPosition(@field_edit)
  wrefresh(@field_win)
end

#formattedSize(value) ⇒ Object



38
39
40
41
42
43
# File 'lib/cdk/components/fslider.rb', line 38

def formattedSize(value)
  digits = [@digits, 30].min
  format = '%%.%if' % [digits]
  temp = format % [value]
  return temp.size
end

#getDigitsObject



49
50
51
# File 'lib/cdk/components/fslider.rb', line 49

def getDigits
  return @digits
end

#object_typeObject



57
58
59
# File 'lib/cdk/components/fslider.rb', line 57

def object_type
  :FSLIDER
end

#SCAN_FMTObject



53
54
55
# File 'lib/cdk/components/fslider.rb', line 53

def SCAN_FMT
  '%g%c'
end

#setDigits(digits) ⇒ Object



45
46
47
# File 'lib/cdk/components/fslider.rb', line 45

def setDigits(digits)
  @digits = [0, digits].max
end