rbcurse 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. data/CHANGELOG +20 -0
  2. data/NOTES +45 -0
  3. data/README.markdown +47 -68
  4. data/TODO2.txt +29 -32
  5. data/VERSION +1 -1
  6. data/examples/abasiclist.rb +2 -0
  7. data/examples/app.rb +2 -2
  8. data/examples/app.sample +10 -0
  9. data/examples/appemail.rb +29 -2
  10. data/examples/appemaillb.rb +1 -1
  11. data/examples/appgcompose.rb +9 -2
  12. data/examples/appmethods.rb +69 -0
  13. data/examples/atree.rb +2 -2
  14. data/examples/menu1.rb +1 -1
  15. data/examples/newtesttabp.rb +8 -5
  16. data/examples/qdfilechooser.rb +6 -3
  17. data/examples/rfe.rb +71 -16
  18. data/examples/rmail.rb +76 -7
  19. data/examples/sqlc.rb +14 -3
  20. data/examples/sqlm.rb +3 -3
  21. data/examples/term.rb +48 -0
  22. data/examples/term2.rb +48 -21
  23. data/examples/test1.rb +2 -2
  24. data/examples/test2.rb +162 -71
  25. data/examples/testapp.rb +2 -2
  26. data/examples/testapp2.rb +1 -1
  27. data/examples/testchars.rb +47 -46
  28. data/examples/testcombo.rb +2 -2
  29. data/examples/testkeypress.rb +2 -2
  30. data/examples/testlistbox.rb +2 -2
  31. data/examples/testmenu.rb +1 -1
  32. data/examples/testmulticomp.rb +1 -1
  33. data/examples/testmultispl.rb +1 -1
  34. data/examples/testree.rb +1 -22
  35. data/examples/testscroller.rb +2 -2
  36. data/examples/testscrolllb.rb +2 -2
  37. data/examples/testscrollp.rb +2 -2
  38. data/examples/testscrollta.rb +2 -2
  39. data/examples/testscrolltable.rb +2 -2
  40. data/examples/testsplit.rb +2 -2
  41. data/examples/testsplit2.rb +2 -2
  42. data/examples/testsplit3.rb +2 -2
  43. data/examples/testsplit3_1.rb +2 -2
  44. data/examples/testsplit3a.rb +2 -2
  45. data/examples/testsplit3b.rb +2 -2
  46. data/examples/testsplitta.rb +2 -2
  47. data/examples/testsplittv.rb +2 -2
  48. data/examples/testsplittvv.rb +2 -2
  49. data/examples/testtable.rb +2 -2
  50. data/examples/testtabp.rb +2 -2
  51. data/examples/testtodo.rb +1 -1
  52. data/examples/testtpane.rb +2 -2
  53. data/examples/testtpane2.rb +2 -2
  54. data/examples/testtpanetable.rb +6 -5
  55. data/examples/testvimsplit.rb +2 -2
  56. data/examples/viewtodo.rb +1 -1
  57. data/lib/rbcurse.rb +2 -1
  58. data/lib/rbcurse/action.rb +1 -1
  59. data/lib/rbcurse/app.rb +51 -14
  60. data/lib/rbcurse/applicationheader.rb +1 -1
  61. data/lib/rbcurse/celleditor.rb +1 -1
  62. data/lib/rbcurse/colormap.rb +11 -11
  63. data/lib/rbcurse/comboboxcellrenderer.rb +1 -1
  64. data/lib/rbcurse/extras/bottomline.rb +22 -10
  65. data/lib/rbcurse/extras/directorylist.rb +14 -1
  66. data/lib/rbcurse/extras/divider.rb +1 -1
  67. data/lib/rbcurse/extras/listselectable.rb +2 -2
  68. data/lib/rbcurse/extras/masterdetail.rb +3 -1
  69. data/lib/rbcurse/extras/scrollbar.rb +1 -1
  70. data/lib/rbcurse/extras/stdscrwindow.rb +75 -24
  71. data/lib/rbcurse/extras/tabular.rb +8 -3
  72. data/lib/rbcurse/extras/viewer.rb +18 -2
  73. data/lib/rbcurse/io.rb +26 -13
  74. data/lib/rbcurse/keylabelprinter.rb +3 -2
  75. data/lib/rbcurse/listcellrenderer.rb +1 -0
  76. data/lib/rbcurse/listkeys.rb +3 -2
  77. data/lib/rbcurse/listselectable.rb +4 -3
  78. data/lib/rbcurse/rbasiclistbox.rb +12 -5
  79. data/lib/rbcurse/rcombo.rb +2 -2
  80. data/lib/rbcurse/rcommandwindow.rb +5 -3
  81. data/lib/rbcurse/rdialogs.rb +8 -2
  82. data/lib/rbcurse/rlistbox.rb +10 -2
  83. data/lib/rbcurse/rmenu.rb +4 -4
  84. data/lib/rbcurse/rmessagebox.rb +10 -5
  85. data/lib/rbcurse/rmulticontainer.rb +21 -8
  86. data/lib/rbcurse/rmultisplit.rb +2 -2
  87. data/lib/rbcurse/rmultitextview.rb +5 -3
  88. data/lib/rbcurse/rpopupmenu.rb +3 -3
  89. data/lib/rbcurse/rprogress.rb +3 -2
  90. data/lib/rbcurse/rscrollform.rb +2 -2
  91. data/lib/rbcurse/rscrollpane.rb +9 -9
  92. data/lib/rbcurse/rsplitpane.rb +2 -2
  93. data/lib/rbcurse/rsplitpane2.rb +2 -2
  94. data/lib/rbcurse/rtabbedpane.rb +48 -12
  95. data/lib/rbcurse/rtabbedwindow.rb +4 -4
  96. data/lib/rbcurse/rtable.rb +6 -3
  97. data/lib/rbcurse/rtextarea.rb +8 -8
  98. data/lib/rbcurse/rtextview.rb +3 -2
  99. data/lib/rbcurse/rtree.rb +2 -2
  100. data/lib/rbcurse/rviewport.rb +2 -2
  101. data/lib/rbcurse/rvimsplit.rb +3 -2
  102. data/lib/rbcurse/rwidget.rb +63 -26
  103. data/lib/rbcurse/scrollable.rb +1 -1
  104. data/lib/rbcurse/table/tablecellrenderer.rb +1 -1
  105. data/lib/rbcurse/table/tabledatecellrenderer.rb +1 -1
  106. data/lib/rbcurse/tree/treemodel.rb +1 -1
  107. data/lib/rbcurse/vieditable.rb +1 -0
  108. data/lib/ver/ncurses.rb +122 -4
  109. data/lib/ver/panel.rb +162 -0
  110. data/lib/ver/window.rb +262 -120
  111. metadata +19 -7
  112. data/examples/keytest.rb +0 -178
  113. data/examples/mpad2.rb +0 -156
data/CHANGELOG CHANGED
@@ -1,3 +1,23 @@
1
+ **2011-09-26**
2
+ ## 1.3.0
3
+
4
+ ### Moving to ffi-ncurses
5
+ Essentially code changes for ffi-ncurses. ncurses gem no longer supported
6
+ as it was painful to install. Required ffi-ncurses >= 0.4.0
7
+
8
+ Some bugfixes in demos and samples due to changes in 1.2.0, or ruby 1.9, which went
9
+ unnoticed.
10
+
11
+ ### Deprecations
12
+ Some classes being deprecated:
13
+ - SplitPane (use vimsplit instead)
14
+ - ScrollPane (no substitute) Code supporting scrollpane will be removed
15
+ by 1.3.1 or 1.3.2 and this will not work.
16
+
17
+ ### Tabbedpane
18
+ Not working correctly since moving to ffi-ncurses. Will be completely
19
+ rewritten by 1.3.2.
20
+
1
21
  **2010-09-11**
2
22
  ## 1.2.0
3
23
 
data/NOTES CHANGED
@@ -1999,3 +1999,48 @@ update more often than required. its called in different ways,
1999
1999
  interactive and non-interactive. Need to look into that at some time.
2000
2000
 
2001
2001
  * * * * * * * *
2002
+
2003
+ Subject: calcurse
2004
+ -----------------
2005
+ Date: 2010-12-01 18:49
2006
+
2007
+ Just installed calcurse (port) and was checking the UI. Neat. Some salient
2008
+ points:
2009
+
2010
+ 1. Windows or panels. Standard with title, title border, border color
2011
+ changes when focus in panel or box (that's because it keeps updating
2012
+ time and thereofre cursor remains on status bar)
2013
+ 2. 2 bottom lines for keys like we have (keylabels)
2014
+ 3. 3rd last row is a sort of status bar like emacs and vim have
2015
+ 4. Data entry in last 2 rows. 2nd last has prompt, last has entry or
2016
+ edit
2017
+ 5. Similarly menu options selected in last row. A page comes with
2018
+ options, letter indexed.
2019
+ 6. Allows layout change of panels.
2020
+ 7. Allows color change, immediate change. Displays colors rather than
2021
+ name. Color chooser for BG and FG.
2022
+
2023
+ Subject: App.rb confirm before quit
2024
+ -----------------------------------
2025
+ Date: 2011-09-17 11:49
2026
+
2027
+ App should be able to configure whether it wants quit-confirm. Or a
2028
+ procedure to call before quitting, such as saving values. It's okay for
2029
+ demos where there's no state to just press F1 or q or C-q to quit.
2030
+
2031
+ * * * * * * * *
2032
+
2033
+ Subject: porting to ffi-ncurses
2034
+ -------------------------------
2035
+ Date: 2011-09-17 11:51
2036
+
2037
+ I've been working on porting the rbcurse gem to ffi-ncurses, since
2038
+ ncurses gems is so so hard to install for a lot of people. Thanks to
2039
+ Sean's support the work and retesting was actually very little. It's
2040
+ just that there is a lot of testing to do with all the programs,
2041
+ widgets.
2042
+
2043
+ Sean is coming out with a version 0.4.0 which I am using. rbcurse 1.3.0
2044
+ onwards uses ffi-ncurses.
2045
+
2046
+ * * * * * * * *
data/README.markdown CHANGED
@@ -1,13 +1,21 @@
1
1
  # rbcurse (for ruby 1.9.x)
2
2
 
3
- * Version that works with ruby 1.9 (backward compatible with 1.8.7)
3
+ * Migrating from ncurses-ruby to ffi-ncurses
4
+
5
+ I have moved rbcurse to ffi-ncurses (earlier ncurses gem).
6
+
7
+ If you are looking for the ncurses version, please goto
8
+ branch rbcurse1.2.0. I am not likely to support that henceforth due to the difficulty in installing ncurses gem.
9
+
10
+ Thanks a lot to Sean O'Halpin for the ffi-ncurses gem and immediately responding
11
+ to my queries. I am testing on OSX Snow Leopard with ruby 1.9.2, TERM=screen on zsh.
4
12
 
5
- * Status:
6
- 1.2.x is the last version that uses ncurses gem. Henceforth, rbcurse is moving to
7
- version 1.3.x using ffi-ncurses. This is due to difficulty in installing ncurses gem.
8
- Only bug-fixes will be done on 1.2.x.
9
- This version has been tested till ruby 1.9.2 and will not be tested with 1.9.3 onwards.
10
- (You may want to check the ffi branch for the moment)
13
+ * 2011-09-14 : I am thinking of using the 1.2.x version for ncurses-ruby - any final
14
+ bug fixes etc, and releasing a 1.2.x gem. See the rbcurse1.2.0 branch for more updates.
15
+ Also, using 1.3.x and beyond for the ffi-ncurses version. Will start with a pre-release gem and
16
+ then do a final after some testing.
17
+
18
+ * Version that works with ruby 1.9 (backward compatible with 1.8.7)
11
19
 
12
20
  * 1.2.0: many additions (See CHANGELOG for details)
13
21
  - App class that wraps the environment and makes application development very easy
@@ -30,7 +38,7 @@
30
38
 
31
39
  Check downloads at <http://github.com/rkumar/rbcurse/downloads>
32
40
 
33
- test2.rb works - i always give it a quick run after making changes. All the testsplit* and testscroll* examples are working. If using ruby1.9.2, you might say: `ruby -I. test2.rb`.
41
+ test2.rb works - i always give it a quick run after making changes. If using ruby1.9.2, you might say: `ruby -I. test2.rb`.
34
42
 
35
43
  * <http://totalrecall.wordpress.com> - always has some status posted.
36
44
 
@@ -49,21 +57,24 @@ test2.rb works - i always give it a quick run after making changes. All the test
49
57
  widgets. F2 for menubar toggling
50
58
 
51
59
  * rfe.rb is a ruby file explorer demo.
52
- Also see, appdirtree.rb for tree based file explorer.
53
60
 
54
- * sqlc.rb is a ruby sql client _demo_ (using testd.db at
61
+ * sqlm.rb is a ruby sql client _demo_ (using testd.db at
55
62
  <http://www.benegal.org/files/screen/testd.db>)
56
63
  (requires gem sqlite3-ruby)
57
64
  sqlm.rb: uses a multi-container - each query opens a new table in the multicontainer
58
- sqlc.rb: uses tabbedpanes - each query opens a new tab (quite a pain)
59
65
 
60
- * testtodo.rb is a test TODO application (now using fastercsv)
66
+ * alpmenu.rb - an alpine like menu screen that calls the following 2 programs
67
+
68
+ * testtodo.rb is a test TODO application (M-h to see popup menus)
61
69
 
62
- * viewtodo.rb is a test TODO viewing application (now using sqlite3). The table is readonly, some vim keys are available.
70
+ * viewtodo.rb is a test TODO viewing application (now using sqlite3). The table is readonly, some vim keys are available.
71
+
72
+ * app.rb - demo of the app feature. Also has progress bars (type in the textarea to see progress bar)
73
+
74
+ * appemail.rb - a larger demo of the app feature and Column Browse pattern. Uses mbox to display mails. M-x to show commands at bottom of screen. Vim and bash-like file selection and other goodies.
75
+
76
+ * appdirtree - demo of file browser using Tree on left and list on right.
63
77
 
64
- For a multiple program application, try alpmenu.rb. This gives a list of application to call (mimicks
65
- alpine's menu. It links to viewtodo.rb and testtodo.rb. It shows how a program can be independent,
66
- and be called from a menu.
67
78
 
68
79
  * Screenshots on
69
80
  <http://www.benegal.org/files/screen/?M=D> (new)
@@ -73,7 +84,7 @@ test2.rb works - i always give it a quick run after making changes. All the test
73
84
  * Todo (for 0.1.2):
74
85
  <http://rubyforge.org/pm/task.php?group_id=7775&group_project_id=13812&func=browse>
75
86
 
76
- See [TODO2.txt](http://github.com/rkumar/rbcurse/blob/rbcurse19/TODO2.txt) (created and maintained by [todoapp.sh](http://github.com/rkumar/todoapp), also hosted here)
87
+ See [TODO2.txt](https://github.com/rkumar/rbcurse/blob/master/TODO2.txt) (created and maintained by [todo.rb](https://github.com/rkumar/todorb), also hosted here)
77
88
 
78
89
  * rbcurse tutorial (WIP - please review and give feedback)
79
90
  <http://rbcurse.rubyforge.org/tut0.html>
@@ -97,8 +108,8 @@ applications.
97
108
  * labels with mnemonics (hotkeys)
98
109
  * Table: multi-column table - with cell selection and editing, horizontal and
99
110
  vertical scrolling
100
- * Scrollpanes which can contain textviews, textareas, listboxes.
101
- * Splitpanes which can contain scrollpanes, textviews/areas, listboxes *or splitpanes* ...
111
+ * Scrollpanes which can contain textviews, textareas, listboxes. (Avoid using).
112
+ * Splitpanes which can contain scrollpanes, textviews/areas, listboxes or splitpanes ... DEPRECATED. Pls use vimplit.
102
113
  * MultiContainer = add any number of objects to it (such as tables or text objects) and cycle through them
103
114
  (saves screen estate)
104
115
  * MultiTextView - have multiple files open for viewing in one component. Since these are readonly files, one can map a lot of single-keys as in vim for operating and cycling through buffers.
@@ -108,6 +119,7 @@ applications.
108
119
  * Kill-ring concept of emacs for cut-paste operations
109
120
  * Unlimited undo and redo in TextArea (needs to be switched on at present on instance basis)
110
121
  * Numeric arguments. (vim: 25dd etc. Or in an editable box, emacs's C-u or Alt-1..9)
122
+ * ScrollForm (testscroller.rb) - a form that takes more fields/objects than can be viewed at a go. Meta keys scroll the form.
111
123
  * Various others, too
112
124
 
113
125
  Above may be created using DSL like syntax, or hashes, and modified at
@@ -115,18 +127,17 @@ runtime. Very flexible unlike ncurses forms and fields.
115
127
 
116
128
  ## Current work
117
129
 
130
+ * 2011-09-21 : I intend to rewrite the following widgets: tabbedpane, menu, messagebox. These were some of the earliest programs and the code is a mess. I need to work on KEY-RESIZE, too. Catching Ctrl-arrow keys and shift function keys is required.
131
+
132
+ Old:
118
133
  I've just added vi and emacs key bindings to some classes, multiple object containers such as MultiContainer
119
134
  and MultiTextView. Emacs like kill-ring in TextArea and TextView. Tabbedpane can have unlimited tabs, we can scroll the tabs. Bunch of other stuff. Multiple keys can be bound to a Proc or symbol as in emacs and vim (dd or C-x C-f).
120
135
 
121
- I've made a demo using ScrollForm (testscroller.rb)- a form that takes more fields/objects than
122
- can be viewed at a go. Meta keys scroll the form.
123
- Then onto testing what's there, before making a stable
124
- release.
125
136
 
126
137
  ## Sample programs:
127
138
 
128
- * test2.rb most widgets (including menus)
129
- * sqlc.rb is a ruby sql client demo (using sqlite3-ruby)
139
+ * test2.rb most basic widgets (including menus)
140
+ * sqlm.rb is a ruby sql client demo (using sqlite3-ruby)
130
141
  * rfe : file explorer or Finder like app
131
142
  * testcombo.rb combos with various insert policies and vertical
132
143
  alignments
@@ -137,18 +148,21 @@ release.
137
148
  pass 1,2,3,4, or 5 as argument on command line
138
149
  ruby test1.rb 1
139
150
  ruby test1.rb 2
140
- * test2.rb most widgets (including menus)
141
- - partially tested, many widgets, needs thorough testing.
142
151
 
143
- * testscroll*.rb - various demos of scrollpanes with listboxes, text areas, tables etc
144
-
145
- * testsplit*.rb - various splitpanes with scrollpanes and other objects placed inside
146
152
  See screenshots on blog.
147
153
 
148
154
  * testtpane.rb - tabbedpane sample with a scrollpane and a textobject.
149
155
 
150
156
  ## PROBLEMS, ISSUES
151
157
 
158
+ ## Splitpane
159
+ Deprecated. Please use vimsplit instead. It's cleaner and hopefully easier to use.
160
+ Splitpanes suffered from the problem of the system not knowing which pane the user was
161
+ issuing a command (resize) in (when there were embedded panes).
162
+
163
+ ## Scrollpane - Avoid this. Listboxes and textareas already implement scrolling. I was using pads
164
+ to implement a viewport, this was slow esp with scrollpanes within splitpanes, but the copywin() and
165
+ related methods often gave errors or seg-faults.
152
166
 
153
167
  ## General terminal related issues.
154
168
 
@@ -168,7 +182,7 @@ The following are issues with terminals (or with ncurses-ruby in some cases) not
168
182
  This is okay under "screen" and "xterm-color" but not under "xterm". You will notice
169
183
  this in the message box samples.
170
184
 
171
- I am developing and testing under "screen" under OS X Leopard 10.5.8 PPC (now 10.6.x Snow Leopard).
185
+ I am developing and testing under "screen" under OS X Snow Leopard.
172
186
 
173
187
  ## SYNOPSIS:
174
188
 
@@ -382,59 +396,24 @@ THE following samples are only demonstrative of how widgets are built. See sampl
382
396
 
383
397
  * ruby 1.9.1, 1.9.2 (I believe it is working on 1.8.7, 1.8.6 as well).
384
398
 
385
- * ncurses-ruby (1.2.4)
399
+ * ffi-ncurses (>= 0.4.0)
386
400
 
387
401
  (Note: 1.8.6 users: pls report any issues and suggest a fix or alternative if you encounter a method_missing)
388
402
 
389
403
 
390
404
  ## INSTALL:
391
405
 
392
- STEP 1.
393
406
  (In following commands, use `sudo` if installing gems in readonly are such as /opt/local/).
394
407
 
395
- `gem install ncurses`
396
-
397
- Often this gives compilation errors, or runtime errors when you run the examples.
398
- If so, please download [ncurses-1.2.4.gem](http://github.com/downloads/rkumar/rbcurse/ncurses-1.2.4.gem) from <http://github.com/rkumar/rbcurse/downloads> and do a:
399
-
400
- `gem install --local ncurses-1.2.4.gem`.
401
-
402
- This should have installed an `ncurses.rb` and `ncurses_bin.bundle` in the site directory.
403
- Goto examples directory and run some examples:
404
-
405
- ruby rain.rb
406
- ruby examples.rb
407
-
408
- STEP 2.
409
-
410
408
  `gem install rbcurse`
411
409
 
412
- Now go to the the `examples` folder and execute some examples. Each sample writes to a log file named view.log. If the examples folder is readonly, you will have to set `LOGDIR` to a writable folder as below.
410
+ Now go to the the `examples` folder and execute some examples. Each sample writes to a log file named rbc13.log (earlier view.log). If the examples folder is readonly, you will have to set `LOGDIR` to a writable folder as below.
413
411
 
414
412
  cd examples
415
413
  ruby test2.rb
416
414
  LOGDIR=~/tmp ruby test1.rb
417
415
 
418
416
 
419
- Note: Please use rbcurse gem version 1.1.3 or higher. I have just created this gem, so let me know if there are missing files.
420
-
421
- ### Installing ncurses-ruby on Mac OS X Snow Leopard
422
-
423
- ncurses-ruby has been failing on OSX Snow Leopard. Please get 1.2.4 or 0.9.2 from <http://github.com/downloads/rkumar/rbcurse/>. Ensure that the examples are working before trying rbcurse.
424
-
425
- I have uploaded a modified ncurses gem [here](http://github.com/downloads/rkumar/rbcurse/ncurses-0.9.2.gem) .
426
- Download this and then run:
427
-
428
- gem install --local ncurses-1.2.4.gem
429
- OR
430
- gem install --local ncurses-0.9.2.gem
431
-
432
- Thanks to Ralf Papenkordt for providing me with a working tar.bz2 file (see download folder).
433
-
434
- **Update**: I've uploaded a gem for Snow Leopard onto [rubygems.org](http://rubygems.org/gems/snowleopard-ncurses).
435
-
436
- gem install snowleopard-ncurses
437
-
438
417
  ## LICENSE:
439
418
 
440
419
  Copyright (c) 2008 -2010 rkumar
data/TODO2.txt CHANGED
@@ -28,7 +28,6 @@
28
28
  - 16.3 [x] test splitpane with textareas (2010-01-13) (x2010-01-18)
29
29
  - 16.4 [x] test splitpane with one splitpane and 3 textviews (2010-01-13) (x2010-01-18)
30
30
  - 16.5 [x] test splitpane with scrollpane and textviews (2010-01-15) (x2010-01-18)
31
- 17 [ ] test2.rb check menu traversal issue - is it slow (2010-01-03)
32
31
  18 [x] (A) popups now showing one blak line below. need to adjust (2010-01-05) (x2010-01-06)
33
32
  19 [x] make a scrollable form using Pad. Hint: scrollpane does that. (2010-01-06) (x2010-03-07)
34
33
  20 [x] (A) investigate crash +splitpane, ht is ht/2-1 and you scroll C-n (2010-01-09) (x2010-01-11)
@@ -41,75 +40,73 @@
41
40
  27 [x] (A) TextArea fix direct calls to form.row and form.col (2010-01-14) (x2010-01-14)
42
41
  28 [x] (A) TextArea: borders get overwritten  * chomp was required when using << (2010-01-14) (x2010-01-14)
43
42
  29 [x] what if we don't want to print borders, since that eats an extraline and col. Can we switch off and reclaim the line and col (2010-01-15) (x2010-02-18)
44
- 30 [ ] (O) setformrow col or setrowcol requires 2 iterations for column and row since both are calc separately. thats for each keypress (2010-01-15)
45
43
  31 [x] move create_buffer to repaintin TA and TV and others, so that enduser does not have to bother. scroll and split can set internally  * All create_buffer calls moved to repaint. Maybe table pending (2010-01-16) (x2010-02-18)
46
- 32 [ ] (O) size changes immediately trigger a buffer resize ...instead set a flag so one resize can be done in repaint. otherwise too many resizes (2010-01-16)
47
- 33 [ ] (O) maybe we should combine set_form_row and col since we call them one after another nowadays (2010-01-16)
48
- 34 [ ] (D) Scrollpane, ensure redraws child only if resized, else it only pans child (2010-01-17)
49
- 35 [ ] Scrollpane shold probably reduce when outer is reduced. (2010-01-17)
50
44
  36 [ ] should parent set scrollatrows for lb and tv and ta ? (2010-01-17)
51
45
  37 [x] (B) test rtable in splitpane and scrollpanes  * done rtable in scrollpane (2010-01-18) (x2010-02-24)
52
46
  38 [x] (B) test various widgets inside rtabbedpane (2010-01-19) (x2010-02-22)
53
- 39 [ ] +Scrollpane cursor goes off. need to hide when off (2010-01-19)
54
- 40 [ ] correct gemspec files for master and rb19, remove unneeded files and corrected readme etc (2010-01-22)
55
47
  41 [x] Textareas: C-a C-e does not repain which is good, but footer not updated (2010-01-23) (x2010-01-25)
56
48
  42 [x] check where we are directly calling wmove and why (2010-01-23) (x2010-01-25)
57
49
  43 [x] we need to pass actual highest form down as well as each components absolute coords so cursor display can happen quickly and accurately.  * RFED16 branch has absolute positioning (2010-01-23) (x2010-02-18)
58
50
  44 [x] TextView: add more vi keys (2010-02-07) (x2010-02-24)
59
- 45 [@] RFED16 branch: clear out all commented code reg buffers (2010-02-18)
60
51
  46 [x] RFED16 branch: Redo table as per new simple approach (2010-02-18) (x2010-02-19)
61
52
  47 [x] RFED16 branch: Redo tabbedpane as per new simple approach (2010-02-18) (x2010-02-21)
62
- 48 [ ] are we destroying these pads ?? I don;t think so. (2010-02-19)
63
53
  49 [x] (A) Tabbing in top of tabbedpane gives funny staggered effect ?? (2010-02-21) (x2010-02-22)
64
54
  50 [x] (A) Tabbedpane: scrolling not updating N and P (2010-02-21) (x2010-03-01)
65
55
  51 [x] TabbedPane: add on the fly tabs in tabbedpane - what about second level (2010-02-21) (x2010-03-05)
66
- 52 [ ] (B) Table needs multiplier for resizing cols (2010-02-24)
67
56
  53 [x] Splitpane needs multiplier for resizing panes (2010-02-24) (x2010-02-26)
68
57
  54 [x] Scrollpane needs multiplier for scrolling (2010-02-24) (x2010-02-26)
69
58
  55 [x] (1) keymapping: add symbols and test mapping externally (2010-02-27) (x2010-02-27)
70
59
  56 [x] (A) Splitpane: add oneTouchExpandable to +splitpane (2010-02-27) (x2010-03-05)
71
60
  57 [x] TabbedPane: can we directly add component (2010-02-27) (x2010-03-01)
72
- 58 [ ] make form = nil in widget constructors so nil not to be passed (2010-02-27)
73
- 59 [ ] add a mthod form.add as an alternative to putting form in constructor (2010-02-27)
74
61
  60 [x] (A) Textview: should scroll horizontally (2010-02-28) (x2010-03-05)
75
- 61 [ ] (F) how to map : bind w, 12j (to another key binding)  * if recogn as keys, then call handle_key on self with each key in array (2010-03-01)
76
62
  62 [x] (A) TabbedPane: remove subheading, wastes space (2010-03-01) (x2010-03-02)
77
63
  63 [x] (E) some means of editing a string at a location wiht option of C-c or Esc and default, take from commons1.rb (2010-03-05) (x2010-03-06)
78
64
  64 [x] (F) TextArea and TextView Field Table etc: yanking and pasting globally (2010-03-05) (x2010-03-10)
79
65
  65 [x] (F) textarea needs some undo more than just undelete_line  * http://rbcurse.tumblr.com/post/429578665/undo-in-text-widgets (2010-03-05) (x2010-03-12)
80
66
  66 [x] (E) Text object should have ability to read in a text file with key (2010-03-05) (x2010-03-12)
81
- 67 [ ] (E) Text objects: execute ex commands ???  * printf '%cs/change this/to that/nwq' '%' | ex file.name (2010-03-05)
82
- 68 [ ] (E) SplitPane: widen splits C-w > < in case of horizontal split, parent has to do it  * if parent is SplitPane, check ORIENT, and 1 or 2c, then widen or heighten (2010-03-05)
83
- 69 [ ] (E) SplitPane: binding so that next command acts on higher level splitpane ? (2010-03-05)
84
67
  70 [x] (E) rbgetstr: tab completion, as in filename completion etc (2010-03-06) (x2010-03-12)
85
68
  71 [x] (D) Demo: using scrollform (2010-03-07) (x2010-03-16)
86
- 72 [ ] TextView: keymaps. p 699 (2010-03-07)
87
- 73 [ ] TextView: freezing an area horiz vertically (2010-03-07)
88
- 74 [ ] General: move key bindings to bind_key so user can see what's bound (2010-03-07)
89
- 75 [ ] (A) Do a round of tests and release a new version (2010-03-08)
69
+ 72 [ ] (F) TextView: keymaps. p 699 (2010-03-07)
70
+ 73 [ ] (F) TextView: freezing an area horiz vertically (2010-03-07)
71
+ 74 [x] General: move key bindings to bind_key so user can see what's bound (2010-03-07)
90
72
  76 [ ] a Box class = would that help? (2010-03-08)
91
- 77 [ ] (O) Make event objects only if some listener exists (2010-03-08)
92
73
  78 [x] (A) Undo: refactor undomanager and undohandler (2010-03-08) (x2010-03-10)
93
74
  79 [x] (A) Demo: get sqlc.rb demo running (2010-03-09) (x2010-03-14)
94
75
  80 [x] firehandler: can we combine consecutive ones into one, passing an array? (2010-03-09) (x2010-03-12)
95
76
  81 [x] (F) Textview: multiple buffer version (2010-03-10) (x2010-03-12)
96
77
  82 [x] (F) Textview: partial editable version (2010-03-10) (x2010-03-12)
97
- 83 [ ] make error_message into a Variable, so app can attach it to a label if required (2010-03-11)
78
+ 83 [x] make error_message into a Variable, so app can attach it to a label if required (2010-03-11)
98
79
  84 [x] (A) move some edit methods from textarea into module so we can call with diff bindings from textview editable (2010-03-12) (x2010-03-12)
99
- 85 [ ] (F) how about getting ascii tables in here for sql stuff (2010-03-12)
100
- 86 [ ] (E) TextView etal: store path so save can be done? (2010-03-12)
80
+ 85 [x] (F) how about getting ascii tables in here for sql stuff (2010-03-12)
101
81
  87 [x] (E) MultiTextView: list buffers to do (2010-03-12) (x2010-03-15)
102
82
  88 [x] (E) TextV+A, when printing a screenful, store actual maxlen for scrolling left (2010-03-12) (x2010-03-13)
103
- 89 [ ] (B) Scrollpane is just wrong with textobjects, searching doesnt work properly - it doesnt show up (2010-03-13)
104
- 90 [ ] (B) tabbedpane buttons focus sometimes mixes with table first row focuses (2010-03-14)
83
+ 89 [ ] (Z) Scrollpane is just wrong with textobjects, searching doesnt work properly - it doesnt show up (2010-03-13)
84
+ 90 [ ] (Z) tabbedpane buttons focus sometimes mixes with table first row focuses (2010-03-14)
105
85
  91 [x] (B) tabbedpane: adding new tab dyn, not immediately shown (2010-03-14) (x2010-03-15)
106
- 92 [ ] TabbedPane: move fun stuff to Util class - dont crowd main classes (2010-03-14)
107
- 93 [ ] (B) tabbedpane: new tabs not really getting focus??? (2010-03-15)
86
+ 93 [ ] (Z) tabbedpane: new tabs not really getting focus??? (2010-03-15)
108
87
  94 [x] (F) MultiContainer: takes n objects, fills, one can cycle, just as in MultiTextView except that any component can be put. (2010-03-15) (x2010-03-15)
109
- 95 [ ] TabbedWindow is totally off - redo ? (2010-03-16)
110
- 96 [ ] (E) table: yank one or more rows into kill ring as comma delim (2010-03-17)
88
+ 95 [ ] (Z) TabbedWindow is totally off - redo ? (2010-03-16)
111
89
  97 [x] (A) Scrollform : dont we need some indicators or bars (2010-03-17) (x2010-03-18)
112
90
  98 [x] (A) SCrollFOrm: cursor not on first field to start with (2010-03-17) (x2010-03-18)
113
- 99 [ ] (A) scrollform demo: add larger objects like textview and test (2010-03-18)
91
+ 99 [ ] scrollform demo: add larger objects like textview and test (2010-03-18)
114
92
  100 [x] (A) sqlm.rb finish this with multicontainer and table (2010-03-19) (x2010-03-19)
115
93
  101 [ ] Menu: simpler rewrite ?? (2010-03-20)
94
+ 102 [ ] TabbedPane: rewrite (2011-09-21)
95
+ 103 [ ] Messagebox: rewrite (2011-09-21)
96
+ 104 [ ] (E) Gen: catching extended keys C-left, S-F10 (2011-09-21)
97
+ 105 [ ] (A) Window: combine array into existing constructor (2011-09-21)
98
+ 106 [ ] gen: check if that buffering nonsense is still being used? (2011-09-21)
99
+ 107 [ ] (F) find_file like microemacs (2011-09-21)
100
+ 108 [ ] (F) color schemes (applying at form or app level) (2011-09-21)
101
+ 109 [ ] (E) App: stack and flow to be objects so RESIZE can happen (2011-09-21)
102
+ 110 [ ] Minor stuff (2011-09-21)
103
+ 110.1 [ ] (O) Make event objects only if some listener exists (2010-03-08)
104
+ 110.2 [ ] (F) how to map : bind w, 12j (to another key binding)  * if recogn as keys, then call handle_key on self with each key in array (2010-03-01)
105
+ 110.3 [ ] (E) Text objects: execute ex commands ???  * printf '%cs/change this/to that/nwq' '%' | ex file.name (2010-03-05)
106
+ 110.4 [ ] (E) TextView etal: store path so save can be done? (2010-03-12)
107
+ 110.5 [ ] (E) table: yank one or more rows into kill ring as comma delim (2010-03-17)
108
+ 110.6 [ ] (B) Table needs multiplier for resizing cols (2010-02-24)
109
+ 110.7 [ ] TabbedPane: move fun stuff to Util class - dont crowd main classes (2010-03-14)
110
+ 110.8 [ ] (O) maybe we should combine set_form_row and col since we call them one after another nowadays (2010-01-16)
111
+ 110.9 [ ] (O) size changes immediately trigger a buffer resize ...instead set a flag so one resize can be done in repaint. otherwise too many resizes (2010-01-16)
112
+ 110.10 [ ] are we destroying these pads ?? I don;t think so. (2010-02-19)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.3.0
@@ -20,6 +20,8 @@ App.new do
20
20
  #lb2= RubyCurses::BasicListbox.new nil, :list => list.shuffle, :justify => :center
21
21
  lb2 = basiclist :list => list.shuffle, :justify => :left, :suppress_borders => false
22
22
  s.add lb2, :SECOND
23
+ label({:text => "checking overwrite from list", :row => 10, :col => 60})
24
+ label({:text => "checking overwrite from list 1", :row => 11, :col => 60})
23
25
  end
24
26
 
25
27
  end # app
data/examples/app.rb CHANGED
@@ -14,7 +14,7 @@ Todo:
14
14
  require 'logger'
15
15
  require 'rbcurse'
16
16
 
17
- include Ncurses
17
+ #include Ncurses
18
18
  include RubyCurses
19
19
  include RubyCurses::Utils
20
20
  module RubyCurses
@@ -105,7 +105,7 @@ module RubyCurses
105
105
  init_ncurses
106
106
  end
107
107
  unless $log
108
- $log = Logger.new((File.join(ENV["LOGDIR"] || "./" ,"view.log")))
108
+ $log = Logger.new((File.join(ENV["LOGDIR"] || "./" ,"rbc13.log")))
109
109
  $log.level = Logger::DEBUG
110
110
  colors = Ncurses.COLORS
111
111
  $log.debug "START #{colors} colors --------- #{$0}"
@@ -0,0 +1,10 @@
1
+ require 'rbcurse/app'
2
+
3
+ App.new do
4
+ header = app_header "rbcurse #{Rbcurse::VERSION}", :text_center => "My Demo", :text_right =>"New Improved!", :color => :black, :bgcolor => :white, :attr => :bold
5
+ message "Press F10 to exit from here, F1 for help, F2 for menu"
6
+
7
+ stack :margin_top => 2, :margin => 5, :width => 30 do
8
+
9
+ end # stack
10
+ end # app