wxruby-ruby19 1.9.8-x86-darwin-9 → 1.9.10-x86-darwin-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx.rb +2 -2
  4. data/lib/wx/accessors.rb +7 -1
  5. data/lib/wx/classes/app.rb +10 -4
  6. data/lib/wx/classes/bitmap.rb +29 -1
  7. data/lib/wx/classes/clipboard.rb +19 -3
  8. data/lib/wx/classes/colour.rb +6 -4
  9. data/lib/wx/classes/data_object.rb +14 -0
  10. data/lib/wx/classes/data_object_simple.rb +6 -0
  11. data/lib/wx/classes/dataformat.rb +23 -0
  12. data/lib/wx/classes/evthandler.rb +79 -4
  13. data/lib/wx/classes/genericdirctrl.rb +36 -0
  14. data/lib/wx/classes/grid.rb +8 -0
  15. data/lib/wx/classes/hboxsizer.rb +6 -0
  16. data/lib/wx/classes/icon.rb +12 -1
  17. data/lib/wx/classes/image.rb +13 -1
  18. data/lib/wx/classes/listctrl.rb +12 -0
  19. data/lib/wx/classes/point.rb +8 -0
  20. data/lib/wx/classes/rect.rb +10 -1
  21. data/lib/wx/classes/richtextctrl.rb +63 -0
  22. data/lib/wx/classes/size.rb +9 -0
  23. data/lib/wx/classes/sizer.rb +18 -3
  24. data/lib/wx/classes/standardpaths.rb +9 -0
  25. data/lib/wx/classes/texturlevent.rb +14 -2
  26. data/lib/wx/classes/toolbar.rb +4 -6
  27. data/lib/wx/classes/vboxsizer.rb +6 -0
  28. data/lib/wx/classes/window.rb +7 -0
  29. data/lib/wx/classes/xmlresource.rb +17 -0
  30. data/lib/wx/helpers.rb +16 -1
  31. data/lib/wx/keyword_ctors.rb +3 -2
  32. data/lib/wx/keyword_defs.rb +56 -5
  33. data/lib/wx/version.rb +1 -1
  34. data/lib/wxruby2.bundle +0 -0
  35. data/samples/SAMPLES-LICENSE.TXT +18 -0
  36. data/samples/aui/aui.rb +1356 -0
  37. data/samples/bigdemo/About.rbw +39 -0
  38. data/samples/bigdemo/ColorPanel.rbw +23 -0
  39. data/samples/bigdemo/GridSimple.rbw +78 -0
  40. data/samples/bigdemo/MDIDemo.rbw +57 -0
  41. data/samples/bigdemo/PopupMenu.rbw +149 -0
  42. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  43. data/samples/bigdemo/Sizers.rbw +543 -0
  44. data/samples/bigdemo/bigdemo.rb +823 -0
  45. data/samples/bigdemo/demoTemplate.rbw +33 -0
  46. data/samples/bigdemo/helpfile.htb +0 -0
  47. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  48. data/samples/bigdemo/icons/Test 015.png +0 -0
  49. data/samples/bigdemo/icons/choice.bmp +0 -0
  50. data/samples/bigdemo/icons/choice.xpm +27 -0
  51. data/samples/bigdemo/icons/combo.bmp +0 -0
  52. data/samples/bigdemo/icons/combo.xpm +27 -0
  53. data/samples/bigdemo/icons/copy.xpm +25 -0
  54. data/samples/bigdemo/icons/cut.xpm +24 -0
  55. data/samples/bigdemo/icons/gauge.bmp +0 -0
  56. data/samples/bigdemo/icons/gauge.xpm +27 -0
  57. data/samples/bigdemo/icons/help.xpm +25 -0
  58. data/samples/bigdemo/icons/list.bmp +0 -0
  59. data/samples/bigdemo/icons/list.xpm +27 -0
  60. data/samples/bigdemo/icons/mondrian.ico +0 -0
  61. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  62. data/samples/bigdemo/icons/new.xpm +24 -0
  63. data/samples/bigdemo/icons/ogl.ico +0 -0
  64. data/samples/bigdemo/icons/ogl.xpm +45 -0
  65. data/samples/bigdemo/icons/open.xpm +26 -0
  66. data/samples/bigdemo/icons/paste.bmp +0 -0
  67. data/samples/bigdemo/icons/paste.xpm +38 -0
  68. data/samples/bigdemo/icons/pointy.png +0 -0
  69. data/samples/bigdemo/icons/preview.xpm +26 -0
  70. data/samples/bigdemo/icons/print.xpm +26 -0
  71. data/samples/bigdemo/icons/radio.bmp +0 -0
  72. data/samples/bigdemo/icons/radio.xpm +27 -0
  73. data/samples/bigdemo/icons/robert.xpm +415 -0
  74. data/samples/bigdemo/icons/ruby.png +0 -0
  75. data/samples/bigdemo/icons/sashtest.ico +0 -0
  76. data/samples/bigdemo/icons/save.xpm +25 -0
  77. data/samples/bigdemo/icons/smiles.bmp +0 -0
  78. data/samples/bigdemo/icons/smiles.xpm +39 -0
  79. data/samples/bigdemo/icons/smiley.ico +0 -0
  80. data/samples/bigdemo/icons/smiley.xpm +42 -0
  81. data/samples/bigdemo/icons/stattext.xpm +24 -0
  82. data/samples/bigdemo/icons/test2.bmp +0 -0
  83. data/samples/bigdemo/icons/test2.png +0 -0
  84. data/samples/bigdemo/icons/test2.xpm +79 -0
  85. data/samples/bigdemo/icons/text.bmp +0 -0
  86. data/samples/bigdemo/icons/text.xpm +27 -0
  87. data/samples/bigdemo/icons/tog1.bmp +0 -0
  88. data/samples/bigdemo/icons/tog1.xpm +38 -0
  89. data/samples/bigdemo/icons/tog2.bmp +0 -0
  90. data/samples/bigdemo/icons/tog2.xpm +38 -0
  91. data/samples/bigdemo/icons/wxwin.ico +0 -0
  92. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  93. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  94. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  95. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  96. data/samples/bigdemo/run.rb +90 -0
  97. data/samples/bigdemo/tips.txt +7 -0
  98. data/samples/bigdemo/utils.rb +12 -0
  99. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  100. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  101. data/samples/bigdemo/wxButton.rbw +64 -0
  102. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  103. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  104. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  105. data/samples/bigdemo/wxChoice.rbw +47 -0
  106. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  107. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  108. data/samples/bigdemo/wxComboBox.rbw +77 -0
  109. data/samples/bigdemo/wxCursor.rbw +136 -0
  110. data/samples/bigdemo/wxDialog.rbw +74 -0
  111. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  112. data/samples/bigdemo/wxDragImage.rbw +70 -0
  113. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  114. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  115. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  116. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  117. data/samples/bigdemo/wxFrame.rbw +53 -0
  118. data/samples/bigdemo/wxGauge.rbw +71 -0
  119. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  120. data/samples/bigdemo/wxGrid.rbw +66 -0
  121. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  122. data/samples/bigdemo/wxListBox.rbw +140 -0
  123. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  124. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  125. data/samples/bigdemo/wxMenu.rbw +236 -0
  126. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  127. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  128. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  129. data/samples/bigdemo/wxNotebook.rbw +136 -0
  130. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  131. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  132. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  133. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  134. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  135. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  136. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  137. data/samples/bigdemo/wxSlider.rbw +42 -0
  138. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  139. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  140. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  141. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  142. data/samples/bigdemo/wxStaticText.rbw +55 -0
  143. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  144. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  145. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  146. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  147. data/samples/bigdemo/wxToolBar.rbw +131 -0
  148. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  149. data/samples/calendar/calendar.rb +256 -0
  150. data/samples/caret/caret.rb +282 -0
  151. data/samples/caret/mondrian.xpm +44 -0
  152. data/samples/controls/controls.rb +1136 -0
  153. data/samples/controls/get_item_sample.rb +87 -0
  154. data/samples/controls/icons/choice.xpm +27 -0
  155. data/samples/controls/icons/combo.xpm +27 -0
  156. data/samples/controls/icons/gauge.xpm +27 -0
  157. data/samples/controls/icons/list.xpm +27 -0
  158. data/samples/controls/icons/radio.xpm +27 -0
  159. data/samples/controls/icons/stattext.xpm +24 -0
  160. data/samples/controls/icons/text.xpm +27 -0
  161. data/samples/controls/mondrian.ico +0 -0
  162. data/samples/controls/mondrian.xpm +44 -0
  163. data/samples/controls/test2.bmp +0 -0
  164. data/samples/dialogs/dialogs.rb +797 -0
  165. data/samples/dialogs/tips.txt +18 -0
  166. data/samples/dragdrop/dragdrop.rb +177 -0
  167. data/samples/drawing/graphics_drawing.rb +235 -0
  168. data/samples/drawing/images.rb +37 -0
  169. data/samples/drawing/paperclip.png +0 -0
  170. data/samples/etc/activation.rb +102 -0
  171. data/samples/etc/choice.rb +67 -0
  172. data/samples/etc/miniframe.rb +79 -0
  173. data/samples/etc/sash.rb +130 -0
  174. data/samples/etc/scrollwin.rb +110 -0
  175. data/samples/etc/system_settings.rb +252 -0
  176. data/samples/etc/threaded.rb +72 -0
  177. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  178. data/samples/etc/wizard.rb +74 -0
  179. data/samples/event/event.rb +182 -0
  180. data/samples/event/update_ui_event.rb +70 -0
  181. data/samples/grid/grid.rb +198 -0
  182. data/samples/grid/gridtablebase.rb +148 -0
  183. data/samples/html/html.rb +262 -0
  184. data/samples/listbook/listbook.rb +174 -0
  185. data/samples/listbook/listbook.xrc +370 -0
  186. data/samples/mdi/mdi.rb +85 -0
  187. data/samples/media/mediactrl.rb +167 -0
  188. data/samples/minimal/minimal.rb +77 -0
  189. data/samples/minimal/mondrian.ico +0 -0
  190. data/samples/minimal/mondrian.png +0 -0
  191. data/samples/minimal/nothing.rb +16 -0
  192. data/samples/opengl/cube.rb +117 -0
  193. data/samples/printing/mondrian.ico +0 -0
  194. data/samples/printing/mondrian.xpm +44 -0
  195. data/samples/printing/printing.rb +487 -0
  196. data/samples/sockets/SocketPackets.rb +27 -0
  197. data/samples/sockets/res/message-new.png +0 -0
  198. data/samples/sockets/res/user.png +0 -0
  199. data/samples/sockets/wxClient.rb +395 -0
  200. data/samples/sockets/wxServer.rb +422 -0
  201. data/samples/sockets/wxSocketGUI.rb +97 -0
  202. data/samples/text/format-text-bold.png +0 -0
  203. data/samples/text/format-text-italic.png +0 -0
  204. data/samples/text/format-text-underline.png +0 -0
  205. data/samples/text/mondrian.ico +0 -0
  206. data/samples/text/mondrian.xpm +44 -0
  207. data/samples/text/rich_textctrl.rb +98 -0
  208. data/samples/text/scintilla.rb +169 -0
  209. data/samples/text/textctrl.rb +111 -0
  210. data/samples/text/unicode.rb +242 -0
  211. data/samples/text/utf8.txt +15 -0
  212. data/samples/treectrl/icon1.xpm +79 -0
  213. data/samples/treectrl/icon2.xpm +53 -0
  214. data/samples/treectrl/icon3.xpm +79 -0
  215. data/samples/treectrl/icon4.xpm +43 -0
  216. data/samples/treectrl/icon5.xpm +79 -0
  217. data/samples/treectrl/treectrl.rb +1166 -0
  218. data/samples/xrc/samples.xrc +46 -0
  219. data/samples/xrc/xrc_sample.rb +76 -0
  220. metadata +17 -3
@@ -0,0 +1,97 @@
1
+ # wxRuby2 Sample Code. Copyright (c) 2007-???? Mario J. Steele
2
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
3
+
4
+ if /darwin/ =~ RUBY_PLATFORM
5
+ $LOCALHOST_NAME = "127.0.0.1"
6
+ else
7
+ $LOCALHOST_NAME = "localhost"
8
+ end
9
+
10
+ class SocketGUI < Wx::Frame
11
+ @@constants = []
12
+
13
+ def initialize(*args)
14
+ super
15
+ icon_file = File.join( File.dirname(__FILE__), 'res', 'message-new.png')
16
+ self.icon = Wx::Icon.new(icon_file,Wx::BITMAP_TYPE_PNG)
17
+
18
+ @il = Wx::ImageList.new(16,16)
19
+ # User icon courtesy of http://www.famfamfam.com/lab/icons/silk/
20
+ icon_file = File.join( File.dirname(__FILE__), 'res', 'user.png')
21
+ @il.add( Wx::Bitmap.new(icon_file, Wx::BITMAP_TYPE_PNG) )
22
+ hbox = Wx::BoxSizer.new(Wx::HORIZONTAL)
23
+ vbox = Wx::BoxSizer.new(Wx::VERTICAL)
24
+
25
+ # For display of Text Events
26
+ @output = Wx::TextCtrl.new( self, :style => Wx::TE_RICH2|
27
+ Wx::TE_READONLY|Wx::SUNKEN_BORDER|
28
+ Wx::TE_MULTILINE|Wx::TE_AUTO_URL)
29
+ # List of Users
30
+ @users = Wx::ListCtrl.new( self, :style => Wx::LC_REPORT|
31
+ Wx::LC_NO_HEADER|Wx::LC_SINGLE_SEL)
32
+ @users.set_image_list(@il,Wx::IMAGE_LIST_SMALL)
33
+ @users.insert_column(0,"Users")
34
+ # For Input from the User
35
+ @input = Wx::TextCtrl.new(self, :style => Wx::TE_PROCESS_ENTER)
36
+ vbox.add(@output,2,Wx::EXPAND)
37
+ vbox.add(@input,0,Wx::GROW)
38
+ hbox.add(vbox,2,Wx::EXPAND)
39
+ hbox.add(@users,0,Wx::GROW)
40
+ self.sizer = hbox
41
+ @@constants.each_with_index do |const,i|
42
+ self.class.const_set(const,1001+i)
43
+ end
44
+ create_menus()
45
+ create_status_bar()
46
+ on_init()
47
+ @font = Wx::Font.new(10,Wx::FONTFAMILY_TELETYPE,Wx::NORMAL,Wx::NORMAL)
48
+ @progStyle = Wx::TextAttr.new(Wx::BLUE, Wx::YELLOW, @font)
49
+ @defStyle = Wx::TextAttr.new(Wx::BLACK, Wx::WHITE, @font)
50
+ @errStyle = Wx::TextAttr.new(Wx::RED, Wx::GREEN, @font)
51
+ self.set_size([640,480])
52
+ end
53
+
54
+ def add_user(user)
55
+ #@users.append_item(@root,user,0)
56
+ @users.insert_item(0,user,0)
57
+ end
58
+
59
+ def clear_users()
60
+ @users.delete_all_items
61
+ end
62
+
63
+ def create_menus()
64
+ # Holder Function
65
+ end
66
+
67
+ def on_init()
68
+ # Holder Function
69
+ end
70
+
71
+ def append_text(msg)
72
+ @output.freeze
73
+ c, sl = @output.position_to_xy(@output.get_last_position)
74
+ @output.append_text(msg)
75
+ @output.thaw
76
+ c, el = @output.position_to_xy(@output.get_last_position)
77
+ @output.scroll_lines((el-sl)+2) unless sl == nil || el == nil
78
+ end
79
+
80
+ def append_prog_msg(msg)
81
+ @output.set_default_style(@progStyle)
82
+ msg += "\n" if msg[-1].chr != "\n"
83
+ append_text(msg)
84
+ end
85
+
86
+ def append_msg(msg)
87
+ @output.set_default_style(@defStyle)
88
+ msg += "\n" if msg[-1].chr != "\n"
89
+ append_text(msg)
90
+ end
91
+
92
+ def append_error(msg)
93
+ @output.set_default_style(@errStyle)
94
+ msg += "\n" if msg[-1].chr != "\n"
95
+ append_text(msg)
96
+ end
97
+ end
Binary file
Binary file
Binary file
@@ -0,0 +1,44 @@
1
+ /* XPM */
2
+ static char *mondrian_xpm[] = {
3
+ /* columns rows colors chars-per-pixel */
4
+ "32 32 6 1",
5
+ " c Black",
6
+ ". c Blue",
7
+ "X c #00bf00",
8
+ "o c Red",
9
+ "O c Yellow",
10
+ "+ c Gray100",
11
+ /* pixels */
12
+ " ",
13
+ " oooooo +++++++++++++++++++++++ ",
14
+ " oooooo +++++++++++++++++++++++ ",
15
+ " oooooo +++++++++++++++++++++++ ",
16
+ " oooooo +++++++++++++++++++++++ ",
17
+ " oooooo +++++++++++++++++++++++ ",
18
+ " oooooo +++++++++++++++++++++++ ",
19
+ " oooooo +++++++++++++++++++++++ ",
20
+ " ",
21
+ " ++++++ ++++++++++++++++++ .... ",
22
+ " ++++++ ++++++++++++++++++ .... ",
23
+ " ++++++ ++++++++++++++++++ .... ",
24
+ " ++++++ ++++++++++++++++++ .... ",
25
+ " ++++++ ++++++++++++++++++ .... ",
26
+ " ++++++ ++++++++++++++++++ ",
27
+ " ++++++ ++++++++++++++++++ ++++ ",
28
+ " ++++++ ++++++++++++++++++ ++++ ",
29
+ " ++++++ ++++++++++++++++++ ++++ ",
30
+ " ++++++ ++++++++++++++++++ ++++ ",
31
+ " ++++++ ++++++++++++++++++ ++++ ",
32
+ " ++++++ ++++++++++++++++++ ++++ ",
33
+ " ++++++ ++++++++++++++++++ ++++ ",
34
+ " ++++++ ++++++++++++++++++ ++++ ",
35
+ " ++++++ ++++++++++++++++++ ++++ ",
36
+ " ++++++ ++++ ",
37
+ " ++++++ OOOOOOOOOOOO XXXXX ++++ ",
38
+ " ++++++ OOOOOOOOOOOO XXXXX ++++ ",
39
+ " ++++++ OOOOOOOOOOOO XXXXX ++++ ",
40
+ " ++++++ OOOOOOOOOOOO XXXXX ++++ ",
41
+ " ++++++ OOOOOOOOOOOO XXXXX ++++ ",
42
+ " ++++++ OOOOOOOOOOOO XXXXX ++++ ",
43
+ " "
44
+ };
@@ -0,0 +1,98 @@
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
+
5
+ # RichTextCtrl sample by Chauk-Mean P
6
+ #
7
+ # RichTextCtrl is a sophisticated styled text editing component. This
8
+ # short sample shows the basics, but RichTextCtrl supports numerous
9
+ # other text characteristics (font, size, colour, super/subscript), as
10
+ # well as paragraph alignment and spacing, and bullets. It permits named
11
+ # text styles to be created and organised in stylesheets. It can output
12
+ # to HTML and XML, and facilities are provided for printing.
13
+ #
14
+ # Icons are taken from the Tango Icon Theme.
15
+
16
+ begin
17
+ require 'rubygems'
18
+ rescue LoadError
19
+ end
20
+ require 'wx'
21
+
22
+ class RichTextFrame < Wx::Frame
23
+
24
+ def initialize
25
+ super( nil, :title => "RichTextCtrl sample", :size => [800, 600] )
26
+
27
+ toolbar = create_tool_bar( Wx::TB_HORIZONTAL|Wx::NO_BORDER|
28
+ Wx::TB_FLAT|Wx::TB_TEXT )
29
+ toolbar.tool_bitmap_size = [ 32, 32 ]
30
+
31
+ bold_bmp = bmp_from_png("format-text-bold.png")
32
+ toolbar.add_check_tool( Wx::ID_BOLD, "Bold",
33
+ bold_bmp, bold_bmp, "Apply bold")
34
+
35
+ italic_bmp = bmp_from_png("format-text-italic.png")
36
+ toolbar.add_check_tool( Wx::ID_ITALIC, "Italic",
37
+ italic_bmp, italic_bmp, "Apply italic")
38
+
39
+ underline_bmp = bmp_from_png("format-text-underline.png")
40
+ toolbar.add_check_tool( Wx::ID_UNDERLINE, "Underline",
41
+ underline_bmp, underline_bmp, "Apply underline")
42
+ toolbar.realize
43
+
44
+ editor = Wx::RichTextCtrl.new(self, :style => Wx::WANTS_CHARS)
45
+ editor.begin_font_size(18)
46
+
47
+ editor.begin_bold
48
+ editor.write_text "Simple RichTextCtrl sample"
49
+ editor.end_bold
50
+ editor.newline
51
+ editor.begin_italic
52
+ editor.write_text "Use the formatting buttons then type some text or "
53
+ editor.write_text "select some text and use the buttons to apply the formatting.\n"
54
+ editor.end_italic
55
+
56
+ # Apply / unapply bold to selection
57
+ evt_tool(Wx::ID_BOLD) do
58
+ editor.apply_bold_to_selection
59
+ end
60
+
61
+ # Keep the pressed / unpressed state of the button in sync with the
62
+ # current selection in the text ctrl
63
+ evt_update_ui(Wx::ID_BOLD) do |evt|
64
+ evt.check(editor.selection_bold?)
65
+ end
66
+
67
+ evt_tool(Wx::ID_ITALIC) do
68
+ editor.apply_italic_to_selection
69
+ end
70
+
71
+ evt_update_ui(Wx::ID_ITALIC) do |evt|
72
+ evt.check(editor.selection_italics?)
73
+ end
74
+
75
+ evt_tool(Wx::ID_UNDERLINE) do
76
+ editor.apply_underline_to_selection
77
+ end
78
+
79
+ evt_update_ui(Wx::ID_UNDERLINE) do |evt|
80
+ evt.check(editor.selection_underlined?)
81
+ end
82
+ end
83
+
84
+ # Return a new bitmap corresponding to the specified PNG filename
85
+ def bmp_from_png(filename)
86
+ img_file = File.join( File.dirname(__FILE__), filename)
87
+ Wx::Bitmap.new(img_file, Wx::BITMAP_TYPE_PNG)
88
+ end
89
+ end
90
+
91
+
92
+ # The Application
93
+ Wx::App.run do
94
+ self.app_name = 'RichTextCtrl sample'
95
+ frame = RichTextFrame.new
96
+ frame.centre
97
+ frame.show
98
+ end
@@ -0,0 +1,169 @@
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
+ include Wx
11
+
12
+
13
+ Minimal_Quit = 1
14
+ Minimal_About = ID_ABOUT
15
+ Toggle_Whitespace = 5000
16
+ Toggle_EOL = 5001
17
+
18
+ class MyFrame < Frame
19
+ def initialize(title,pos,size,style=DEFAULT_FRAME_STYLE)
20
+ super(nil,-1,title,pos,size,style)
21
+
22
+ menuFile = Menu.new()
23
+ menuFile.append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program")
24
+
25
+ menuView = Menu.new()
26
+ menuView.append(Toggle_Whitespace, "Show &Whitespace\tF6", "Show Whitespace", ITEM_CHECK)
27
+ menuView.append(Toggle_EOL, "Show &End of Line\tF7", "Show End of Line characters", ITEM_CHECK)
28
+
29
+ menuHelp = Menu.new()
30
+ menuHelp.append(Minimal_About, "&About...\tF1", "Show about dialog")
31
+
32
+ menuBar = MenuBar.new()
33
+ menuBar.append(menuFile, "&File")
34
+ menuBar.append(menuView, "&View")
35
+ menuBar.append(menuHelp, "&Help")
36
+ set_menu_bar(menuBar)
37
+
38
+ tb = create_tool_bar(Wx::TB_HORIZONTAL | Wx::NO_BORDER | Wx::TB_FLAT | Wx::TB_TEXT)
39
+
40
+ create_status_bar(2)
41
+ set_status_text("Welcome to wxRuby!")
42
+
43
+ @sci = Wx::StyledTextCtrl.new(self)
44
+
45
+ font = Font.new(10, TELETYPE, NORMAL, NORMAL)
46
+ @sci.style_set_font(STC_STYLE_DEFAULT, font);
47
+
48
+ @ws_visible = false
49
+ @eol_visible = false
50
+ @sci.set_edge_mode(STC_EDGE_LINE)
51
+
52
+ line_num_margin = @sci.text_width(STC_STYLE_LINENUMBER, "_99999")
53
+ @sci.set_margin_width(0, line_num_margin)
54
+
55
+ @sci.style_set_foreground(STC_STYLE_DEFAULT, BLACK);
56
+ @sci.style_set_background(STC_STYLE_DEFAULT, WHITE);
57
+ @sci.style_set_foreground(STC_STYLE_LINENUMBER, LIGHT_GREY);
58
+ @sci.style_set_background(STC_STYLE_LINENUMBER, WHITE);
59
+ @sci.style_set_foreground(STC_STYLE_INDENTGUIDE, LIGHT_GREY);
60
+
61
+ @sci.set_tab_width(4)
62
+ @sci.set_use_tabs(false)
63
+ @sci.set_tab_indents(true)
64
+ @sci.set_back_space_un_indents(true)
65
+ @sci.set_indent(4)
66
+ @sci.set_edge_column(80)
67
+
68
+ @sci.set_lexer(STC_LEX_RUBY)
69
+ @sci.style_clear_all
70
+ @sci.style_set_foreground(2, RED)
71
+ @sci.style_set_foreground(3, GREEN)
72
+ @sci.style_set_foreground(5, BLUE)
73
+ @sci.style_set_foreground(6, BLUE)
74
+ @sci.style_set_foreground(7, BLUE)
75
+ @sci.set_key_words(0, "begin break elsif module retry unless end case next return until class ensure nil self when def false not super while alias defined? for or then yield and do if redo true else in rescue undef")
76
+
77
+ @sci.set_property("fold","1")
78
+ @sci.set_property("fold.compact", "0")
79
+ @sci.set_property("fold.comment", "1")
80
+ @sci.set_property("fold.preprocessor", "1")
81
+
82
+ @sci.set_margin_width(1, 0)
83
+ @sci.set_margin_type(1, STC_MARGIN_SYMBOL)
84
+ @sci.set_margin_mask(1, STC_MASK_FOLDERS)
85
+ @sci.set_margin_width(1, 20)
86
+
87
+ @sci.marker_define(STC_MARKNUM_FOLDER, STC_MARK_PLUS)
88
+ @sci.marker_define(STC_MARKNUM_FOLDEROPEN, STC_MARK_MINUS)
89
+ @sci.marker_define(STC_MARKNUM_FOLDEREND, STC_MARK_EMPTY)
90
+ @sci.marker_define(STC_MARKNUM_FOLDERMIDTAIL, STC_MARK_EMPTY)
91
+ @sci.marker_define(STC_MARKNUM_FOLDEROPENMID, STC_MARK_EMPTY)
92
+ @sci.marker_define(STC_MARKNUM_FOLDERSUB, STC_MARK_EMPTY)
93
+ @sci.marker_define(STC_MARKNUM_FOLDERTAIL, STC_MARK_EMPTY)
94
+ @sci.set_fold_flags(16)
95
+
96
+ @sci.set_margin_sensitive(1,1)
97
+
98
+ evt_menu(Minimal_Quit) {onQuit}
99
+ evt_menu(Minimal_About) {onAbout}
100
+ evt_menu(Toggle_Whitespace) {onWhitespace}
101
+ evt_menu(Toggle_EOL) {onEOL}
102
+ evt_stc_charadded(@sci.get_id) {|evt| onCharadded(evt)}
103
+ evt_stc_marginclick(@sci.get_id) {|evt| onMarginClick(evt)}
104
+
105
+ end
106
+
107
+ def onQuit
108
+ close(TRUE)
109
+ end
110
+
111
+ def onAbout
112
+ GC.start
113
+ msg = sprintf("This is the About dialog of the scintilla sample.\n" \
114
+ "Welcome to %s", VERSION_STRING)
115
+
116
+ message_box(msg, "About Scintilla", OK | ICON_INFORMATION, self)
117
+
118
+ end
119
+
120
+ def onWhitespace
121
+ @ws_visible = !@ws_visible
122
+ @sci.set_view_white_space(@ws_visible ? STC_WS_VISIBLEALWAYS : STC_WS_INVISIBLE)
123
+ end
124
+
125
+ def onEOL
126
+ @eol_visible = !@eol_visible
127
+ @sci.set_view_eol(@eol_visible)
128
+ end
129
+
130
+ def onCharadded(evt)
131
+ chr = evt.get_key
132
+ curr_line = @sci.get_current_line
133
+
134
+ if(chr == 13)
135
+ if curr_line > 0
136
+ line_ind = @sci.get_line_indentation(curr_line - 1)
137
+ if line_ind > 0
138
+ @sci.set_line_indentation(curr_line, line_ind)
139
+ @sci.goto_pos(@sci.position_from_line(curr_line)+line_ind)
140
+ end
141
+ end
142
+ end
143
+ end
144
+
145
+ def onMarginClick(evt)
146
+ line_num = @sci.line_from_position(evt.get_position)
147
+ margin = evt.get_margin
148
+
149
+ if(margin == 1)
150
+ @sci.toggle_fold(line_num)
151
+ end
152
+ end
153
+
154
+ end
155
+
156
+ class RbApp < App
157
+ def on_init
158
+ frame = MyFrame.new("wxRuby Scintilla App",Point.new(50, 50), Size.new(450, 340))
159
+
160
+ frame.show(TRUE)
161
+
162
+ end
163
+ end
164
+
165
+ a = RbApp.new
166
+ a.main_loop()
167
+ puts("back from main_loop...")
168
+ GC.start
169
+ puts("survived gc")
@@ -0,0 +1,111 @@
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
+ class InformativeTextCtrl < Wx::TextCtrl
11
+ # These text controls are multiline, and may have rich (coloured,
12
+ # styled) text in them
13
+ STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
14
+ def initialize(parent, text = '')
15
+ super(parent, :value => text, :style => STYLE)
16
+ end
17
+
18
+ # more ruby-ish
19
+ alias :<< :append_text
20
+
21
+ # run through a few useful methods of textctrl and report the results
22
+ # as a string
23
+ def report()
24
+ report = ''
25
+ report << 'Insertion Point: ' << get_insertion_point.to_s() << "\n"
26
+ report << 'First Line Text: ' << get_line_text(0) << "\n"
27
+ report << 'Final Position: ' << get_last_position().to_s() << "\n"
28
+ report << 'Selection: ' << get_selection().inspect() << "\n"
29
+ report << 'String Selection: ' << get_string_selection().inspect << "\n"
30
+ report << 'Position to X, Y: ' <<
31
+ position_to_xy( get_insertion_point ).inspect
32
+ return report
33
+ end
34
+ end
35
+
36
+ # A read-only text ctrl useful for displaying output
37
+ class LogTextCtrl < Wx::TextCtrl
38
+ STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
39
+ def initialize(parent)
40
+ super(parent, :style => STYLE)
41
+ end
42
+ end
43
+
44
+ class TextCtrlFrame < Wx::Frame
45
+ def initialize(*args)
46
+ super(nil, *args)
47
+
48
+ panel = Wx::Panel.new(self)
49
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
50
+
51
+ @textctrl = InformativeTextCtrl.new(panel)
52
+ populate_textctrl()
53
+ sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
54
+
55
+ button = Wx::Button.new(panel, :label => 'Get Info')
56
+ sizer.add(button, 0, Wx::ADJUST_MINSIZE|Wx::ALL, 2 )
57
+ evt_button button, :on_click
58
+
59
+ @log = LogTextCtrl.new(panel)
60
+ sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
61
+ panel.sizer = sizer
62
+ end
63
+
64
+ def populate_textctrl()
65
+ @textctrl << "This is some plain text\n"
66
+ @textctrl << "Text with green letters and yellow background\n"
67
+ @textctrl << "This is some more plain text"
68
+ # create a new rich text style
69
+ attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
70
+ # apply the style from character 26 to character 76
71
+ @textctrl.set_style(24, 69, attr)
72
+ end
73
+
74
+ def construct_menus()
75
+ menu_bar = Wx::MenuBar.new()
76
+
77
+ menu_file = Wx::Menu.new()
78
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
79
+ menu_bar.append(menu_file, "&File")
80
+ evt_menu Wx::ID_EXIT, :on_quit
81
+
82
+ menu_help = Wx::Menu.new()
83
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
84
+ evt_menu Wx::ID_ABOUT, :on_about
85
+ menu_bar.append(menu_help, "&Help")
86
+
87
+ self.menu_bar = menu_bar
88
+ end
89
+
90
+ def on_click
91
+ @log.value = @textctrl.report
92
+ end
93
+
94
+ def on_quit
95
+ close
96
+ end
97
+
98
+ def on_about
99
+ msg = sprintf("This is the About dialog of the textctrl sample.\n" \
100
+ "Welcome to %s", Wx::VERSION_STRING)
101
+ message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
102
+ end
103
+ end
104
+
105
+ Wx::App.run do
106
+ frame = TextCtrlFrame.new( :title => "TextCtrl demonstration",
107
+ :pos => [ 50, 50 ],
108
+ :size => [ 450, 340 ] )
109
+ frame.show
110
+ end
111
+