wxruby 1.9.3-i386-mswin32 → 1.9.4-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 (126) hide show
  1. data/LICENSE +53 -53
  2. data/README +299 -299
  3. data/lib/wx/classes/evthandler.rb +9 -0
  4. data/lib/wx/classes/timer.rb +25 -0
  5. data/lib/wx/version.rb +1 -1
  6. data/lib/wx.rb +42 -42
  7. data/lib/wxruby2.exp +0 -0
  8. data/lib/wxruby2.lib +0 -0
  9. data/lib/wxruby2.so +0 -0
  10. data/samples/SAMPLES-LICENSE.TXT +17 -17
  11. data/samples/bigdemo/About.rbw +39 -39
  12. data/samples/bigdemo/ColorPanel.rbw +25 -25
  13. data/samples/bigdemo/GridSimple.rbw +80 -80
  14. data/samples/bigdemo/MDIDemo.rbw +59 -59
  15. data/samples/bigdemo/PopupMenu.rbw +151 -151
  16. data/samples/bigdemo/Sizers.rbw +545 -545
  17. data/samples/bigdemo/bigdemo.rb +826 -826
  18. data/samples/bigdemo/demoTemplate.rbw +37 -37
  19. data/samples/bigdemo/icons/choice.xpm +27 -27
  20. data/samples/bigdemo/icons/combo.xpm +27 -27
  21. data/samples/bigdemo/icons/copy.xpm +25 -25
  22. data/samples/bigdemo/icons/cut.xpm +24 -24
  23. data/samples/bigdemo/icons/gauge.xpm +27 -27
  24. data/samples/bigdemo/icons/help.xpm +25 -25
  25. data/samples/bigdemo/icons/list.xpm +27 -27
  26. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  27. data/samples/bigdemo/icons/new.xpm +24 -24
  28. data/samples/bigdemo/icons/ogl.ico +0 -0
  29. data/samples/bigdemo/icons/ogl.xpm +45 -45
  30. data/samples/bigdemo/icons/open.xpm +26 -26
  31. data/samples/bigdemo/icons/paste.xpm +38 -38
  32. data/samples/bigdemo/icons/preview.xpm +26 -26
  33. data/samples/bigdemo/icons/print.xpm +26 -26
  34. data/samples/bigdemo/icons/radio.xpm +27 -27
  35. data/samples/bigdemo/icons/robert.xpm +415 -415
  36. data/samples/bigdemo/icons/save.xpm +25 -25
  37. data/samples/bigdemo/icons/smiles.xpm +39 -39
  38. data/samples/bigdemo/icons/smiley.xpm +42 -42
  39. data/samples/bigdemo/icons/stattext.xpm +24 -24
  40. data/samples/bigdemo/icons/test2.bmp +0 -0
  41. data/samples/bigdemo/icons/test2.xpm +79 -79
  42. data/samples/bigdemo/icons/text.xpm +27 -27
  43. data/samples/bigdemo/icons/tog1.xpm +38 -38
  44. data/samples/bigdemo/icons/tog2.xpm +38 -38
  45. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  46. data/samples/bigdemo/tips.txt +7 -7
  47. data/samples/bigdemo/utils.rb +11 -11
  48. data/samples/bigdemo/wxButton.rbw +66 -66
  49. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  50. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  51. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  52. data/samples/bigdemo/wxChoice.rbw +49 -49
  53. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  54. data/samples/bigdemo/wxComboBox.rbw +79 -79
  55. data/samples/bigdemo/wxDialog.rbw +92 -92
  56. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  57. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  58. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  59. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  60. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  61. data/samples/bigdemo/wxFrame.rbw +55 -55
  62. data/samples/bigdemo/wxGauge.rbw +73 -73
  63. data/samples/bigdemo/wxGrid.rbw +68 -68
  64. data/samples/bigdemo/wxListBox.rbw +142 -142
  65. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  66. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  67. data/samples/bigdemo/wxMenu.rbw +238 -238
  68. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  69. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  70. data/samples/bigdemo/wxNotebook.rbw +138 -138
  71. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  72. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  73. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  74. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  75. data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
  76. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  77. data/samples/bigdemo/wxSlider.rbw +44 -44
  78. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  79. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  80. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  81. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  82. data/samples/bigdemo/wxStaticText.rbw +57 -57
  83. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  84. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  85. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  86. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  87. data/samples/bigdemo/wxToolBar.rbw +133 -133
  88. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  89. data/samples/calendar/calendar.rb +275 -275
  90. data/samples/caret/caret.rb +286 -286
  91. data/samples/caret/mondrian.xpm +44 -44
  92. data/samples/controls/controls.rb +1140 -1140
  93. data/samples/controls/get_item_sample.rb +87 -87
  94. data/samples/controls/icons/choice.xpm +27 -27
  95. data/samples/controls/icons/combo.xpm +27 -27
  96. data/samples/controls/icons/gauge.xpm +27 -27
  97. data/samples/controls/icons/list.xpm +27 -27
  98. data/samples/controls/icons/radio.xpm +27 -27
  99. data/samples/controls/icons/stattext.xpm +24 -24
  100. data/samples/controls/icons/text.xpm +27 -27
  101. data/samples/controls/mondrian.xpm +44 -44
  102. data/samples/dialogs/dialogs.rb +724 -724
  103. data/samples/dialogs/tips.txt +18 -18
  104. data/samples/drawing/graphics_drawing.rb +22 -18
  105. data/samples/drawing/images.rb +48 -48
  106. data/samples/etc/activation.rb +108 -108
  107. data/samples/etc/choice.rb +72 -72
  108. data/samples/etc/miniframe.rb +84 -84
  109. data/samples/etc/sash.rb +135 -135
  110. data/samples/etc/scrollwin.rb +116 -116
  111. data/samples/etc/system_settings.rb +258 -258
  112. data/samples/etc/threaded.rb +5 -8
  113. data/samples/etc/wizard.rb +79 -79
  114. data/samples/html/html.rb +14 -10
  115. data/samples/listbook/listbook.rb +181 -181
  116. data/samples/listbook/listbook.xrc +370 -370
  117. data/samples/mdi/mdi.rb +87 -87
  118. data/samples/minimal/minimal.rb +85 -85
  119. data/samples/minimal/nothing.rb +21 -21
  120. data/samples/text/textctrl.rb +124 -124
  121. data/samples/text/unicode.rb +238 -238
  122. data/samples/text/utf8.txt +14 -14
  123. data/samples/treectrl/treectrl.rb +1180 -1180
  124. data/samples/xrc/samples.xrc +46 -46
  125. data/samples/xrc/xrc_sample.rb +107 -107
  126. metadata +3 -3
data/samples/mdi/mdi.rb CHANGED
@@ -1,87 +1,87 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- 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
14
- end
15
-
16
- # MDI sample for wxRuby
17
- # slapped together quickly by Kevin Smith
18
-
19
- ID_NEXT = 1
20
- ID_PREVIOUS = 2
21
- ID_CASCADE = 3
22
- ID_TILE = 4
23
- ID_CREATE = 5
24
- ID_CLOSE = 6
25
- ID_EXIT = 99
26
-
27
- class MyFrame < Wx::MDIParentFrame
28
- def initialize(title)
29
- super(nil, -1, title,Wx::DEFAULT_POSITION,Wx::Size.new(500,400))
30
-
31
- @child_number = 0
32
-
33
- menuFile = Wx::Menu.new
34
- menuFile.append(ID_EXIT, "E&xit\tAlt-X")
35
- menuMDI = Wx::Menu.new
36
- menuMDI.append(ID_NEXT, "&Next Child\tCtrl-F6")
37
- menuMDI.append(ID_PREVIOUS, "&Previous Child")
38
- menuMDI.append_separator()
39
- menuMDI.append(ID_CASCADE, "&Cascade")
40
- menuMDI.append(ID_TILE, "&Tile")
41
- menuMDI.append_separator()
42
- menuMDI.append(ID_CREATE, "&Add Child")
43
- menuMDI.append(ID_CLOSE, "&Remove Child\tCtrl-F4")
44
- menuBar = Wx::MenuBar.new
45
- menuBar.append(menuFile, "&File")
46
- menuBar.append(menuMDI, "&Window")
47
- set_menu_bar(menuBar)
48
-
49
- evt_menu(ID_EXIT) { close }
50
- evt_menu(ID_NEXT) { activate_next }
51
- evt_menu(ID_PREVIOUS) { activate_previous }
52
- evt_menu(ID_CASCADE) { cascade }
53
- evt_menu(ID_TILE) { tile }
54
- evt_menu(ID_CREATE) { create_child }
55
- evt_menu(ID_CLOSE) { on_close_child }
56
-
57
- create_status_bar(2).set_status_widths([100, -1])
58
- set_status_text("Some features only work on MS Windows", 1)
59
-
60
- create_child
61
- create_child
62
- create_child
63
- end
64
-
65
- def on_close_child
66
- active = get_active_child
67
- if(active)
68
- active.close
69
- end
70
- end
71
-
72
- def create_child
73
- @child_number += 1
74
- name = "Child #{@child_number.to_s}"
75
- Wx::MDIChildFrame.new(self, -1, name)
76
- end
77
- end
78
-
79
- class NothingApp < Wx::App
80
- def on_init
81
- frame = MyFrame.new("MDI App")
82
- frame.show
83
- end
84
- end
85
-
86
- a = NothingApp.new
87
- a.main_loop()
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ 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
14
+ end
15
+
16
+ # MDI sample for wxRuby
17
+ # slapped together quickly by Kevin Smith
18
+
19
+ ID_NEXT = 1
20
+ ID_PREVIOUS = 2
21
+ ID_CASCADE = 3
22
+ ID_TILE = 4
23
+ ID_CREATE = 5
24
+ ID_CLOSE = 6
25
+ ID_EXIT = 99
26
+
27
+ class MyFrame < Wx::MDIParentFrame
28
+ def initialize(title)
29
+ super(nil, -1, title,Wx::DEFAULT_POSITION,Wx::Size.new(500,400))
30
+
31
+ @child_number = 0
32
+
33
+ menuFile = Wx::Menu.new
34
+ menuFile.append(ID_EXIT, "E&xit\tAlt-X")
35
+ menuMDI = Wx::Menu.new
36
+ menuMDI.append(ID_NEXT, "&Next Child\tCtrl-F6")
37
+ menuMDI.append(ID_PREVIOUS, "&Previous Child")
38
+ menuMDI.append_separator()
39
+ menuMDI.append(ID_CASCADE, "&Cascade")
40
+ menuMDI.append(ID_TILE, "&Tile")
41
+ menuMDI.append_separator()
42
+ menuMDI.append(ID_CREATE, "&Add Child")
43
+ menuMDI.append(ID_CLOSE, "&Remove Child\tCtrl-F4")
44
+ menuBar = Wx::MenuBar.new
45
+ menuBar.append(menuFile, "&File")
46
+ menuBar.append(menuMDI, "&Window")
47
+ set_menu_bar(menuBar)
48
+
49
+ evt_menu(ID_EXIT) { close }
50
+ evt_menu(ID_NEXT) { activate_next }
51
+ evt_menu(ID_PREVIOUS) { activate_previous }
52
+ evt_menu(ID_CASCADE) { cascade }
53
+ evt_menu(ID_TILE) { tile }
54
+ evt_menu(ID_CREATE) { create_child }
55
+ evt_menu(ID_CLOSE) { on_close_child }
56
+
57
+ create_status_bar(2).set_status_widths([100, -1])
58
+ set_status_text("Some features only work on MS Windows", 1)
59
+
60
+ create_child
61
+ create_child
62
+ create_child
63
+ end
64
+
65
+ def on_close_child
66
+ active = get_active_child
67
+ if(active)
68
+ active.close
69
+ end
70
+ end
71
+
72
+ def create_child
73
+ @child_number += 1
74
+ name = "Child #{@child_number.to_s}"
75
+ Wx::MDIChildFrame.new(self, -1, name)
76
+ end
77
+ end
78
+
79
+ class NothingApp < Wx::App
80
+ def on_init
81
+ frame = MyFrame.new("MDI App")
82
+ frame.show
83
+ end
84
+ end
85
+
86
+ a = NothingApp.new
87
+ a.main_loop()
@@ -1,85 +1,85 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- load 'wx'
11
- rescue
12
- raise no_wx_err
13
- end
14
- end
15
-
16
- # This sample shows a fairly minimal Wx::App using a Frame, with a
17
- # MenuBar and StatusBar but no controls. For the absolute minimum app,
18
- # see nothing.rb
19
-
20
- # A Wx::Frame is a self-contained, top-level Window that can contain
21
- # controls, menubars, and statusbars
22
- class MinimalFrame < Wx::Frame
23
- def initialize(title)
24
- # The main application frame has no parent (nil)
25
- super(nil, :title => title, :size => [ 400, 300 ])
26
-
27
- icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
28
- # PNG can be used on all platforms, but icon type must be specified
29
- # to work on Windows; OS X doesn't have "Frame" icons.
30
- self.icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_PNG)
31
-
32
- menu_bar = Wx::MenuBar.new
33
- # The "file" menu
34
- menu_file = Wx::Menu.new
35
- menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
36
- menu_bar.append(menu_file, "&File")
37
-
38
- # The "help" menu
39
- menu_help = Wx::Menu.new
40
- # Using Wx::ID_ABOUT default id means the menu item will be placed
41
- # in the correct platform-specific place - eg on OS X
42
- menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
43
- menu_bar.append(menu_help, "&Help")
44
-
45
- # Assign the menubar to this frame
46
- self.menu_bar = menu_bar
47
-
48
- # Create a status bar
49
- create_status_bar(2)
50
- self.status_text = "Welcome to wxRuby!"
51
-
52
- # Set it up to handle menu events using the relevant methods
53
- evt_menu Wx::ID_EXIT, :on_quit
54
- evt_menu Wx::ID_ABOUT, :on_about
55
- end
56
-
57
- # End the application; it should finish automatically when the last
58
- # window is closed.
59
- def on_quit
60
- close()
61
- end
62
-
63
- # show an 'About' dialog
64
- def on_about
65
- msg = sprintf("This is the About dialog of the minimal sample.\n" \
66
- "Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
67
-
68
- # create a simple message dialog with OK button
69
- about_dlg = Wx::MessageDialog.new( self, msg, 'About Minimal',
70
- Wx::OK|Wx::ICON_INFORMATION )
71
- # Display the dialog on top of and blocking other windows, until
72
- # dismissed by clicking the 'OK' button
73
- about_dlg.show_modal
74
- end
75
- end
76
-
77
- # Wx::App is the container class for any wxruby app. To start an
78
- # application, either define a subclass of Wx::App, create an instance,
79
- # and call its main_loop method, OR, simply call the Wx::App.run class
80
- # method, as shown here.
81
- Wx::App.run do
82
- self.app_name = 'Minimal'
83
- frame = MinimalFrame.new("Minimal wxRuby App")
84
- frame.show
85
- end
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ load 'wx'
11
+ rescue
12
+ raise no_wx_err
13
+ end
14
+ end
15
+
16
+ # This sample shows a fairly minimal Wx::App using a Frame, with a
17
+ # MenuBar and StatusBar but no controls. For the absolute minimum app,
18
+ # see nothing.rb
19
+
20
+ # A Wx::Frame is a self-contained, top-level Window that can contain
21
+ # controls, menubars, and statusbars
22
+ class MinimalFrame < Wx::Frame
23
+ def initialize(title)
24
+ # The main application frame has no parent (nil)
25
+ super(nil, :title => title, :size => [ 400, 300 ])
26
+
27
+ icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
28
+ # PNG can be used on all platforms, but icon type must be specified
29
+ # to work on Windows; OS X doesn't have "Frame" icons.
30
+ self.icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_PNG)
31
+
32
+ menu_bar = Wx::MenuBar.new
33
+ # The "file" menu
34
+ menu_file = Wx::Menu.new
35
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
36
+ menu_bar.append(menu_file, "&File")
37
+
38
+ # The "help" menu
39
+ menu_help = Wx::Menu.new
40
+ # Using Wx::ID_ABOUT default id means the menu item will be placed
41
+ # in the correct platform-specific place - eg on OS X
42
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
43
+ menu_bar.append(menu_help, "&Help")
44
+
45
+ # Assign the menubar to this frame
46
+ self.menu_bar = menu_bar
47
+
48
+ # Create a status bar
49
+ create_status_bar(2)
50
+ self.status_text = "Welcome to wxRuby!"
51
+
52
+ # Set it up to handle menu events using the relevant methods
53
+ evt_menu Wx::ID_EXIT, :on_quit
54
+ evt_menu Wx::ID_ABOUT, :on_about
55
+ end
56
+
57
+ # End the application; it should finish automatically when the last
58
+ # window is closed.
59
+ def on_quit
60
+ close()
61
+ end
62
+
63
+ # show an 'About' dialog
64
+ def on_about
65
+ msg = sprintf("This is the About dialog of the minimal sample.\n" \
66
+ "Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
67
+
68
+ # create a simple message dialog with OK button
69
+ about_dlg = Wx::MessageDialog.new( self, msg, 'About Minimal',
70
+ Wx::OK|Wx::ICON_INFORMATION )
71
+ # Display the dialog on top of and blocking other windows, until
72
+ # dismissed by clicking the 'OK' button
73
+ about_dlg.show_modal
74
+ end
75
+ end
76
+
77
+ # Wx::App is the container class for any wxruby app. To start an
78
+ # application, either define a subclass of Wx::App, create an instance,
79
+ # and call its main_loop method, OR, simply call the Wx::App.run class
80
+ # method, as shown here.
81
+ Wx::App.run do
82
+ self.app_name = 'Minimal'
83
+ frame = MinimalFrame.new("Minimal wxRuby App")
84
+ frame.show
85
+ end
@@ -1,21 +1,21 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- 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
14
- end
15
-
16
- # This is the minimum code to start a WxRuby app - create a Frame, and
17
- # show it.
18
- Wx::App.run do
19
- frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
20
- frame.show
21
- end
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ 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
14
+ end
15
+
16
+ # This is the minimum code to start a WxRuby app - create a Frame, and
17
+ # show it.
18
+ Wx::App.run do
19
+ frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
20
+ frame.show
21
+ end
@@ -1,124 +1,124 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- 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
14
- end
15
-
16
- class InformativeTextCtrl < Wx::TextCtrl
17
- NEWLINE_CORRECTION_FACTOR = 0
18
-
19
- # These text controls are multiline, and may have rich (coloured,
20
- # styled) text in them
21
- STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
22
- def initialize(parent, text)
23
- super(parent, -1, text, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
24
- end
25
-
26
- # more ruby-ish
27
- alias :<< :append_text
28
-
29
- # run through a few useful methods of textctrl and report the results
30
- # as a string
31
- def report()
32
- report = ''
33
- report << 'Insertion Point: ' << get_insertion_point.to_s() << "\n"
34
- report << 'First Line Text: ' << get_line_text(0) << "\n"
35
- report << 'Final Position: ' << get_last_position().to_s() << "\n"
36
- report << 'Selection: ' << get_selection().inspect() << "\n"
37
- report << 'String Selection: ' << get_string_selection().inspect << "\n"
38
- report << 'Position to X, Y: ' <<
39
- position_to_xy( get_insertion_point ).inspect
40
- return report
41
- end
42
- end
43
-
44
- # A read-only text ctrl useful for displaying output
45
- class LogTextCtrl < Wx::TextCtrl
46
- STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
47
- def initialize(parent)
48
- super(parent, -1, '', Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
49
- end
50
- end
51
-
52
- class TextCtrlFrame < Wx::Frame
53
- def initialize(title, pos, size)
54
- super(nil, -1, title, pos, size)
55
-
56
- panel = Wx::Panel.new(self, -1)
57
- sizer = Wx::BoxSizer.new(Wx::VERTICAL)
58
-
59
- @textctrl = InformativeTextCtrl.new(panel, '')
60
- populate_textctrl()
61
- sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
62
-
63
- button = Wx::Button.new(panel, -1, 'Get Info')
64
- sizer.add(button, 0, Wx::ADJUST_MINSIZE|Wx::ALL, 2 )
65
- evt_button(button.get_id) { | e | on_click(e) }
66
-
67
- @log = LogTextCtrl.new(panel)
68
- sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
69
-
70
- panel.set_sizer( sizer )
71
- end
72
-
73
- def populate_textctrl()
74
- @textctrl << "This is some plain text\n"
75
- @textctrl << "Text with green letters and yellow background\n"
76
- @textctrl << "This is some more plain text"
77
- # create a new rich text style
78
- attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
79
- # apply the style from character 26 to character 76
80
- @textctrl.set_style(24, 69, attr)
81
- end
82
-
83
- def construct_menus()
84
- menu_bar = Wx::MenuBar.new()
85
-
86
- menu_file = Wx::Menu.new()
87
- menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
88
- menu_bar.append(menu_file, "&File")
89
- evt_menu(Wx::ID_EXIT) { on_quit() }
90
-
91
- menu_help = Wx::Menu.new()
92
- menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
93
- evt_menu(Wx::ID_ABOUT) { on_about() }
94
- menu_bar.append(menu_help, "&Help")
95
-
96
- set_menu_bar(menu_bar)
97
- end
98
-
99
- def on_click(e)
100
- @log.set_value( @textctrl.report() )
101
- end
102
-
103
- def on_quit()
104
- close(TRUE)
105
- end
106
-
107
- def on_about()
108
- msg = sprintf("This is the About dialog of the textctrl sample.\n" \
109
- "Welcome to %s", Wx::VERSION_STRING)
110
- message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
111
- end
112
- end
113
-
114
- class RbApp < Wx::App
115
- def on_init()
116
- frame = TextCtrlFrame.new("TextCtrl demonstration",
117
- Wx::Point.new(50, 50),
118
- Wx::Size.new(450, 340) )
119
-
120
- frame.show(true)
121
- end
122
- end
123
-
124
- RbApp.new().main_loop()
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ 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
14
+ end
15
+
16
+ class InformativeTextCtrl < Wx::TextCtrl
17
+ NEWLINE_CORRECTION_FACTOR = 0
18
+
19
+ # These text controls are multiline, and may have rich (coloured,
20
+ # styled) text in them
21
+ STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
22
+ def initialize(parent, text)
23
+ super(parent, -1, text, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
24
+ end
25
+
26
+ # more ruby-ish
27
+ alias :<< :append_text
28
+
29
+ # run through a few useful methods of textctrl and report the results
30
+ # as a string
31
+ def report()
32
+ report = ''
33
+ report << 'Insertion Point: ' << get_insertion_point.to_s() << "\n"
34
+ report << 'First Line Text: ' << get_line_text(0) << "\n"
35
+ report << 'Final Position: ' << get_last_position().to_s() << "\n"
36
+ report << 'Selection: ' << get_selection().inspect() << "\n"
37
+ report << 'String Selection: ' << get_string_selection().inspect << "\n"
38
+ report << 'Position to X, Y: ' <<
39
+ position_to_xy( get_insertion_point ).inspect
40
+ return report
41
+ end
42
+ end
43
+
44
+ # A read-only text ctrl useful for displaying output
45
+ class LogTextCtrl < Wx::TextCtrl
46
+ STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
47
+ def initialize(parent)
48
+ super(parent, -1, '', Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, STYLE)
49
+ end
50
+ end
51
+
52
+ class TextCtrlFrame < Wx::Frame
53
+ def initialize(title, pos, size)
54
+ super(nil, -1, title, pos, size)
55
+
56
+ panel = Wx::Panel.new(self, -1)
57
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
58
+
59
+ @textctrl = InformativeTextCtrl.new(panel, '')
60
+ populate_textctrl()
61
+ sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
62
+
63
+ button = Wx::Button.new(panel, -1, 'Get Info')
64
+ sizer.add(button, 0, Wx::ADJUST_MINSIZE|Wx::ALL, 2 )
65
+ evt_button(button.get_id) { | e | on_click(e) }
66
+
67
+ @log = LogTextCtrl.new(panel)
68
+ sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
69
+
70
+ panel.set_sizer( sizer )
71
+ end
72
+
73
+ def populate_textctrl()
74
+ @textctrl << "This is some plain text\n"
75
+ @textctrl << "Text with green letters and yellow background\n"
76
+ @textctrl << "This is some more plain text"
77
+ # create a new rich text style
78
+ attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
79
+ # apply the style from character 26 to character 76
80
+ @textctrl.set_style(24, 69, attr)
81
+ end
82
+
83
+ def construct_menus()
84
+ menu_bar = Wx::MenuBar.new()
85
+
86
+ menu_file = Wx::Menu.new()
87
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
88
+ menu_bar.append(menu_file, "&File")
89
+ evt_menu(Wx::ID_EXIT) { on_quit() }
90
+
91
+ menu_help = Wx::Menu.new()
92
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
93
+ evt_menu(Wx::ID_ABOUT) { on_about() }
94
+ menu_bar.append(menu_help, "&Help")
95
+
96
+ set_menu_bar(menu_bar)
97
+ end
98
+
99
+ def on_click(e)
100
+ @log.set_value( @textctrl.report() )
101
+ end
102
+
103
+ def on_quit()
104
+ close(TRUE)
105
+ end
106
+
107
+ def on_about()
108
+ msg = sprintf("This is the About dialog of the textctrl sample.\n" \
109
+ "Welcome to %s", Wx::VERSION_STRING)
110
+ message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
111
+ end
112
+ end
113
+
114
+ class RbApp < Wx::App
115
+ def on_init()
116
+ frame = TextCtrlFrame.new("TextCtrl demonstration",
117
+ Wx::Point.new(50, 50),
118
+ Wx::Size.new(450, 340) )
119
+
120
+ frame.show(true)
121
+ end
122
+ end
123
+
124
+ RbApp.new().main_loop()