wxruby 1.9.5-i386-mswin32 → 1.9.7-i386-mswin32

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.
Files changed (112) hide show
  1. data/lib/wx/classes/acceleratortable.rb +28 -0
  2. data/lib/wx/classes/animation.rb +18 -0
  3. data/lib/wx/classes/bitmap.rb +5 -0
  4. data/lib/wx/classes/busycursor.rb +12 -0
  5. data/lib/wx/classes/evthandler.rb +36 -21
  6. data/lib/wx/classes/functions.rb +44 -0
  7. data/lib/wx/classes/grid.rb +16 -7
  8. data/lib/wx/classes/htmlwindow.rb +8 -0
  9. data/lib/wx/classes/icon.rb +7 -0
  10. data/lib/wx/classes/iconbundle.rb +3 -0
  11. data/lib/wx/classes/image.rb +17 -0
  12. data/lib/wx/classes/imagelist.rb +3 -0
  13. data/lib/wx/classes/toolbartool.rb +4 -0
  14. data/lib/wx/classes/xmlresource.rb +21 -0
  15. data/lib/wx/keyword_ctors.rb +9 -6
  16. data/lib/wx/keyword_defs.rb +7 -0
  17. data/lib/wx/version.rb +1 -1
  18. data/lib/wxruby2.exp +0 -0
  19. data/lib/wxruby2.lib +0 -0
  20. data/lib/wxruby2.so +0 -0
  21. data/samples/aui/aui.rb +6 -10
  22. data/samples/bigdemo/ColorPanel.rbw +7 -9
  23. data/samples/bigdemo/GridSimple.rbw +7 -9
  24. data/samples/bigdemo/MDIDemo.rbw +7 -9
  25. data/samples/bigdemo/PopupMenu.rbw +7 -9
  26. data/samples/bigdemo/ShapedWindow.rbw +6 -10
  27. data/samples/bigdemo/Sizers.rbw +7 -9
  28. data/samples/bigdemo/bigdemo.rb +24 -25
  29. data/samples/bigdemo/demoTemplate.rbw +6 -10
  30. data/samples/bigdemo/run.rb +6 -10
  31. data/samples/bigdemo/wxArtProvider.rbw +6 -10
  32. data/samples/bigdemo/wxBitmapButton.rbw +42 -41
  33. data/samples/bigdemo/wxButton.rbw +7 -9
  34. data/samples/bigdemo/wxCalendarCtrl.rbw +41 -53
  35. data/samples/bigdemo/wxCheckBox.rbw +7 -9
  36. data/samples/bigdemo/wxCheckListBox.rbw +7 -9
  37. data/samples/bigdemo/wxChoice.rbw +7 -9
  38. data/samples/bigdemo/wxChoicebook.rbw +7 -9
  39. data/samples/bigdemo/wxColourDialog.rbw +7 -10
  40. data/samples/bigdemo/wxComboBox.rbw +7 -9
  41. data/samples/bigdemo/wxCursor.rbw +6 -10
  42. data/samples/bigdemo/wxDialog.rbw +7 -9
  43. data/samples/bigdemo/wxDirDialog.rbw +7 -10
  44. data/samples/bigdemo/wxDragImage.rbw +6 -10
  45. data/samples/bigdemo/wxFileDialog.rbw +7 -9
  46. data/samples/bigdemo/wxFileDialog_Save.rbw +7 -10
  47. data/samples/bigdemo/wxFindReplaceDialog.rbw +7 -10
  48. data/samples/bigdemo/wxFontDialog.rbw +7 -10
  49. data/samples/bigdemo/wxFrame.rbw +7 -9
  50. data/samples/bigdemo/wxGauge.rbw +7 -9
  51. data/samples/bigdemo/wxGenericDirCtrl.rbw +6 -10
  52. data/samples/bigdemo/wxGrid.rbw +7 -9
  53. data/samples/bigdemo/wxHtmlHelpController.rbw +6 -11
  54. data/samples/bigdemo/wxListBox.rbw +7 -9
  55. data/samples/bigdemo/wxListCtrl_virtual.rbw +7 -9
  56. data/samples/bigdemo/wxMDIWindows.rbw +7 -9
  57. data/samples/bigdemo/wxMenu.rbw +7 -9
  58. data/samples/bigdemo/wxMessageDialog.rbw +7 -10
  59. data/samples/bigdemo/wxMiniFrame.rbw +6 -10
  60. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +7 -9
  61. data/samples/bigdemo/wxNotebook.rbw +7 -9
  62. data/samples/bigdemo/wxProgressDialog.rbw +7 -9
  63. data/samples/bigdemo/wxRadioBox.rbw +7 -9
  64. data/samples/bigdemo/wxRadioButton.rbw +7 -9
  65. data/samples/bigdemo/wxSashWindow.rbw +6 -10
  66. data/samples/bigdemo/wxScrolledMessageDialog.rbw +7 -9
  67. data/samples/bigdemo/wxScrolledWindow.rbw +7 -9
  68. data/samples/bigdemo/wxSingleChoiceDialog.rbw +7 -9
  69. data/samples/bigdemo/wxSlider.rbw +7 -9
  70. data/samples/bigdemo/wxSpinButton.rbw +7 -9
  71. data/samples/bigdemo/wxSpinCtrl.rbw +7 -9
  72. data/samples/bigdemo/wxSplitterWindow.rbw +7 -9
  73. data/samples/bigdemo/wxStaticBitmap.rbw +7 -9
  74. data/samples/bigdemo/wxStaticText.rbw +7 -9
  75. data/samples/bigdemo/wxStatusBar.rbw +7 -9
  76. data/samples/bigdemo/wxTextCtrl.rbw +7 -9
  77. data/samples/bigdemo/wxTextEntryDialog.rbw +7 -10
  78. data/samples/bigdemo/wxToggleButton.rbw +7 -9
  79. data/samples/bigdemo/wxToolBar.rbw +7 -9
  80. data/samples/bigdemo/wxTreeCtrl.rbw +7 -9
  81. data/samples/calendar/calendar.rb +6 -10
  82. data/samples/caret/caret.rb +6 -10
  83. data/samples/controls/controls.rb +6 -10
  84. data/samples/dialogs/dialogs.rb +10 -11
  85. data/samples/dragdrop/dragdrop.rb +177 -0
  86. data/samples/drawing/graphics_drawing.rb +6 -7
  87. data/samples/drawing/images.rb +5 -10
  88. data/samples/etc/activation.rb +4 -10
  89. data/samples/etc/choice.rb +5 -10
  90. data/samples/etc/miniframe.rb +5 -10
  91. data/samples/etc/sash.rb +5 -10
  92. data/samples/etc/scrollwin.rb +4 -10
  93. data/samples/etc/system_settings.rb +4 -10
  94. data/samples/etc/threaded.rb +4 -10
  95. data/samples/etc/wizard.rb +5 -10
  96. data/samples/event/event.rb +3 -5
  97. data/samples/grid/grid.rb +5 -9
  98. data/samples/grid/gridtablebase.rb +134 -0
  99. data/samples/html/html.rb +4 -10
  100. data/samples/listbook/listbook.rb +4 -11
  101. data/samples/mdi/mdi.rb +5 -10
  102. data/samples/media/mediactrl.rb +4 -10
  103. data/samples/minimal/minimal.rb +18 -26
  104. data/samples/minimal/nothing.rb +5 -10
  105. data/samples/opengl/cube.rb +8 -14
  106. data/samples/printing/printing.rb +5 -179
  107. data/samples/text/scintilla.rb +5 -10
  108. data/samples/text/textctrl.rb +27 -38
  109. data/samples/text/unicode.rb +6 -2
  110. data/samples/treectrl/treectrl.rb +4 -10
  111. data/samples/xrc/xrc_sample.rb +6 -17
  112. metadata +12 -2
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+ # This sample demonstrates the use of the Clipboard and Drag and Drop
11
+ # classes. Whilst the functionality of these is slightly different, they
12
+ # are both based around the use of the DataObject classes to exchange
13
+ # data of various sorts between applications (i.e. into and out of
14
+ # wxRuby)
15
+
16
+ # A ListBox that collects file names dropped onto it
17
+ class FileDropList < Wx::ListBox
18
+ def initialize(*args)
19
+ super
20
+ # Set the handler for drag and drop actions
21
+ self.drop_target = ListFileDropTarget.new(self)
22
+ end
23
+
24
+ # The class that actually handles the dropped files; it keeps a
25
+ # reference to the ListBox, and appends items as they are added
26
+ class ListFileDropTarget < Wx::FileDropTarget
27
+ def initialize(list)
28
+ super()
29
+ @list = list
30
+ end
31
+
32
+ # This method is overridden to specify what happens when a file is
33
+ # dropped
34
+ def on_drop_files(x, y, files)
35
+ files.each { | file | @list.append(file) }
36
+ true # currently need to return boolean from this method
37
+ end
38
+ end
39
+ end
40
+
41
+ class FileDropPane < Wx::Panel
42
+ LABEL = "Drag and drop files from Explorer/Finder/etc to here\n" +
43
+ "to add them to the list."
44
+ def initialize(parent)
45
+ super
46
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
47
+ txt = Wx::StaticText.new( self, :label => LABEL)
48
+ sizer.add(txt, 0, Wx::ALL, 4)
49
+
50
+ @drop = FileDropList.new(self)
51
+ sizer.add(@drop, 1, Wx::GROW|Wx::ALL, 4)
52
+ self.sizer = sizer
53
+ end
54
+ end
55
+
56
+ # A canvas which can display a pasted image
57
+ class PasteCanvas < Wx::Window
58
+ attr_accessor :bitmap
59
+ def initialize(parent)
60
+ super(parent, :style => Wx::SUNKEN_BORDER)
61
+ self.size = [ 200, 200 ]
62
+ @bitmap = Wx::NULL_BITMAP
63
+ evt_paint :on_paint
64
+ end
65
+
66
+ def on_paint(evt)
67
+ paint do | dc |
68
+ dc.clear
69
+ if bitmap.ok?
70
+ dc.draw_bitmap(bitmap, 0, 0, false)
71
+ end
72
+ dc.pen = Wx::BLACK_PEN
73
+ end
74
+ end
75
+ end
76
+
77
+ # A Notebook panel to hold an image-paste canvas
78
+ class PastePane < Wx::Panel
79
+ LABEL = "Use the buttons below to paste text and images from\n" +
80
+ "the system clipboard, and then to copy them back."
81
+ def initialize(parent)
82
+ super
83
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
84
+ txt = Wx::StaticText.new( self, :label => LABEL)
85
+ sizer.add(txt, 0, Wx::ALL, 4)
86
+
87
+ # Sizer for displaying text and image from the clipboard
88
+ paste_sizer = Wx::FlexGridSizer.new(2, 2, 2, 2)
89
+ paste_sizer.add_growable_col(0, 1)
90
+ paste_sizer.add_growable_col(1, 1)
91
+ paste_sizer.add_growable_row(1)
92
+
93
+ paste_sizer.add( Wx::StaticText.new(self, :label => 'Clipboard text') )
94
+ paste_sizer.add( Wx::StaticText.new(self, :label => 'Clipboard image') )
95
+
96
+ # Target for displaying text from the clipboard
97
+ @text = Wx::TextCtrl.new(self, :style => Wx::TE_MULTILINE)
98
+ paste_sizer.add(@text, 1, Wx::GROW)
99
+
100
+ # Target for displaying images from the clipboard
101
+ @canvas = PasteCanvas.new(self)
102
+ paste_sizer.add(@canvas, 1, Wx::GROW)
103
+
104
+ sizer.add(paste_sizer, 1, Wx::ALL|Wx::GROW, 4)
105
+
106
+ button_sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
107
+
108
+ @paste_bt = Wx::Button.new(self, :label => 'Paste')
109
+ evt_button @paste_bt, :on_paste
110
+ button_sizer.add(@paste_bt, 0, Wx::ALL, 4)
111
+
112
+ @copy_img_bt = Wx::Button.new(self, :label => 'Copy image')
113
+ evt_button @copy_img_bt, :on_copy_image
114
+ button_sizer.add(@copy_img_bt, 0, Wx::ALL, 4)
115
+
116
+ @copy_txt_bt = Wx::Button.new(self, :label => 'Copy text')
117
+ evt_button @copy_txt_bt, :on_copy_text
118
+ button_sizer.add(@copy_txt_bt, 0, Wx::ALL, 4)
119
+
120
+ sizer.add(button_sizer, 0)
121
+ self.sizer = sizer
122
+ end
123
+
124
+ # Receive data from the clipboard
125
+ def on_paste(evt)
126
+ # Temporarily open the clipboard
127
+ Wx::Clipboard.open do | clip |
128
+ # Test if bitmap data is available on the clipboard; if so, copy
129
+ if clip.supported?(Wx::DF_BITMAP)
130
+ bmp = Wx::BitmapDataObject.new
131
+ clip.get_data(bmp) # Fill the data object with bitmap`
132
+ @canvas.bitmap = bmp.bitmap
133
+ @canvas.refresh
134
+ end
135
+ # Test if text data is available on the clipboard; if so, copy
136
+ if clip.supported?(Wx::DF_TEXT)
137
+ txt = Wx::TextDataObject.new
138
+ clip.get_data(txt) # Fill the data object with text
139
+ @text.value = txt.text
140
+ end
141
+ end
142
+ end
143
+
144
+ # Paste an image to the clipboard
145
+ def on_copy_image
146
+ Wx::Clipboard.open do | clip |
147
+ clip.data = Wx::BitmapDataObject.new(@canvas.bitmap)
148
+ end
149
+ end
150
+
151
+ # Paste text to the clipboard
152
+ def on_copy_text
153
+ Wx::Clipboard.open do | clip |
154
+ clip.data = Wx::TextDataObject.new(@text.value)
155
+ end
156
+ end
157
+ end
158
+
159
+ class DataObjectFrame < Wx::Frame
160
+ def initialize(parent)
161
+ super
162
+ panel = Wx::Panel.new(self)
163
+ panel.sizer = Wx::BoxSizer.new(Wx::VERTICAL)
164
+ nb = Wx::Notebook.new(panel)
165
+ panel.sizer.add(nb, 1, Wx::ALL|Wx::GROW, 8)
166
+ fd = FileDropPane.new(nb)
167
+ nb.add_page(fd, 'Drag and Drop')
168
+ cv = PastePane.new(nb)
169
+ nb.add_page(cv, 'Clipboard')
170
+ # urldrop = URLDropList.new(self)
171
+ end
172
+ end
173
+
174
+ Wx::App.run do
175
+ frame = DataObjectFrame.new(nil)
176
+ frame.show
177
+ end
@@ -1,12 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
1
4
  begin
2
- require 'wx'
3
- rescue LoadError => no_wx_err
4
- begin
5
- require 'rubygems'
6
- rescue LoadError
7
- raise no_wx_err
8
- end
5
+ require 'rubygems'
6
+ rescue LoadError
9
7
  end
8
+ require 'wx'
10
9
 
11
10
  class GfxInfo
12
11
  attr_accessor :font, :w, :h, :x, :y, :x_axis, :y_axis, :txt, :rotation
@@ -1,17 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
9
+
15
10
 
16
11
  # This sample demonstrates how to draw an image from a file onto a
17
12
  # window. This one uses a small PNG file, but other formats such as JPEG
@@ -1,17 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
15
9
 
16
10
  # This sample demonstrates the use of Activate Events. These are
17
11
  # generated when a frame becomes active or inactive. This is typically
@@ -1,17 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
9
+
15
10
  include Wx
16
11
 
17
12
  ID_CHOICE = 1000
@@ -1,17 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
9
+
15
10
 
16
11
  class MyFrame < Wx::Frame
17
12
  attr_reader :mini
data/samples/etc/sash.rb CHANGED
@@ -1,17 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
9
+
15
10
 
16
11
  class MySashFrame < Wx::Frame
17
12
  def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
@@ -1,17 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
15
9
 
16
10
  # Example demonstrating the use of Wx::ScrolledWindow and the
17
11
  # ScrollWinEvents
@@ -1,17 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
15
9
 
16
10
  # This example lists the various system settings that WxRuby knows
17
11
  # about. To use it, run it and use the 'View' menu to list the different
@@ -1,17 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
15
9
 
16
10
  # This simple sample demonstrates how to use Ruby 1.8's lightweight
17
11
  # (green) threads to execute non-GUI code in parallel with a wxRuby
@@ -1,17 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
5
+ require 'rubygems'
6
+ rescue LoadError
14
7
  end
8
+ require 'wx'
9
+
15
10
 
16
11
  class MyFrame < Wx::Frame
17
12
  def initialize(title, pos, size)
@@ -1,13 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2007 wxRuby development team
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
3
  # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
4
  begin
6
- require 'rubygems'
7
- require 'wx'
5
+ require 'rubygems'
8
6
  rescue LoadError
9
- require 'wx'
10
7
  end
8
+ require 'wx'
11
9
 
12
10
  # This sample demonstrates how to dynamically connect and disconnect
13
11
  # event handlers, and how to create custom event types and listeners
data/samples/grid/grid.rb CHANGED
@@ -1,15 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
2
4
  begin
3
- require 'wx'
4
- rescue LoadError => no_wx_err
5
- begin
6
- require 'rubygems'
7
- load 'wx'
8
- rescue
9
- raise no_wx_err
10
- end
5
+ require 'rubygems'
6
+ rescue LoadError
11
7
  end
12
-
8
+ require 'wx'
13
9
 
14
10
  class GridFrame < Wx::Frame
15
11