wxruby 1.9.2-i386-mswin32 → 1.9.3-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 (149) hide show
  1. data/LICENSE +53 -53
  2. data/README +299 -299
  3. data/lib/wx/classes/app.rb +6 -0
  4. data/lib/wx/classes/checklistbox.rb +45 -30
  5. data/lib/wx/classes/clipboard.rb +16 -0
  6. data/lib/wx/classes/event.rb +5 -0
  7. data/lib/wx/classes/evthandler.rb +20 -10
  8. data/lib/wx/classes/grid.rb +38 -39
  9. data/lib/wx/classes/listctrl.rb +12 -0
  10. data/lib/wx/classes/mediactrl.rb +22 -0
  11. data/lib/wx/classes/menu.rb +6 -6
  12. data/lib/wx/classes/sound.rb +23 -0
  13. data/lib/wx/classes/styledtextctrl.rb +2 -2
  14. data/lib/wx/classes/treectrl.rb +26 -0
  15. data/lib/wx/keyword_ctors.rb +19 -5
  16. data/lib/wx/keyword_defs.rb +20 -0
  17. data/lib/wx/version.rb +1 -1
  18. data/lib/wx.rb +42 -42
  19. data/lib/wxruby2.exp +0 -0
  20. data/lib/wxruby2.lib +0 -0
  21. data/lib/wxruby2.so +0 -0
  22. data/samples/SAMPLES-LICENSE.TXT +17 -17
  23. data/samples/aui/aui.rb +8 -1
  24. data/samples/bigdemo/About.rbw +39 -39
  25. data/samples/bigdemo/ColorPanel.rbw +25 -25
  26. data/samples/bigdemo/GridSimple.rbw +80 -80
  27. data/samples/bigdemo/MDIDemo.rbw +59 -59
  28. data/samples/bigdemo/PopupMenu.rbw +151 -151
  29. data/samples/bigdemo/Sizers.rbw +545 -545
  30. data/samples/bigdemo/bigdemo.rb +826 -826
  31. data/samples/bigdemo/demoTemplate.rbw +37 -37
  32. data/samples/bigdemo/icons/choice.xpm +27 -27
  33. data/samples/bigdemo/icons/combo.xpm +27 -27
  34. data/samples/bigdemo/icons/copy.xpm +25 -25
  35. data/samples/bigdemo/icons/cut.xpm +24 -24
  36. data/samples/bigdemo/icons/gauge.xpm +27 -27
  37. data/samples/bigdemo/icons/help.xpm +25 -25
  38. data/samples/bigdemo/icons/list.xpm +27 -27
  39. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  40. data/samples/bigdemo/icons/new.xpm +24 -24
  41. data/samples/bigdemo/icons/ogl.ico +0 -0
  42. data/samples/bigdemo/icons/ogl.xpm +45 -45
  43. data/samples/bigdemo/icons/open.xpm +26 -26
  44. data/samples/bigdemo/icons/paste.xpm +38 -38
  45. data/samples/bigdemo/icons/preview.xpm +26 -26
  46. data/samples/bigdemo/icons/print.xpm +26 -26
  47. data/samples/bigdemo/icons/radio.xpm +27 -27
  48. data/samples/bigdemo/icons/robert.xpm +415 -415
  49. data/samples/bigdemo/icons/save.xpm +25 -25
  50. data/samples/bigdemo/icons/smiles.xpm +39 -39
  51. data/samples/bigdemo/icons/smiley.xpm +42 -42
  52. data/samples/bigdemo/icons/stattext.xpm +24 -24
  53. data/samples/bigdemo/icons/test2.bmp +0 -0
  54. data/samples/bigdemo/icons/test2.xpm +79 -79
  55. data/samples/bigdemo/icons/text.xpm +27 -27
  56. data/samples/bigdemo/icons/tog1.xpm +38 -38
  57. data/samples/bigdemo/icons/tog2.xpm +38 -38
  58. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  59. data/samples/bigdemo/tips.txt +7 -7
  60. data/samples/bigdemo/utils.rb +11 -11
  61. data/samples/bigdemo/wxButton.rbw +66 -66
  62. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  63. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  64. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  65. data/samples/bigdemo/wxChoice.rbw +49 -49
  66. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  67. data/samples/bigdemo/wxComboBox.rbw +79 -79
  68. data/samples/bigdemo/wxDialog.rbw +92 -92
  69. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  70. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  71. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  72. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  73. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  74. data/samples/bigdemo/wxFrame.rbw +55 -55
  75. data/samples/bigdemo/wxGauge.rbw +73 -73
  76. data/samples/bigdemo/wxGrid.rbw +68 -68
  77. data/samples/bigdemo/wxListBox.rbw +142 -142
  78. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  79. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  80. data/samples/bigdemo/wxMenu.rbw +238 -238
  81. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  82. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  83. data/samples/bigdemo/wxNotebook.rbw +138 -138
  84. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  85. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  86. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  87. data/samples/bigdemo/wxSashWindow.rbw +94 -104
  88. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  89. data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
  90. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  91. data/samples/bigdemo/wxSlider.rbw +44 -44
  92. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  93. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  94. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  95. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  96. data/samples/bigdemo/wxStaticText.rbw +57 -57
  97. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  98. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  99. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  100. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  101. data/samples/bigdemo/wxToolBar.rbw +133 -133
  102. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  103. data/samples/calendar/calendar.rb +275 -275
  104. data/samples/caret/caret.rb +286 -286
  105. data/samples/caret/mondrian.xpm +44 -44
  106. data/samples/controls/controls.rb +1140 -1140
  107. data/samples/controls/get_item_sample.rb +87 -87
  108. data/samples/controls/icons/choice.xpm +27 -27
  109. data/samples/controls/icons/combo.xpm +27 -27
  110. data/samples/controls/icons/gauge.xpm +27 -27
  111. data/samples/controls/icons/list.xpm +27 -27
  112. data/samples/controls/icons/radio.xpm +27 -27
  113. data/samples/controls/icons/stattext.xpm +24 -24
  114. data/samples/controls/icons/text.xpm +27 -27
  115. data/samples/controls/mondrian.xpm +44 -44
  116. data/samples/dialogs/dialogs.rb +724 -724
  117. data/samples/dialogs/tips.txt +18 -18
  118. data/samples/drawing/graphics_drawing.rb +232 -0
  119. data/samples/{images → drawing}/images.rb +48 -48
  120. data/samples/{images → drawing}/paperclip.png +0 -0
  121. data/samples/etc/activation.rb +108 -108
  122. data/samples/etc/choice.rb +72 -72
  123. data/samples/etc/miniframe.rb +84 -84
  124. data/samples/etc/sash.rb +135 -135
  125. data/samples/etc/scrollwin.rb +116 -116
  126. data/samples/etc/system_settings.rb +258 -258
  127. data/samples/etc/wizard.rb +79 -79
  128. data/samples/grid/grid.rb +1 -0
  129. data/samples/listbook/listbook.rb +181 -181
  130. data/samples/listbook/listbook.xrc +370 -370
  131. data/samples/mdi/mdi.rb +87 -87
  132. data/samples/media/mediactrl.rb +173 -0
  133. data/samples/minimal/minimal.rb +85 -85
  134. data/samples/minimal/nothing.rb +21 -21
  135. data/samples/opengl/cube.rb +123 -0
  136. data/samples/sockets/SocketPackets.rb +27 -0
  137. data/samples/sockets/res/message-new.png +0 -0
  138. data/samples/sockets/res/user.png +0 -0
  139. data/samples/sockets/wxClient.rb +395 -0
  140. data/samples/sockets/wxServer.rb +422 -0
  141. data/samples/sockets/wxSocketGUI.rb +97 -0
  142. data/samples/text/textctrl.rb +124 -124
  143. data/samples/text/unicode.rb +238 -238
  144. data/samples/text/utf8.txt +14 -14
  145. data/samples/treectrl/treectrl.rb +1180 -1181
  146. data/samples/xrc/samples.xrc +46 -46
  147. data/samples/xrc/xrc_sample.rb +107 -107
  148. metadata +26 -9
  149. data/samples/images/Thumbs.db +0 -0
@@ -1,72 +1,72 @@
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
- include Wx
16
-
17
- ID_CHOICE = 1000
18
-
19
- class ChoiceDlg < Dialog
20
- def initialize
21
- super(nil, -1, "ChoiceDialog", DEFAULT_POSITION, Size.new(185, 185))
22
-
23
- list = [ "ABS", "Airbag", "Air conditioning" ]
24
-
25
- @m_pChoice = Choice.new(self, ID_CHOICE, DEFAULT_POSITION, DEFAULT_SIZE, list)
26
- @m_pChoice.append("Automatic gear", 100)
27
-
28
- @m_pLabel = StaticText.new(self, -1, "default")
29
- dlgSizer = BoxSizer.new(HORIZONTAL)
30
- choiceSizer = BoxSizer.new(VERTICAL)
31
- choiceSizer.add(@m_pChoice, 1, GROW)
32
- choiceSizer.add(@m_pLabel)
33
- dlgSizer.add(choiceSizer, 1, GROW)
34
- set_sizer(dlgSizer)
35
- set_auto_layout(TRUE)
36
- layout()
37
-
38
- evt_choice(ID_CHOICE) {|event| onChoice(event) }
39
- evt_close {onClose}
40
- end
41
-
42
- def onChoice(event)
43
- chose = event.get_selection
44
- data = event.get_client_data
45
- # NOTE: uninitialized client data will be false, not nil
46
- if(!data)
47
- data = 0
48
- end
49
- data += 1
50
- @m_pLabel.set_label(data.to_s)
51
-
52
- @m_pChoice.set_selection(chose)
53
- @m_pChoice.set_client_data(chose, data)
54
- end
55
-
56
- def onClose
57
- destroy()
58
- end
59
- end
60
-
61
-
62
- class RbApp < App
63
- def on_init
64
- dlg = ChoiceDlg.new
65
- set_top_window(dlg)
66
- dlg.show(TRUE)
67
- end
68
-
69
- end
70
-
71
- a = RbApp.new
72
- 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
+ include Wx
16
+
17
+ ID_CHOICE = 1000
18
+
19
+ class ChoiceDlg < Dialog
20
+ def initialize
21
+ super(nil, -1, "ChoiceDialog", DEFAULT_POSITION, Size.new(185, 185))
22
+
23
+ list = [ "ABS", "Airbag", "Air conditioning" ]
24
+
25
+ @m_pChoice = Choice.new(self, ID_CHOICE, DEFAULT_POSITION, DEFAULT_SIZE, list)
26
+ @m_pChoice.append("Automatic gear", 100)
27
+
28
+ @m_pLabel = StaticText.new(self, -1, "default")
29
+ dlgSizer = BoxSizer.new(HORIZONTAL)
30
+ choiceSizer = BoxSizer.new(VERTICAL)
31
+ choiceSizer.add(@m_pChoice, 1, GROW)
32
+ choiceSizer.add(@m_pLabel)
33
+ dlgSizer.add(choiceSizer, 1, GROW)
34
+ set_sizer(dlgSizer)
35
+ set_auto_layout(TRUE)
36
+ layout()
37
+
38
+ evt_choice(ID_CHOICE) {|event| onChoice(event) }
39
+ evt_close {onClose}
40
+ end
41
+
42
+ def onChoice(event)
43
+ chose = event.get_selection
44
+ data = event.get_client_data
45
+ # NOTE: uninitialized client data will be false, not nil
46
+ if(!data)
47
+ data = 0
48
+ end
49
+ data += 1
50
+ @m_pLabel.set_label(data.to_s)
51
+
52
+ @m_pChoice.set_selection(chose)
53
+ @m_pChoice.set_client_data(chose, data)
54
+ end
55
+
56
+ def onClose
57
+ destroy()
58
+ end
59
+ end
60
+
61
+
62
+ class RbApp < App
63
+ def on_init
64
+ dlg = ChoiceDlg.new
65
+ set_top_window(dlg)
66
+ dlg.show(TRUE)
67
+ end
68
+
69
+ end
70
+
71
+ a = RbApp.new
72
+ a.main_loop()
@@ -1,84 +1,84 @@
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 MyFrame < Wx::Frame
17
- attr_reader :mini
18
-
19
- def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
20
- super(nil, -1, title, pos, size, style)
21
-
22
-
23
- menuFile = Wx::Menu.new()
24
- helpMenu = Wx::Menu.new()
25
- helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
26
- menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
27
- menuBar = Wx::MenuBar.new()
28
- menuBar.append(menuFile, "&File")
29
- menuBar.append(helpMenu, "&Help")
30
- set_menu_bar(menuBar)
31
-
32
- create_status_bar(2)
33
- set_status_text("Welcome to wxRuby!")
34
-
35
- evt_menu(Wx::ID_EXIT) { on_quit }
36
- evt_menu(Wx::ID_ABOUT) { on_about }
37
-
38
- make_miniframe()
39
- end
40
-
41
- def make_miniframe
42
- @mini = Wx::MiniFrame.new(self, -1, 'Mini Frame',
43
- Wx::Point.new(300, 75), Wx::Size.new(300, 150),
44
- Wx::DEFAULT_FRAME_STYLE|Wx::STAY_ON_TOP)
45
- sizer = Wx::BoxSizer.new(Wx::VERTICAL)
46
- text = Wx::StaticText.new(mini, -1, 'This is a MiniFrame.')
47
- sizer.add(text, 0, Wx::ALL, 2)
48
- text = Wx::StaticText.new(mini, -1, 'It has a small title bar so it')
49
- sizer.add(text, 0, Wx::ALL, 2)
50
- text = Wx::StaticText.new(mini, -1, 'doesn\'t take up too much space.')
51
- sizer.add(text, 0, Wx::ALL, 2)
52
- text = Wx::StaticText.new(mini, -1, 'This MiniFrame has been set to')
53
- sizer.add(text, 0, Wx::ALL, 2)
54
- text = Wx::StaticText.new(mini, -1, 'stay above the main app window.')
55
- sizer.add(text, 0, Wx::ALL, 2)
56
- mini.set_sizer(sizer)
57
- mini.show()
58
- mini.raise()
59
- end
60
-
61
- def on_quit
62
- mini.close()
63
- close()
64
- end
65
-
66
- def on_about
67
- msg = sprintf("This is the About dialog of the miniframe sample.\n" \
68
- "Welcome to %s", Wx::VERSION_STRING)
69
- Wx::message_box(msg, "About MiniFrame", Wx::OK|Wx::ICON_INFORMATION, self)
70
- end
71
- end
72
-
73
- class RbApp < Wx::App
74
- def on_init
75
- frame = MyFrame.new("Mini Frame wxRuby App",
76
- Wx::Point.new(50, 50),
77
- Wx::Size.new(450, 340))
78
- frame.show()
79
- end
80
- end
81
-
82
- app = RbApp.new
83
- app.main_loop()
84
-
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 MyFrame < Wx::Frame
17
+ attr_reader :mini
18
+
19
+ def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
20
+ super(nil, -1, title, pos, size, style)
21
+
22
+
23
+ menuFile = Wx::Menu.new()
24
+ helpMenu = Wx::Menu.new()
25
+ helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
26
+ menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
27
+ menuBar = Wx::MenuBar.new()
28
+ menuBar.append(menuFile, "&File")
29
+ menuBar.append(helpMenu, "&Help")
30
+ set_menu_bar(menuBar)
31
+
32
+ create_status_bar(2)
33
+ set_status_text("Welcome to wxRuby!")
34
+
35
+ evt_menu(Wx::ID_EXIT) { on_quit }
36
+ evt_menu(Wx::ID_ABOUT) { on_about }
37
+
38
+ make_miniframe()
39
+ end
40
+
41
+ def make_miniframe
42
+ @mini = Wx::MiniFrame.new(self, -1, 'Mini Frame',
43
+ Wx::Point.new(300, 75), Wx::Size.new(300, 150),
44
+ Wx::DEFAULT_FRAME_STYLE|Wx::STAY_ON_TOP)
45
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
46
+ text = Wx::StaticText.new(mini, -1, 'This is a MiniFrame.')
47
+ sizer.add(text, 0, Wx::ALL, 2)
48
+ text = Wx::StaticText.new(mini, -1, 'It has a small title bar so it')
49
+ sizer.add(text, 0, Wx::ALL, 2)
50
+ text = Wx::StaticText.new(mini, -1, 'doesn\'t take up too much space.')
51
+ sizer.add(text, 0, Wx::ALL, 2)
52
+ text = Wx::StaticText.new(mini, -1, 'This MiniFrame has been set to')
53
+ sizer.add(text, 0, Wx::ALL, 2)
54
+ text = Wx::StaticText.new(mini, -1, 'stay above the main app window.')
55
+ sizer.add(text, 0, Wx::ALL, 2)
56
+ mini.set_sizer(sizer)
57
+ mini.show()
58
+ mini.raise()
59
+ end
60
+
61
+ def on_quit
62
+ mini.close()
63
+ close()
64
+ end
65
+
66
+ def on_about
67
+ msg = sprintf("This is the About dialog of the miniframe sample.\n" \
68
+ "Welcome to %s", Wx::VERSION_STRING)
69
+ Wx::message_box(msg, "About MiniFrame", Wx::OK|Wx::ICON_INFORMATION, self)
70
+ end
71
+ end
72
+
73
+ class RbApp < Wx::App
74
+ def on_init
75
+ frame = MyFrame.new("Mini Frame wxRuby App",
76
+ Wx::Point.new(50, 50),
77
+ Wx::Size.new(450, 340))
78
+ frame.show()
79
+ end
80
+ end
81
+
82
+ app = RbApp.new
83
+ app.main_loop()
84
+
data/samples/etc/sash.rb CHANGED
@@ -1,135 +1,135 @@
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 MySashFrame < Wx::Frame
17
- def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
18
- super(nil, -1, title, pos, size, style)
19
-
20
-
21
- menuFile = Wx::Menu.new()
22
- helpMenu = Wx::Menu.new()
23
- helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
24
- menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
25
- menuBar = Wx::MenuBar.new()
26
- menuBar.append(menuFile, "&File")
27
- menuBar.append(helpMenu, "&Help")
28
- set_menu_bar(menuBar)
29
-
30
- create_status_bar(2)
31
- set_status_text("wxRuby Sash sample")
32
-
33
- evt_menu(Wx::ID_EXIT) { on_quit }
34
- evt_menu(Wx::ID_ABOUT) { on_about }
35
-
36
- # Start creating the sashes - these are created from outermost
37
- # inwards.
38
- sash = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
39
- Wx::Size.new(150, self.get_size.y) )
40
- # The default width of the sash is 150 pixels, and it extends the
41
- # full height of the frame
42
- sash.set_default_size( Wx::Size.new(150, self.get_size.y) )
43
- # This sash splits the frame top to bottom
44
- sash.set_orientation(Wx::LAYOUT_VERTICAL)
45
- # Place the sash on the left of the frame
46
- sash.set_alignment(Wx::LAYOUT_LEFT)
47
- # Show a drag bar on the right of the sash
48
- sash.set_sash_visible(Wx::SASH_RIGHT, true)
49
- sash.set_background_colour(Wx::Colour.new(225, 200, 200) )
50
-
51
- panel = Wx::Panel.new(sash)
52
- v_siz = Wx::BoxSizer.new(Wx::VERTICAL)
53
- chk_1 = Wx::CheckBox.new(panel, -1, 'test 1')
54
- v_siz.add(chk_1, 0, Wx::ADJUST_MINSIZE)
55
- chk_2 = Wx::CheckBox.new(panel, -1, 'test 2')
56
- v_siz.add(chk_2, 0, Wx::ADJUST_MINSIZE)
57
- panel.set_sizer_and_fit(v_siz)
58
-
59
- # handle the sash being dragged
60
- evt_sash_dragged( sash.get_id ) { | e | on_v_sash_dragged(sash, e) }
61
-
62
- # Create another small sash on the bottom of the frame
63
- sash_2 = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
64
- Wx::Size.new(self.get_size.x,
65
- 100),
66
- Wx::SW_3DSASH)
67
- sash_2.set_default_size( Wx::Size.new(self.get_size.x, 100) )
68
- sash_2.set_orientation(Wx::LAYOUT_HORIZONTAL)
69
- sash_2.set_alignment(Wx::LAYOUT_BOTTOM)
70
- sash_2.set_sash_visible(Wx::SASH_TOP, true)
71
- text = Wx::StaticText.new(sash_2, -1, 'This is the second sash window')
72
- evt_sash_dragged( sash_2.get_id ) { | e | on_h_sash_dragged(sash_2, e) }
73
-
74
- # The main panel - the residual part of the frame that takes up all
75
- # remaining space not used by the sash windows.
76
- @m_panel = Wx::Panel.new(self, -1)
77
- sizer = Wx::BoxSizer.new(Wx::VERTICAL)
78
-
79
- txt = Wx::TextCtrl.new(@m_panel, -1, 'Main panel area',
80
- Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
81
- Wx::SUNKEN_BORDER|Wx::TE_MULTILINE)
82
- sizer.add(txt, 1, Wx::EXPAND|Wx::ADJUST_MINSIZE|Wx::ALL, 10)
83
- @m_panel.set_sizer_and_fit(sizer)
84
-
85
- # Adjust the size of the sashes when the frame is resized
86
- evt_size { | e | on_size(e) }
87
-
88
- # Call LayoutAlgorithm#layout_frame to layout the sashes.
89
- # The second argument is the residual window that takes up remaining
90
- # space
91
- Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
92
- end
93
-
94
- def on_v_sash_dragged(sash, e)
95
- # Call get_drag_rect to get the new size
96
- size = Wx::Size.new( e.get_drag_rect.width(), self.get_size.y )
97
- sash.set_default_size( size )
98
- Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
99
- end
100
-
101
- def on_h_sash_dragged(sash, e)
102
- size = Wx::Size.new( self.get_size.x, e.get_drag_rect.height() )
103
- sash.set_default_size( size )
104
- Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
105
- end
106
-
107
- def on_size(e)
108
- e.skip()
109
- Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
110
- end
111
-
112
- def on_quit
113
- close(true)
114
- end
115
-
116
- def on_about
117
- msg = sprintf("This is the About dialog of the sash sample.\n" \
118
- "Welcome to %s", Wx::VERSION_STRING)
119
- Wx::message_box(msg, "About Sash", Wx::OK|Wx::ICON_INFORMATION, self)
120
- end
121
- end
122
-
123
- class SashApp < Wx::App
124
- def on_init
125
- frame = MySashFrame.new("Sash Layout wxRuby App",
126
- Wx::Point.new(50, 50),
127
- Wx::Size.new(450, 340))
128
-
129
- frame.show(true)
130
-
131
- end
132
- end
133
-
134
- app = SashApp.new
135
- app.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 MySashFrame < Wx::Frame
17
+ def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
18
+ super(nil, -1, title, pos, size, style)
19
+
20
+
21
+ menuFile = Wx::Menu.new()
22
+ helpMenu = Wx::Menu.new()
23
+ helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
24
+ menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
25
+ menuBar = Wx::MenuBar.new()
26
+ menuBar.append(menuFile, "&File")
27
+ menuBar.append(helpMenu, "&Help")
28
+ set_menu_bar(menuBar)
29
+
30
+ create_status_bar(2)
31
+ set_status_text("wxRuby Sash sample")
32
+
33
+ evt_menu(Wx::ID_EXIT) { on_quit }
34
+ evt_menu(Wx::ID_ABOUT) { on_about }
35
+
36
+ # Start creating the sashes - these are created from outermost
37
+ # inwards.
38
+ sash = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
39
+ Wx::Size.new(150, self.get_size.y) )
40
+ # The default width of the sash is 150 pixels, and it extends the
41
+ # full height of the frame
42
+ sash.set_default_size( Wx::Size.new(150, self.get_size.y) )
43
+ # This sash splits the frame top to bottom
44
+ sash.set_orientation(Wx::LAYOUT_VERTICAL)
45
+ # Place the sash on the left of the frame
46
+ sash.set_alignment(Wx::LAYOUT_LEFT)
47
+ # Show a drag bar on the right of the sash
48
+ sash.set_sash_visible(Wx::SASH_RIGHT, true)
49
+ sash.set_background_colour(Wx::Colour.new(225, 200, 200) )
50
+
51
+ panel = Wx::Panel.new(sash)
52
+ v_siz = Wx::BoxSizer.new(Wx::VERTICAL)
53
+ chk_1 = Wx::CheckBox.new(panel, -1, 'test 1')
54
+ v_siz.add(chk_1, 0, Wx::ADJUST_MINSIZE)
55
+ chk_2 = Wx::CheckBox.new(panel, -1, 'test 2')
56
+ v_siz.add(chk_2, 0, Wx::ADJUST_MINSIZE)
57
+ panel.set_sizer_and_fit(v_siz)
58
+
59
+ # handle the sash being dragged
60
+ evt_sash_dragged( sash.get_id ) { | e | on_v_sash_dragged(sash, e) }
61
+
62
+ # Create another small sash on the bottom of the frame
63
+ sash_2 = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
64
+ Wx::Size.new(self.get_size.x,
65
+ 100),
66
+ Wx::SW_3DSASH)
67
+ sash_2.set_default_size( Wx::Size.new(self.get_size.x, 100) )
68
+ sash_2.set_orientation(Wx::LAYOUT_HORIZONTAL)
69
+ sash_2.set_alignment(Wx::LAYOUT_BOTTOM)
70
+ sash_2.set_sash_visible(Wx::SASH_TOP, true)
71
+ text = Wx::StaticText.new(sash_2, -1, 'This is the second sash window')
72
+ evt_sash_dragged( sash_2.get_id ) { | e | on_h_sash_dragged(sash_2, e) }
73
+
74
+ # The main panel - the residual part of the frame that takes up all
75
+ # remaining space not used by the sash windows.
76
+ @m_panel = Wx::Panel.new(self, -1)
77
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
78
+
79
+ txt = Wx::TextCtrl.new(@m_panel, -1, 'Main panel area',
80
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
81
+ Wx::SUNKEN_BORDER|Wx::TE_MULTILINE)
82
+ sizer.add(txt, 1, Wx::EXPAND|Wx::ADJUST_MINSIZE|Wx::ALL, 10)
83
+ @m_panel.set_sizer_and_fit(sizer)
84
+
85
+ # Adjust the size of the sashes when the frame is resized
86
+ evt_size { | e | on_size(e) }
87
+
88
+ # Call LayoutAlgorithm#layout_frame to layout the sashes.
89
+ # The second argument is the residual window that takes up remaining
90
+ # space
91
+ Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
92
+ end
93
+
94
+ def on_v_sash_dragged(sash, e)
95
+ # Call get_drag_rect to get the new size
96
+ size = Wx::Size.new( e.get_drag_rect.width(), self.get_size.y )
97
+ sash.set_default_size( size )
98
+ Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
99
+ end
100
+
101
+ def on_h_sash_dragged(sash, e)
102
+ size = Wx::Size.new( self.get_size.x, e.get_drag_rect.height() )
103
+ sash.set_default_size( size )
104
+ Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
105
+ end
106
+
107
+ def on_size(e)
108
+ e.skip()
109
+ Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
110
+ end
111
+
112
+ def on_quit
113
+ close(true)
114
+ end
115
+
116
+ def on_about
117
+ msg = sprintf("This is the About dialog of the sash sample.\n" \
118
+ "Welcome to %s", Wx::VERSION_STRING)
119
+ Wx::message_box(msg, "About Sash", Wx::OK|Wx::ICON_INFORMATION, self)
120
+ end
121
+ end
122
+
123
+ class SashApp < Wx::App
124
+ def on_init
125
+ frame = MySashFrame.new("Sash Layout wxRuby App",
126
+ Wx::Point.new(50, 50),
127
+ Wx::Size.new(450, 340))
128
+
129
+ frame.show(true)
130
+
131
+ end
132
+ end
133
+
134
+ app = SashApp.new
135
+ app.main_loop()