rbcurse 1.1.1 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+