lib/rbcurse/vieditable.rb in rbcurse-1.1.5 vs lib/rbcurse/vieditable.rb in rbcurse-1.2.0.pre
- old
+ new
@@ -4,12 +4,12 @@
# Provides the caller ability to do some edit operations
# on list widgets using either keys (vim largely)
# or a menu. made originally for textview and multitextview
#
#**************************************************************
- #hscrollcols = $multiplier > 0 ? $multiplier : @width/2
- #def previous_row num=(($multiplier.nil? or $multiplier == 0) ? 1 : $multiplier)
+
+
require 'rbcurse/listeditable'
module ViEditable
include ListEditable
def vieditable_init
@@ -36,10 +36,11 @@
bind_key( ?P ) { yank(@current_index - 1) } # should be before this line
bind_key(?\w, :forward_word)
bind_key(?f, :forward_char)
bind_key(?\M-y, :yank_pop)
bind_key(?\M-w, :kill_ring_save)
+ @_events.push :CHANGE # thru vieditable
end
##
# Separate mappings for listboxes.
# Some methods don;'t make sense for listboxes and are crashing
@@ -49,45 +50,45 @@
$log.debug " inside vieditable_init_listbox "
@editable = true
bind_key( ?C, :edit_line)
bind_key( ?o) { insert_line(@current_index+1) }
bind_key( ?O) { insert_line(@current_index) }
- #bind_key( ?D, :delete_eol)
- #bind_key( [?d, ?$], :delete_eol)
bind_key( [?d, ?d] , :delete_line )
- #bind_key( [?d, ?w], :delete_word )
- #bind_key( [?d, ?t], :delete_till )
- #bind_key( [?d, ?f], :delete_forward )
bind_key( ?\C-_ ) { @undo_handler.undo if @undo_handler }
bind_key( ?u ) { @undo_handler.undo if @undo_handler }
bind_key( ?\C-r ) { @undo_handler.redo if @undo_handler }
- #bind_key( ?x, :delete_curr_char )
- #bind_key( ?X, :delete_prev_char )
bind_key( [?y, ?y] , :kill_ring_save )
bind_key( ?p, :yank ) # paste after this line
bind_key( ?P ) { yank(@current_index - 1) } # should be before this line
bind_key(?\w, :forward_word)
- #bind_key(?f, :forward_char)
bind_key(?\M-y, :yank_pop)
bind_key(?\C-y, :yank)
bind_key(?\M-w, :kill_ring_save)
+ @_events.push :CHANGE # thru vieditable
+ #bind_key( ?D, :delete_eol)
+ #bind_key( [?d, ?$], :delete_eol)
+ #bind_key(?f, :forward_char)
+ #bind_key( ?x, :delete_curr_char )
+ #bind_key( ?X, :delete_prev_char )
+ #bind_key( [?d, ?w], :delete_word )
+ #bind_key( [?d, ?t], :delete_till )
+ #bind_key( [?d, ?f], :delete_forward )
end
##
# edit current or given line
- # FIXME needs to fire handler 2010-05-23 11:40
def edit_line lineno=@current_index
- line = @list[lineno]
+ line = self[lineno]
prompt = "Edit: "
maxlen = 80
config={};
oldline = line.dup
config[:default] = line
ret, str = rbgetstr(@form.window, $error_message_row, $error_message_col, prompt, maxlen, config)
$log.debug " rbgetstr returned #{ret} , #{str} "
return if ret != 0
- @list[lineno].replace(str)
+ self[lineno].replace(str)
fire_handler :CHANGE, InputDataEvent.new(0,oldline.length, self, :DELETE_LINE, lineno, oldline) # 2008-12-24 18:34
fire_handler :CHANGE, InputDataEvent.new(0,str.length, self, :INSERT_LINE, lineno, str)
@repaint_required = true
end
##