wxruby 1.9.0-i386-mswin32 → 1.9.1-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 (136) hide show
  1. data/lib/wx.rb +42 -35
  2. data/lib/wx/accessors.rb +52 -0
  3. data/lib/wx/classes/evthandler.rb +36 -32
  4. data/lib/wx/classes/grid.rb +13 -13
  5. data/lib/wx/classes/point.rb +43 -0
  6. data/lib/wx/classes/size.rb +44 -0
  7. data/lib/wx/classes/styledtextctrl.rb +92 -0
  8. data/lib/wx/classes/textctrl.rb +14 -0
  9. data/lib/wx/classes/window.rb +4 -0
  10. data/lib/wx/keyword_ctors.rb +219 -0
  11. data/lib/wx/keyword_defs.rb +455 -0
  12. data/lib/wx/version.rb +1 -1
  13. data/lib/wxruby2.exp +0 -0
  14. data/lib/wxruby2.lib +0 -0
  15. data/lib/wxruby2.so +0 -0
  16. data/samples/SAMPLES-LICENSE.TXT +17 -17
  17. data/samples/aui/aui.rb +6 -5
  18. data/samples/bigdemo/About.rbw +39 -39
  19. data/samples/bigdemo/ColorPanel.rbw +25 -25
  20. data/samples/bigdemo/GridSimple.rbw +80 -80
  21. data/samples/bigdemo/MDIDemo.rbw +59 -59
  22. data/samples/bigdemo/PopupMenu.rbw +151 -151
  23. data/samples/bigdemo/Sizers.rbw +545 -545
  24. data/samples/bigdemo/bigdemo.rb +826 -826
  25. data/samples/bigdemo/demoTemplate.rbw +37 -37
  26. data/samples/bigdemo/icons/choice.xpm +27 -27
  27. data/samples/bigdemo/icons/combo.xpm +27 -27
  28. data/samples/bigdemo/icons/copy.xpm +25 -25
  29. data/samples/bigdemo/icons/cut.xpm +24 -24
  30. data/samples/bigdemo/icons/gauge.xpm +27 -27
  31. data/samples/bigdemo/icons/help.xpm +25 -25
  32. data/samples/bigdemo/icons/list.xpm +27 -27
  33. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  34. data/samples/bigdemo/icons/new.xpm +24 -24
  35. data/samples/bigdemo/icons/ogl.ico +0 -0
  36. data/samples/bigdemo/icons/ogl.xpm +45 -45
  37. data/samples/bigdemo/icons/open.xpm +26 -26
  38. data/samples/bigdemo/icons/paste.xpm +38 -38
  39. data/samples/bigdemo/icons/preview.xpm +26 -26
  40. data/samples/bigdemo/icons/print.xpm +26 -26
  41. data/samples/bigdemo/icons/radio.xpm +27 -27
  42. data/samples/bigdemo/icons/robert.xpm +415 -415
  43. data/samples/bigdemo/icons/save.xpm +25 -25
  44. data/samples/bigdemo/icons/smiles.xpm +39 -39
  45. data/samples/bigdemo/icons/smiley.xpm +42 -42
  46. data/samples/bigdemo/icons/stattext.xpm +24 -24
  47. data/samples/bigdemo/icons/test2.bmp +0 -0
  48. data/samples/bigdemo/icons/test2.xpm +79 -79
  49. data/samples/bigdemo/icons/text.xpm +27 -27
  50. data/samples/bigdemo/icons/tog1.xpm +38 -38
  51. data/samples/bigdemo/icons/tog2.xpm +38 -38
  52. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  53. data/samples/bigdemo/tips.txt +7 -7
  54. data/samples/bigdemo/utils.rb +11 -11
  55. data/samples/bigdemo/wxButton.rbw +66 -66
  56. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  57. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  58. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  59. data/samples/bigdemo/wxChoice.rbw +49 -49
  60. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  61. data/samples/bigdemo/wxComboBox.rbw +79 -79
  62. data/samples/bigdemo/wxDialog.rbw +92 -92
  63. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  64. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  65. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  66. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  67. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  68. data/samples/bigdemo/wxFrame.rbw +55 -55
  69. data/samples/bigdemo/wxGauge.rbw +73 -73
  70. data/samples/bigdemo/wxGrid.rbw +68 -68
  71. data/samples/bigdemo/wxListBox.rbw +142 -142
  72. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  73. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  74. data/samples/bigdemo/wxMenu.rbw +238 -238
  75. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  76. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  77. data/samples/bigdemo/wxNotebook.rbw +138 -138
  78. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  79. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  80. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  81. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  82. data/samples/bigdemo/wxScrolledWindow.rbw +196 -196
  83. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  84. data/samples/bigdemo/wxSlider.rbw +44 -44
  85. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  86. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  87. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  88. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  89. data/samples/bigdemo/wxStaticText.rbw +57 -57
  90. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  91. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  92. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  93. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  94. data/samples/bigdemo/wxToolBar.rbw +133 -133
  95. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  96. data/samples/calendar/calendar.rb +275 -275
  97. data/samples/caret/caret.rb +296 -296
  98. data/samples/caret/mondrian.xpm +44 -44
  99. data/samples/controls/controls.rb +1140 -1140
  100. data/samples/controls/get_item_sample.rb +87 -87
  101. data/samples/controls/icons/choice.xpm +27 -27
  102. data/samples/controls/icons/combo.xpm +27 -27
  103. data/samples/controls/icons/gauge.xpm +27 -27
  104. data/samples/controls/icons/list.xpm +27 -27
  105. data/samples/controls/icons/radio.xpm +27 -27
  106. data/samples/controls/icons/stattext.xpm +24 -24
  107. data/samples/controls/icons/text.xpm +27 -27
  108. data/samples/controls/mondrian.xpm +44 -44
  109. data/samples/dialogs/dialogs.rb +724 -724
  110. data/samples/dialogs/tips.txt +18 -18
  111. data/samples/etc/activation.rb +108 -108
  112. data/samples/etc/choice.rb +72 -72
  113. data/samples/etc/miniframe.rb +84 -84
  114. data/samples/etc/sash.rb +135 -135
  115. data/samples/etc/scrollwin.rb +116 -116
  116. data/samples/etc/system_settings.rb +258 -258
  117. data/samples/etc/wizard.rb +81 -81
  118. data/samples/event/event.rb +184 -0
  119. data/samples/images/images.rb +48 -48
  120. data/samples/listbook/listbook.rb +183 -183
  121. data/samples/listbook/listbook.xrc +370 -370
  122. data/samples/mdi/mdi.rb +87 -87
  123. data/samples/minimal/minimal.rb +83 -95
  124. data/samples/minimal/mondrian.png +0 -0
  125. data/samples/minimal/nothing.rb +46 -46
  126. data/samples/minimal/text.rb +35 -35
  127. data/samples/text/scintilla.rb +22 -28
  128. data/samples/text/textctrl.rb +124 -124
  129. data/samples/text/unicode.rb +238 -238
  130. data/samples/text/utf8.txt +14 -14
  131. data/samples/treectrl/treectrl.rb +1210 -1210
  132. data/samples/xrc/samples.xrc +46 -46
  133. data/samples/xrc/xrc_sample.rb +107 -107
  134. metadata +13 -5
  135. data/samples/minimal/mondrian.ico +0 -0
  136. data/samples/minimal/mondrian.xpm +0 -44
@@ -1,34 +1,34 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- module Demo
15
- def Demo.run(frame, nb, log)
16
- dlg = Wx::TextEntryDialog.new(frame, "What is your favorite programming language?", "Duh??", "Ruby")
17
- dlg.set_value("Ruby is the best!")
18
- if dlg.show_modal() == Wx::ID_OK
19
- log.write_text("You entered: " + dlg.get_value().to_s + "\n")
20
- end
21
- dlg.destroy()
22
- return nil
23
- end
24
-
25
- def Demo.overview
26
- return "This dialog allows the user to input text"
27
- end
28
- end
29
-
30
- if __FILE__ == $0
31
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
32
- load run_solo_lib
33
- run File.basename($0)
34
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ module Demo
15
+ def Demo.run(frame, nb, log)
16
+ dlg = Wx::TextEntryDialog.new(frame, "What is your favorite programming language?", "Duh??", "Ruby")
17
+ dlg.set_value("Ruby is the best!")
18
+ if dlg.show_modal() == Wx::ID_OK
19
+ log.write_text("You entered: " + dlg.get_value().to_s + "\n")
20
+ end
21
+ dlg.destroy()
22
+ return nil
23
+ end
24
+
25
+ def Demo.overview
26
+ return "This dialog allows the user to input text"
27
+ end
28
+ end
29
+
30
+ if __FILE__ == $0
31
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
32
+ load run_solo_lib
33
+ run File.basename($0)
34
+ end
@@ -1,51 +1,51 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- class TestPanel < Wx::Panel
15
- def initialize(parent, log)
16
- super(parent, -1)
17
- @log = log
18
- panel = Wx::Panel.new(self, -1)
19
- buttons = Wx::BoxSizer.new(Wx::HORIZONTAL)
20
- "These are toggle buttons".split().each do |word|
21
- b = Wx::ToggleButton.new(panel, -1, word)
22
- evt_togglebutton(b.get_id()) {|event| on_toggle(event)}
23
- buttons.add(b, 0, Wx::ALL, 5)
24
- end
25
- panel.set_sizer(buttons)
26
- buttons.fit(panel)
27
- panel.move(Wx::Point.new(50,50))
28
- end
29
-
30
- def on_toggle(event)
31
- @log.write_text("Button " + event.get_id().to_s() + " toggled")
32
- end
33
- end
34
-
35
- module Demo
36
- def Demo.run(frame,nb,log)
37
- win = TestPanel.new(nb, log)
38
- return win
39
- end
40
-
41
- def Demo.overview
42
- "Wx::ToggleButton is a button that stays pressed when clicked by the user. In other words, it is similar to Wx::CheckBox in functionality but looks like a Wx::Button."
43
- end
44
- end
45
-
46
-
47
- if __FILE__ == $0
48
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
49
- load run_solo_lib
50
- run File.basename($0)
51
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ class TestPanel < Wx::Panel
15
+ def initialize(parent, log)
16
+ super(parent, -1)
17
+ @log = log
18
+ panel = Wx::Panel.new(self, -1)
19
+ buttons = Wx::BoxSizer.new(Wx::HORIZONTAL)
20
+ "These are toggle buttons".split().each do |word|
21
+ b = Wx::ToggleButton.new(panel, -1, word)
22
+ evt_togglebutton(b.get_id()) {|event| on_toggle(event)}
23
+ buttons.add(b, 0, Wx::ALL, 5)
24
+ end
25
+ panel.set_sizer(buttons)
26
+ buttons.fit(panel)
27
+ panel.move(Wx::Point.new(50,50))
28
+ end
29
+
30
+ def on_toggle(event)
31
+ @log.write_text("Button " + event.get_id().to_s() + " toggled")
32
+ end
33
+ end
34
+
35
+ module Demo
36
+ def Demo.run(frame,nb,log)
37
+ win = TestPanel.new(nb, log)
38
+ return win
39
+ end
40
+
41
+ def Demo.overview
42
+ "Wx::ToggleButton is a button that stays pressed when clicked by the user. In other words, it is similar to Wx::CheckBox in functionality but looks like a Wx::Button."
43
+ end
44
+ end
45
+
46
+
47
+ if __FILE__ == $0
48
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
49
+ load run_solo_lib
50
+ run File.basename($0)
51
+ end
@@ -1,133 +1,133 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- class TestToolBar < Wx::Frame
15
- # returns a Bitmap icon object
16
- def xpm_bitmap(base_name)
17
-
18
- xpm_file = File.join( File.dirname(__FILE__), 'icons', base_name )
19
- Wx::Bitmap.new(xpm_file, Wx::BITMAP_TYPE_XPM)
20
- end
21
-
22
- def initialize(parent, log)
23
- super(parent, -1, "Test ToolBar", Wx::DEFAULT_POSITION, Wx::Size.new(500,300))
24
- @log = log
25
- @timer = nil
26
- evt_close {|event| on_close_window(event)}
27
-
28
- Wx::Window.new(self, -1).set_background_colour(Wx::WHITE)
29
-
30
- tb = create_tool_bar(Wx::TB_HORIZONTAL | Wx::NO_BORDER | Wx::TB_FLAT | Wx::TB_TEXT)
31
-
32
- create_status_bar()
33
- tb.add_tool(10, "New", xpm_bitmap('new.xpm'), "Long help for New")
34
- evt_tool(10) {|event| on_tool_click(event)}
35
- evt_tool_rclicked(10) {|event| on_tool_rclick(event)}
36
-
37
- tb.add_tool(20, "Open", xpm_bitmap('open.xpm'), "Long help for Open")
38
- evt_tool(20) {|event| on_tool_click(event)}
39
- evt_tool_rclicked(20) {|event| on_tool_rclick(event)}
40
-
41
- tb.add_separator()
42
-
43
- tb.add_tool(30, "Copy", xpm_bitmap('copy.xpm'), "Long help for Copy")
44
- evt_tool(30) {|event| on_tool_click(event)}
45
- evt_tool_rclicked(30) {|event| on_tool_rclick(event)}
46
-
47
- tb.add_tool(40, "Paste", xpm_bitmap('paste.xpm'), "Long help for Paste")
48
- evt_tool(40) {|event| on_tool_click(event)}
49
- evt_tool_rclicked(40) {|event| on_tool_rclick(event)}
50
-
51
- tb.add_separator()
52
-
53
- tb.add_check_tool(50, "", xpm_bitmap('tog1.xpm'),
54
- Wx::NULL_BITMAP, "Toggle this")
55
- evt_tool(50) {|event| on_tool_click(event)}
56
-
57
- evt_tool_enter(-1) {|event| on_tool_enter(event)}
58
- evt_tool_rclicked(-1) {|event| on_tool_rclick(event)}
59
- evt_timer(5000) {|event| on_clear_sb(event)}
60
-
61
- tb.add_separator()
62
- cbID = 5000
63
- choices = ["", "This", "is a", "wxComboBox"]
64
-
65
- tb.add_control(Wx::ComboBox.new(tb, cbID, "", Wx::DEFAULT_POSITION, Wx::Size.new(150,-1), choices,
66
- Wx::CB_DROPDOWN))
67
- evt_combobox(cbID) {|event| on_combo(event)}
68
- tb.add_control(Wx::TextCtrl.new(tb, -1, "ToolBar controls!!", Wx::DEFAULT_POSITION, Wx::Size.new(150,-1)))
69
-
70
- tb.realize()
71
- end
72
-
73
- def on_tool_click(event)
74
- @log.write_text("tool " + event.get_id().to_s() + " clicked")
75
- tb = get_tool_bar()
76
- tb.enable_tool(10, tb.get_tool_enabled(10) ? false : true)
77
- end
78
-
79
- def on_tool_rclick(event)
80
- @log.write_text("tool " + event.get_id().to_s() + " right-clicked")
81
- end
82
-
83
- def on_combo(event)
84
- @log.write_text("combobox item selected " + event.get_string())
85
- end
86
-
87
- def on_tool_enter(event)
88
- @log.write_text("on_tool_enter: " + event.get_id().to_s + ", " + event.get_int().to_s())
89
- if @timer == nil
90
- @timer = Wx::Timer.new(self, 5000)
91
- end
92
- if @timer != nil
93
- @timer.stop()
94
- end
95
- @timer.start(2000)
96
- @timer.stop()
97
- @timer.start(2000)
98
- event.skip()
99
- end
100
-
101
- def on_clear_sb(event) # called for the timer event handler
102
- set_status_text("")
103
- @timer.stop()
104
- @timer = nil
105
- end
106
-
107
- def on_close_window(event)
108
- if @timer != nil
109
- @timer.stop()
110
- @timer = nil
111
- end
112
- destroy()
113
- end
114
- end
115
-
116
- module Demo
117
- def Demo.run(frame,nb,log)
118
- win = TestToolBar.new(frame, log)
119
- frame.otherWin = win
120
- win.show()
121
- end
122
-
123
- def Demo.overview
124
- "A toolbar is that familiar little rectangular strip below the menubar that hosts various 'buttons', which are usually shortcuts to menu commands."
125
- end
126
- end
127
-
128
-
129
- if __FILE__ == $0
130
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
131
- load run_solo_lib
132
- run File.basename($0)
133
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ class TestToolBar < Wx::Frame
15
+ # returns a Bitmap icon object
16
+ def xpm_bitmap(base_name)
17
+
18
+ xpm_file = File.join( File.dirname(__FILE__), 'icons', base_name )
19
+ Wx::Bitmap.new(xpm_file, Wx::BITMAP_TYPE_XPM)
20
+ end
21
+
22
+ def initialize(parent, log)
23
+ super(parent, -1, "Test ToolBar", Wx::DEFAULT_POSITION, Wx::Size.new(500,300))
24
+ @log = log
25
+ @timer = nil
26
+ evt_close {|event| on_close_window(event)}
27
+
28
+ Wx::Window.new(self, -1).set_background_colour(Wx::WHITE)
29
+
30
+ tb = create_tool_bar(Wx::TB_HORIZONTAL | Wx::NO_BORDER | Wx::TB_FLAT | Wx::TB_TEXT)
31
+
32
+ create_status_bar()
33
+ tb.add_tool(10, "New", xpm_bitmap('new.xpm'), "Long help for New")
34
+ evt_tool(10) {|event| on_tool_click(event)}
35
+ evt_tool_rclicked(10) {|event| on_tool_rclick(event)}
36
+
37
+ tb.add_tool(20, "Open", xpm_bitmap('open.xpm'), "Long help for Open")
38
+ evt_tool(20) {|event| on_tool_click(event)}
39
+ evt_tool_rclicked(20) {|event| on_tool_rclick(event)}
40
+
41
+ tb.add_separator()
42
+
43
+ tb.add_tool(30, "Copy", xpm_bitmap('copy.xpm'), "Long help for Copy")
44
+ evt_tool(30) {|event| on_tool_click(event)}
45
+ evt_tool_rclicked(30) {|event| on_tool_rclick(event)}
46
+
47
+ tb.add_tool(40, "Paste", xpm_bitmap('paste.xpm'), "Long help for Paste")
48
+ evt_tool(40) {|event| on_tool_click(event)}
49
+ evt_tool_rclicked(40) {|event| on_tool_rclick(event)}
50
+
51
+ tb.add_separator()
52
+
53
+ tb.add_check_tool(50, "", xpm_bitmap('tog1.xpm'),
54
+ Wx::NULL_BITMAP, "Toggle this")
55
+ evt_tool(50) {|event| on_tool_click(event)}
56
+
57
+ evt_tool_enter(-1) {|event| on_tool_enter(event)}
58
+ evt_tool_rclicked(-1) {|event| on_tool_rclick(event)}
59
+ evt_timer(5000) {|event| on_clear_sb(event)}
60
+
61
+ tb.add_separator()
62
+ cbID = 5000
63
+ choices = ["", "This", "is a", "wxComboBox"]
64
+
65
+ tb.add_control(Wx::ComboBox.new(tb, cbID, "", Wx::DEFAULT_POSITION, Wx::Size.new(150,-1), choices,
66
+ Wx::CB_DROPDOWN))
67
+ evt_combobox(cbID) {|event| on_combo(event)}
68
+ tb.add_control(Wx::TextCtrl.new(tb, -1, "ToolBar controls!!", Wx::DEFAULT_POSITION, Wx::Size.new(150,-1)))
69
+
70
+ tb.realize()
71
+ end
72
+
73
+ def on_tool_click(event)
74
+ @log.write_text("tool " + event.get_id().to_s() + " clicked")
75
+ tb = get_tool_bar()
76
+ tb.enable_tool(10, tb.get_tool_enabled(10) ? false : true)
77
+ end
78
+
79
+ def on_tool_rclick(event)
80
+ @log.write_text("tool " + event.get_id().to_s() + " right-clicked")
81
+ end
82
+
83
+ def on_combo(event)
84
+ @log.write_text("combobox item selected " + event.get_string())
85
+ end
86
+
87
+ def on_tool_enter(event)
88
+ @log.write_text("on_tool_enter: " + event.get_id().to_s + ", " + event.get_int().to_s())
89
+ if @timer == nil
90
+ @timer = Wx::Timer.new(self, 5000)
91
+ end
92
+ if @timer != nil
93
+ @timer.stop()
94
+ end
95
+ @timer.start(2000)
96
+ @timer.stop()
97
+ @timer.start(2000)
98
+ event.skip()
99
+ end
100
+
101
+ def on_clear_sb(event) # called for the timer event handler
102
+ set_status_text("")
103
+ @timer.stop()
104
+ @timer = nil
105
+ end
106
+
107
+ def on_close_window(event)
108
+ if @timer != nil
109
+ @timer.stop()
110
+ @timer = nil
111
+ end
112
+ destroy()
113
+ end
114
+ end
115
+
116
+ module Demo
117
+ def Demo.run(frame,nb,log)
118
+ win = TestToolBar.new(frame, log)
119
+ frame.otherWin = win
120
+ win.show()
121
+ end
122
+
123
+ def Demo.overview
124
+ "A toolbar is that familiar little rectangular strip below the menubar that hosts various 'buttons', which are usually shortcuts to menu commands."
125
+ end
126
+ end
127
+
128
+
129
+ if __FILE__ == $0
130
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
131
+ load run_solo_lib
132
+ run File.basename($0)
133
+ end
@@ -1,192 +1,192 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- class MyTreeCtrl < Wx::TreeCtrl
15
- def initialize(parent, id, pos, size, style, log)
16
- super(parent,id,pos,size,style)
17
- @log = log
18
-
19
- evt_left_dclick {|event| on_left_dclick(event)}
20
- evt_right_down {|event| on_right_click(event)}
21
- evt_right_up {|event| on_right_up(event)}
22
- end
23
-
24
- def on_left_dclick(event)
25
- pt = Wx::Point.new(event.get_x(), event.get_y())
26
-
27
- end
28
-
29
- def on_right_click(event)
30
- pt = Wx::Point.new(event.get_x(), event.get_y())
31
- id = hit_test(pt)
32
- if id
33
- @log.write_text("on_right_click: ")# + @tree.get_item_text(id))
34
- end
35
- end
36
-
37
- def on_right_up(event)
38
- pt = Wx::Point.new(event.get_x(), event.get_y())
39
- id = hit_test(pt)
40
- if id
41
- @log.write_text("on_right_up: ")#+ @tree.get_item_text(id) + " (manually starting label edit)")
42
- end
43
- end
44
-
45
- def on_compare_items(item1, item2)
46
- t1 = get_item_text(item1)
47
- t2 = get_item_text(item2)
48
- @log.write_text('compare: ' + t1 + ' <> ' + t2)
49
- if t1 < t2 then return -1 end
50
- if t1 == t2 then return 0 end
51
- return 1
52
- end
53
- end
54
-
55
- class TestTreeCtrlPanel < Wx::Panel
56
- def initialize(parent, log)
57
- # Use the WANTS_CHARS style so the panel doesn't eat the Return key
58
- super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::WANTS_CHARS)
59
- evt_size {|event| on_size(event)}
60
-
61
- @log = log
62
- tID = 5000
63
-
64
- @tree = MyTreeCtrl.new(self, tID, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::TR_HAS_BUTTONS | Wx::TR_EDIT_LABELS, @log)
65
-
66
- isz = Wx::Size.new(16,16)
67
- il = Wx::ImageList.new(16,16)
68
- bm = Wx::Bitmap.new
69
- bm.copy_from_icon(Wx::ArtProvider::get_icon(Wx::ART_FOLDER, Wx::ART_OTHER, isz))
70
- fldridx = il.add(bm)
71
- bm.copy_from_icon(Wx::ArtProvider::get_icon(Wx::ART_FILE_OPEN, Wx::ART_OTHER, isz))
72
- fldropenidx = il.add(bm)
73
- bm.copy_from_icon(Wx::ArtProvider::get_icon(Wx::ART_FILE_OPEN, Wx::ART_OTHER, isz))
74
- fileidx = il.add(bm)
75
- bmp_file = File.join(File.dirname(__FILE__), 'icons', 'wxwin16x16.xpm')
76
- smileidx = il.add(Wx::Bitmap.new(bmp_file))
77
-
78
- @tree.set_image_list(il)
79
- @il = il
80
-
81
- @root = @tree.add_root("The Root Item")
82
- @tree.set_item_image(@root, fldridx, Wx::TREE_ITEM_ICON_NORMAL)
83
- @tree.set_item_image(@root, fldropenidx, Wx::TREE_ITEM_ICON_EXPANDED)
84
-
85
- 0.upto(15) do |x|
86
- child = @tree.append_item(@root, "Item " + x.to_s())
87
- @tree.set_item_image(child, fldridx, Wx::TREE_ITEM_ICON_NORMAL)
88
- @tree.set_item_image(child, fldropenidx, Wx::TREE_ITEM_ICON_EXPANDED)
89
- 0.upto(4) do |y|
90
- last = @tree.append_item(child, "item " + x.to_s() + "-" + (?a + y).chr)
91
- @tree.set_item_image(last, fldridx, Wx::TREE_ITEM_ICON_NORMAL)
92
- @tree.set_item_image(last, fldropenidx, Wx::TREE_ITEM_ICON_EXPANDED)
93
- 0.upto(4) do |z|
94
- item = @tree.append_item(last, "item " + x.to_s() + "-" + (?a + y).chr + "-" + z.to_s())
95
- @tree.set_item_image(item, fileidx, Wx::TREE_ITEM_ICON_NORMAL)
96
- @tree.set_item_image(item, smileidx, Wx::TREE_ITEM_ICON_SELECTED)
97
- end
98
- end
99
- end
100
-
101
- @tree.expand(@root)
102
- evt_tree_item_expanded(tID) {|event| on_item_expanded(event)}
103
- evt_tree_item_collapsed(tID) {|event| on_item_collapsed(event)}
104
- evt_tree_sel_changed(tID) {|event| on_sel_changed(event)}
105
- evt_tree_begin_label_edit(tID) {|event| on_begin_edit(event)}
106
- evt_tree_end_label_edit(tID) {|event| on_end_edit(event)}
107
- evt_tree_item_activated(tID) {|event| on_activate(event)}
108
-
109
-
110
- end
111
-
112
-
113
- def on_begin_edit(event)
114
- @log.write_text("on_begin_edit")
115
- # show how to prevent edit
116
- if @tree.get_item_text(event.get_item()) == "The Root Item"
117
- @log.write_text("You can't edit this one...")
118
-
119
- # Let's just see what's visible of its children
120
- cookie = 0
121
- root = event.get_item()
122
- child, cookie = @tree.get_first_child(root)
123
- while child != nil
124
- @log.write_text("Child [" + @tree.get_item_text(child) + "] visible = " + @tree.is_visible(child).to_s())
125
- child,cookie = @tree.get_next_child(root, cookie)
126
- end
127
- event.veto()
128
- end
129
- end
130
-
131
- def on_end_edit(event)
132
- @log.write_text("on_end_edit")
133
- #show how to reject edit, we'll not allow any digits
134
- nums = ("0".."9").to_a()
135
- x = event.get_label()
136
- x.each_byte do |byte|
137
- if nums.include?(byte.chr())
138
- @log.write_text("You can't enter digits...")
139
- event.veto()
140
- return
141
- end
142
- end
143
- end
144
-
145
- def on_size(event)
146
- size = get_client_size()
147
- @tree.set_dimensions(0,0,size.x, size.y)
148
- end
149
-
150
- def on_item_expanded(event)
151
- item = event.get_item()
152
- @log.write_text("on_item_expanded: " + @tree.get_item_text(item))
153
- end
154
-
155
- def on_item_collapsed(event)
156
- item = event.get_item()
157
- @log.write_text("on_item_collapsed: " + @tree.get_item_text(item))
158
- end
159
-
160
- def on_sel_changed(event)
161
- @item = event.get_item()
162
- if @item.nonzero?
163
- @log.write_text("on_sel_changed: " + @tree.get_item_text(@item))
164
- # if Wx::PLATFORM == "WXMSW"
165
- #@log.write_text("BoundingRect: " + @tree.get_bounding_rect(@item))
166
- #end
167
- end
168
- event.skip()
169
- end
170
-
171
- def on_activate(event)
172
- @log.write_text("on_activate: " + @tree.get_item_text(@item))
173
- end
174
- end
175
-
176
- module Demo
177
- def Demo.run(frame, nb, log)
178
- win = TestTreeCtrlPanel.new(nb, log)
179
- return win
180
- end
181
-
182
- def Demo.overview
183
- return ""
184
- end
185
- end
186
-
187
-
188
- if __FILE__ == $0
189
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
190
- load run_solo_lib
191
- run File.basename($0)
192
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ class MyTreeCtrl < Wx::TreeCtrl
15
+ def initialize(parent, id, pos, size, style, log)
16
+ super(parent,id,pos,size,style)
17
+ @log = log
18
+
19
+ evt_left_dclick {|event| on_left_dclick(event)}
20
+ evt_right_down {|event| on_right_click(event)}
21
+ evt_right_up {|event| on_right_up(event)}
22
+ end
23
+
24
+ def on_left_dclick(event)
25
+ pt = Wx::Point.new(event.get_x(), event.get_y())
26
+
27
+ end
28
+
29
+ def on_right_click(event)
30
+ pt = Wx::Point.new(event.get_x(), event.get_y())
31
+ id = hit_test(pt)
32
+ if id
33
+ @log.write_text("on_right_click: ")# + @tree.get_item_text(id))
34
+ end
35
+ end
36
+
37
+ def on_right_up(event)
38
+ pt = Wx::Point.new(event.get_x(), event.get_y())
39
+ id = hit_test(pt)
40
+ if id
41
+ @log.write_text("on_right_up: ")#+ @tree.get_item_text(id) + " (manually starting label edit)")
42
+ end
43
+ end
44
+
45
+ def on_compare_items(item1, item2)
46
+ t1 = get_item_text(item1)
47
+ t2 = get_item_text(item2)
48
+ @log.write_text('compare: ' + t1 + ' <> ' + t2)
49
+ if t1 < t2 then return -1 end
50
+ if t1 == t2 then return 0 end
51
+ return 1
52
+ end
53
+ end
54
+
55
+ class TestTreeCtrlPanel < Wx::Panel
56
+ def initialize(parent, log)
57
+ # Use the WANTS_CHARS style so the panel doesn't eat the Return key
58
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::WANTS_CHARS)
59
+ evt_size {|event| on_size(event)}
60
+
61
+ @log = log
62
+ tID = 5000
63
+
64
+ @tree = MyTreeCtrl.new(self, tID, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::TR_HAS_BUTTONS | Wx::TR_EDIT_LABELS, @log)
65
+
66
+ isz = Wx::Size.new(16,16)
67
+ il = Wx::ImageList.new(16,16)
68
+ bm = Wx::Bitmap.new
69
+ bm.copy_from_icon(Wx::ArtProvider::get_icon(Wx::ART_FOLDER, Wx::ART_OTHER, isz))
70
+ fldridx = il.add(bm)
71
+ bm.copy_from_icon(Wx::ArtProvider::get_icon(Wx::ART_FILE_OPEN, Wx::ART_OTHER, isz))
72
+ fldropenidx = il.add(bm)
73
+ bm.copy_from_icon(Wx::ArtProvider::get_icon(Wx::ART_FILE_OPEN, Wx::ART_OTHER, isz))
74
+ fileidx = il.add(bm)
75
+ bmp_file = File.join(File.dirname(__FILE__), 'icons', 'wxwin16x16.xpm')
76
+ smileidx = il.add(Wx::Bitmap.new(bmp_file))
77
+
78
+ @tree.set_image_list(il)
79
+ @il = il
80
+
81
+ @root = @tree.add_root("The Root Item")
82
+ @tree.set_item_image(@root, fldridx, Wx::TREE_ITEM_ICON_NORMAL)
83
+ @tree.set_item_image(@root, fldropenidx, Wx::TREE_ITEM_ICON_EXPANDED)
84
+
85
+ 0.upto(15) do |x|
86
+ child = @tree.append_item(@root, "Item " + x.to_s())
87
+ @tree.set_item_image(child, fldridx, Wx::TREE_ITEM_ICON_NORMAL)
88
+ @tree.set_item_image(child, fldropenidx, Wx::TREE_ITEM_ICON_EXPANDED)
89
+ 0.upto(4) do |y|
90
+ last = @tree.append_item(child, "item " + x.to_s() + "-" + (?a + y).chr)
91
+ @tree.set_item_image(last, fldridx, Wx::TREE_ITEM_ICON_NORMAL)
92
+ @tree.set_item_image(last, fldropenidx, Wx::TREE_ITEM_ICON_EXPANDED)
93
+ 0.upto(4) do |z|
94
+ item = @tree.append_item(last, "item " + x.to_s() + "-" + (?a + y).chr + "-" + z.to_s())
95
+ @tree.set_item_image(item, fileidx, Wx::TREE_ITEM_ICON_NORMAL)
96
+ @tree.set_item_image(item, smileidx, Wx::TREE_ITEM_ICON_SELECTED)
97
+ end
98
+ end
99
+ end
100
+
101
+ @tree.expand(@root)
102
+ evt_tree_item_expanded(tID) {|event| on_item_expanded(event)}
103
+ evt_tree_item_collapsed(tID) {|event| on_item_collapsed(event)}
104
+ evt_tree_sel_changed(tID) {|event| on_sel_changed(event)}
105
+ evt_tree_begin_label_edit(tID) {|event| on_begin_edit(event)}
106
+ evt_tree_end_label_edit(tID) {|event| on_end_edit(event)}
107
+ evt_tree_item_activated(tID) {|event| on_activate(event)}
108
+
109
+
110
+ end
111
+
112
+
113
+ def on_begin_edit(event)
114
+ @log.write_text("on_begin_edit")
115
+ # show how to prevent edit
116
+ if @tree.get_item_text(event.get_item()) == "The Root Item"
117
+ @log.write_text("You can't edit this one...")
118
+
119
+ # Let's just see what's visible of its children
120
+ cookie = 0
121
+ root = event.get_item()
122
+ child, cookie = @tree.get_first_child(root)
123
+ while child != nil
124
+ @log.write_text("Child [" + @tree.get_item_text(child) + "] visible = " + @tree.is_visible(child).to_s())
125
+ child,cookie = @tree.get_next_child(root, cookie)
126
+ end
127
+ event.veto()
128
+ end
129
+ end
130
+
131
+ def on_end_edit(event)
132
+ @log.write_text("on_end_edit")
133
+ #show how to reject edit, we'll not allow any digits
134
+ nums = ("0".."9").to_a()
135
+ x = event.get_label()
136
+ x.each_byte do |byte|
137
+ if nums.include?(byte.chr())
138
+ @log.write_text("You can't enter digits...")
139
+ event.veto()
140
+ return
141
+ end
142
+ end
143
+ end
144
+
145
+ def on_size(event)
146
+ size = get_client_size()
147
+ @tree.set_dimensions(0,0,size.x, size.y)
148
+ end
149
+
150
+ def on_item_expanded(event)
151
+ item = event.get_item()
152
+ @log.write_text("on_item_expanded: " + @tree.get_item_text(item))
153
+ end
154
+
155
+ def on_item_collapsed(event)
156
+ item = event.get_item()
157
+ @log.write_text("on_item_collapsed: " + @tree.get_item_text(item))
158
+ end
159
+
160
+ def on_sel_changed(event)
161
+ @item = event.get_item()
162
+ if @item.nonzero?
163
+ @log.write_text("on_sel_changed: " + @tree.get_item_text(@item))
164
+ # if Wx::PLATFORM == "WXMSW"
165
+ #@log.write_text("BoundingRect: " + @tree.get_bounding_rect(@item))
166
+ #end
167
+ end
168
+ event.skip()
169
+ end
170
+
171
+ def on_activate(event)
172
+ @log.write_text("on_activate: " + @tree.get_item_text(@item))
173
+ end
174
+ end
175
+
176
+ module Demo
177
+ def Demo.run(frame, nb, log)
178
+ win = TestTreeCtrlPanel.new(nb, log)
179
+ return win
180
+ end
181
+
182
+ def Demo.overview
183
+ return ""
184
+ end
185
+ end
186
+
187
+
188
+ if __FILE__ == $0
189
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
190
+ load run_solo_lib
191
+ run File.basename($0)
192
+ end