List Info

Thread: Patch for caret.rb




Patch for caret.rb
user name
2006-08-22 05:15:00
I removed all the ()'s and patched things so it won't
crash on bad 
keystrokes.

C:\RubyDev>diff -b -u wxruby2_old/samples/caret/caret.rb
wxruby2/samples/caret/caret.rb  
--- wxruby2_old/samples/caret/caret.rb	2006-08-22
00:44:01.150150400 -0400
+++ wxruby2/samples/caret/caret.rb	2006-08-22
01:05:30.163660800 -0400
 -29,7
+29,7 
     x_margin = y_margin = 5
     text = nil
 
-    create_caret()
+    create_caret
 
     evt_paint 
     evt_size {|event| on_size(event)}
 -45,84
+45,84 
   end
 
   # caret movement
-  def home_pos()
+  def home_pos
     x_caret = 0
   end
 
-  def end_pos()
+  def end_pos
     x_caret = x_chars - 1
   end
 
-  def first_line()
+  def first_line
     y_caret = 0
   end
 
-  def last_line()
+  def last_line
     y_caret = y_chars - 1
   end
 
-  def prev_char()
+  def prev_char
     if x_caret == 0
-      end_pos()
-      prev_line()
+      end_pos
+      prev_line
     else
       x_caret -= 1
     end
   end
 
-  def next_char()
+  def next_char
     x_caret += 1
     if x_caret == x_chars
-      home_pos()
-      next_line()
+      home_pos
+      next_line
     end
   end
 
-  def prev_line()
+  def prev_line
     if y_caret == 0
-      last_line()
+      last_line
     else
       y_caret -= 1
     end
   end
 
-  def next_line()
+  def next_line
     y_caret += 1
     if y_caret == y_chars
-      first_line()
+      first_line
     end
   end
 
-  def create_caret()
+  def create_caret
     dc = ClientDC.new(self)
     dc.set_font(font)
-    height_char = dc.get_char_height()
-    width_char = dc.get_char_width()
+    height_char = dc.get_char_height
+    width_char = dc.get_char_width
 
     caret = Caret.new(self, Size.new(width_char, height_char))
     set_caret(caret)
 
     caret.move(Point.new(x_margin, y_margin))
-    caret.show()
+    caret.show
   end
 
   def move_caret(x,y)
     x_caret = x
     y_caret = y
 
-    do_move_caret()
+    do_move_caret
   end
 
-  def do_move_caret()
+  def do_move_caret
     log_status("Caret is at (%d, %d)", x_caret,
y_caret)
 
-    get_caret().move_xy(x_margin + x_caret *
width_char,
+    get_caret.move_xy(x_margin + x_caret * width_char,
                         y_margin + y_caret *
height_char)
   end
 
   def on_size(event)
-    x_chars = (event.get_size().x - 2*x_margin)
/ width_char
-    y_chars = (event.get_size().y - 2*y_margin)
/ height_char
+    x_chars = (event.get_size.x - 2*x_margin)
/ width_char
+    y_chars = (event.get_size.y - 2*y_margin)
/ height_char
     if x_chars <= 0
       x_chars = 1
     end
 -138,24
+138,24 
 
     text = " " * x_chars * y_chars
 
-    frame = get_parent()
-    if frame && frame.get_status_bar()
+    frame = get_parent
+    if frame && frame.get_status_bar
       msg = sprintf("Panel size is (%d, %d)",
x_chars, y_chars)
       frame.set_status_text(msg, 1)
       frame.refresh
     end
-    event.skip()
+    event.skip
   end
 
   def on_paint
-    caret = get_caret()
+    caret = get_caret
     if caret
-      caret.hide()
+      caret.hide
     end
 
     dc = PaintDC.new(self)
     prepare_dc(dc)
-    dc.clear()
+    dc.clear
 
     dc.set_font(font)
 
 -167,36
+167,36 
     dc.free
 
     if caret
-      caret.show()
+      caret.show
     end
 
   end
 
   def on_char(event)
-    case event.key_code()
-    when K_LEFT
-      prev_char()
+    case event.key_code
+    when K_LEFT, K_BACK
+      prev_char
     when K_RIGHT
-      next_char()
+      next_char
     when K_UP
-      prev_line()
+      prev_line
     when K_DOWN
-      next_line()
+      next_line
     when K_HOME
-      home_pos()
+      home_pos
     when K_END
-      end_pos()
+      end_pos
     when K_RETURN
-      home_pos()
-      next_line()
+      home_pos
+      next_line
     else
-      if !event.alt_down()
-        ch = event.key_code()
+      ch = event.key_code
+      if !event.alt_down and (ch >= K_SPACE) and (ch
< K_DELETE)
         self[x_caret, y_caret] = ch.chr
 
-        caret = get_caret()
+        caret = get_caret
         if caret
-          caret.hide()
+          caret.hide
         end
 
         dc = ClientDC.new(self)
 -206,15
+206,15 
                      y_margin + y_caret * height_char )
         dc.free
 
-        next_char()
+        next_char
         if caret
-          caret.show()
+          caret.show
         end
       else
-        event.skip()
+        event.skip
       end
     end
-    do_move_caret()
+    do_move_caret
   end
 
 end
 -231,9
+231,9 
 
     menu_file.append(Caret_set_blink_time,
"&Blink time...\tCtrl-B")
     menu_file.append(Caret_Move, "&Move
caret\tCtrl-C")
-    menu_file.append_separator()
+    menu_file.append_separator
     menu_file.append(Caret_About,
"&About...\tCtrl-A", "Show about
dialog")
-    menu_file.append_separator()
+    menu_file.append_separator
     menu_file.append(Caret_Quit,
"E&xit\tAlt-X", "Quit self
program")
 
     # now append the freshly created menu to the menu
bar...
 -274,18
+274,18 
                    "The caret blink time is the time
between two blinks",
                    "Time in milliseconds:",
                    "Caret sample",
-                   Caret::get_blink_time(), 0, 10000,
+                   Caret::get_blink_time, 0, 10000,
                    self)
     if blink_time != -1
       Caret::set_blink_time(blink_time)
-      canvas.create_caret()
+      canvas.create_caret
       log_status(self,"Blink time set to %d
milliseconds.", blink_time)
     end
   end
 end
 
 class CaretApp < App
-  def on_init()    
+  def on_init    
     frame = MyFrame.new("Caret Windows sample",

                         Point.new(50, 50), Size.new(450,
340))
     frame.show(true)
 -293,7
+293,7 
 end
 
 # ensure handlers for xpm images are loaded
-Wx::init_all_image_handlers()
+Wx::init_all_image_handlers
 
 a = CaretApp.new
-a.main_loop()
+a.main_loop
_______________________________________________
wxruby-users mailing list
wxruby-usersrubyforge.org
ht
tp://rubyforge.org/mailman/listinfo/wxruby-users
Patch for caret.rb
user name
2006-08-23 20:08:31
On Tue, 2006-08-22 at 01:15 -0400, Roy Sutton wrote:
> I removed all the ()'s and patched things so it won't
crash on bad 
> keystrokes.

Applied, thanks.

I would preferred two separate patches in cases like
this...one to fix
the crash, and another to adjust the coding style. It makes
review
easier, and gives me the chance to accept one but reject the
other, if
necessary.

Kevin


_______________________________________________
wxruby-users mailing list
wxruby-usersrubyforge.org
ht
tp://rubyforge.org/mailman/listinfo/wxruby-users
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )