rkumar-rbcurse 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,6 +27,8 @@ module RubyCurses
27
27
  ## a multiline text editing widget
28
28
  # TODO - giving data to user - adding newlines, and withog adding.
29
29
  # - respect newlines for incoming data
30
+ # we need a set_text method, passing nil or blank clears
31
+ # current way is not really good. remove_all sucks.
30
32
  #
31
33
  class TextArea < Widget
32
34
  include ListScrollable
@@ -58,7 +60,7 @@ module RubyCurses
58
60
  # this does result in a blank line if we insert after creating. That's required at
59
61
  # present if we wish to only insert
60
62
  if @list.empty?
61
- @list << "\r"
63
+ # @list << "\r" # removed this on 2009-02-15 17:25 lets see how it goes
62
64
  end
63
65
  # @scrollatrow = @height-2
64
66
  @content_rows = @list.length
@@ -66,6 +68,7 @@ module RubyCurses
66
68
  # init_scrollable
67
69
  print_borders
68
70
  @maxlen ||= @width-2
71
+ install_keys
69
72
  init_vars
70
73
  end
71
74
  def init_vars
@@ -90,6 +93,7 @@ module RubyCurses
90
93
  end
91
94
  def remove_all
92
95
  @list = []
96
+ set_modified # added 2009-02-13 22:28 so repaints
93
97
  end
94
98
  ##
95
99
  # trying to wrap and insert
@@ -259,6 +263,18 @@ module RubyCurses
259
263
  when ?\C-e
260
264
  cursor_eol
261
265
  #set_form_col @buffer.length
266
+ #when @KEY_ASK_FIND_FORWARD
267
+ # ask_search_forward
268
+ #when @KEY_ASK_FIND_BACKWARD
269
+ # ask_search_backward
270
+ when @KEY_ASK_FIND
271
+ ask_search
272
+ when @KEY_FIND_MORE
273
+ find_more
274
+ #when @KEY_FIND_NEXT
275
+ # find_next
276
+ #when @KEY_FIND_PREV
277
+ # find_prev
262
278
  else
263
279
  #$log.debug(" textarea ch #{ch}")
264
280
  ret = putc ch
@@ -622,6 +638,7 @@ module RubyCurses
622
638
  end
623
639
  str
624
640
  end
641
+ alias :get_text :to_s
625
642
  ## ---- for listscrollable ---- ##
626
643
  def scrollatrow
627
644
  @height-2
@@ -644,7 +661,7 @@ module RubyCurses
644
661
  if crow < rc
645
662
  #focussed = @current_index == crow ? true : false
646
663
  #selected = is_row_selected crow
647
- content = tm[crow].chomp
664
+ content = tm[crow].chomp rescue ""
648
665
  content.gsub!(/\t/, ' ') # don't display tab
649
666
  content.gsub!(/[^[:print:]]/, '') # don't display non print characters
650
667
  if !content.nil?
@@ -659,6 +676,11 @@ module RubyCurses
659
676
  #renderer.repaint @form.window, r+hh, c+(colix*11), content, focussed, selected
660
677
  #renderer.repaint @form.window, r+hh, c, content, focussed, selected
661
678
  @form.window.printstring r+hh, c, "%-*s" % [@width-2,content], acolor, @attr
679
+ if @search_found_ix == tr+hh
680
+ if !@find_offset.nil?
681
+ @form.window.mvchgat(y=r+hh, x=c+@find_offset, @find_offset1-@find_offset, Ncurses::A_NORMAL, $reversecolor, nil)
682
+ end
683
+ end
662
684
 
663
685
  else
664
686
  # clear rows
@@ -668,6 +690,16 @@ module RubyCurses
668
690
  @table_changed = false
669
691
  @repaint_required = false
670
692
  end
693
+ def ask_search_forward
694
+ regex = get_string("Enter regex to search", 20, @last_regex||"")
695
+ ix = _find_next regex, @current_index
696
+ if ix.nil?
697
+ alert("No matching data for: #{regex}")
698
+ else
699
+ set_focus_on(ix)
700
+ set_form_col @find_offset
701
+ end
702
+ end
671
703
  end # class textarea
672
704
  ##
673
705
  end # modul
@@ -59,6 +59,7 @@ module RubyCurses
59
59
  #init_scrollable
60
60
  print_borders
61
61
  @maxlen ||= @width-2
62
+ install_keys
62
63
  init_vars
63
64
  end
64
65
  def init_vars
@@ -174,13 +175,13 @@ module RubyCurses
174
175
  @buffer = @list[@current_index]
175
176
  end
176
177
  return if @buffer.nil?
177
- $log.debug " before: curpos #{@curpos} blen: #{@buffer.length}"
178
+ #$log.debug " before: curpos #{@curpos} blen: #{@buffer.length}"
178
179
  if @curpos > @buffer.length
179
180
  addcol((@buffer.length-@curpos)+1)
180
181
  @curpos = @buffer.length
181
182
  set_form_col
182
183
  end
183
- $log.debug "TV after loop : curpos #{@curpos} blen: #{@buffer.length}"
184
+ #$log.debug "TV after loop : curpos #{@curpos} blen: #{@buffer.length}"
184
185
  #pre_key
185
186
  case ch
186
187
  when ?\C-n
@@ -216,6 +217,8 @@ module RubyCurses
216
217
  when ?\C-e
217
218
  # take care of data that exceeds maxlen by scrolling and placing cursor at end
218
219
  blen = @buffer.rstrip.length
220
+ set_form_col blen
221
+ =begin
219
222
  if blen < @maxlen
220
223
  set_form_col blen
221
224
  else
@@ -223,8 +226,14 @@ module RubyCurses
223
226
  #wrong curpos wiill be reported
224
227
  set_form_col @maxlen-1
225
228
  end
229
+ =end
230
+ # search related added on 2009-02-15 21:36
231
+ when @KEY_ASK_FIND
232
+ ask_search
233
+ when @KEY_FIND_MORE
234
+ find_more
226
235
  else
227
- $log.debug("TEXTVIEW XXX ch #{ch}")
236
+ #$log.debug("TEXTVIEW XXX ch #{ch}")
228
237
  return :UNHANDLED
229
238
  end
230
239
  #post_key
@@ -253,7 +262,13 @@ module RubyCurses
253
262
  # set cursor on correct column tview
254
263
  def set_form_col col=@curpos
255
264
  @curpos = col
256
- @curpos = @maxlen if @curpos > @maxlen
265
+ #@curpos = @maxlen if @curpos > @maxlen
266
+ if @curpos > @maxlen
267
+ @pcol = @curpos - @maxlen
268
+ @curpos = @maxlen - 1
269
+ else
270
+ @pcol = 0
271
+ end
257
272
  @form.col = @orig_col + @col_offset + @curpos
258
273
  @repaint_required = true
259
274
  end
@@ -322,6 +337,14 @@ module RubyCurses
322
337
  #renderer.repaint @form.window, r+hh, c+(colix*11), content, focussed, selected
323
338
  #renderer.repaint @form.window, r+hh, c, content, focussed, selected
324
339
  @form.window.printstring r+hh, c, "%-*s" % [@width-2,content], acolor, @attr
340
+ if @search_found_ix == tr+hh
341
+ if !@find_offset.nil?
342
+ # handle exceed bounds, and if scrolling
343
+ if @find_offset1 < maxlen+@pcol and @find_offset > @pcol
344
+ @form.window.mvchgat(y=r+hh, x=c+@find_offset-@pcol, @find_offset1-@find_offset, Ncurses::A_NORMAL, $reversecolor, nil)
345
+ end
346
+ end
347
+ end
325
348
 
326
349
  else
327
350
  # clear rows
@@ -143,9 +143,11 @@ module RubyCurses
143
143
  return "btab"
144
144
  when 481
145
145
  return "M-S-tab"
146
+ when 393..402
147
+ return "M-F"+ (keycode-392).to_s
146
148
  else
147
- others=[?\M--,?\M-+,?\M-=,?\M-',?\M-",?\M-;,?\M-:,?\M-\,, ?\M-.,?\M-<,?\M->]
148
- s_others=%w[M-- M-+ M-= M-' M-" M-; M-: M-\, M-. M-<]
149
+ others=[?\M--,?\M-+,?\M-=,?\M-',?\M-",?\M-;,?\M-:,?\M-\,, ?\M-.,?\M-<,?\M->,?\M-?,?\M-/]
150
+ s_others=%w[M-- M-+ M-= M-' M-" M-; M-: M-, M-. M-< M-> M-? M-/ ]
149
151
  if others.include? keycode
150
152
  index = others.index keycode
151
153
  return s_others[index]
@@ -882,7 +884,7 @@ module RubyCurses
882
884
  attr_reader :form
883
885
  attr_reader :handler # event handler
884
886
  attr_reader :type # datatype of field, currently only sets chars_allowed
885
- attr_reader :curpos # cursor position in buffer current
887
+ #attr_reader :curpos # cursor position in buffer current, in WIDGET
886
888
  attr_accessor :datatype # crrently set during set_buffer
887
889
  attr_reader :original_value # value on entering field
888
890
 
@@ -997,6 +999,9 @@ module RubyCurses
997
999
  end
998
1000
  def repaint
999
1001
  # $log.debug("FIELD: #{id}, #{zorder}, #{focusable}")
1002
+ #return if display_length <= 0 # added 2009-02-17 00:17 sometimes editor comp has 0 and that
1003
+ # becomes negative below, no because editing still happens
1004
+ @display_length = 1 if display_length == 0
1000
1005
  printval = getvalue_for_paint().to_s # added 2009-01-06 23:27
1001
1006
  printval = show()*printval.length unless @show.nil?
1002
1007
  if !printval.nil?
@@ -1472,6 +1477,7 @@ module RubyCurses
1472
1477
  @text_variable.nil? ? @text : @text_variable.get_value(@name)
1473
1478
  end
1474
1479
 
1480
+ # ensure text has been passed or action
1475
1481
  def getvalue_for_paint
1476
1482
  ret = getvalue
1477
1483
  @text_offset = @surround_chars[0].length
@@ -51,6 +51,7 @@ module RubyCurses
51
51
  lablist << value
52
52
  end
53
53
  len = @display_length || value.length
54
+ $log.debug "less ZERO #{@display_length} || #{value.length}, ri: #{row_index}" if len < 0
54
55
  acolor = get_color $datacolor
55
56
  #acolor =get_color $datacolor, @color || @parent.color, @bgcolor || @parent.bgcolor #unless @parent.nil?
56
57
  _attr = Ncurses::A_NORMAL
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rkumar-rbcurse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rahul Kumar
@@ -14,6 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hoe
17
+ type: :development
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
@@ -86,6 +87,8 @@ files:
86
87
  - examples/testtabp.rb
87
88
  - examples/testtodo.rb
88
89
  - examples/viewtodo.rb
90
+ - examples/todocsv.csv
91
+ - examples/sqlc.rb
89
92
  has_rdoc: false
90
93
  homepage: http://rbcurse.rubyforge.org/
91
94
  post_install_message: