rbcurse 1.5.0 → 1.5.2
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.
- data/Makefile +21 -0
- data/Manifest.txt +6 -0
- data/README.markdown +6 -4
- data/TODO +372 -0
- data/TODO2.txt +121 -0
- data/VERSION +1 -1
- data/examples/README.txt +67 -0
- data/examples/abasiclist.rb +33 -0
- data/examples/alpmenu.rb +42 -0
- data/examples/app.rb +859 -0
- data/examples/app.sample +17 -0
- data/examples/appdirtree.rb +74 -0
- data/examples/appemail.rb +191 -0
- data/examples/appemaillb.rb +308 -0
- data/examples/appgcompose.rb +315 -0
- data/examples/atree.rb +64 -0
- data/examples/common/file.rb +40 -0
- data/examples/common/rmail.rb +257 -0
- data/examples/data.txt +683 -0
- data/examples/data/README.markdown +9 -0
- data/examples/data/brew.txt +38 -0
- data/examples/data/color.2 +37 -0
- data/examples/data/gemlist.txt +60 -0
- data/examples/data/lotr.txt +12 -0
- data/examples/data/ports.txt +136 -0
- data/examples/data/tasks.txt +27 -0
- data/examples/data/todocsv.csv +28 -0
- data/examples/data/unix1.txt +21 -0
- data/examples/data/unix2.txt +11 -0
- data/examples/dbdemo.rb +495 -0
- data/examples/deprecated/appgmail.rb +952 -0
- data/examples/deprecated/splitp.rb +56 -0
- data/examples/deprecated/testscrolllb.rb +86 -0
- data/examples/deprecated/testscrollp.rb +88 -0
- data/examples/deprecated/testscrollta.rb +80 -0
- data/examples/deprecated/testscrolltable.rb +165 -0
- data/examples/deprecated/testsplit.rb +87 -0
- data/examples/deprecated/testsplit2.rb +123 -0
- data/examples/deprecated/testsplit3.rb +215 -0
- data/examples/deprecated/testsplit3_1.rb +244 -0
- data/examples/deprecated/testsplit3a.rb +215 -0
- data/examples/deprecated/testsplit3b.rb +237 -0
- data/examples/deprecated/testsplitta.rb +148 -0
- data/examples/deprecated/testsplittv.rb +142 -0
- data/examples/deprecated/testsplittvv.rb +144 -0
- data/examples/deprecated/testtpane.rb +215 -0
- data/examples/deprecated/testtpane2.rb +145 -0
- data/examples/deprecated/testtpanetable.rb +203 -0
- data/examples/dirtree.rb +88 -0
- data/examples/experimental/resultsetdemo.rb +280 -0
- data/examples/experimental/testmform.rb +35 -0
- data/examples/experimental/testscroller.rb +117 -0
- data/examples/experimental/teststackflow.rb +111 -0
- data/examples/menu1.rb +112 -0
- data/examples/multispl.rb +86 -0
- data/examples/newmessagebox.rb +131 -0
- data/examples/newtabbedwindow.rb +100 -0
- data/examples/newtesttabp.rb +121 -0
- data/examples/qdfilechooser.rb +68 -0
- data/examples/rfe.rb +1239 -0
- data/examples/rfe_renderer.rb +121 -0
- data/examples/sqlc.rb +454 -0
- data/examples/sqlm.rb +437 -0
- data/examples/sqlt.rb +408 -0
- data/examples/status.txt +68 -0
- data/examples/table1.rb +24 -0
- data/examples/term2.rb +84 -0
- data/examples/test1.rb +239 -0
- data/examples/test2.rb +674 -0
- data/examples/testapp.rb +44 -0
- data/examples/testapp2.rb +58 -0
- data/examples/testchars.rb +137 -0
- data/examples/testcombo.rb +91 -0
- data/examples/testkeypress.rb +66 -0
- data/examples/testlistbox.rb +113 -0
- data/examples/testmenu.rb +101 -0
- data/examples/testmulticomp.rb +70 -0
- data/examples/testmulticontainer.rb +94 -0
- data/examples/testmultispl.rb +199 -0
- data/examples/testree.rb +106 -0
- data/examples/testtable.rb +264 -0
- data/examples/testtabp.rb +107 -0
- data/examples/testtodo.rb +584 -0
- data/examples/testvimsplit.rb +112 -0
- data/examples/testwsshortcuts.rb +64 -0
- data/examples/testwsshortcuts2.rb +126 -0
- data/examples/todo.db +0 -0
- data/examples/todo.yml +191 -0
- data/examples/viewtodo.rb +574 -0
- data/lib/rbcurse/deprecated/README.markdown +12 -0
- data/lib/rbcurse/deprecated/rpad.rb +375 -0
- data/lib/rbcurse/deprecated/rscrollpane.rb +512 -0
- data/lib/rbcurse/deprecated/rsplitpane.rb +894 -0
- data/lib/rbcurse/deprecated/rsplitpane2.rb +1009 -0
- data/lib/rbcurse/deprecated/rviewport.rb +204 -0
- data/lib/rbcurse/deprecated/widgets/mapper.rb +130 -0
- data/lib/rbcurse/deprecated/widgets/rmessagebox.rb +348 -0
- data/lib/rbcurse/deprecated/widgets/rtabbedpane.rb +1158 -0
- data/lib/rbcurse/deprecated/widgets/rtabbedwindow.rb +167 -0
- data/lib/rbcurse/deprecated/widgets/scrollable.rb +301 -0
- data/lib/rbcurse/deprecated/widgets/stdscrwindow.rb +309 -0
- data/lib/ver/keyboard2.rb +170 -0
- data/test/test_rbcurse.rb +0 -0
- metadata +131 -9
@@ -0,0 +1,112 @@
|
|
1
|
+
# This is a new kind of splitpane, inspired by the vim editor.
|
2
|
+
# I was deeply frustrated with the Java kind of splitpane,
|
3
|
+
# which requires splitpanes within splitpanes to get several split.
|
4
|
+
# This is an attempt at getting many splits, keeping them at one level
|
5
|
+
# and keeping the interface as simple as possible, with minimal input
|
6
|
+
# from user.
|
7
|
+
# It usually takes a listbox or textview or textarea.
|
8
|
+
# It can also take an array, or string or hash.
|
9
|
+
# It supports moving the split, and increasing or decreasing the current box to some extent.
|
10
|
+
# Typically if the split is vertical, add stacks the components, one below the other.
|
11
|
+
# If horizontal, if will flow the components, to the right of previous. This can be overriden by passing
|
12
|
+
# type as :STACK or :FLOW.
|
13
|
+
#
|
14
|
+
# This does not support changing the orientation at run time, that's nice for demos, but a pain
|
15
|
+
# to get right, and results in a lot of extra code, meaning more bugs.
|
16
|
+
# TODO: create a class that contains component array and a pointer so it can give next/prev
|
17
|
+
# i am tired of maintaining this everywhere.
|
18
|
+
require 'rbcurse'
|
19
|
+
require 'rbcurse/extras/widgets/rlistbox'
|
20
|
+
require 'rbcurse/core/widgets/rtextview'
|
21
|
+
require 'rbcurse/extras/widgets/rvimsplit'
|
22
|
+
|
23
|
+
if $0 == __FILE__
|
24
|
+
class Tester
|
25
|
+
def initialize
|
26
|
+
acolor = $reversecolor
|
27
|
+
end
|
28
|
+
def run
|
29
|
+
@window = VER::Window.root_window
|
30
|
+
@form = Form.new @window
|
31
|
+
|
32
|
+
h = 20; w = 75; t = 3; l = 4
|
33
|
+
|
34
|
+
vf = :H
|
35
|
+
@vim = VimSplit.new @form, {:row => 2, :col => 5, :width => :EXPAND, :height => 25, :orientation => vf, :weight => 0.6}
|
36
|
+
lb = Listbox.new nil, :list => ["ruby","perl","lisp","java", "scala"] , :name => "mylist"
|
37
|
+
lb1 = Listbox.new nil, :list => ["roger","borg","laver","edberg", "sampras","ashe"] , :name => "mylist1"
|
38
|
+
|
39
|
+
lb2 = Listbox.new nil, :list => `gem list --local`.split("\n") , :name => "mylist2"
|
40
|
+
|
41
|
+
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra gawk zsh bash groovy]
|
42
|
+
str = "Hello people of this world.\nThis is a textbox.\nUse arrow keys, j/k/h/l/gg/G/C-a/C-e/C-d/C-b\n"
|
43
|
+
str << alist.join("\n")
|
44
|
+
stfl = vf == :V ? :FLOW : :STACK
|
45
|
+
@vim.add lb, :FIRST, :AUTO
|
46
|
+
@vim.add lb1, :FIRST, :AUTO #nil #0.7:AUTO
|
47
|
+
@vim.add ["mercury","venus","earth","mars","jupiter", "saturn"], :FIRST, :AUTO
|
48
|
+
@vim.add alist, :FIRST, 0.4, stfl
|
49
|
+
#@vim.add alist, :FIRST, nil, stfl
|
50
|
+
@vim.add alist.shuffle, :FIRST, 0.6, stfl
|
51
|
+
@vim.add lb2, :SECOND, :AUTO
|
52
|
+
@vim.add str, :SECOND, :AUTO
|
53
|
+
ok_button = Button.new @form do
|
54
|
+
text "+"
|
55
|
+
name "+"
|
56
|
+
row 27
|
57
|
+
col 10
|
58
|
+
end
|
59
|
+
#ok_button.command { |form| @vim.weight(@vim.weight + 0.1) }
|
60
|
+
ok_button.command { @vim.increase_weight }
|
61
|
+
|
62
|
+
|
63
|
+
k_button = Button.new @form do
|
64
|
+
text "-"
|
65
|
+
name "-"
|
66
|
+
row 27
|
67
|
+
col 17
|
68
|
+
end
|
69
|
+
#k_button.command { |form| @vim.weight( @vim.weight - 0.1) }
|
70
|
+
k_button.command { |form| @vim.decrease_weight }
|
71
|
+
|
72
|
+
#
|
73
|
+
@help = "F10 to quit. "
|
74
|
+
RubyCurses::Label.new @form, {'text' => @help, "row" => 1, "col" => 2, "color" => "yellow"}
|
75
|
+
@form.repaint
|
76
|
+
@window.wrefresh
|
77
|
+
Ncurses::Panel.update_panels
|
78
|
+
ctr = 0
|
79
|
+
row = 2
|
80
|
+
while((ch = @window.getchar()) != Ncurses::KEY_F10 )
|
81
|
+
ret = @form.handle_key(ch)
|
82
|
+
@window.wrefresh
|
83
|
+
#ret = @vim.handle_key ch
|
84
|
+
if ret == :UNHANDLED
|
85
|
+
str = keycode_tos ch
|
86
|
+
$log.debug " UNHANDLED #{str} by Vim #{ret} "
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
@window.destroy
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
94
|
+
include RubyCurses
|
95
|
+
include RubyCurses::Utils
|
96
|
+
# Initialize curses
|
97
|
+
begin
|
98
|
+
# XXX update with new color and kb
|
99
|
+
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
100
|
+
$log = Logger.new("rbc13.log")
|
101
|
+
$log.level = Logger::DEBUG
|
102
|
+
n = Tester.new
|
103
|
+
n.run
|
104
|
+
rescue => ex
|
105
|
+
ensure
|
106
|
+
VER::stop_ncurses
|
107
|
+
p ex if ex
|
108
|
+
puts(ex.backtrace.join("\n")) if ex
|
109
|
+
$log.debug( ex) if ex
|
110
|
+
$log.debug(ex.backtrace.join("\n")) if ex
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# this is a test program, tests out tabbed panes. type F1 to exit
|
2
|
+
#
|
3
|
+
require 'rbcurse'
|
4
|
+
require 'rbcurse/core/util/widgetshortcuts'
|
5
|
+
|
6
|
+
include RubyCurses
|
7
|
+
|
8
|
+
class SetupMessagebox
|
9
|
+
include RubyCurses::WidgetShortcuts
|
10
|
+
def initialize config={}, &block
|
11
|
+
@window = VER::Window.root_window
|
12
|
+
@form = Form.new @window
|
13
|
+
end
|
14
|
+
def run
|
15
|
+
_create_form
|
16
|
+
@form.repaint
|
17
|
+
@window.wrefresh
|
18
|
+
while ((ch = @window.getchar()) != 999)
|
19
|
+
break if ch == ?\C-q.getbyte(0)
|
20
|
+
@form.handle_key ch
|
21
|
+
@window.wrefresh
|
22
|
+
end
|
23
|
+
end
|
24
|
+
def _create_form
|
25
|
+
widget_shortcuts_init
|
26
|
+
stack :margin_top => 2, :margin_left => 3, :width => 50 , :color => :cyan, :bgcolor => :black do
|
27
|
+
label :text => " Details ", :color => :blue, :attr => :reverse, :width => :expand, :justify => :center
|
28
|
+
blank
|
29
|
+
field :text => "john", :attr => :reverse, :label => "%15s" % ["Name: "]
|
30
|
+
field :label => "%15s" % ["Address: "], :width => 15, :attr => :reverse
|
31
|
+
check :text => "Using version control", :value => true, :onvalue => "yes", :offvalue => "no"
|
32
|
+
check :text => "Upgraded to Lion", :value => false, :onvalue => "yes", :offvalue => "no"
|
33
|
+
blank
|
34
|
+
radio :text => "Linux", :value => "LIN", :group => :os
|
35
|
+
radio :text => "OSX", :value => "OSX", :group => :os
|
36
|
+
radio :text => "Window", :value => "Win", :group => :os
|
37
|
+
flow :margin_top => 2, :margin_left => 4, :item_width => 15 do
|
38
|
+
button :text => "Ok"
|
39
|
+
button :text => "Cancel"
|
40
|
+
button :text => "Apply"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
if $0 == __FILE__
|
47
|
+
# Initialize curses
|
48
|
+
begin
|
49
|
+
# XXX update with new color and kb
|
50
|
+
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
51
|
+
$log = Logger.new((File.join(ENV["LOGDIR"] || "./" ,"rbc13.log")))
|
52
|
+
$log.level = Logger::DEBUG
|
53
|
+
tp = SetupMessagebox.new()
|
54
|
+
buttonindex = tp.run
|
55
|
+
$log.debug "XXX: MESSAGEBOX retirned #{buttonindex} "
|
56
|
+
rescue => ex
|
57
|
+
ensure
|
58
|
+
VER::stop_ncurses
|
59
|
+
p ex if ex
|
60
|
+
p(ex.backtrace.join("\n")) if ex
|
61
|
+
$log.debug( ex) if ex
|
62
|
+
$log.debug(ex.backtrace.join("\n")) if ex
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# this is a test program, tests out widget shortcuts. type C-q to exit
|
2
|
+
#
|
3
|
+
require 'rbcurse'
|
4
|
+
require 'rbcurse/core/util/widgetshortcuts'
|
5
|
+
|
6
|
+
include RubyCurses
|
7
|
+
include RubyCurses::Utils
|
8
|
+
|
9
|
+
class SetupMessagebox
|
10
|
+
include RubyCurses::WidgetShortcuts
|
11
|
+
def initialize config={}, &block
|
12
|
+
@window = VER::Window.root_window
|
13
|
+
@form = Form.new @window
|
14
|
+
end
|
15
|
+
def run
|
16
|
+
_create_form
|
17
|
+
@form.repaint
|
18
|
+
@window.wrefresh
|
19
|
+
catch(:close) do
|
20
|
+
while ((ch = @window.getchar()) != 999)
|
21
|
+
break if ch == ?\C-q.getbyte(0)
|
22
|
+
@form.handle_key ch
|
23
|
+
@window.wrefresh
|
24
|
+
end
|
25
|
+
end # catch
|
26
|
+
end
|
27
|
+
def _create_form
|
28
|
+
widget_shortcuts_init
|
29
|
+
stack :margin_top => 1, :width => :expand do
|
30
|
+
label :text => " Details ", :color => :cyan, :attr => :reverse, :width => :expand, :justify => :center
|
31
|
+
flow :margin_top => 1, :margin_left => 4, :item_width => 50 do
|
32
|
+
stack :margin_top => 0, :margin_left => 3, :width => 50 , :color => :cyan, :bgcolor => :black do
|
33
|
+
box do
|
34
|
+
field :text => "steve", :attr => :reverse, :label => "%15s" % ["Name: "]
|
35
|
+
field :label => "%15s" % ["Address: "], :width => 15, :attr => :reverse
|
36
|
+
blank
|
37
|
+
check :text => "Using version control", :value => true, :onvalue => "yes", :offvalue => "no" do |eve|
|
38
|
+
unless eve.item.value
|
39
|
+
alert "NO VC! We need to talk"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
check :text => "Upgraded to Lion", :value => false, :onvalue => "yes", :offvalue => "no" do |eve|
|
43
|
+
unless eve.item.value
|
44
|
+
alert "You goin back to Snow Leopard?"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end # box
|
48
|
+
end
|
49
|
+
stack :margin_top => 0, :margin_left => 3, :width => 50 , :color => :cyan, :bgcolor => :black do
|
50
|
+
box :title => "OS Maintenance", :margin_left => 2 do
|
51
|
+
radio :text => "Linux", :value => "LIN", :group => :os
|
52
|
+
radio :text => "OSX", :value => "OSX", :group => :os
|
53
|
+
radio :text => "Window", :value => "Win", :group => :os
|
54
|
+
blank
|
55
|
+
flow :item_width => 15 do
|
56
|
+
button :text => "Install" do
|
57
|
+
# you can avoid this by giving the radio buttons your own Variable (see test2.rb)
|
58
|
+
choice = @variables[:os].value
|
59
|
+
case choice
|
60
|
+
when ""
|
61
|
+
alert "Select an OS"
|
62
|
+
when "OSX", "LIN"
|
63
|
+
alert "Good choice"
|
64
|
+
else
|
65
|
+
alert "Pfft !"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
button :text => "Uninstall"
|
69
|
+
button :text => "Delete"
|
70
|
+
end
|
71
|
+
end # box
|
72
|
+
end
|
73
|
+
end # flow
|
74
|
+
#button :text => "Execute"
|
75
|
+
text = [" #[reverse]Unix Philosophy #[end] ",
|
76
|
+
"#[fg=green, underline]Eric Raymond#[end] in his book, #[fg=green, underline]The Art of Unix Programming#[end] summarized the Unix philosophy.",
|
77
|
+
" ",
|
78
|
+
"Rule of #[fg=yellow]Modularity#[end]: Write simple parts connected by clean interfaces.",
|
79
|
+
"Rule of #[fg=blue]Clarity#[end]: #[bold]Clarity#[end] is better than cleverness.",
|
80
|
+
"Rule of #[fg=red]Separation#[end]: Separate #[bold]policy#[end] from mechanism; separate interfaces from engines.",
|
81
|
+
"Rule of #[fg=green]Simplicity#[end]: Design for #[bold]simplicity;#[end] add complexity only where you must.",
|
82
|
+
"Rule of #[fg=magenta]Parsimony#[end]: Write a big program only when it is clear by demonstration that nothing else will do.",
|
83
|
+
"Rule of #[fg=cyan]Representation#[end]: Fold knowledge into #[bold]data#[end] so program logic can be stupid and robust"]
|
84
|
+
text << "For more check: #[underline]http://en.wikipedia.org/wiki/Unix_philosophy#Eric_Raymond#[end]"
|
85
|
+
formatted = []
|
86
|
+
#text.each { |line| formatted << @window.convert_to_chunk(line) }
|
87
|
+
|
88
|
+
#textview :text => formatted
|
89
|
+
#textview do |t| t.formatted_text(text, :tmux) end
|
90
|
+
t = textview :title => 'tmux format'
|
91
|
+
t.formatted_text(text, :tmux)
|
92
|
+
t1 = textview :title => 'ansi formatted document'
|
93
|
+
text = File.open("data/color.2","r").readlines
|
94
|
+
t1.formatted_text(text, :ansi)
|
95
|
+
|
96
|
+
flow do
|
97
|
+
#box do
|
98
|
+
button :text => " Ok " do alert "Pressed okay" end
|
99
|
+
button :text => "Cancel" do confirm "Do you wish to Quit?" ; throw :close; end
|
100
|
+
button :text => "Apply "
|
101
|
+
#end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
end
|
108
|
+
if $0 == __FILE__
|
109
|
+
# Initialize curses
|
110
|
+
begin
|
111
|
+
# XXX update with new color and kb
|
112
|
+
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
113
|
+
$log = Logger.new((File.join(ENV["LOGDIR"] || "./" ,"rbc13.log")))
|
114
|
+
$log.level = Logger::DEBUG
|
115
|
+
tp = SetupMessagebox.new()
|
116
|
+
buttonindex = tp.run
|
117
|
+
$log.debug "XXX: MESSAGEBOX retirned #{buttonindex} "
|
118
|
+
rescue => ex
|
119
|
+
ensure
|
120
|
+
VER::stop_ncurses
|
121
|
+
p ex if ex
|
122
|
+
p(ex.backtrace.join("\n")) if ex
|
123
|
+
$log.debug( ex) if ex
|
124
|
+
$log.debug(ex.backtrace.join("\n")) if ex
|
125
|
+
end
|
126
|
+
end
|
data/examples/todo.db
ADDED
Binary file
|
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
|