rbcurse-extras 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/README.md +75 -0
  2. data/VERSION +1 -0
  3. data/examples/data/list.txt +300 -0
  4. data/examples/data/lotr.txt +12 -0
  5. data/examples/data/table.txt +36 -0
  6. data/examples/data/tasks.txt +27 -0
  7. data/examples/data/unix1.txt +21 -0
  8. data/examples/inc/qdfilechooser.rb +70 -0
  9. data/examples/inc/rfe_renderer.rb +121 -0
  10. data/examples/newtabbedwindow.rb +100 -0
  11. data/examples/rfe.rb +1236 -0
  12. data/examples/test2.rb +670 -0
  13. data/examples/testeditlist.rb +78 -0
  14. data/examples/testtable.rb +270 -0
  15. data/examples/testvimsplit.rb +141 -0
  16. data/lib/rbcurse/extras/include/celleditor.rb +112 -0
  17. data/lib/rbcurse/extras/include/checkboxcellrenderer.rb +57 -0
  18. data/lib/rbcurse/extras/include/comboboxcellrenderer.rb +30 -0
  19. data/lib/rbcurse/extras/include/defaultlistselectionmodel.rb +79 -0
  20. data/lib/rbcurse/extras/include/listkeys.rb +37 -0
  21. data/lib/rbcurse/extras/include/listselectable.rb +144 -0
  22. data/lib/rbcurse/extras/include/tableextended.rb +40 -0
  23. data/lib/rbcurse/extras/widgets/horizlist.rb +203 -0
  24. data/lib/rbcurse/extras/widgets/menutree.rb +63 -0
  25. data/lib/rbcurse/extras/widgets/multilinelabel.rb +142 -0
  26. data/lib/rbcurse/extras/widgets/rcomboedit.rb +256 -0
  27. data/lib/rbcurse/extras/widgets/rlink.rb.moved +27 -0
  28. data/lib/rbcurse/extras/widgets/rlistbox.rb +1247 -0
  29. data/lib/rbcurse/extras/widgets/rmenulink.rb.moved +21 -0
  30. data/lib/rbcurse/extras/widgets/rmulticontainer.rb +304 -0
  31. data/lib/rbcurse/extras/widgets/rmultisplit.rb +722 -0
  32. data/lib/rbcurse/extras/widgets/rmultitextview.rb +306 -0
  33. data/lib/rbcurse/extras/widgets/rpopupmenu.rb +755 -0
  34. data/lib/rbcurse/extras/widgets/rtable.rb +1758 -0
  35. data/lib/rbcurse/extras/widgets/rvimsplit.rb +800 -0
  36. data/lib/rbcurse/extras/widgets/table/tablecellrenderer.rb +86 -0
  37. data/lib/rbcurse/extras/widgets/table/tabledatecellrenderer.rb +98 -0
  38. metadata +94 -0
@@ -0,0 +1,86 @@
1
+ module RubyCurses
2
+ class TableCellRenderer
3
+ #include DSL
4
+ #include EventHandler
5
+ include ConfigSetup
6
+ include RubyCurses::Utils
7
+ dsl_accessor :justify # :right, :left, :center # added 2008-12-22 19:02
8
+ dsl_accessor :display_length # please give this to ensure the we only print this much
9
+ dsl_accessor :height # if you want a multiline label.
10
+ dsl_accessor :text # text of label
11
+ dsl_accessor :color, :bgcolor
12
+ dsl_accessor :row, :col
13
+ dsl_accessor :parent #usuall the table to get colors and other default info
14
+
15
+ def initialize text="", config={}, &block
16
+ @text = text
17
+ @editable = false
18
+ @focusable = false
19
+ config_setup config # @config.each_pair { |k,v| variable_set(k,v) }
20
+ instance_eval &block if block_given?
21
+ init_vars
22
+ end
23
+ def init_vars
24
+ @justify ||= :left
25
+ @display_length ||= 10
26
+ end
27
+ def transform value
28
+ return value.to_s
29
+ end
30
+
31
+ ##
32
+ # XXX need to move wrapping etc up and done once.
33
+ def repaint graphic, r=@row,c=@col, row_index=-1, value=@text, focussed=false, selected=false
34
+ lablist = []
35
+ #value=value.to_s # ??
36
+ value=transform value
37
+ if @height && @height > 1
38
+ lablist = wrap_text(value, @display_length).split("\n")
39
+ else
40
+ # ensure we do not exceed
41
+ if !@display_length.nil?
42
+ if value.length > @display_length
43
+ dlen = @display_length - 1
44
+ dlen = 0 if dlen < 0
45
+ value = value[0..dlen]
46
+ end
47
+ end
48
+ lablist << value
49
+ end
50
+ len = @display_length || value.length
51
+ #$log.debug "less ZERO #{@display_length} || #{value.length}, ri: #{row_index}" if len < 0
52
+ acolor = get_color $datacolor
53
+ #acolor =get_color $datacolor, @color || @parent.color, @bgcolor || @parent.bgcolor #unless @parent.nil?
54
+ _attr = Ncurses::A_NORMAL
55
+ if selected
56
+ _attr = Ncurses::A_BOLD if selected
57
+ acolor =get_color $selectedcolor, @parent.selected_color, @parent.selected_bgcolor unless @parent.nil?
58
+ end
59
+ if focussed
60
+ _attr |= Ncurses::A_REVERSE
61
+ end
62
+ #$log.debug "label :#{@text}, #{value}, #{r}, #{c} col= #{@color}, #{@bgcolor} acolor= #{acolor} j:#{@justify} dlL: #{@display_length} "
63
+ _height = @height || 1
64
+ str = @justify.to_sym == :right ? "%*s" : "%-*s" # added 2008-12-22 19:05
65
+ # loop added for labels that are wrapped.
66
+ # TODO clear separately since value can change in status like labels
67
+ 0.upto(_height-1) { |i|
68
+ graphic.printstring r+i, c, " " * len , acolor,_attr
69
+ }
70
+ lablist.each_with_index do |_value, ix|
71
+ break if ix >= _height
72
+ if @justify.to_sym == :center
73
+ padding = (@display_length - _value.length)/2
74
+ padding = 0 if padding < 0
75
+ _value = " "*padding + _value + " "*padding # so its cleared if we change it midway
76
+ end
77
+ # XXX 2009-10-05 23:01 since the len can vary when scrolling
78
+ # right justification for numbers suffers.
79
+ # perhaps one should use display_length and then truncate using len
80
+ graphic.printstring r, c, str % [len, _value], acolor,_attr
81
+ r += 1
82
+ end
83
+ end
84
+ # ADD HERE LABEL
85
+ end
86
+ end
@@ -0,0 +1,98 @@
1
+ module RubyCurses
2
+ class TableDateCellRenderer
3
+ #include EventHandler
4
+ include ConfigSetup
5
+ include RubyCurses::Utils
6
+ dsl_accessor :justify # :right, :left, :center # added 2008-12-22 19:02
7
+ dsl_accessor :format # date or numeric format
8
+ dsl_accessor :format_hint # date :DATE_ONLY, :TIME_ONLY, :LONG
9
+ dsl_accessor :display_length # please give this to ensure the we only print this much
10
+ dsl_accessor :height # if you want a multiline label.
11
+ dsl_accessor :text # text of label
12
+ dsl_accessor :color, :bgcolor
13
+ dsl_accessor :row, :col
14
+ dsl_accessor :parent #usuall the table to get colors and other default info
15
+
16
+ def initialize text="", config={}, &block
17
+ @text = text
18
+ @editable = false
19
+ @focusable = false
20
+ config_setup config # @config.each_pair { |k,v| variable_set(k,v) }
21
+ instance_eval &block if block_given?
22
+ init_vars
23
+ end
24
+ def init_vars
25
+ @justify ||= :left
26
+ @display_length ||= 10
27
+ @format ||= "%Y/%m/%d %H:%M"
28
+ case @format_hint
29
+ when :LONG
30
+ @format = nil
31
+ when :DATE_ONLY
32
+ @format = "%Y/%m/%d"
33
+ when :TIME_ONLY
34
+ @format ||= "%H/%M"
35
+ when :TIME_ONLY_12
36
+ @format ||= "%I/%M%p"
37
+ end
38
+ # use %I:%M%p for 12 hour ampm"
39
+ end
40
+ def transform value
41
+ if @format.nil?
42
+ return value.to_s
43
+ end
44
+ return value.strftime(@format)
45
+ end
46
+
47
+ ##
48
+ # XXX need to move wrapping etc up and done once.
49
+ def repaint graphic, r=@row,c=@col, row_index=-1,value=@text, focussed=false, selected=false
50
+ lablist = []
51
+ #value=value.to_s # ??
52
+ value=transform value
53
+ if @height && @height > 1
54
+ lablist = wrap_text(value, @display_length).split("\n")
55
+ else
56
+ # ensure we do not exceed
57
+ if !@display_length.nil?
58
+ if value.length > @display_length
59
+ dlen = @display_length - 1
60
+ dlen = 0 if dlen < 0
61
+ value = value[0..dlen]
62
+ end
63
+ end
64
+ lablist << value
65
+ end
66
+ len = @display_length || value.length
67
+ acolor = get_color $datacolor
68
+ #acolor =get_color $datacolor, @color || @parent.color, @bgcolor || @parent.bgcolor #unless @parent.nil?
69
+ _attr = Ncurses::A_NORMAL
70
+ if selected
71
+ _attr = Ncurses::A_BOLD if selected
72
+ acolor =get_color $selectedcolor, @parent.selected_color, @parent.selected_bgcolor unless @parent.nil?
73
+ end
74
+ if focussed
75
+ _attr |= Ncurses::A_REVERSE
76
+ end
77
+ #$log.debug "label :#{@text}, #{value}, #{r}, #{c} col= #{@color}, #{@bgcolor} acolor= #{acolor} j:#{@justify} dlL: #{@display_length} "
78
+ _height = @height || 1
79
+ str = @justify.to_sym == :right ? "%*s" : "%-*s" # added 2008-12-22 19:05
80
+ # loop added for labels that are wrapped.
81
+ # TODO clear separately since value can change in status like labels
82
+ 0.upto(_height-1) { |i|
83
+ graphic.printstring r+i, c, " " * len , acolor,_attr
84
+ }
85
+ lablist.each_with_index do |_value, ix|
86
+ break if ix >= _height
87
+ if @justify.to_sym == :center
88
+ padding = (@display_length - _value.length)/2
89
+ padding = 0 if padding < 0
90
+ _value = " "*padding + _value + " "*padding # so its cleared if we change it midway
91
+ end
92
+ graphic.printstring r, c, str % [len, _value], acolor,_attr
93
+ r += 1
94
+ end
95
+ end
96
+ # ADD HERE
97
+ end
98
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rbcurse-extras
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Rahul Kumar
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rbcurse-core
16
+ requirement: &70122079095420 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70122079095420
25
+ description: Ruby curses/ncurses widgets for easy application development on text
26
+ terminals, augmenting rbcurse-core
27
+ email: sentinel1879@gmail.com
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files:
31
+ - README.md
32
+ files:
33
+ - README.md
34
+ - VERSION
35
+ - examples/data/list.txt
36
+ - examples/data/lotr.txt
37
+ - examples/data/table.txt
38
+ - examples/data/tasks.txt
39
+ - examples/data/unix1.txt
40
+ - examples/inc/qdfilechooser.rb
41
+ - examples/inc/rfe_renderer.rb
42
+ - examples/newtabbedwindow.rb
43
+ - examples/rfe.rb
44
+ - examples/test2.rb
45
+ - examples/testeditlist.rb
46
+ - examples/testtable.rb
47
+ - examples/testvimsplit.rb
48
+ - lib/rbcurse/extras/include/celleditor.rb
49
+ - lib/rbcurse/extras/include/checkboxcellrenderer.rb
50
+ - lib/rbcurse/extras/include/comboboxcellrenderer.rb
51
+ - lib/rbcurse/extras/include/defaultlistselectionmodel.rb
52
+ - lib/rbcurse/extras/include/listkeys.rb
53
+ - lib/rbcurse/extras/include/listselectable.rb
54
+ - lib/rbcurse/extras/include/tableextended.rb
55
+ - lib/rbcurse/extras/widgets/horizlist.rb
56
+ - lib/rbcurse/extras/widgets/menutree.rb
57
+ - lib/rbcurse/extras/widgets/multilinelabel.rb
58
+ - lib/rbcurse/extras/widgets/rcomboedit.rb
59
+ - lib/rbcurse/extras/widgets/rlink.rb.moved
60
+ - lib/rbcurse/extras/widgets/rlistbox.rb
61
+ - lib/rbcurse/extras/widgets/rmenulink.rb.moved
62
+ - lib/rbcurse/extras/widgets/rmulticontainer.rb
63
+ - lib/rbcurse/extras/widgets/rmultisplit.rb
64
+ - lib/rbcurse/extras/widgets/rmultitextview.rb
65
+ - lib/rbcurse/extras/widgets/rpopupmenu.rb
66
+ - lib/rbcurse/extras/widgets/rtable.rb
67
+ - lib/rbcurse/extras/widgets/rvimsplit.rb
68
+ - lib/rbcurse/extras/widgets/table/tablecellrenderer.rb
69
+ - lib/rbcurse/extras/widgets/table/tabledatecellrenderer.rb
70
+ homepage: https://github.com/rkumar/rbcurse-extras
71
+ licenses: []
72
+ post_install_message:
73
+ rdoc_options: []
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubyforge_project: rbcurse
90
+ rubygems_version: 1.8.10
91
+ signing_key:
92
+ specification_version: 3
93
+ summary: Ruby Ncurses Toolkit additional widgets
94
+ test_files: []