rbcurse 1.1.1 → 1.1.3

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.
@@ -0,0 +1,68 @@
1
+ PROGRAM STATUS
2
+ ==============
3
+ /// vim:ts=4:sw=4:tw=80:ai:formatoptions=tcqnl:
4
+
5
+ I need to maintain the status of various test programs, what all is working and
6
+ particularly what is not, after testing. That way after making changes if
7
+ something is not working, i know whether it was a newly introduced issue or an
8
+ existing issue that was not closed.
9
+
10
+
11
+ testsplit3_1.rb ERROR
12
+ 2010-02-08 20:47
13
+ ERROR
14
+ M-w works on left split to jump. C-a C-e etc working fine.
15
+
16
+ [ ] TAB no longer working to go to right split. Tab puts me in the top left corner
17
+ of current split.
18
+
19
+ ------------
20
+ testsplit3.rb
21
+ 2010-02-08 20:49
22
+ OK
23
+
24
+ M-w working.
25
+ Tab working to get to right side.
26
+
27
+ ------------
28
+ testsplit3a.rb ERROR
29
+ 2010-02-08 20:53
30
+ ERROR
31
+
32
+ Display. Left top split shows NOTES instead of README. After cursor movement,
33
+ it shows README.
34
+ Middle separator not showing.
35
+ Cursor off by -2, -1 in top left.
36
+ TAB does not go to right split.
37
+ M-w brings bottom tab to top!
38
+ ------------
39
+
40
+ testsplitta.rb
41
+ 2010-02-08 21:00
42
+ OKAY
43
+
44
+ M-w
45
+ Ca Ce
46
+ M- M+ M=
47
+ Cursor pos
48
+
49
+ ------------
50
+ testsplittv.rb
51
+ 2010-02-08 21:37
52
+ OKAY
53
+
54
+ M-w
55
+ Ca Ce
56
+ + - =
57
+ curpos
58
+
59
+ ------------
60
+ testsplittvv.rb
61
+ 2010-02-08 21:39
62
+ OKAY
63
+
64
+ M-w
65
+ Ca Ce
66
+ + = -
67
+ Cn Tab Cn
68
+ ------------
data/examples/todo.yml ADDED
@@ -0,0 +1,191 @@
1
+ ---
2
+ - - FIXME
3
+ - MSGBOX
4
+ - 5
5
+ - "Confirm dialog: box vertical line overwritten in 2 spots"
6
+ - TODO
7
+ - - FIXME
8
+ - MSGBOX
9
+ - 5
10
+ - "Confirm dialog: use normal key as hotkey also"
11
+ - TODO
12
+ - 2009-01-20 11:44:49.753534 +05:30
13
+ - - FIXME
14
+ - MSGBOX
15
+ - 5
16
+ - "Confirm dialog: arrow keys not navigating anylonger"
17
+ - TODO
18
+ - 2009-01-20 11:45:27.031136 +05:30
19
+ - - FIXME
20
+ - GEN
21
+ - 9
22
+ - Message Box sizing
23
+ - TODO
24
+ - 2009-01-22 20:39:21.220964 +05:30
25
+ - - DONE
26
+ - LIST
27
+ - 5
28
+ - case insensitive char search in list and combo
29
+ - TESTED
30
+ - 2009-02-21 20:43:05.662213 +05:30
31
+ - - DONE
32
+ - LIST
33
+ - 5
34
+ - case insensitive char search in list and combo
35
+ - TESTED
36
+ - 2009-02-21 20:44:29.277384 +05:30
37
+ - - DONE
38
+ - TABLE
39
+ - 5
40
+ - increase the maxlen of this field please. Let us see how it goes.
41
+ - TESTED
42
+ - - DONE
43
+ - TABLE
44
+ - 5
45
+ - Can we disable down arrow in Chkbox in table?
46
+ - TESTED
47
+ - 2009-01-19 00:00:00.242912 +05:30
48
+ - - DONE
49
+ - TABLE
50
+ - 0
51
+ - editing on enter
52
+ - TESTED
53
+ - 2009-01-19 01:37:00.242912 +05:30
54
+ - - DONE
55
+ - TABLE
56
+ - 5
57
+ - cell editors pcol is not being reset each time
58
+ - TESTED
59
+ - 2009-01-19 17:47:00.419937 +05:30
60
+ - - DONE
61
+ - TABLE
62
+ - 5
63
+ - Use TAB for intercell navig. use M-TAB for next f
64
+ - TESTED
65
+ - 2009-01-20 00:38:19.606544 +05:30
66
+ - - DONE
67
+ - TABLE
68
+ - 5
69
+ - Searching
70
+ - TESTED
71
+ - 2009-02-21 20:42:10.140948 +05:30
72
+ - - DONE
73
+ - TABLE
74
+ - 3
75
+ - Columns editable or not
76
+ - TESTED
77
+ - 2009-02-21 20:43:10.386261 +05:30
78
+ - - DONE
79
+ - TABLE
80
+ - 1
81
+ - Any way to start a table with no data and pop late
82
+ - TODO
83
+ - 2009-02-21 20:43:33.172668 +05:30
84
+ - - DONE
85
+ - TABLE
86
+ - 3
87
+ - Columns editable or not
88
+ - TESTED
89
+ - 2009-02-21 20:44:33.451462 +05:30
90
+ - - DONE
91
+ - TABLE
92
+ - 1
93
+ - Any way to start a table with no data and pop late
94
+ - TODO
95
+ - 2009-02-21 20:44:48.137930 +05:30
96
+ - - DONE
97
+ - GEN
98
+ - 5
99
+ - Make widget of Keylabelprinter
100
+ - TESTED
101
+ - 2009-01-20 00:38:43.052790 +05:30
102
+ - - DONE
103
+ - GEN
104
+ - 5
105
+ - "Added Action class shared by Button Menuitem "
106
+ - TESTED
107
+ - 2009-01-22 18:08:28.026892 +05:30
108
+ - - DONE
109
+ - GEN
110
+ - 5
111
+ - "Added PopupMenu 2009-01-22 18:09 "
112
+ - TESTED
113
+ - 2009-01-22 18:09:34.437147 +05:30
114
+ - - TODO
115
+ - LIST
116
+ - 0
117
+ - call on_enter and on_leave of component
118
+ - TOTEST
119
+ - 2009-01-19 15:38:27.091120 +05:30
120
+ - - TODO
121
+ - LIST
122
+ - 5
123
+ - case insensitive char search in list and combo
124
+ - TESTED
125
+ - - TODO
126
+ - TABLE
127
+ - 3
128
+ - Columns editable or not
129
+ - TESTED
130
+ - - TODO
131
+ - TABLE
132
+ - 1
133
+ - Any way to start a table with no data and pop late
134
+ - TODO
135
+ - - TODO
136
+ - TABLE
137
+ - 1
138
+ - table.set_data should check if models already created.
139
+ - TODO
140
+ - - TODO
141
+ - TABLE
142
+ - 5
143
+ - Set column_class in TableColumn, to avoid hassles
144
+ - TODO
145
+ - - TODO
146
+ - TABLE
147
+ - 2
148
+ - Table sorting and filtering is required - using VIEW
149
+ - TODO
150
+ - - TODO
151
+ - TABLE
152
+ - 5
153
+ - Table height and col widths auto sizing or FILLING extra space.
154
+ - TODO
155
+ - - TODO
156
+ - TEXTAREA
157
+ - 9
158
+ - "Textarea: wrap options NONE, COLUMN"
159
+ - TODO
160
+ - 2009-01-20 01:04:15.084400 +05:30
161
+ - - TODO
162
+ - GEN
163
+ - 5
164
+ - Modified should check if value changed, not UP etc
165
+ - TOTEST
166
+ - - TODO
167
+ - GEN
168
+ - 5
169
+ - Give a decent FileChooser and FileSaver
170
+ - TODO
171
+ - - TODO
172
+ - GEN
173
+ - 5
174
+ - Focus Traversable vs focusable
175
+ - TODO
176
+ - - TODO
177
+ - GEN
178
+ - 5
179
+ - "Action class: fire event for listeners"
180
+ - TODO
181
+ - 2009-01-22 20:09:50.624075 +05:30
182
+ - - TODO
183
+ - FIELD
184
+ - 5
185
+ - "Field: OVERWRITE Mode"
186
+ - TODO
187
+ - - TODO
188
+ - FIELD
189
+ - 5
190
+ - "Field: Auto-skip when reaching end of maxlen"
191
+ - TODO
@@ -0,0 +1,28 @@
1
+ FIXME,MSGBOX,5,Confirm dialog: box vertical line overwritten in 2 spots,TODO
2
+ FIXME,MSGBOX,5,Confirm dialog: use normal key as hotkey also,TODO,Tue Jan 20 11:44:49 +0530 2009
3
+ FIXME,MSGBOX,5,Confirm dialog: arrow keys not navigating anylonger,TODO,Tue Jan 20 11:45:27 +0530 2009
4
+ FIXME,GEN,9,Message Box sizing,TODO,Thu Jan 22 20:39:21 +0530 2009
5
+ DONE,LIST,5,case insensitive char search in list and combo,TESTED,Sat Feb 21 20:43:05 +0530 2009
6
+ DONE,TABLE,5,increase the maxlen of this field please. Let us see how it goes.,TESTED
7
+ DONE,TABLE,5,Can we disable down arrow in Chkbox in table?,TESTED,Mon Jan 19 00:00:00 +0530 2009
8
+ DONE,TABLE,0,editing on enter,TESTED,Mon Jan 19 01:37:00 +0530 2009
9
+ DONE,TABLE,5,cell editors pcol is not being reset each time,TESTED,Mon Jan 19 17:47:00 +0530 2009
10
+ DONE,TABLE,5,Use TAB for intercell navig. use M-TAB for next f,TESTED,Tue Jan 20 00:38:19 +0530 2009
11
+ DONE,TABLE,5,Searching,TESTED,Sat Feb 21 20:42:10 +0530 2009
12
+ DONE,TABLE,3,Columns editable or not,TESTED,Sat Feb 21 20:43:10 +0530 2009
13
+ DONE,TABLE,1,Any way to start a table with no data and pop late,TODO,Sat Feb 21 20:43:33 +0530 2009
14
+ DONE,GEN,5,Make widget of Keylabelprinter,TESTED,Tue Jan 20 00:38:43 +0530 2009
15
+ DONE,GEN,5,Added Action class shared by Button Menuitem ,TESTED,Thu Jan 22 18:08:28 +0530 2009
16
+ DONE,GEN,5,Added PopupMenu 2009-01-22 18:09 ,TESTED,Thu Jan 22 18:09:34 +0530 2009
17
+ DONE,LIST,0,call on_enter and on_leave of component,TOTEST,Sun Feb 22 12:19:38 +0530 2009
18
+ TODO,TABLE,1,table.set_data should check if models already created.,TODO
19
+ TODO,TABLE,5,"Set column_class in TableColumn, to avoid hassles",TODO
20
+ TODO,TABLE,2,Table sorting and filtering is required - using VIEW,TODO
21
+ TODO,TABLE,5,Table height and col widths auto sizing or FILLING extra space.,TODO
22
+ TODO,TEXTAREA,9,"Textarea: wrap options NONE, COLUMN",TODO,Tue Jan 20 01:04:15 +0530 2009
23
+ TODO,GEN,5,"Modified should check if value changed, not UP etc",TOTEST
24
+ TODO,GEN,5,Give a decent FileChooser and FileSaver,TODO
25
+ TODO,GEN,5,Focus Traversable vs focusable,TODO
26
+ TODO,GEN,5,Action class: fire event for listeners,TODO,Thu Jan 22 20:09:50 +0530 2009
27
+ TODO,FIELD,5,Field: OVERWRITE Mode,TODO
28
+ TODO,FIELD,5,Field: Auto-skip when reaching end of maxlen,TODO
@@ -424,7 +424,6 @@ module RubyCurses
424
424
  # added 2010-02-17 23:05 RFED16 so we don't need a form.
425
425
  @win_left = 0
426
426
  @win_top = 0
427
- @multiplier = 0 # multiply motion commands
428
427
 
429
428
  #x safe_create_buffer # 2010-01-04 12:36 BUFFERED moved here 2010-01-05 18:07
430
429
  #x print_borders unless @win.nil? # in messagebox we don;t have window as yet!
@@ -589,7 +588,7 @@ module RubyCurses
589
588
  when 27, ?\C-c.getbyte(0)
590
589
  editing_canceled @current_index if @cell_editing_allowed
591
590
  cancel_block # block
592
- @multiplier = 0
591
+ $multiplier = 0
593
592
  when @KEY_ASK_FIND_FORWARD
594
593
  # ask_search_forward
595
594
  when @KEY_ASK_FIND_BACKWARD
@@ -604,10 +603,10 @@ module RubyCurses
604
603
  find_more
605
604
  when @KEY_BLOCK_SELECTOR
606
605
  mark_block #selection
607
- when ?\C-u.getbyte(0)
606
+ #when ?\C-u.getbyte(0)
608
607
  # multiplier. Series is 4 16 64
609
- @multiplier = (@multiplier == 0 ? 4 : @multiplier *= 4)
610
- return 0
608
+ # TESTING @multiplier = (@multiplier == 0 ? 4 : @multiplier *= 4)
609
+ # return 0
611
610
  when ?\C-c.getbyte(0)
612
611
  @multiplier = 0
613
612
  return 0
@@ -639,16 +638,17 @@ module RubyCurses
639
638
  # no motion on single key, we can freak out like in vim, pref f <char> for set_selection
640
639
  case ch
641
640
  when ?0.getbyte(0)..?9.getbyte(0)
642
- @multiplier *= 10 ; @multiplier += (ch-48)
641
+ $multiplier *= 10 ; $multiplier += (ch-48)
642
+ #$log.debug " setting mult to #{$multiplier} in list "
643
643
  return 0
644
644
  end
645
645
  ret = process_key ch, self
646
- @multiplier = 0
646
+ $multiplier = 0
647
647
  return :UNHANDLED if ret == :UNHANDLED
648
648
  end
649
649
  end
650
650
  end
651
- @multiplier = 0
651
+ $multiplier = 0
652
652
  end
653
653
  def ask_selection_for_char
654
654
  ch = @graphic.getch
@@ -1544,7 +1544,7 @@ module RubyCurses
1544
1544
  def handle_key(ch)
1545
1545
  if ch == ?\C-u.getbyte(0)
1546
1546
  ret = universal_argument
1547
- $log.debug " FORM set MULT to #{$multiplier}, ret = #{ret} "
1547
+ $log.debug "C-u FORM set MULT to #{$multiplier}, ret = #{ret} "
1548
1548
  return 0 if ret == 0
1549
1549
  ch = ret # unhandled char
1550
1550
  elsif ch >= ?\M-1.getbyte(0) && ch <= ?\M-9.getbyte(0)
@@ -2020,6 +2020,11 @@ module RubyCurses
2020
2020
  @value = value
2021
2021
  @klass = value.class.to_s
2022
2022
  end
2023
+ ##
2024
+ # This is to ensure that change handlers for all dependent objects are called
2025
+ # so they are updated. This is called from text_variable property of some widgets. If you
2026
+ # use one text_variable across objects, all will be updated auto. User does not need to call.
2027
+ # @ private
2023
2028
  def add_dependent obj
2024
2029
  $log.debug " ADDING DEPENDE #{obj}"
2025
2030
  @dependents ||= []
@@ -2027,6 +2032,7 @@ module RubyCurses
2027
2032
  end
2028
2033
  ##
2029
2034
  # install trigger to call whenever a value is updated
2035
+ # @public called by user components
2030
2036
  def update_command *args, &block
2031
2037
  $log.debug "Variable: update command set " # #{args}"
2032
2038
  @update_command << block
data/lib/rbcurse.rb CHANGED
@@ -3,5 +3,5 @@ require 'ver/window'
3
3
  require 'rbcurse/rwidget'
4
4
  require 'rbcurse/rdialogs'
5
5
  class Rbcurse
6
- VERSION = '1.1.1'
6
+ VERSION = '1.1.2'
7
7
  end
data/rbcurse.gemspec ADDED
@@ -0,0 +1,183 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rbcurse}
8
+ s.version = "1.1.3"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Rahul Kumar"]
12
+ s.date = %q{2010-05-10}
13
+ s.default_executable = %q{rbcurse}
14
+ s.description = %q{Ruby curses widgets for easy application development on text terminals (ruby 1.9, 1.8)}
15
+ s.email = %q{sentinel.2001@gmx.com}
16
+ s.executables = ["rbcurse"]
17
+ s.extra_rdoc_files = [
18
+ "README.markdown",
19
+ "TODO"
20
+ ]
21
+ s.files = [
22
+ ".gitignore",
23
+ "CHANGELOG",
24
+ "History.txt",
25
+ "Makefile",
26
+ "Manifest.txt",
27
+ "NOTES",
28
+ "README.markdown",
29
+ "TODO",
30
+ "TODO2.txt",
31
+ "VERSION",
32
+ "bin/rbcurse",
33
+ "examples/README.txt",
34
+ "examples/keytest.rb",
35
+ "examples/mpad2.rb",
36
+ "examples/newtesttabp.rb",
37
+ "examples/qdfilechooser.rb",
38
+ "examples/rfe.rb",
39
+ "examples/rfe_renderer.rb",
40
+ "examples/rvimsplit.rb",
41
+ "examples/sqlc.rb",
42
+ "examples/sqlm.rb",
43
+ "examples/status.txt",
44
+ "examples/test1.rb",
45
+ "examples/test2.rb",
46
+ "examples/testchars.rb",
47
+ "examples/testcombo.rb",
48
+ "examples/testkeypress.rb",
49
+ "examples/testmenu.rb",
50
+ "examples/testmulticomp.rb",
51
+ "examples/testscroller.rb",
52
+ "examples/testscrolllb.rb",
53
+ "examples/testscrollp.rb",
54
+ "examples/testscrollta.rb",
55
+ "examples/testscrolltable.rb",
56
+ "examples/testsplit.rb",
57
+ "examples/testsplit2.rb",
58
+ "examples/testsplit3.rb",
59
+ "examples/testsplit3_1.rb",
60
+ "examples/testsplit3a.rb",
61
+ "examples/testsplit3b.rb",
62
+ "examples/testsplitta.rb",
63
+ "examples/testsplittv.rb",
64
+ "examples/testsplittvv.rb",
65
+ "examples/testtable.rb",
66
+ "examples/testtabp.rb",
67
+ "examples/testtestw.rb",
68
+ "examples/testtodo.rb",
69
+ "examples/testtpane.rb",
70
+ "examples/testtpane2.rb",
71
+ "examples/testtpanetable.rb",
72
+ "examples/todo.yml",
73
+ "examples/todocsv.csv",
74
+ "examples/viewtodo.rb",
75
+ "lib/rbcurse.rb",
76
+ "lib/rbcurse/action.rb",
77
+ "lib/rbcurse/applicationheader.rb",
78
+ "lib/rbcurse/celleditor.rb",
79
+ "lib/rbcurse/checkboxcellrenderer.rb",
80
+ "lib/rbcurse/colormap.rb",
81
+ "lib/rbcurse/comboboxcellrenderer.rb",
82
+ "lib/rbcurse/defaultlistselectionmodel.rb",
83
+ "lib/rbcurse/io.rb",
84
+ "lib/rbcurse/keylabelprinter.rb",
85
+ "lib/rbcurse/listcellrenderer.rb",
86
+ "lib/rbcurse/listeditable.rb",
87
+ "lib/rbcurse/listkeys.rb",
88
+ "lib/rbcurse/listscrollable.rb",
89
+ "lib/rbcurse/listselectable.rb",
90
+ "lib/rbcurse/mapper.rb",
91
+ "lib/rbcurse/orderedhash.rb",
92
+ "lib/rbcurse/rchangeevent.rb",
93
+ "lib/rbcurse/rcombo.rb",
94
+ "lib/rbcurse/rdialogs.rb",
95
+ "lib/rbcurse/rform.rb",
96
+ "lib/rbcurse/rinputdataevent.rb",
97
+ "lib/rbcurse/rlistbox.rb",
98
+ "lib/rbcurse/rmenu.rb",
99
+ "lib/rbcurse/rmessagebox.rb",
100
+ "lib/rbcurse/rmulticontainer.rb",
101
+ "lib/rbcurse/rmultitextview.rb",
102
+ "lib/rbcurse/rpopupmenu.rb",
103
+ "lib/rbcurse/rscrollform.rb",
104
+ "lib/rbcurse/rscrollpane.rb",
105
+ "lib/rbcurse/rsplitpane.rb",
106
+ "lib/rbcurse/rtabbedpane.rb",
107
+ "lib/rbcurse/rtabbedwindow.rb",
108
+ "lib/rbcurse/rtable.rb",
109
+ "lib/rbcurse/rtextarea.rb",
110
+ "lib/rbcurse/rtextview.rb",
111
+ "lib/rbcurse/rviewport.rb",
112
+ "lib/rbcurse/rwidget.rb",
113
+ "lib/rbcurse/scrollable.rb",
114
+ "lib/rbcurse/selectable.rb",
115
+ "lib/rbcurse/table/tablecellrenderer.rb",
116
+ "lib/rbcurse/table/tabledatecellrenderer.rb",
117
+ "lib/rbcurse/undomanager.rb",
118
+ "lib/rbcurse/vieditable.rb",
119
+ "lib/ver/keyboard.rb",
120
+ "lib/ver/keyboard2.rb",
121
+ "lib/ver/ncurses.rb",
122
+ "lib/ver/window.rb",
123
+ "rbcurse.gemspec",
124
+ "test/test_rbcurse.rb"
125
+ ]
126
+ s.homepage = %q{http://rbcurse.rubyforge.org/}
127
+ s.rdoc_options = ["--charset=UTF-8"]
128
+ s.require_paths = ["lib"]
129
+ s.rubygems_version = %q{1.3.6}
130
+ s.summary = %q{Ruby Curses Toolkit}
131
+ s.test_files = [
132
+ "test/test_rbcurse.rb",
133
+ "examples/keytest.rb",
134
+ "examples/mpad2.rb",
135
+ "examples/newtesttabp.rb",
136
+ "examples/qdfilechooser.rb",
137
+ "examples/rfe.rb",
138
+ "examples/rfe_renderer.rb",
139
+ "examples/rvimsplit.rb",
140
+ "examples/sqlc.rb",
141
+ "examples/sqlm.rb",
142
+ "examples/test1.rb",
143
+ "examples/test2.rb",
144
+ "examples/testchars.rb",
145
+ "examples/testcombo.rb",
146
+ "examples/testkeypress.rb",
147
+ "examples/testmenu.rb",
148
+ "examples/testmulticomp.rb",
149
+ "examples/testscroller.rb",
150
+ "examples/testscrolllb.rb",
151
+ "examples/testscrollp.rb",
152
+ "examples/testscrollta.rb",
153
+ "examples/testscrolltable.rb",
154
+ "examples/testsplit.rb",
155
+ "examples/testsplit2.rb",
156
+ "examples/testsplit3.rb",
157
+ "examples/testsplit3_1.rb",
158
+ "examples/testsplit3a.rb",
159
+ "examples/testsplit3b.rb",
160
+ "examples/testsplitta.rb",
161
+ "examples/testsplittv.rb",
162
+ "examples/testsplittvv.rb",
163
+ "examples/testtable.rb",
164
+ "examples/testtabp.rb",
165
+ "examples/testtestw.rb",
166
+ "examples/testtodo.rb",
167
+ "examples/testtpane.rb",
168
+ "examples/testtpane2.rb",
169
+ "examples/testtpanetable.rb",
170
+ "examples/viewtodo.rb"
171
+ ]
172
+
173
+ if s.respond_to? :specification_version then
174
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
175
+ s.specification_version = 3
176
+
177
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
178
+ else
179
+ end
180
+ else
181
+ end
182
+ end
183
+