rbcurse-core 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
@@ -178,7 +178,13 @@ module ListScrollable
178
178
  $log.debug " scroll_right mult:#{$multiplier} , hscrollcols #{hscrollcols}, pcol #{@pcol} w: #{@width} ll:#{@longest_line} "
179
179
  #blen = @buffer.rstrip.length
180
180
  blen = @longest_line
181
- @pcol += hscrollcols if @pcol + @width < blen
181
+ if @pcol + @width < blen
182
+ @pcol += hscrollcols if @pcol + @width < blen
183
+ else
184
+ # due to some change somewhere, sometimes width = longest which is not true
185
+ hscrollcols = $multiplier > 0 ? $multiplier : 1
186
+ @pcol += hscrollcols
187
+ end
182
188
  @repaint_required = true
183
189
  end
184
190
  def scroll_left
@@ -4,7 +4,7 @@
4
4
  # Author: rkumar http://github.com/rkumar/rbcurse/
5
5
  # Date: Around for a long time
6
6
  # License: Same as Ruby's License (http://www.ruby-lang.org/LICENSE.txt)
7
- # Last update: use ,,L
7
+ # Last update: 2013-03-05 20:56
8
8
  #
9
9
  # == CHANGED
10
10
  # removed Pad and Subwin to lib/ver/rpad.rb - hopefully I've seen the last of both
@@ -600,7 +600,7 @@ module VER
600
600
  def destroy
601
601
  # typically the ensure block should have this
602
602
 
603
- $log.debug "win destroy start"
603
+ #$log.debug "win destroy start"
604
604
 
605
605
  Ncurses::Panel.del_panel(@panel.pointer) if @panel
606
606
  delwin() if @window
@@ -611,7 +611,7 @@ module VER
611
611
  FFI::NCurses.delwin(pad) if pad
612
612
  pad = nil
613
613
  } if @pads
614
- $log.debug "win destroy end"
614
+ #$log.debug "win destroy end"
615
615
  end
616
616
 
617
617
  #
@@ -619,10 +619,12 @@ module VER
619
619
  # Widgets can get window to create a pad for them. This way when the window
620
620
  # is destroyed, it will delete all the pads. A widget wold not be able to do this.
621
621
  # The destroy method of the widget will be called.
622
- def get_pad content_row, content_cols
622
+ def get_pad content_rows, content_cols
623
623
  pad = FFI::NCurses.newpad(content_rows, content_cols)
624
624
  @pads ||= []
625
625
  @pads << pad
626
+ ## added 2013-03-05 - 19:21 without next line how was pad being returned
627
+ return pad
626
628
  end
627
629
 
628
630
  #
@@ -790,7 +792,7 @@ module VER
790
792
  raise "width needs to be supplied." if width.nil?
791
793
  att ||= Ncurses::A_NORMAL
792
794
 
793
- $log.debug " inside window print_border r #{row} c #{col} h #{height} w #{width} "
795
+ #$log.debug " inside window print_border r #{row} c #{col} h #{height} w #{width} "
794
796
 
795
797
  # 2009-11-02 00:45 made att nil for blanking out
796
798
  # FIXME - in tabbedpanes this clears one previous line ??? XXX when using a textarea/view
@@ -548,13 +548,17 @@ module RubyCurses
548
548
  return
549
549
  end
550
550
  if !content.nil?
551
- if content.length > maxlen # only show maxlen
552
- @longest_line = content.length if content.length > @longest_line
551
+ cl = content.length
552
+ if cl > maxlen # only show maxlen
553
+ @longest_line = cl if cl > @longest_line
553
554
  #content = content[@pcol..@pcol+maxlen-1]
554
- content.replace content[@pcol..@pcol+maxlen-1]
555
+ ## taking care of when scrolling is needed but longest_line is misreported
556
+ # So we scroll always and need to check 2013-03-06 - 00:09
557
+ content.replace(content[@pcol..@pcol+maxlen-1] || " ")
555
558
  else
556
- # can this be avoided if pcol is 0 XXX
557
- content.replace content[@pcol..-1] if @pcol > 0
559
+ ## taking care of when scrolling is needed but longest_line is misreported
560
+ # So we scroll always and need to check 2013-03-06 - 00:09
561
+ content.replace(content[@pcol..-1]||" ") if @pcol > 0
558
562
  end
559
563
  end
560
564
  content
@@ -862,9 +862,11 @@ module RubyCurses
862
862
  if !content.nil?
863
863
  if content.length > _maxlen # only show _maxlen
864
864
  @longest_line = content.length if content.length > @longest_line
865
- content = content[@pcol..@pcol+_maxlen-1]
865
+ ## added nil check since we are allowing scrolling in listscrollable anyway 2013-03-06 - 00:14
866
+ content = content[@pcol..@pcol+_maxlen-1] || " "
866
867
  else
867
- content = content[@pcol..-1]
868
+ ## added nil check since we are allowing scrolling in listscrollable anyway
869
+ content = content[@pcol..-1] || " "
868
870
  end
869
871
  end
870
872
  #renderer = get_default_cell_renderer_for_class content.class.to_s
@@ -9,7 +9,7 @@
9
9
  * Author: rkumar (arunachalesha)
10
10
  * Date: 2008-11-19 12:49
11
11
  * License: Same as Ruby's License (http://www.ruby-lang.org/LICENSE.txt)
12
- * Last update: 2011-11-08 - 16:55
12
+ * Last update: 2013-03-05 19:50
13
13
 
14
14
  == CHANGES
15
15
  * 2011-10-2 Added PropertyVetoException to rollback changes to property
@@ -566,14 +566,14 @@ module RubyCurses
566
566
  $log.debug " process_key: found block for #{keycode} , #{ch} "
567
567
  blk = blk1
568
568
  end
569
- #$log.debug "called process_key #{object}, kc: #{keycode}, args #{@key_args[keycode]}"
570
569
  if blk.is_a? Symbol
571
- #$log.debug "SYMBOL #{blk.to_s} " if $log.debug?
572
570
  if respond_to? blk
573
- #$log.debug "SYMBOL calling #{blk.to_s} " if $log.debug?
574
571
  return send(blk, *@key_args[keycode])
575
572
  else
573
+ ## 2013-03-05 - 19:50 why the hell is there an alert here, nowhere else
576
574
  alert "This ( #{self.class} ) does not respond to #{blk.to_s} "
575
+ # added 2013-03-05 - 19:50 so called can know
576
+ return :UNHANDLED
577
577
  end
578
578
  else
579
579
  $log.debug "rwidget BLOCK called _process_key " if $log.debug?
@@ -685,13 +685,16 @@ module RubyCurses
685
685
  _maxlen = @width-@internal_width if _maxlen > @width-@internal_width
686
686
  _maxlen -= @left_margin
687
687
  if !content.nil?
688
- if content.length > _maxlen # only show maxlen
689
- @longest_line = content.length if content.length > @longest_line
690
- #content = content[@pcol..@pcol+_maxlen-1]
691
- content.replace content[@pcol..@pcol+_maxlen-1]
688
+ cl = content.length
689
+ if cl > _maxlen # only show maxlen
690
+ @longest_line = cl if cl > @longest_line
691
+ ## taking care of when scrolling is needed but longest_line is misreported
692
+ # So we scroll always and need to check 2013-03-06 - 00:09
693
+ #content.replace content[@pcol..@pcol+_maxlen-1]
694
+ content.replace(content[@pcol..@pcol+maxlen-1] || " ")
692
695
  else
693
- # can this be avoided if pcol is 0 XXX
694
- content.replace content[@pcol..-1] if @pcol > 0
696
+ #content.replace content[@pcol..-1] if @pcol > 0
697
+ content.replace(content[@pcol..-1]||" ") if @pcol > 0
695
698
  end
696
699
  end
697
700
  content
@@ -7,7 +7,7 @@
7
7
  # Author: rkumar http://github.com/rkumar/rbcurse/
8
8
  # Date: 2011-11-09 - 16:59
9
9
  # License: Same as Ruby's License (http://www.ruby-lang.org/LICENSE.txt)
10
- # Last update: 2011-11-10 - 12:39
10
+ # Last update: 2013-03-05 19:55
11
11
  #
12
12
  # == CHANGES
13
13
  # == TODO
@@ -224,9 +224,10 @@ module RubyCurses
224
224
  @formatted_text = nil
225
225
  end
226
226
 
227
+ ## moved this line up or else create_p was crashing
228
+ @window ||= @graphic
227
229
  populate_pad if @_populate_needed
228
230
  #HERE we need to populate once so user can pass a renderer
229
- @window ||= @graphic
230
231
  unless @suppress_border
231
232
  if @repaint_all
232
233
  @window.print_border_only @top, @left, @height-1, @width, $datacolor
@@ -252,7 +253,7 @@ module RubyCurses
252
253
  bind_keys([?j,KEY_DOWN]){ down }
253
254
  bind_key(?\C-e){ scroll_window_down }
254
255
  bind_key(?\C-y){ scroll_window_up }
255
- bind_keys([32,338]){ scroll_forward }
256
+ bind_keys([32,338, ?\C-d]){ scroll_forward }
256
257
  bind_keys([?\C-b,339]){ scroll_backward }
257
258
  bind_key([?',?']){ goto_last_position } # vim , goto last row position (not column)
258
259
  #bind_key(?/, :ask_search)
@@ -363,10 +364,12 @@ module RubyCurses
363
364
  begin
364
365
  case ch
365
366
  when key(?l)
367
+ # TODO take multipler
366
368
  @pcol += 1
367
369
  when key(?$)
368
370
  @pcol = @maxcol - 1
369
371
  when key(?h)
372
+ # TODO take multipler
370
373
  if @pcol > 0
371
374
  @pcol -= 1
372
375
  end
@@ -389,8 +392,11 @@ module RubyCurses
389
392
  # check for bindings, these cannot override above keys since placed at end
390
393
  begin
391
394
  ret = process_key ch, self
395
+ ## If i press C-x > i get an alert from rwidgets which blacks the screen
396
+ # if i put a padrefresh here it becomes okay but only for one pad,
397
+ # i still need to do it for all pads.
392
398
  rescue => err
393
- $log.error " TEXTPAD ERROR #{err} "
399
+ $log.error " TEXTPAD ERROR INS #{err} "
394
400
  $log.debug(err.backtrace.join("\n"))
395
401
  textdialog ["Error in TextPad: #{err} ", *err.backtrace], :title => "Exception"
396
402
  # FIXME why does this result in a blank spot on screen till its refreshed again
@@ -400,6 +406,7 @@ module RubyCurses
400
406
  end
401
407
  bounds_check
402
408
  rescue => err
409
+ $log.error " TEXTPAD ERROR 111 #{err} "
403
410
  $log.debug( err) if err
404
411
  $log.debug(err.backtrace.join("\n")) if err
405
412
  textdialog ["Error in TextPad: #{err} ", *err.backtrace], :title => "Exception"
@@ -505,8 +512,9 @@ if __FILE__ == $PROGRAM_NAME
505
512
  App.new do
506
513
  w = 50
507
514
  w2 = FFI::NCurses.COLS-w-1
515
+ ## create two side by side pads on for ansi and one for ruby
508
516
  p = RubyCurses::TextPad.new @form, :height => FFI::NCurses.LINES, :width => w, :row => 0, :col => 0 , :title => " ansi "
509
- fn = "../../../examples/color.2"
517
+ fn = "../../../../examples/data/color.2"
510
518
  text = File.open(fn,"r").readlines
511
519
  p.formatted_text(text, :ansi)
512
520
  RubyCurses::TextPad.new @form, :filename => "textpad.rb", :height => FFI::NCurses.LINES, :width => w2, :row => 0, :col => w+1 , :title => " ruby "
data/lib/rbcurse.rb CHANGED
@@ -4,5 +4,5 @@ require 'rbcurse/core/system/window'
4
4
  require 'rbcurse/core/widgets/rwidget'
5
5
  require 'rbcurse/core/util/rdialogs'
6
6
  class Rbcurse
7
- VERSION = '0.0.4'
7
+ VERSION = '0.0.5'
8
8
  end
data/rbcurse-core.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "rbcurse-core"
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rahul Kumar"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbcurse-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: