rbcurse-core 0.0.0 → 0.0.1
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/CHANGELOG +1945 -0
- data/README.md +6 -2
- data/VERSION +1 -1
- data/examples/abasiclist.rb +1 -1
- data/examples/bline.rb +135 -0
- data/examples/dbdemo.rb +26 -20
- data/examples/term2.rb +1 -1
- data/examples/testlistbox.rb +6 -4
- data/lib/rbcurse/core/include/appmethods.rb +5 -3
- data/lib/rbcurse/core/include/io.rb +176 -598
- data/lib/rbcurse/core/include/rhistory.rb +22 -5
- data/lib/rbcurse/core/system/ncurses.rb +3 -4
- data/lib/rbcurse/core/system/window.rb +0 -46
- data/lib/rbcurse/core/util/app.rb +35 -48
- data/lib/rbcurse/core/util/bottomline.rb +18 -11
- data/lib/rbcurse/core/util/padreader.rb +2 -1
- data/lib/rbcurse/core/util/rcommandwindow.rb +1 -0
- data/lib/rbcurse/core/util/rdialogs.rb +74 -164
- data/lib/rbcurse/core/util/viewer.rb +1 -1
- data/lib/rbcurse/core/widgets/rmessagebox.rb +14 -4
- data/lib/rbcurse/core/widgets/rtabbedwindow.rb +1 -1
- data/lib/rbcurse/core/widgets/rtextarea.rb +59 -9
- data/lib/rbcurse/core/widgets/rtextview.rb +48 -10
- data/lib/rbcurse/core/widgets/rwidget.rb +38 -6
- data/lib/rbcurse/core/widgets/tabular.rb +4 -4
- data/lib/rbcurse/core/widgets/tabularwidget.rb +1 -1
- data/lib/rbcurse/core/widgets/textpad.rb +2 -2
- data/rbcurse-core.gemspec +134 -0
- metadata +33 -36
@@ -98,7 +98,7 @@ module RubyCurses
|
|
98
98
|
rescue => err
|
99
99
|
$log.error " VIEWER ERROR #{err} "
|
100
100
|
$log.debug(err.backtrace.join("\n"))
|
101
|
-
|
101
|
+
textdialog ["Error in viewer: #{err} ", *err.backtrace], :title => "Exception"
|
102
102
|
ensure
|
103
103
|
v_window.destroy if !v_window.nil?
|
104
104
|
end
|
@@ -168,8 +168,8 @@ module RubyCurses
|
|
168
168
|
# A textview object is created and yielded.
|
169
169
|
#
|
170
170
|
def text message
|
171
|
-
@suggested_w = @width || (FFI::NCurses.COLS * 0.
|
172
|
-
@suggested_h = @height || (FFI::NCurses.LINES * 0.
|
171
|
+
@suggested_w = @width || (FFI::NCurses.COLS * 0.80).floor
|
172
|
+
@suggested_h = @height || (FFI::NCurses.LINES * 0.80).floor
|
173
173
|
|
174
174
|
message_col = 3
|
175
175
|
r = 2
|
@@ -179,11 +179,21 @@ module RubyCurses
|
|
179
179
|
bgclr = @bgcolor || :black
|
180
180
|
|
181
181
|
if message.is_a? Array
|
182
|
+
l = longest_in_list message
|
183
|
+
if l > @suggested_w
|
184
|
+
if l < FFI::NCurses.COLS
|
185
|
+
#@suggested_w = l
|
186
|
+
@suggested_w = FFI::NCurses.COLS-2
|
187
|
+
else
|
188
|
+
@suggested_w = FFI::NCurses.COLS-2
|
189
|
+
end
|
190
|
+
display_length = @suggested_w-6
|
191
|
+
end
|
182
192
|
# reduce width and height if you can based on array contents
|
183
193
|
else
|
184
194
|
message = wrap_text(message, display_length).split("\n")
|
185
195
|
end
|
186
|
-
message_height = message.size
|
196
|
+
message_height = message.size + 8
|
187
197
|
# reduce if possible if its not required.
|
188
198
|
#
|
189
199
|
r1 = (FFI::NCurses.LINES-@suggested_h)/2
|
@@ -217,7 +227,7 @@ module RubyCurses
|
|
217
227
|
rescue => err
|
218
228
|
$log.debug( err) if err
|
219
229
|
$log.debug(err.backtrace.join("\n")) if err
|
220
|
-
|
230
|
+
textdialog ["Error in Messagebox: #{err} ", *err.backtrace], :title => "Exception"
|
221
231
|
@window.refresh # otherwise the window keeps showing (new FFI-ncurses issue)
|
222
232
|
$error_message.value = ""
|
223
233
|
ensure
|
@@ -54,7 +54,7 @@ class TabbedWindow
|
|
54
54
|
rescue => err
|
55
55
|
$log.debug( err) if err
|
56
56
|
$log.debug(err.backtrace.join("\n")) if err
|
57
|
-
|
57
|
+
textdialog ["Error in TabbedWindow: #{err} ", *err.backtrace], :title => "Exception"
|
58
58
|
$error_message.value = ""
|
59
59
|
ensure
|
60
60
|
end
|
@@ -234,7 +234,8 @@ module RubyCurses
|
|
234
234
|
# Added on 2011-10-10
|
235
235
|
# @since 1.4.0
|
236
236
|
# @param [String, Array] String is an existing filename, Array is content to be replaced
|
237
|
-
|
237
|
+
# Added config for compatibility with textview
|
238
|
+
def set_content lines, config={}
|
238
239
|
case lines
|
239
240
|
when String
|
240
241
|
if File.exists? lines
|
@@ -249,7 +250,20 @@ module RubyCurses
|
|
249
250
|
@list.replace lines
|
250
251
|
@repaint_required = true
|
251
252
|
end
|
252
|
-
alias :text :set_content
|
253
|
+
#alias :text :set_content
|
254
|
+
# set text
|
255
|
+
# Added for consistency with other widgets
|
256
|
+
def text(*val)
|
257
|
+
if val.empty?
|
258
|
+
return @list
|
259
|
+
end
|
260
|
+
set_content(*val)
|
261
|
+
self
|
262
|
+
end
|
263
|
+
def text=(val)
|
264
|
+
return unless val # added 2010-11-17 20:11, dup will fail on nil
|
265
|
+
set_content(val)
|
266
|
+
end
|
253
267
|
def get_window
|
254
268
|
@graphic
|
255
269
|
end
|
@@ -271,12 +285,12 @@ module RubyCurses
|
|
271
285
|
# the next was irritating if user wanted to add a row ! 2011-10-10
|
272
286
|
#bind_key(Ncurses::KEY_DOWN){ ret = down ; get_window.ungetch(KEY_TAB) if ret == :NO_NEXT_ROW }
|
273
287
|
bind_key(Ncurses::KEY_DOWN){ ret = down ; }
|
274
|
-
bind_key(?\C-a){ cursor_bol }
|
275
|
-
bind_key(?\C-e){ cursor_eol }
|
276
|
-
bind_key(?\C-
|
277
|
-
bind_key(?\C-
|
278
|
-
bind_key(?\C-[) { goto_start }
|
279
|
-
bind_key(?\C-]) { goto_end }
|
288
|
+
bind_key(?\C-a, 'start of line'){ cursor_bol }
|
289
|
+
bind_key(?\C-e, 'end of line'){ cursor_eol }
|
290
|
+
bind_key(?\C-d, 'scroll forward') { scroll_forward }
|
291
|
+
bind_key(?\C-b, 'scroll backward') { scroll_backward }
|
292
|
+
bind_key(?\C-[, 'goto start') { goto_start }
|
293
|
+
bind_key(?\C-], 'goto end') { goto_end }
|
280
294
|
|
281
295
|
bind_key(KEY_BACKSPACE){ delete_prev_char if @editable }
|
282
296
|
bind_key(KEY_BSPACE){ delete_prev_char if @editable}
|
@@ -284,10 +298,12 @@ module RubyCurses
|
|
284
298
|
bind_key(?\M-f, :forward_word)
|
285
299
|
|
286
300
|
#bind_key(127){ delete_prev_char }
|
287
|
-
bind_key(330){ delete_curr_char if @editable }
|
301
|
+
bind_key(330, 'delete current char'){ delete_curr_char if @editable }
|
288
302
|
#bind_key(?\C-k){ delete_eol }
|
289
303
|
#bind_key(?\C-_){ undo_delete_eol }
|
290
304
|
#bind_key(27){ set_buffer @original_value }
|
305
|
+
bind_key([?\C-x, ?e], :edit_external)
|
306
|
+
bind_key([?\C-x, ?\C-s], :saveas)
|
291
307
|
@keys_mapped = true
|
292
308
|
end
|
293
309
|
|
@@ -915,6 +931,40 @@ module RubyCurses
|
|
915
931
|
return unless @undo_handler
|
916
932
|
@undo_handler.redo
|
917
933
|
end
|
934
|
+
|
935
|
+
def edit_external
|
936
|
+
require 'rbcurse/core/include/appmethods'
|
937
|
+
require 'tempfile'
|
938
|
+
f = Tempfile.new("rbcurse")
|
939
|
+
l = self.text
|
940
|
+
l.each { |line| f.puts line }
|
941
|
+
fp = f.path
|
942
|
+
f.flush
|
943
|
+
|
944
|
+
editor = ENV['EDITOR'] || 'vi'
|
945
|
+
vimp = %x[which #{editor}].chomp
|
946
|
+
ret = shell_out "#{vimp} #{fp}"
|
947
|
+
if ret
|
948
|
+
lines = File.open(f,'r').readlines
|
949
|
+
set_content(lines, :content_type => @old_content_type)
|
950
|
+
end
|
951
|
+
end
|
952
|
+
def saveas name=nil, config={}
|
953
|
+
unless name
|
954
|
+
name = rb_gets "File to save as: "
|
955
|
+
return if name.nil? || name == ""
|
956
|
+
end
|
957
|
+
exists = File.exists? name
|
958
|
+
if exists # need to prompt
|
959
|
+
return unless rb_confirm("Overwrite existing file? ")
|
960
|
+
end
|
961
|
+
l = getvalue
|
962
|
+
File.open(name, "w"){ |f|
|
963
|
+
l.each { |line| f.puts line }
|
964
|
+
#l.each { |line| f.write line.gsub(/\r/,"\n") }
|
965
|
+
}
|
966
|
+
rb_puts "#{name} written."
|
967
|
+
end
|
918
968
|
end # class textarea
|
919
969
|
##
|
920
970
|
end # modul
|
@@ -95,12 +95,13 @@ module RubyCurses
|
|
95
95
|
bind_key(?\M-l, :scroll_right)
|
96
96
|
bind_key(?\M-h, :scroll_left)
|
97
97
|
bind_key([?\C-x, ?\C-s], :saveas)
|
98
|
+
bind_key([?\C-x, ?e], :edit_external)
|
98
99
|
bind_keys([?\C-d, 32], 'scroll forward'){ scroll_forward() }
|
99
100
|
bind_key(?\C-b, 'scroll backward'){ scroll_backward() }
|
100
101
|
# have placedhere so multi-bufer can override BS to prev buffer
|
101
102
|
bind_keys([KEY_BACKSPACE,KEY_BSPACE,KEY_DELETE], :cursor_backward)
|
102
|
-
|
103
|
-
bind_key(?m, :disp_menu)
|
103
|
+
bind_key(?r) { getstr("Enter a word: ") } if $log.debug?
|
104
|
+
bind_key(?m, :disp_menu) if $log.debug?
|
104
105
|
end
|
105
106
|
##
|
106
107
|
# send in a list
|
@@ -117,6 +118,7 @@ module RubyCurses
|
|
117
118
|
formatted_text list, @content_type
|
118
119
|
return
|
119
120
|
end
|
121
|
+
# please note that content type is lost once formatted text does it's work
|
120
122
|
@wrap_policy = config[:wrap]
|
121
123
|
if list.is_a? String
|
122
124
|
if @wrap_policy == :WRAP_WORD
|
@@ -138,7 +140,18 @@ module RubyCurses
|
|
138
140
|
init_vars
|
139
141
|
end
|
140
142
|
# for consistency with other objects that respect text
|
141
|
-
alias :text :set_content
|
143
|
+
#alias :text :set_content
|
144
|
+
def text(*val)
|
145
|
+
if val.empty?
|
146
|
+
return @list
|
147
|
+
end
|
148
|
+
set_content(*val)
|
149
|
+
self
|
150
|
+
end
|
151
|
+
def text=(val)
|
152
|
+
return unless val # added 2010-11-17 20:11, dup will fail on nil
|
153
|
+
set_content(val)
|
154
|
+
end
|
142
155
|
def formatted_text text, fmt
|
143
156
|
require 'rbcurse/core/include/chunk'
|
144
157
|
@formatted_text = text
|
@@ -257,6 +270,8 @@ module RubyCurses
|
|
257
270
|
@repaint_footer_required = true if @oldrow != @current_index # 2011-10-15
|
258
271
|
print_foot if @print_footer && !@suppress_borders && @repaint_footer_required
|
259
272
|
end
|
273
|
+
# this sucks and should not be used but is everywhere, should
|
274
|
+
# use text()
|
260
275
|
def getvalue
|
261
276
|
@list
|
262
277
|
end
|
@@ -369,7 +384,7 @@ module RubyCurses
|
|
369
384
|
rescue => err
|
370
385
|
$log.error " TEXTVIEW ERROR #{err} "
|
371
386
|
$log.debug(err.backtrace.join("\n"))
|
372
|
-
|
387
|
+
textdialog [err.to_s, *err.backtrace], :title => "Exception"
|
373
388
|
end
|
374
389
|
return :UNHANDLED if ret == :UNHANDLED
|
375
390
|
end
|
@@ -510,6 +525,7 @@ module RubyCurses
|
|
510
525
|
#l = []
|
511
526
|
#@formatted_text.each { |e| l << cp.convert_to_chunk(e) }
|
512
527
|
|
528
|
+
@old_content_type = @content_type
|
513
529
|
text(l)
|
514
530
|
@formatted_text = nil
|
515
531
|
|
@@ -635,13 +651,14 @@ module RubyCurses
|
|
635
651
|
end
|
636
652
|
## this is just a test of prompting user for a string
|
637
653
|
#+ as an alternative to the dialog.
|
638
|
-
def getstr prompt, maxlen=
|
654
|
+
def getstr prompt, maxlen=80 #:nodoc:
|
639
655
|
tabc = Proc.new {|str| Dir.glob(str +"*") }
|
640
656
|
config={}; config[:tab_completion] = tabc
|
641
|
-
config[:default] = "
|
657
|
+
config[:default] = "test"
|
658
|
+
config[:display_length] = 11
|
642
659
|
$log.debug " inside getstr before call "
|
643
660
|
ret, str = rbgetstr(@form.window, @row+@height-1, @col+1, prompt, maxlen, config)
|
644
|
-
$log.debug " rbgetstr returned #{ret}
|
661
|
+
$log.debug " rbgetstr returned #{ret} ,#{str}."
|
645
662
|
return "" if ret != 0
|
646
663
|
return str
|
647
664
|
end
|
@@ -759,19 +776,40 @@ module RubyCurses
|
|
759
776
|
end
|
760
777
|
def saveas name=nil, config={}
|
761
778
|
unless name
|
762
|
-
name =
|
779
|
+
name = rb_gets "File to save as: "
|
763
780
|
return if name.nil? || name == ""
|
764
781
|
end
|
765
782
|
exists = File.exists? name
|
766
783
|
if exists # need to prompt
|
767
|
-
return unless
|
784
|
+
return unless rb_confirm("Overwrite existing file? ")
|
768
785
|
end
|
769
786
|
l = getvalue
|
770
787
|
File.open(name, "w"){ |f|
|
771
788
|
l.each { |line| f.puts line }
|
772
789
|
#l.each { |line| f.write line.gsub(/\r/,"\n") }
|
773
790
|
}
|
774
|
-
|
791
|
+
rb_puts "#{name} written."
|
792
|
+
end
|
793
|
+
|
794
|
+
# edit content of textview in EDITOR and bring back
|
795
|
+
# NOTE: does not maintain content_type, so if you edit ansi text,
|
796
|
+
# it will come back in as normal text
|
797
|
+
def edit_external
|
798
|
+
require 'rbcurse/core/include/appmethods'
|
799
|
+
require 'tempfile'
|
800
|
+
f = Tempfile.new("rbcurse")
|
801
|
+
l = self.text
|
802
|
+
l.each { |line| f.puts line }
|
803
|
+
fp = f.path
|
804
|
+
f.flush
|
805
|
+
|
806
|
+
editor = ENV['EDITOR'] || 'vi'
|
807
|
+
vimp = %x[which #{editor}].chomp
|
808
|
+
ret = shell_out "#{vimp} #{fp}"
|
809
|
+
if ret
|
810
|
+
lines = File.open(f,'r').readlines
|
811
|
+
set_content(lines, :content_type => @old_content_type)
|
812
|
+
end
|
775
813
|
end
|
776
814
|
|
777
815
|
|
@@ -439,7 +439,7 @@ module RubyCurses
|
|
439
439
|
$log.debug "KEY: #{name} : #{val} "
|
440
440
|
}
|
441
441
|
}
|
442
|
-
textdialog arr
|
442
|
+
textdialog arr, :title => "Key Bindings"
|
443
443
|
end
|
444
444
|
def bind_keys keycodes, *args, &blk
|
445
445
|
keycodes.each { |k| bind_key k, *args, &blk }
|
@@ -1902,6 +1902,9 @@ module RubyCurses
|
|
1902
1902
|
attr_reader :original_value # value on entering field
|
1903
1903
|
attr_accessor :overwrite_mode # true or false INSERT OVERWRITE MODE
|
1904
1904
|
|
1905
|
+
attr_reader :field_col # column on which field is printed
|
1906
|
+
# required due to labels. Is updated after printing
|
1907
|
+
# # so can be nil if accessed early 2011-12-8
|
1905
1908
|
# For consistency, now width equates to display_length
|
1906
1909
|
alias :width :display_length
|
1907
1910
|
alias :width= :display_length=
|
@@ -1928,6 +1931,8 @@ module RubyCurses
|
|
1928
1931
|
def init_vars
|
1929
1932
|
@pcol = 0 # needed for horiz scrolling
|
1930
1933
|
@curpos = 0 # current cursor position in buffer
|
1934
|
+
# this is the index where characters are put or deleted
|
1935
|
+
# # when user edits
|
1931
1936
|
@modified = false
|
1932
1937
|
@repaint_required = true
|
1933
1938
|
end
|
@@ -2039,6 +2044,8 @@ module RubyCurses
|
|
2039
2044
|
#$log.debug " FIELD DATA #{@datatype}"
|
2040
2045
|
@delete_buffer = @buffer.dup
|
2041
2046
|
@buffer = value.to_s.dup
|
2047
|
+
# don't allow setting of value greater than maxlen
|
2048
|
+
@buffer = @buffer[0,@maxlen] if @maxlen && @buffer.length > @maxlen
|
2042
2049
|
@curpos = 0
|
2043
2050
|
# hope @delete_buffer is not overwritten
|
2044
2051
|
fire_handler :CHANGE, InputDataEvent.new(@curpos,@curpos, self, :DELETE, 0, @delete_buffer) # 2010-09-11 13:01
|
@@ -2111,7 +2118,7 @@ module RubyCurses
|
|
2111
2118
|
end
|
2112
2119
|
@bgcolor ||= $def_bg_color
|
2113
2120
|
@color ||= $def_fg_color
|
2114
|
-
$log.debug("repaint FIELD: #{id}, #{name}, #{row} #{col}, #{focusable} st: #{@state} ")
|
2121
|
+
$log.debug("repaint FIELD: #{id}, #{name}, #{row} #{col},pcol:#{@pcol}, #{focusable} st: #{@state} ")
|
2115
2122
|
#return if display_length <= 0 # added 2009-02-17 00:17 sometimes editor comp has 0 and that
|
2116
2123
|
# becomes negative below, no because editing still happens
|
2117
2124
|
@display_length = 1 if display_length == 0
|
@@ -2143,6 +2150,7 @@ module RubyCurses
|
|
2143
2150
|
@col_offset = c-@col # required so cursor lands in right place
|
2144
2151
|
end
|
2145
2152
|
@graphic.printstring r, c, sprintf("%-*s", display_length, printval), acolor, @attr
|
2153
|
+
@field_col = c
|
2146
2154
|
@repaint_required = false
|
2147
2155
|
end
|
2148
2156
|
def set_focusable(tf)
|
@@ -2191,8 +2199,9 @@ module RubyCurses
|
|
2191
2199
|
##
|
2192
2200
|
# position cursor at start of field
|
2193
2201
|
def cursor_home
|
2194
|
-
|
2202
|
+
@curpos = 0
|
2195
2203
|
@pcol = 0
|
2204
|
+
set_form_col 0
|
2196
2205
|
end
|
2197
2206
|
##
|
2198
2207
|
# goto end of field, "end" is a keyword so could not use it.
|
@@ -2201,13 +2210,29 @@ module RubyCurses
|
|
2201
2210
|
if blen < @display_length
|
2202
2211
|
set_form_col blen
|
2203
2212
|
else
|
2213
|
+
# there is a problem here FIXME.
|
2204
2214
|
@pcol = blen-@display_length
|
2205
|
-
set_form_col @display_length-1
|
2215
|
+
#set_form_col @display_length-1
|
2216
|
+
set_form_col blen
|
2206
2217
|
end
|
2207
|
-
@curpos = blen #
|
2218
|
+
@curpos = blen # this is position in array where editing or motion is to happen regardless of what you see
|
2219
|
+
# regardless of pcol (panning)
|
2208
2220
|
# $log.debug " crusor END cp:#{@curpos} pcol:#{@pcol} b.l:#{@buffer.length} d_l:#{@display_length} fc:#{@form.col}"
|
2209
2221
|
#set_form_col @buffer.length
|
2210
2222
|
end
|
2223
|
+
# sets the visual cursor on the window at correct place
|
2224
|
+
# added here since we need to account for pcol. 2011-12-7
|
2225
|
+
# NOTE be careful of curpos - pcol being less than 0
|
2226
|
+
def set_form_col col1=@curpos
|
2227
|
+
@curpos = col1 || 0 # NOTE we set the index of cursor here
|
2228
|
+
c = @col + @col_offset + @curpos - @pcol
|
2229
|
+
min = @col + @col_offset
|
2230
|
+
max = min + @display_length
|
2231
|
+
c = min if c < min
|
2232
|
+
c = max if c > max
|
2233
|
+
$log.debug " #{@name} FIELD set_form_col #{c}, curpos #{@curpos} , #{@col} + #{@col_offset} pcol:#{@pcol} "
|
2234
|
+
setrowcol nil, c
|
2235
|
+
end
|
2211
2236
|
def delete_eol
|
2212
2237
|
return -1 unless @editable
|
2213
2238
|
pos = @curpos-1
|
@@ -2254,10 +2279,17 @@ module RubyCurses
|
|
2254
2279
|
def delete_prev_char
|
2255
2280
|
return -1 if !@editable
|
2256
2281
|
return if @curpos <= 0
|
2282
|
+
# if we've panned, then unpan, and don't move cursor back
|
2283
|
+
# Otherwise, adjust cursor (move cursor back as we delete)
|
2284
|
+
adjust = true
|
2285
|
+
if @pcol > 0
|
2286
|
+
@pcol -= 1
|
2287
|
+
adjust = false
|
2288
|
+
end
|
2257
2289
|
@curpos -= 1 if @curpos > 0
|
2258
2290
|
delete_at
|
2291
|
+
addcol -1 if adjust # move visual cursor back
|
2259
2292
|
set_modified
|
2260
|
-
addcol -1
|
2261
2293
|
end
|
2262
2294
|
## add a column to cursor position. Field
|
2263
2295
|
def addcol num
|
@@ -60,7 +60,7 @@ module RubyCurses
|
|
60
60
|
@x = '+'
|
61
61
|
self.columns = cols if cols
|
62
62
|
if !args.empty?
|
63
|
-
puts "ARGS after shift #{args} "
|
63
|
+
#puts "ARGS after shift #{args} "
|
64
64
|
if !args.empty?
|
65
65
|
self.data = args
|
66
66
|
end
|
@@ -84,8 +84,8 @@ module RubyCurses
|
|
84
84
|
# set data as an array of arrays
|
85
85
|
# @param [Array<Array>] data as array of arrays
|
86
86
|
def data=(list)
|
87
|
-
puts "got data: #{list.size} " if !$log
|
88
|
-
puts list if !$log
|
87
|
+
#puts "got data: #{list.size} " if !$log
|
88
|
+
#puts list if !$log
|
89
89
|
@list = list
|
90
90
|
end
|
91
91
|
|
@@ -213,7 +213,7 @@ module RubyCurses
|
|
213
213
|
end
|
214
214
|
}
|
215
215
|
@fmstr = fmt.join(@y)
|
216
|
-
puts "format: #{@fmstr} "
|
216
|
+
#puts "format: #{@fmstr} " # 2011-12-09 23:09:57
|
217
217
|
end
|
218
218
|
end
|
219
219
|
end
|
@@ -516,7 +516,7 @@ module RubyCurses
|
|
516
516
|
rescue => err
|
517
517
|
$error_message.value = err.to_s
|
518
518
|
# @form.window.print_error_message # changed 2011 dts
|
519
|
-
|
519
|
+
textdialog ["Error in TabularWidget: #{err} ", *err.backtrace], :title => "Exception"
|
520
520
|
$log.error " Tabularwidget ERROR #{err} "
|
521
521
|
$log.debug(err.backtrace.join("\n"))
|
522
522
|
# XXX caller app has no idea error occurred so can't do anything !
|
@@ -392,7 +392,7 @@ module RubyCurses
|
|
392
392
|
rescue => err
|
393
393
|
$log.error " TEXTPAD ERROR #{err} "
|
394
394
|
$log.debug(err.backtrace.join("\n"))
|
395
|
-
|
395
|
+
textdialog ["Error in TextPad: #{err} ", *err.backtrace], :title => "Exception"
|
396
396
|
# FIXME why does this result in a blank spot on screen till its refreshed again
|
397
397
|
# should not happen if its deleting its panel and doing an update panel
|
398
398
|
end
|
@@ -402,7 +402,7 @@ module RubyCurses
|
|
402
402
|
rescue => err
|
403
403
|
$log.debug( err) if err
|
404
404
|
$log.debug(err.backtrace.join("\n")) if err
|
405
|
-
|
405
|
+
textdialog ["Error in TextPad: #{err} ", *err.backtrace], :title => "Exception"
|
406
406
|
$error_message.value = ""
|
407
407
|
ensure
|
408
408
|
end
|