wxruby3 0.9.0.pre.beta.14 → 0.9.0.pre.rc.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/INSTALL.md +51 -22
  4. data/README.md +81 -6
  5. data/assets/hello_button-macos.png +0 -0
  6. data/assets/hello_button-msw.png +0 -0
  7. data/assets/hello_button.png +0 -0
  8. data/assets/hello_button_clicked-macos.png +0 -0
  9. data/assets/hello_button_clicked-msw.png +0 -0
  10. data/assets/hello_button_clicked.png +0 -0
  11. data/assets/hello_button_clicked_combi.png +0 -0
  12. data/assets/hello_world-macos.png +0 -0
  13. data/assets/hello_world-msw.png +0 -0
  14. data/assets/hello_world.png +0 -0
  15. data/assets/hello_world_combi.png +0 -0
  16. data/assets/repo-social-preview.png +0 -0
  17. data/ext/wxruby3/include/wxruby-runtime.h +1 -0
  18. data/ext/wxruby3/swig/memory_management.i +6 -10
  19. data/ext/wxruby3/swig/wx.i +17 -6
  20. data/lib/wx/core/art_locator.rb +2 -2
  21. data/lib/wx/core/artprovider.rb +2 -2
  22. data/lib/wx/core/bitmap.rb +6 -5
  23. data/lib/wx/core/bitmap_combobox.rb +34 -0
  24. data/lib/wx/core/brush.rb +6 -0
  25. data/lib/wx/core/controlwithitems.rb +52 -14
  26. data/lib/wx/core/cursor.rb +1 -1
  27. data/lib/wx/core/dc.rb +0 -20
  28. data/lib/wx/core/event_blocker.rb +14 -0
  29. data/lib/wx/core/evthandler.rb +48 -2
  30. data/lib/wx/core/find_replace_dialog.rb +24 -0
  31. data/lib/wx/core/font.rb +22 -14
  32. data/lib/wx/core/helpprovider.rb +2 -2
  33. data/lib/wx/core/icon.rb +1 -1
  34. data/lib/wx/core/image.rb +1 -1
  35. data/lib/wx/core/menu.rb +5 -0
  36. data/lib/wx/core/paintdc.rb +8 -0
  37. data/lib/wx/core/pen.rb +6 -0
  38. data/lib/wx/core/text_entry.rb +15 -0
  39. data/lib/wx/core/v_list_box.rb +13 -0
  40. data/lib/wx/core/window.rb +29 -2
  41. data/lib/wx/doc/app.rb +40 -0
  42. data/lib/wx/doc/brush.rb +17 -0
  43. data/lib/wx/doc/busy_info.rb +21 -0
  44. data/lib/wx/doc/client_dc.rb +28 -0
  45. data/lib/wx/doc/controlwithitems.rb +11 -0
  46. data/lib/wx/doc/dc.rb +0 -14
  47. data/lib/wx/doc/event_blocker.rb +27 -0
  48. data/lib/wx/doc/evthandler.rb +4 -0
  49. data/lib/wx/doc/extra/02_lifecycles.md +49 -0
  50. data/lib/wx/doc/extra/10_art.md +1 -1
  51. data/lib/wx/doc/extra/11_drawing_and_dc.md +62 -0
  52. data/lib/wx/doc/font.rb +27 -0
  53. data/lib/wx/doc/memory_dc.rb +75 -0
  54. data/lib/wx/doc/mirror_dc.rb +16 -0
  55. data/lib/wx/doc/pen.rb +17 -0
  56. data/lib/wx/doc/prt/printer_dc.rb +26 -0
  57. data/lib/wx/doc/radio_box.rb +20 -0
  58. data/lib/wx/doc/screen_dc.rb +10 -6
  59. data/lib/wx/doc/svg_file_dc.rb +20 -0
  60. data/lib/wx/doc/v_list_box.rb +9 -0
  61. data/lib/wx/doc/window.rb +27 -0
  62. data/lib/wx/doc/window_disabler.rb +10 -0
  63. data/lib/wx/html/keyword_defs.rb +6 -7
  64. data/lib/wx/html/require.rb +1 -0
  65. data/lib/wx/html/simple_html_listbox.rb +105 -0
  66. data/lib/wx/keyword_defs.rb +83 -75
  67. data/lib/wx/prt/keyword_defs.rb +5 -1
  68. data/lib/wx/version.rb +1 -1
  69. data/lib/wx/wxruby/cmd/test.rb +1 -1
  70. data/rakelib/install.rb +20 -7
  71. data/rakelib/lib/config/linux.rb +4 -2
  72. data/rakelib/lib/config/macosx.rb +120 -1
  73. data/rakelib/lib/config/mingw.rb +6 -1
  74. data/rakelib/lib/config/unixish.rb +26 -11
  75. data/rakelib/lib/config.rb +15 -6
  76. data/rakelib/lib/core/mapping.rb +5 -5
  77. data/rakelib/lib/core/package.rb +1 -1
  78. data/rakelib/lib/core/spec.rb +9 -5
  79. data/rakelib/lib/core/spec_helper.rb +9 -1
  80. data/rakelib/lib/director/accelerator.rb +1 -1
  81. data/rakelib/lib/director/app.rb +55 -4
  82. data/rakelib/lib/director/art_provider.rb +5 -1
  83. data/rakelib/lib/director/aui_pane_info.rb +1 -1
  84. data/rakelib/lib/director/aui_tab_ctrl.rb +1 -1
  85. data/rakelib/lib/director/aui_toolbar.rb +41 -0
  86. data/rakelib/lib/director/bitmap.rb +2 -1
  87. data/rakelib/lib/director/bitmap_combobox.rb +32 -0
  88. data/rakelib/lib/director/brush.rb +11 -1
  89. data/rakelib/lib/director/busy_info.rb +1 -1
  90. data/rakelib/lib/director/choice.rb +1 -0
  91. data/rakelib/lib/director/clipboard.rb +1 -1
  92. data/rakelib/lib/director/colour.rb +1 -0
  93. data/rakelib/lib/director/colour_picker_ctrl.rb +1 -1
  94. data/rakelib/lib/director/combobox.rb +2 -3
  95. data/rakelib/lib/director/context_help_button.rb +23 -0
  96. data/rakelib/lib/director/ctrl_with_items.rb +3 -0
  97. data/rakelib/lib/director/cursor.rb +1 -0
  98. data/rakelib/lib/director/data_object.rb +5 -7
  99. data/rakelib/lib/director/dc.rb +5 -1
  100. data/rakelib/lib/director/defs.rb +3 -0
  101. data/rakelib/lib/director/derived_dc.rb +278 -27
  102. data/rakelib/lib/director/dialog.rb +12 -3
  103. data/rakelib/lib/director/dir_picker_ctrl.rb +1 -1
  104. data/rakelib/lib/director/event.rb +3 -3
  105. data/rakelib/lib/director/event_blocker.rb +41 -0
  106. data/rakelib/lib/director/event_filter.rb +20 -0
  107. data/rakelib/lib/director/event_handler.rb +29 -2
  108. data/rakelib/lib/director/file_picker_ctrl.rb +1 -1
  109. data/rakelib/lib/director/find_replace_data.rb +1 -0
  110. data/rakelib/lib/director/font.rb +14 -4
  111. data/rakelib/lib/director/font_data.rb +1 -0
  112. data/rakelib/lib/director/font_picker_ctrl.rb +1 -1
  113. data/rakelib/lib/director/gdi_object.rb +1 -0
  114. data/rakelib/lib/director/graphics_context.rb +6 -6
  115. data/rakelib/lib/director/grid_table_message.rb +1 -1
  116. data/rakelib/lib/director/help_provider.rb +8 -10
  117. data/rakelib/lib/director/html_cell.rb +1 -1
  118. data/rakelib/lib/director/html_data_object.rb +5 -7
  119. data/rakelib/lib/director/html_listbox.rb +65 -1
  120. data/rakelib/lib/director/hyperlink_event.rb +22 -0
  121. data/rakelib/lib/director/icon.rb +2 -0
  122. data/rakelib/lib/director/listbox.rb +1 -0
  123. data/rakelib/lib/director/locale.rb +2 -1
  124. data/rakelib/lib/director/menu.rb +0 -3
  125. data/rakelib/lib/director/menu_bar.rb +3 -0
  126. data/rakelib/lib/director/palette.rb +1 -0
  127. data/rakelib/lib/director/pen.rb +12 -2
  128. data/rakelib/lib/director/pgproperties.rb +1 -1
  129. data/rakelib/lib/director/pgproperty.rb +1 -1
  130. data/rakelib/lib/director/pgvalidation_info.rb +1 -1
  131. data/rakelib/lib/director/platform_info.rb +1 -1
  132. data/rakelib/lib/director/popup_window.rb +18 -0
  133. data/rakelib/lib/director/print_data.rb +1 -1
  134. data/rakelib/lib/director/property_grid_interface.rb +1 -1
  135. data/rakelib/lib/director/property_grid_page_state.rb +1 -1
  136. data/rakelib/lib/director/radio_box.rb +15 -4
  137. data/rakelib/lib/director/region.rb +1 -0
  138. data/rakelib/lib/director/ribbon_art_provider.rb +1 -1
  139. data/rakelib/lib/director/richtext_buffer_data_object.rb +5 -7
  140. data/rakelib/lib/director/richtext_header_footer_data.rb +1 -1
  141. data/rakelib/lib/director/searchctrl.rb +25 -0
  142. data/rakelib/lib/director/sizer.rb +2 -2
  143. data/rakelib/lib/director/static_box.rb +1 -1
  144. data/rakelib/lib/director/styled_text_ctrl.rb +2 -0
  145. data/rakelib/lib/director/text_entry.rb +7 -2
  146. data/rakelib/lib/director/textctrl.rb +1 -1
  147. data/rakelib/lib/director/tree_ctrl.rb +6 -3
  148. data/rakelib/lib/director/uiaction_simulator.rb +20 -0
  149. data/rakelib/lib/director/variant.rb +1 -1
  150. data/rakelib/lib/director/vlistbox.rb +25 -0
  151. data/rakelib/lib/director/window.rb +37 -7
  152. data/rakelib/lib/director/with_images.rb +1 -1
  153. data/rakelib/lib/director/xml_node.rb +1 -1
  154. data/rakelib/lib/extractor/function.rb +5 -3
  155. data/rakelib/lib/generate/doc/about_dialog_info.yaml +46 -0
  156. data/rakelib/lib/generate/doc/accelerator.yaml +21 -0
  157. data/rakelib/lib/generate/doc/art_provider.yaml +35 -0
  158. data/rakelib/lib/generate/doc/bitmap.yaml +37 -0
  159. data/rakelib/lib/generate/doc/box_sizer.yaml +15 -0
  160. data/rakelib/lib/generate/doc/busy_info.yaml +74 -0
  161. data/rakelib/lib/generate/doc/client_dc.yaml +19 -0
  162. data/rakelib/lib/generate/doc/clipboard.yaml +43 -0
  163. data/rakelib/lib/generate/doc/collapsible_pane.yaml +21 -0
  164. data/rakelib/lib/generate/doc/colour_dialog.yaml +32 -0
  165. data/rakelib/lib/generate/doc/context_help_button.yaml +16 -0
  166. data/rakelib/lib/generate/doc/control.yaml +46 -0
  167. data/rakelib/lib/generate/doc/cursor.yaml +40 -0
  168. data/rakelib/lib/generate/doc/data_object.yaml +55 -0
  169. data/rakelib/lib/generate/doc/dc.yaml +14 -0
  170. data/rakelib/lib/generate/doc/dialog.yaml +36 -0
  171. data/rakelib/lib/generate/doc/dir_dialog.yaml +25 -0
  172. data/rakelib/lib/generate/doc/event_blocker.yaml +27 -0
  173. data/rakelib/lib/generate/doc/event_filter.yaml +47 -0
  174. data/rakelib/lib/generate/doc/events.yaml +152 -0
  175. data/rakelib/lib/generate/doc/evt_handler.yaml +63 -0
  176. data/rakelib/lib/generate/doc/file_dialog.yaml +68 -0
  177. data/rakelib/lib/generate/doc.rb +77 -14
  178. data/rakelib/lib/generate/interface.rb +22 -10
  179. data/rakelib/lib/specs/interfaces.rb +9 -5
  180. data/rakelib/lib/swig_runner.rb +3 -3
  181. data/rakelib/lib/typemap/common.rb +15 -3
  182. data/rakelib/lib/util/string.rb +1 -0
  183. data/rakelib/yard/yard/relative_markdown_links.rb +5 -1
  184. data/samples/aui/aui.rb +432 -363
  185. data/samples/bigdemo/wxArtProvider.rbw +5 -4
  186. data/samples/controls/controls.rb +2 -2
  187. data/samples/controls/htlbox.rb +411 -0
  188. data/samples/controls/tn_htlbox.png +0 -0
  189. data/samples/drawing/graphics_drawing.rb +1 -2
  190. data/samples/drawing/{svgtest.rb → image_prt.rb} +49 -18
  191. data/samples/drawing/tn_image_prt.png +0 -0
  192. data/samples/propgrid/propgrid.rb +26 -21
  193. data/samples/ribbon/ribbon.rb +47 -46
  194. data/samples/sampler/editor.rb +33 -25
  195. data/samples/sampler/sample.rb +2 -2
  196. data/samples/sampler/stc_editor.rb +4 -2
  197. data/tests/lib/item_container_tests.rb +82 -0
  198. data/tests/lib/text_entry_tests.rb +80 -0
  199. data/tests/lib/wxapp_runner.rb +15 -3
  200. data/tests/lib/wxframe_runner.rb +144 -0
  201. data/tests/test_app_event_filter.rb +74 -0
  202. data/tests/test_art_provider.rb +52 -0
  203. data/tests/test_clipboard.rb +2 -1
  204. data/tests/test_event_handling.rb +199 -16
  205. data/tests/test_events.rb +4 -11
  206. data/tests/test_ext_controls.rb +28 -0
  207. data/tests/test_font.rb +239 -0
  208. data/tests/test_gdi_object.rb +161 -0
  209. data/tests/test_intl.rb +16 -15
  210. data/tests/test_item_data.rb +33 -1
  211. data/tests/test_std_controls.rb +373 -0
  212. data/tests/test_window.rb +340 -0
  213. metadata +82 -4
  214. data/samples/drawing/tn_svgtest.png +0 -0
@@ -0,0 +1,75 @@
1
+
2
+ module Wx
3
+
4
+ class MemoryDC < Wx::DC
5
+
6
+ # Creates a Memory DC and passes that to the given block to draw on.
7
+ # Automatically unselects any source object of the MemoryDC after the block finishes.
8
+ # @overload self.draw_on()
9
+ # @yieldparam [Wx::MemoryDC] dc
10
+ # @overload self.draw_on(bitmap)
11
+ # @param [Wx::Bitmap]
12
+ # @yieldparam [Wx::MemoryDC] dc
13
+ # @overload self.draw_on(dc)
14
+ # @param [Wx::DC]
15
+ # @yieldparam [Wx::MemoryDC] dc
16
+ def self.draw_on(*arg) end
17
+
18
+ end
19
+
20
+ class BufferedDC < Wx::MemoryDC
21
+
22
+ # Creates a Buffered DC and passes that to the given block to draw on.
23
+ # Destroys the DC after the block returns.
24
+ # @overload self.draw_on()
25
+ # Creates a buffer for the provided dc.
26
+ # @yieldparam [Wx::BufferedDC] dc
27
+ # @overload self.draw_on(tgt, area, style=Wx::BUFFER_CLIENT_AREA)
28
+ # Creates a buffer for the provided dc. #init must not be called when using this constructor.
29
+ # @param [Wx::DC] tgt The underlying DC: everything drawn to this object will be flushed to this DC when this object is destroyed. You may pass nil in order to just initialize the buffer, and not flush it.
30
+ # @param [Wx::Size] area The size of the bitmap to be used for buffering (this bitmap is created internally when it is not given explicitly).
31
+ # @param [Integer] style Wx::BUFFER_CLIENT_AREA to indicate that just the client area of the window is buffered, or Wx::BUFFER_VIRTUAL_AREA to indicate that the buffer bitmap covers the virtual area.
32
+ # @yieldparam [Wx::BufferedDC] dc
33
+ # @overload self.draw_on(tgt, buffer=Wx::NULL_BITMAP, style=Wx::BUFFER_CLIENT_AREA)
34
+ # Creates a buffer for the provided dc. #init must not be called when using this constructor.
35
+ # @param [Wx::DC] tgt The underlying DC: everything drawn to this object will be flushed to this DC when this object is destroyed. You may pass nil in order to just initialize the buffer, and not flush it.
36
+ # @param [Wx::Bitmap] buffer Explicitly provided bitmap to be used for buffering: this is the most efficient solution as the bitmap doesn't have to be recreated each time but it also requires more memory as the bitmap is never freed. The bitmap should have appropriate size, anything drawn outside of its bounds is clipped.
37
+ # @param [Integer] style Wx::BUFFER_CLIENT_AREA to indicate that just the client area of the window is buffered, or Wx::BUFFER_VIRTUAL_AREA to indicate that the buffer bitmap covers the virtual area.
38
+ # @yieldparam [Wx::BufferedDC] dc
39
+ def self.draw_on(*arg) end
40
+
41
+ end
42
+
43
+ class BufferedPaintDC < Wx::BufferedDC
44
+
45
+ # Creates a Buffered DC and passes that to the given block to draw on.
46
+ # Destroys the DC after the block returns.
47
+ # As with Wx::BufferedDC, you may either provide the bitmap to be used for buffering or let this object create one internally (in the latter case, the size of the client part of the window is used).
48
+ #
49
+ # Pass W::xBUFFER_CLIENT_AREA for the style parameter to indicate that just the client area of the window is buffered, or Wx::BUFFER_VIRTUAL_AREA to indicate that the buffer bitmap covers the virtual area.
50
+ # @overload self.draw_on(win, style=Wx::BUFFER_CLIENT_AREA)
51
+ # @param [Wx::Window] win The underlying window; everything drawn to this object will be flushed to this window when this object is destroyed.
52
+ # @param [Integer] style Wx::BUFFER_CLIENT_AREA to indicate that just the client area of the window is buffered, or Wx::BUFFER_VIRTUAL_AREA to indicate that the buffer bitmap covers the virtual area.
53
+ # @yieldparam [Wx::BufferedPaintDC] dc
54
+ # @overload self.draw_on(win, buffer=Wx::NULL_BITMAP, style=Wx::BUFFER_CLIENT_AREA)
55
+ # @param [Wx::Window] win The underlying window; everything drawn to this object will be flushed to this window when this object is destroyed.
56
+ # @param [Wx::Bitmap] buffer Explicitly provided bitmap to be used for buffering: this is the most efficient solution as the bitmap doesn't have to be recreated each time but it also requires more memory as the bitmap is never freed. The bitmap should have appropriate size, anything drawn outside of its bounds is clipped.
57
+ # @param [Integer] style Wx::BUFFER_CLIENT_AREA to indicate that just the client area of the window is buffered, or Wx::BUFFER_VIRTUAL_AREA to indicate that the buffer bitmap covers the virtual area.
58
+ # @yieldparam [Wx::BufferedPaintDC] dc
59
+ def self.draw_on(*arg) end
60
+
61
+ end
62
+
63
+ class AutoBufferedPaintDC < Wx::BufferedPaintDC
64
+
65
+ # Creates a Buffered DC and passes that to the given block to draw on.
66
+ # Destroys the DC after the block returns.
67
+ # Pass a pointer to the window on which you wish to paint.
68
+ # @note In wxRuby this method mostly exists to be consistent with the other DC classes. It is however recommended to use Wx::Window#paint_buffered instead.
69
+ # @param [Wx::Window] win The underlying window; everything drawn to this object will be flushed to this window when this object is destroyed.
70
+ # @yieldparam [Wx::AutoBufferedPaintDC] dc
71
+ def self.draw_on(win, &block) end
72
+
73
+ end
74
+
75
+ end
@@ -0,0 +1,16 @@
1
+
2
+ module Wx
3
+
4
+ class MirrorDC < Wx::DC
5
+
6
+ # Executes the given block providing a temporary (mirror) dc as
7
+ # it's single argument.
8
+ # @param [Wx::DC] dc DC to duplicate the (mirrored) drawing on
9
+ # @param [Boolean] mirror whether to mirror or not
10
+ # @yieldparam [Wx::MirrorDC] dc the MirrorDC instance to paint on
11
+ # @return [Object] result of the block
12
+ def self.draw_on(dc, mirror) end
13
+
14
+ end
15
+
16
+ end
data/lib/wx/doc/pen.rb ADDED
@@ -0,0 +1,17 @@
1
+
2
+ module Wx
3
+
4
+ class Pen
5
+
6
+ # Finds a pen with the specified attributes in the global list and returns it, else creates a new pen, adds it to the global pen list, and returns it.
7
+ # @param [Wx::Colour, String, Symbol] colour Colour of the pen.
8
+ # @param [Integer] width Width of the pen.
9
+ # @param [Wx::PenStyle] style Pen style. See {Wx::PenStyle} for a list of styles.
10
+ # @return [Wx::Pen]
11
+ def self.find_or_create_pen(colour, width=1, style=Wx::PenStyle::PENSTYLE_SOLID) end
12
+
13
+ end
14
+
15
+ ThePenList = Wx::Pen
16
+
17
+ end
@@ -0,0 +1,26 @@
1
+
2
+ module Wx::PRT
3
+
4
+ class PrinterDC < Wx::DC
5
+
6
+ # Executes the given block providing a temporary (printer) dc as
7
+ # it's single argument.
8
+ # @param [Wx::PRT::PrintData] print_data print_data defining the print settings
9
+ # @yieldparam [Wx::PrinterDC] dc the PrinterDC instance to paint on
10
+ # @return [Object] result of the block
11
+ def self.draw_on(win) end
12
+
13
+ end
14
+
15
+ class PostScriptDC < Wx::DC
16
+
17
+ # Executes the given block providing a temporary (postscript) dc as
18
+ # it's single argument.
19
+ # @param [Wx::PRT::PrintData] print_data print_data defining the print settings
20
+ # @yieldparam [Wx::PostScriptDC] dc the PostScriptDC instance to paint on
21
+ # @return [Object] result of the block
22
+ def self.draw_on(win) end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,20 @@
1
+
2
+ class Wx::RadioBox
3
+
4
+ # Enables od disables individual buttons.
5
+ # true if the item has been enabled or disabled or false if nothing was done because it already was in the requested state.
6
+ # @see Wx::Window#enable
7
+ # @param item [Integer] The zero-based position of the button to enable or disable.
8
+ # @param enable [true,false] true to enable, false to disable.
9
+ # @return [true,false]
10
+ def enable_item(item, enable=true) end
11
+
12
+ # Shows or hides individual buttons.
13
+ # true if the item has been shown or hidden or false if nothing was done because it already was in the requested state.
14
+ # @see Wx::Window#show
15
+ # @param item [Integer] The zero-based position of the button to show or hide.
16
+ # @param show [true,false] true to show, false to hide.
17
+ # @return [true,false]
18
+ def show_item(item, show=true) end
19
+
20
+ end
@@ -1,10 +1,14 @@
1
1
 
2
- class Wx::ScreenDC
2
+ module Wx
3
3
 
4
- # Executes the given block providing a temporary (screen) dc as
5
- # it's single argument.
6
- # @yieldparam [Wx::ScreenDC] dc the ScreenDC instance to paint on
7
- # @return [Object] result of the block
8
- def self.paint; end
4
+ class ScreenDC < Wx::DC
5
+
6
+ # Executes the given block providing a temporary (screen) dc as
7
+ # it's single argument.
8
+ # @yieldparam [Wx::ScreenDC] dc the ScreenDC instance to paint on
9
+ # @return [Object] result of the block
10
+ def self.draw_on; end
11
+
12
+ end
9
13
 
10
14
  end
@@ -0,0 +1,20 @@
1
+
2
+ module Wx
3
+
4
+ class SVGFileDC < Wx::DC
5
+
6
+ # Executes the given block providing a temporary dc as it's single argument.
7
+ # Initializes a wxSVGFileDC with the given filename, width and height at dpi resolution, and an optional title.
8
+ # The title provides a readable name for the SVG document.
9
+ # @param [String] filename name of file to create
10
+ # @param [Integer] width width for SVG image
11
+ # @param [Integer] height height for SVG image
12
+ # @param [Float] dpi resolution for SVG image
13
+ # @param [String] title readable name for the SVG document
14
+ # @yieldparam [Wx::SVGFileDC] dc the SVGFileDC instance to paint on
15
+ # @return [Object] result of the block
16
+ def self.draw_on(filename, width=320, height=240, dpi=72, title='') end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,9 @@
1
+
2
+ class Wx::VListBox
3
+
4
+ # Iterate selected items. Returns Enumerator if no block given.
5
+ # @yieldparam [Integer] sel selected item index
6
+ # @return [Enumerator,Object] if block given returns last return value of block, Enumerator otherwise
7
+ def each_selected; end
8
+
9
+ end
data/lib/wx/doc/window.rb CHANGED
@@ -15,4 +15,31 @@ class Wx::Window
15
15
  # @return [Object] result from block
16
16
  def paint_buffered; end
17
17
 
18
+ # Locks the window from updates while executing the given block.
19
+ # @param [Proc] block
20
+ def locked(&block); end
21
+
22
+ # Find the first child window with the given id recursively in the window hierarchy of this window.
23
+ #
24
+ # Window with the given id or nil if not found.
25
+ # @see Wx::Window.find_window_by_id
26
+ # @param id [Integer]
27
+ # @return [Wx::Window]
28
+ def find_window_by_id(id) end
29
+
30
+ # Find the first child window with the given label recursively in the window hierarchy of this window.
31
+ #
32
+ # Window with the given label or nil if not found.
33
+ # @see Wx::Window.find_window_by_label
34
+ # @param label [String]
35
+ # @return [Wx::Window]
36
+ def find_window_by_label(label) end
37
+
38
+ # Find the first child window with the given name (as given in a window constructor or {Wx::Window#create} function call) recursively in the window hierarchy of this window.
39
+ #
40
+ # Window with the given name or nil if not found.
41
+ # @param name [String]
42
+ # @return [Wx::Window]
43
+ def find_window_by_name(name) end
44
+
18
45
  end
@@ -0,0 +1,10 @@
1
+
2
+ class Wx::WindowDisabler
3
+
4
+ # Disables all top level windows of the application (maybe with the exception of one of them) in
5
+ # and enables them back after the given block has returned.
6
+ # @param [Wx::Window,nil] to_skip window to exclude from disabling
7
+ # @return [void]
8
+ def self.disable(to_skip = nil) end
9
+
10
+ end
@@ -10,13 +10,12 @@ Wx::define_keyword_ctors(Wx::HTML::HtmlWindow) do
10
10
  end
11
11
 
12
12
  # wxHtmlListBox A listbox showing HTML content
13
- # wxListBox A list of strings for single or multiple selection
14
- Wx::define_keyword_ctors('ListBox') do
15
- wx_ctor_params :id, :pos, :size, :choices => []
16
- wx_ctor_params :style
17
- wx_ctor_params :validator, :name => 'listBox'
13
+ Wx::define_keyword_ctors(Wx::HTML::HtmlListBox) do
14
+ wx_ctor_params :id, :pos, :size, :style, :name => 'HtmlListBox'
18
15
  end
19
16
 
20
- Wx::define_keyword_ctors('HtmlListBox') do
21
- wx_ctor_params :id, :pos, :size, :style, :name => 'HtmlListBoxNameStr'
17
+ Wx::define_keyword_ctors(Wx::HTML::SimpleHtmlListBox) do
18
+ wx_ctor_params :id, :pos, :size
19
+ wx_ctor_params :choices => []
20
+ wx_ctor_params :style, :validator, :name => 'SimpleHtmlListBox'
22
21
  end
@@ -6,5 +6,6 @@ require_relative './events/evt_list'
6
6
  require_relative './keyword_defs'
7
7
  require_relative './htmlwindow'
8
8
  require_relative './htmlhelpcontroller'
9
+ require_relative './simple_html_listbox'
9
10
 
10
11
  Wx::Dialog.setup_dialog_functors(Wx::HTML)
@@ -0,0 +1,105 @@
1
+
2
+ class Wx::HTML::SimpleHtmlListBox
3
+
4
+ # Make this a Ruby enumerable so find, find_all, map etc are available
5
+ include Enumerable
6
+
7
+ # Passes each valid item index into the passed block
8
+ def each
9
+ get_count.times { | i | yield i }
10
+ end
11
+
12
+ # We need to cache client data in Ruby variables as we cannot access items
13
+ # during the GC mark phase as for some platforms (WXMSW at least) that would
14
+ # involve calling methods that would break in that phase.
15
+
16
+ def client_data_store
17
+ @client_data ||= []
18
+ end
19
+ private :client_data_store
20
+
21
+ wx_set_client_data = instance_method :set_client_data
22
+ define_method :set_client_data do |item, data|
23
+ item = item.to_i
24
+ wx_set_client_data.bind(self).call(item, data)
25
+ client_data_store[item] = data
26
+ end
27
+
28
+ def get_client_data(item)
29
+ client_data_store[item.to_i]
30
+ end
31
+
32
+ wx_append = instance_method :append
33
+ define_method :append do |item, data=nil|
34
+ if data
35
+ if ::Array === item
36
+ if !(::Array === data)
37
+ ::Kernel.raise ::TypeError.new("Expected Array for argument 3")
38
+ elsif data.size != item.size
39
+ ::Kernel.raise ::ArgumentError.new("item and data array must be equal size")
40
+ end
41
+ offs = get_count
42
+ wx_append.bind(self).call(item)
43
+ item.size.times { |ix| set_client_data(offs+ix, data[ix]) }
44
+ else
45
+ wx_append.bind(self).call(item, data)
46
+ client_data_store[get_count-1] = data
47
+ end
48
+ else
49
+ wx_append.bind(self).call(item)
50
+ # no changes to data store
51
+ end
52
+ end
53
+
54
+ wx_insert = instance_method :insert
55
+ define_method :insert do |item, pos, data=nil|
56
+ if data
57
+ if ::Array === item
58
+ if !(::Array === data)
59
+ ::Kernel.raise ::TypeError.new("Expected Array for argument 3")
60
+ elsif data.size != item.size
61
+ ::Kernel.raise ::ArgumentError.new("item and data array must be equal size")
62
+ end
63
+ wx_insert.bind(self).call(item, pos)
64
+ client_data_store.insert(pos, *::Array.new(item.size))
65
+ item.size.times { |ix| set_client_data(pos+ix, data[ix]) }
66
+ else
67
+ wx_insert.bind(self).call(item, pos, data)
68
+ client_data_store.insert(pos, data)
69
+ end
70
+ else
71
+ wx_insert.bind(self).call(item, pos)
72
+ if ::Array === item
73
+ client_data_store.insert(pos, *::Array.new(item.size))
74
+ else
75
+ client_data_store.insert(pos, nil)
76
+ end
77
+ end
78
+ end
79
+
80
+ wx_set = instance_method :set
81
+ define_method :set do |items, data=nil|
82
+ if data
83
+ if !(::Array === data)
84
+ ::Kernel.raise ::TypeError.new("Expected Array for argument 2")
85
+ elsif data.size != items.size
86
+ ::Kernel.raise ::ArgumentError.new("items and data array must be equal size")
87
+ end
88
+ end
89
+ wx_set.bind(self).call(items)
90
+ client_data_store.clear
91
+ items.each_with_index { |item, ix| set_client_data(item, data[ix]) }
92
+ end
93
+
94
+ wx_clear = instance_method :clear
95
+ define_method :clear do
96
+ wx_clear.bind(self).call
97
+ client_data_store.clear
98
+ end
99
+
100
+ wx_delete = instance_method :delete
101
+ define_method :delete do |item|
102
+ wx_delete.bind(self).call(item.to_i)
103
+ client_data_store.slice!(item.to_i)
104
+ end
105
+ end