wxruby3 0.9.2-x64-mingw-ucrt → 0.9.4-x64-mingw-ucrt

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 (668) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +35 -29
  3. data/README.md +24 -15
  4. data/ext/wxbase32u_gcc_custom.dll +0 -0
  5. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  6. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  7. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  8. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  9. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  19. data/lib/wx/core/bitmap_combobox.rb +17 -21
  20. data/lib/wx/core/book_ctrl_base.rb +16 -0
  21. data/lib/wx/core/combobox.rb +13 -3
  22. data/lib/wx/core/config.rb +454 -83
  23. data/lib/wx/core/controlwithitems.rb +40 -130
  24. data/lib/wx/core/enum.rb +17 -1
  25. data/lib/wx/core/event.rb +6 -1
  26. data/lib/wx/core/events/evt_list.rb +5 -4
  27. data/lib/wx/core/evthandler.rb +8 -2
  28. data/lib/wx/core/generic_validator.rb +312 -0
  29. data/lib/wx/core/listbox.rb +2 -2
  30. data/lib/wx/core/log.rb +1 -1
  31. data/lib/wx/core/notebook.rb +10 -8
  32. data/lib/wx/core/owner_drawn_combobox.rb +45 -0
  33. data/lib/wx/core/peristent_object.rb +15 -0
  34. data/lib/wx/core/persistence_manager.rb +39 -0
  35. data/lib/wx/core/persistent_window.rb +16 -0
  36. data/lib/wx/core/size.rb +4 -0
  37. data/lib/wx/core/sizer.rb +1 -2
  38. data/lib/wx/core/standard_paths.rb +22 -0
  39. data/lib/wx/core/text_entry.rb +4 -1
  40. data/lib/wx/core/top_level_window.rb +16 -0
  41. data/lib/wx/core/treebook.rb +18 -0
  42. data/lib/wx/core/validator.rb +70 -5
  43. data/lib/wx/core/window.rb +3 -7
  44. data/lib/wx/core.rb +4 -0
  45. data/lib/wx/doc/art_locator.rb +1 -0
  46. data/lib/wx/doc/book_ctrl_base.rb +19 -0
  47. data/lib/wx/doc/comboctrl.rb +18 -0
  48. data/lib/wx/doc/config.rb +101 -41
  49. data/lib/wx/doc/controlwithitems.rb +16 -0
  50. data/lib/wx/doc/date_picker_ctrl.rb +23 -0
  51. data/lib/wx/doc/editable_listbox.rb +44 -0
  52. data/lib/wx/doc/enum.rb +15 -0
  53. data/lib/wx/doc/event.rb +12 -0
  54. data/lib/wx/doc/extra/12_client_data.md +89 -0
  55. data/lib/wx/doc/extra/13_validators.md +139 -0
  56. data/lib/wx/doc/extra/14_config.md +101 -0
  57. data/lib/wx/doc/extra/15_persistence.md +148 -0
  58. data/lib/wx/doc/gdi_common.rb +4 -0
  59. data/lib/wx/doc/gen/about_dialog_info.rb +25 -0
  60. data/lib/wx/doc/gen/accelerator.rb +7 -1
  61. data/lib/wx/doc/gen/accessible.rb +13 -0
  62. data/lib/wx/doc/gen/activity_indicator.rb +7 -0
  63. data/lib/wx/doc/gen/animation.rb +12 -0
  64. data/lib/wx/doc/gen/animation_ctrl.rb +10 -0
  65. data/lib/wx/doc/gen/any_button.rb +17 -1
  66. data/lib/wx/doc/gen/app.rb +35 -1
  67. data/lib/wx/doc/gen/app_traits.rb +38 -5
  68. data/lib/wx/doc/gen/art_provider.rb +14 -0
  69. data/lib/wx/doc/gen/aui/aui_dock_art.rb +12 -0
  70. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +1 -0
  71. data/lib/wx/doc/gen/aui/aui_manager.rb +24 -1
  72. data/lib/wx/doc/gen/aui/aui_manager_event.rb +9 -1
  73. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +3 -0
  74. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +2 -0
  75. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +3 -1
  76. data/lib/wx/doc/gen/aui/aui_notebook.rb +20 -2
  77. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +2 -1
  78. data/lib/wx/doc/gen/aui/aui_pane_info.rb +30 -1
  79. data/lib/wx/doc/gen/aui/aui_tab_art.rb +6 -0
  80. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +1 -0
  81. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +11 -0
  82. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +2 -0
  83. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +2 -1
  84. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +4 -0
  85. data/lib/wx/doc/gen/banner_window.rb +7 -0
  86. data/lib/wx/doc/gen/bitmap.rb +64 -3
  87. data/lib/wx/doc/gen/bitmap_button.rb +6 -1
  88. data/lib/wx/doc/gen/bitmap_combo_box.rb +9 -3
  89. data/lib/wx/doc/gen/book_ctrl_base.rb +17 -2
  90. data/lib/wx/doc/gen/book_ctrl_event.rb +3 -1
  91. data/lib/wx/doc/gen/box_sizer.rb +5 -0
  92. data/lib/wx/doc/gen/brush.rb +16 -1
  93. data/lib/wx/doc/gen/busy_info.rb +8 -0
  94. data/lib/wx/doc/gen/button.rb +11 -3
  95. data/lib/wx/doc/gen/calculate_layout_event.rb +4 -0
  96. data/lib/wx/doc/gen/calendar_ctrl.rb +22 -0
  97. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -0
  98. data/lib/wx/doc/gen/calendar_event.rb +3 -1
  99. data/lib/wx/doc/gen/caret.rb +3 -0
  100. data/lib/wx/doc/gen/check_box.rb +10 -0
  101. data/lib/wx/doc/gen/check_list_box.rb +3 -0
  102. data/lib/wx/doc/gen/choice.rb +14 -2
  103. data/lib/wx/doc/gen/choicebook.rb +1 -0
  104. data/lib/wx/doc/gen/client_dc.rb +1 -0
  105. data/lib/wx/doc/gen/clipboard.rb +9 -0
  106. data/lib/wx/doc/gen/collapsible_pane.rb +3 -0
  107. data/lib/wx/doc/gen/collapsible_pane_event.rb +1 -0
  108. data/lib/wx/doc/gen/colour.rb +20 -0
  109. data/lib/wx/doc/gen/colour_dialog.rb +10 -0
  110. data/lib/wx/doc/gen/colour_picker_ctrl.rb +4 -0
  111. data/lib/wx/doc/gen/colour_picker_event.rb +1 -0
  112. data/lib/wx/doc/gen/combo_box.rb +20 -1
  113. data/lib/wx/doc/gen/combo_ctrl.rb +54 -295
  114. data/lib/wx/doc/gen/command_link_button.rb +8 -0
  115. data/lib/wx/doc/gen/context_help_button.rb +7 -1
  116. data/lib/wx/doc/gen/control.rb +12 -0
  117. data/lib/wx/doc/gen/control_with_items.rb +45 -9
  118. data/lib/wx/doc/gen/core.rb +2 -2
  119. data/lib/wx/doc/gen/cursor.rb +4 -0
  120. data/lib/wx/doc/gen/data_format.rb +1 -0
  121. data/lib/wx/doc/gen/data_object.rb +27 -5
  122. data/lib/wx/doc/gen/date_event.rb +2 -1
  123. data/lib/wx/doc/gen/date_picker_ctrl.rb +7 -1
  124. data/lib/wx/doc/gen/dc.rb +87 -3
  125. data/lib/wx/doc/gen/dial_up_event.rb +2 -0
  126. data/lib/wx/doc/gen/dial_up_manager.rb +12 -0
  127. data/lib/wx/doc/gen/dialog.rb +42 -3
  128. data/lib/wx/doc/gen/dir_dialog.rb +6 -1
  129. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -0
  130. data/lib/wx/doc/gen/dir_picker_ctrl.rb +5 -0
  131. data/lib/wx/doc/gen/drag_drop.rb +20 -0
  132. data/lib/wx/doc/gen/drag_image.rb +7 -0
  133. data/lib/wx/doc/gen/editable_list_box.rb +5 -3
  134. data/lib/wx/doc/gen/event.rb +26 -11
  135. data/lib/wx/doc/gen/event_blocker.rb +2 -1
  136. data/lib/wx/doc/gen/event_filter.rb +3 -2
  137. data/lib/wx/doc/gen/event_list.rb +4 -4
  138. data/lib/wx/doc/gen/events.rb +165 -26
  139. data/lib/wx/doc/gen/evt_handler.rb +40 -2
  140. data/lib/wx/doc/gen/ext_help_controller.rb +9 -0
  141. data/lib/wx/doc/gen/file_ctrl.rb +11 -2
  142. data/lib/wx/doc/gen/file_ctrl_event.rb +5 -1
  143. data/lib/wx/doc/gen/file_dialog.rb +13 -0
  144. data/lib/wx/doc/gen/file_dialog_custom_control.rb +12 -0
  145. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +11 -2
  146. data/lib/wx/doc/gen/file_dir_picker_event.rb +2 -1
  147. data/lib/wx/doc/gen/file_picker_ctrl.rb +4 -0
  148. data/lib/wx/doc/gen/file_system.rb +17 -1
  149. data/lib/wx/doc/gen/find_dialog_event.rb +2 -1
  150. data/lib/wx/doc/gen/find_replace_data.rb +1 -0
  151. data/lib/wx/doc/gen/find_replace_dialog.rb +3 -0
  152. data/lib/wx/doc/gen/flex_grid_sizer.rb +13 -0
  153. data/lib/wx/doc/gen/font.rb +75 -3
  154. data/lib/wx/doc/gen/font_data.rb +14 -0
  155. data/lib/wx/doc/gen/font_dialog.rb +6 -0
  156. data/lib/wx/doc/gen/font_picker_ctrl.rb +8 -0
  157. data/lib/wx/doc/gen/font_picker_event.rb +1 -0
  158. data/lib/wx/doc/gen/frame.rb +24 -7
  159. data/lib/wx/doc/gen/fs_file.rb +22 -0
  160. data/lib/wx/doc/gen/gauge.rb +8 -0
  161. data/lib/wx/doc/gen/gb_sizer_item.rb +5 -0
  162. data/lib/wx/doc/gen/gcdc.rb +2 -0
  163. data/lib/wx/doc/gen/gdi_common.rb +50 -8
  164. data/lib/wx/doc/gen/gdi_object.rb +1 -0
  165. data/lib/wx/doc/gen/generic_dir_ctrl.rb +7 -0
  166. data/lib/wx/doc/gen/graphics_context.rb +36 -7
  167. data/lib/wx/doc/gen/graphics_object.rb +24 -0
  168. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +2 -2
  169. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +14 -4
  170. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +1 -2
  171. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +1 -2
  172. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +2 -2
  173. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +1 -2
  174. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +2 -2
  175. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +1 -2
  176. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +1 -2
  177. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +1 -2
  178. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +9 -2
  179. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +1 -2
  180. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +1 -2
  181. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +1 -2
  182. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +2 -2
  183. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +2 -2
  184. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +1 -2
  185. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +6 -2
  186. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +1 -2
  187. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +1 -2
  188. data/lib/wx/doc/gen/grid/grid_ctrl.rb +229 -7
  189. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +4 -1
  190. data/lib/wx/doc/gen/grid/grid_event.rb +4 -1
  191. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +2 -1
  192. data/lib/wx/doc/gen/grid/grid_size_event.rb +2 -1
  193. data/lib/wx/doc/gen/grid/grid_string_table.rb +7 -0
  194. data/lib/wx/doc/gen/grid/grid_table_base.rb +27 -1
  195. data/lib/wx/doc/gen/grid/grid_table_message.rb +1 -0
  196. data/lib/wx/doc/gen/grid_bag_sizer.rb +24 -4
  197. data/lib/wx/doc/gen/grid_sizer.rb +11 -0
  198. data/lib/wx/doc/gen/gui_event_loop.rb +12 -2
  199. data/lib/wx/doc/gen/header_ctrl.rb +106 -6
  200. data/lib/wx/doc/gen/header_ctrl_event.rb +5 -1
  201. data/lib/wx/doc/gen/help_controller.rb +11 -0
  202. data/lib/wx/doc/gen/help_provider.rb +12 -3
  203. data/lib/wx/doc/gen/html/html_cell.rb +25 -0
  204. data/lib/wx/doc/gen/html/html_cell_event.rb +3 -1
  205. data/lib/wx/doc/gen/html/html_easy_printing.rb +13 -1
  206. data/lib/wx/doc/gen/html/html_help_controller.rb +18 -0
  207. data/lib/wx/doc/gen/html/html_help_data.rb +5 -0
  208. data/lib/wx/doc/gen/html/html_help_window.rb +8 -0
  209. data/lib/wx/doc/gen/html/html_link_event.rb +1 -0
  210. data/lib/wx/doc/gen/html/html_list_box.rb +49 -9
  211. data/lib/wx/doc/gen/html/html_printout.rb +7 -0
  212. data/lib/wx/doc/gen/html/html_window.rb +31 -0
  213. data/lib/wx/doc/gen/hyperlink_ctrl.rb +2 -1
  214. data/lib/wx/doc/gen/hyperlink_event.rb +1 -0
  215. data/lib/wx/doc/gen/icon.rb +19 -1
  216. data/lib/wx/doc/gen/icon_location.rb +1 -0
  217. data/lib/wx/doc/gen/image.rb +67 -10
  218. data/lib/wx/doc/gen/image_list.rb +12 -2
  219. data/lib/wx/doc/gen/info_bar.rb +12 -0
  220. data/lib/wx/doc/gen/keyboard_state.rb +11 -0
  221. data/lib/wx/doc/gen/list_box.rb +20 -3
  222. data/lib/wx/doc/gen/list_ctrl.rb +89 -0
  223. data/lib/wx/doc/gen/list_event.rb +11 -1
  224. data/lib/wx/doc/gen/listbook.rb +1 -0
  225. data/lib/wx/doc/gen/locale.rb +22 -0
  226. data/lib/wx/doc/gen/log.rb +42 -0
  227. data/lib/wx/doc/gen/mdi_client_window.rb +4 -1
  228. data/lib/wx/doc/gen/mdi_frame.rb +27 -4
  229. data/lib/wx/doc/gen/media_ctrl.rb +17 -0
  230. data/lib/wx/doc/gen/media_event.rb +2 -1
  231. data/lib/wx/doc/gen/memory_dc.rb +10 -0
  232. data/lib/wx/doc/gen/menu.rb +48 -7
  233. data/lib/wx/doc/gen/menu_bar.rb +32 -13
  234. data/lib/wx/doc/gen/menu_item.rb +26 -0
  235. data/lib/wx/doc/gen/message_dialog.rb +10 -0
  236. data/lib/wx/doc/gen/mini_frame.rb +5 -2
  237. data/lib/wx/doc/gen/mirror_dc.rb +1 -0
  238. data/lib/wx/doc/gen/mouse_state.rb +1 -0
  239. data/lib/wx/doc/gen/multi_choice_dialog.rb +3 -1
  240. data/lib/wx/doc/gen/non_owned_window.rb +3 -0
  241. data/lib/wx/doc/gen/notebook.rb +11 -1
  242. data/lib/wx/doc/gen/num_validator.rb +37 -0
  243. data/lib/wx/doc/gen/number_entry_dialog.rb +4 -0
  244. data/lib/wx/doc/gen/object.rb +3 -0
  245. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +340 -0
  246. data/lib/wx/doc/gen/paint_dc.rb +1 -0
  247. data/lib/wx/doc/gen/palette.rb +5 -0
  248. data/lib/wx/doc/gen/panel.rb +10 -2
  249. data/lib/wx/doc/gen/pen.rb +30 -1
  250. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  251. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  252. data/lib/wx/doc/gen/persistent_window.rb +116 -0
  253. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +2 -1
  254. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +4 -1
  255. data/lib/wx/doc/gen/pg/pg_cell.rb +6 -1
  256. data/lib/wx/doc/gen/pg/pg_editor.rb +61 -15
  257. data/lib/wx/doc/gen/pg/pg_multi_button.rb +2 -0
  258. data/lib/wx/doc/gen/pg/pg_properties.rb +198 -81
  259. data/lib/wx/doc/gen/pg/pg_property.rb +129 -52
  260. data/lib/wx/doc/gen/pg/pg_validation_info.rb +2 -0
  261. data/lib/wx/doc/gen/pg/property_grid.rb +56 -14
  262. data/lib/wx/doc/gen/pg/property_grid_event.rb +16 -6
  263. data/lib/wx/doc/gen/pg/property_grid_interface.rb +98 -37
  264. data/lib/wx/doc/gen/pg/property_grid_manager.rb +29 -7
  265. data/lib/wx/doc/gen/pg/property_grid_page.rb +11 -4
  266. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +7 -2
  267. data/lib/wx/doc/gen/picker_base.rb +11 -1
  268. data/lib/wx/doc/gen/platform_info.rb +31 -0
  269. data/lib/wx/doc/gen/popup_window.rb +5 -0
  270. data/lib/wx/doc/gen/progress_dialog.rb +4 -0
  271. data/lib/wx/doc/gen/property_sheet_dialog.rb +7 -1
  272. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +2 -0
  273. data/lib/wx/doc/gen/prt/post_script_dc.rb +1 -0
  274. data/lib/wx/doc/gen/prt/preview_frame.rb +4 -0
  275. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +1 -0
  276. data/lib/wx/doc/gen/prt/print_data.rb +27 -0
  277. data/lib/wx/doc/gen/prt/print_dialog.rb +4 -0
  278. data/lib/wx/doc/gen/prt/printer.rb +42 -5
  279. data/lib/wx/doc/gen/prt/printer_dc.rb +2 -0
  280. data/lib/wx/doc/gen/query_layout_info_event.rb +9 -0
  281. data/lib/wx/doc/gen/radio_box.rb +19 -0
  282. data/lib/wx/doc/gen/radio_button.rb +9 -0
  283. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +63 -0
  284. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +23 -0
  285. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +2 -1
  286. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +35 -9
  287. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +2 -1
  288. data/lib/wx/doc/gen/rbn/ribbon_control.rb +10 -0
  289. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +17 -7
  290. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +2 -1
  291. data/lib/wx/doc/gen/rbn/ribbon_page.rb +12 -0
  292. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +11 -0
  293. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +2 -1
  294. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +25 -0
  295. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +2 -1
  296. data/lib/wx/doc/gen/rearrange_ctrl.rb +4 -0
  297. data/lib/wx/doc/gen/rearrange_list.rb +9 -0
  298. data/lib/wx/doc/gen/region.rb +42 -13
  299. data/lib/wx/doc/gen/region_iterator.rb +1 -0
  300. data/lib/wx/doc/gen/rtc/rich_text_box.rb +25 -8
  301. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +41 -4
  302. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +1 -0
  303. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +23 -11
  304. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +74 -0
  305. data/lib/wx/doc/gen/rtc/rich_text_event.rb +6 -1
  306. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +8 -0
  307. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +6 -0
  308. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +1 -0
  309. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +4 -0
  310. data/lib/wx/doc/gen/rtc/rich_text_image.rb +7 -0
  311. data/lib/wx/doc/gen/rtc/rich_text_object.rb +64 -4
  312. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +51 -4
  313. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +13 -0
  314. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +9 -4
  315. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +3 -0
  316. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +2 -0
  317. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +1 -0
  318. data/lib/wx/doc/gen/sash_event.rb +5 -1
  319. data/lib/wx/doc/gen/sash_layout_window.rb +10 -0
  320. data/lib/wx/doc/gen/sash_window.rb +3 -0
  321. data/lib/wx/doc/gen/screen_dc.rb +1 -0
  322. data/lib/wx/doc/gen/scroll_bar.rb +11 -2
  323. data/lib/wx/doc/gen/scrolled_canvas.rb +20 -4
  324. data/lib/wx/doc/gen/scrolled_control.rb +20 -4
  325. data/lib/wx/doc/gen/scrolled_window.rb +20 -4
  326. data/lib/wx/doc/gen/search_ctrl.rb +6 -0
  327. data/lib/wx/doc/gen/simplebook.rb +7 -0
  328. data/lib/wx/doc/gen/single_choice_dialog.rb +3 -1
  329. data/lib/wx/doc/gen/sizer.rb +79 -9
  330. data/lib/wx/doc/gen/sizer_item.rb +16 -2
  331. data/lib/wx/doc/gen/slider.rb +23 -0
  332. data/lib/wx/doc/gen/spin_button.rb +9 -0
  333. data/lib/wx/doc/gen/spin_ctrl.rb +11 -0
  334. data/lib/wx/doc/gen/spin_ctrl_double.rb +7 -0
  335. data/lib/wx/doc/gen/spin_double_event.rb +4 -1
  336. data/lib/wx/doc/gen/spin_event.rb +2 -1
  337. data/lib/wx/doc/gen/splash_screen.rb +2 -0
  338. data/lib/wx/doc/gen/splitter_event.rb +10 -1
  339. data/lib/wx/doc/gen/splitter_window.rb +38 -14
  340. data/lib/wx/doc/gen/static_bitmap.rb +99 -2
  341. data/lib/wx/doc/gen/static_box.rb +6 -0
  342. data/lib/wx/doc/gen/static_box_sizer.rb +3 -0
  343. data/lib/wx/doc/gen/static_line.rb +4 -0
  344. data/lib/wx/doc/gen/static_text.rb +5 -0
  345. data/lib/wx/doc/gen/status_bar.rb +17 -3
  346. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +174 -6
  347. data/lib/wx/doc/gen/stc/styled_text_event.rb +27 -1
  348. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +7 -0
  349. data/lib/wx/doc/gen/svg_file_dc.rb +9 -0
  350. data/lib/wx/doc/gen/system_options.rb +8 -0
  351. data/lib/wx/doc/gen/system_settings.rb +7 -0
  352. data/lib/wx/doc/gen/task_bar_button.rb +12 -0
  353. data/lib/wx/doc/gen/task_bar_icon.rb +5 -0
  354. data/lib/wx/doc/gen/task_bar_icon_event.rb +2 -1
  355. data/lib/wx/doc/gen/text_attr.rb +27 -0
  356. data/lib/wx/doc/gen/text_ctrl.rb +27 -3
  357. data/lib/wx/doc/gen/text_entry.rb +43 -9
  358. data/lib/wx/doc/gen/text_entry_dialog.rb +12 -0
  359. data/lib/wx/doc/gen/text_validator.rb +16 -0
  360. data/lib/wx/doc/gen/time_picker_ctrl.rb +6 -0
  361. data/lib/wx/doc/gen/timer.rb +8 -0
  362. data/lib/wx/doc/gen/timer_event.rb +1 -0
  363. data/lib/wx/doc/gen/tip_provider.rb +5 -0
  364. data/lib/wx/doc/gen/toggle_button.rb +68 -0
  365. data/lib/wx/doc/gen/tool_bar.rb +57 -14
  366. data/lib/wx/doc/gen/tool_tip.rb +6 -0
  367. data/lib/wx/doc/gen/toolbook.rb +3 -0
  368. data/lib/wx/doc/gen/top_level_window.rb +34 -3
  369. data/lib/wx/doc/gen/tree_ctrl.rb +49 -0
  370. data/lib/wx/doc/gen/tree_event.rb +7 -1
  371. data/lib/wx/doc/gen/treebook.rb +9 -0
  372. data/lib/wx/doc/gen/ui_action_simulator.rb +4 -0
  373. data/lib/wx/doc/gen/utils.rb +55 -16
  374. data/lib/wx/doc/gen/v_list_box.rb +21 -0
  375. data/lib/wx/doc/gen/v_scrolled_window.rb +15 -0
  376. data/lib/wx/doc/gen/validator.rb +9 -13
  377. data/lib/wx/doc/gen/variant.rb +6 -0
  378. data/lib/wx/doc/gen/window.rb +260 -52
  379. data/lib/wx/doc/gen/window_dc.rb +2 -0
  380. data/lib/wx/doc/gen/window_disabler.rb +1 -0
  381. data/lib/wx/doc/gen/with_images.rb +7 -1
  382. data/lib/wx/doc/gen/wizard.rb +18 -0
  383. data/lib/wx/doc/gen/wizard_event.rb +3 -1
  384. data/lib/wx/doc/gen/wizard_page.rb +5 -0
  385. data/lib/wx/doc/gen/wizard_page_simple.rb +4 -0
  386. data/lib/wx/doc/gen/wrap_sizer.rb +5 -0
  387. data/lib/wx/doc/gen/xml_node.rb +14 -0
  388. data/lib/wx/doc/gen/xml_resource.rb +22 -0
  389. data/lib/wx/doc/generic_validator.rb +95 -0
  390. data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
  391. data/lib/wx/doc/num_validator.rb +387 -0
  392. data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
  393. data/lib/wx/doc/persistence_manager.rb +36 -0
  394. data/lib/wx/doc/persistent_object.rb +27 -0
  395. data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
  396. data/lib/wx/doc/static_bitmap.rb +25 -0
  397. data/lib/wx/doc/text_validator.rb +10 -0
  398. data/lib/wx/doc/top_level_window.rb +19 -0
  399. data/lib/wx/doc/treebook.rb +6 -1
  400. data/lib/wx/doc/validator.rb +113 -0
  401. data/lib/wx/doc/window.rb +30 -0
  402. data/lib/wx/html/events/evt_list.rb +0 -10
  403. data/lib/wx/html/simple_html_listbox.rb +24 -91
  404. data/lib/wx/keyword_defs.rb +34 -2
  405. data/lib/wx/rbn/ribbon_gallery.rb +0 -21
  406. data/lib/wx/version.rb +1 -1
  407. data/lib/wxruby_aui.so +0 -0
  408. data/lib/wxruby_core.so +0 -0
  409. data/lib/wxruby_grid.so +0 -0
  410. data/lib/wxruby_html.so +0 -0
  411. data/lib/wxruby_pg.so +0 -0
  412. data/lib/wxruby_prt.so +0 -0
  413. data/lib/wxruby_rbn.so +0 -0
  414. data/lib/wxruby_rtc.so +0 -0
  415. data/lib/wxruby_stc.so +0 -0
  416. data/rakelib/lib/config/mingw.rb +12 -0
  417. data/samples/aui/aui.rb +1237 -1233
  418. data/samples/calendar/calendar.rb +293 -289
  419. data/samples/controls/get_item_sample.rb +83 -79
  420. data/samples/controls/htlbox.rb +331 -327
  421. data/samples/dialogs/dialogs.rb +682 -694
  422. data/samples/dialogs/wizard.rb +52 -55
  423. data/samples/dragdrop/dragdrop.rb +146 -142
  424. data/samples/drawing/bitmap.rb +29 -26
  425. data/samples/drawing/bitmap_image.rb +84 -80
  426. data/samples/drawing/graphics_drawing.rb +209 -205
  427. data/samples/drawing/image_prt.rb +344 -340
  428. data/samples/drawing/maths_images.rb +18 -1
  429. data/samples/drawing/rmagic_bitmap_image.rb +88 -84
  430. data/samples/etc/caret.rb +306 -0
  431. data/samples/etc/miniframe.rb +65 -60
  432. data/samples/etc/sash.rb +109 -105
  433. data/samples/etc/scrollwin.rb +86 -80
  434. data/samples/etc/system_settings.rb +216 -209
  435. data/samples/event/activation.rb +72 -67
  436. data/samples/event/event.rb +160 -153
  437. data/samples/event/threaded.rb +8 -1
  438. data/samples/event/update_ui_event.rb +67 -60
  439. data/samples/grid/grid.rb +188 -181
  440. data/samples/grid/gridtablebase.rb +136 -129
  441. data/samples/html/html.rb +208 -204
  442. data/samples/mdi/mdi.rb +59 -54
  443. data/samples/minimal/minimal.rb +54 -51
  444. data/samples/minimal/nothing.rb +1 -0
  445. data/samples/printing/printing.rb +367 -377
  446. data/samples/printing/printing2.rb +203 -198
  447. data/samples/propgrid/propgrid.rb +2312 -2308
  448. data/samples/propgrid/propgrid_minimal.rb +57 -50
  449. data/samples/ribbon/ribbon.rb +780 -774
  450. data/samples/sampler/ext.rb +0 -33
  451. data/samples/sampler/sample.rb +4 -9
  452. data/samples/sampler.rb +1 -1
  453. data/samples/splash/splash.rb +118 -116
  454. data/samples/text/rich_textctrl.rb +207 -201
  455. data/samples/text/richtext.rb +1409 -1405
  456. data/samples/text/scintilla.rb +137 -128
  457. data/samples/text/textctrl.rb +89 -83
  458. data/samples/text/unicode.rb +175 -168
  459. data/samples/treectrl/treectrl.rb +1430 -1426
  460. data/samples/widgets/activityindicator.rb +95 -0
  461. data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
  462. data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
  463. data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
  464. data/samples/widgets/art/widgets/button.xpm +54 -0
  465. data/samples/widgets/art/widgets/checkbox.xpm +54 -0
  466. data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
  467. data/samples/widgets/art/widgets/choicebk.xpm +54 -0
  468. data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
  469. data/samples/widgets/art/widgets/combobox.xpm +54 -0
  470. data/samples/widgets/art/widgets/datepick.xpm +200 -0
  471. data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
  472. data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
  473. data/samples/widgets/art/widgets/filepicker.xpm +214 -0
  474. data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
  475. data/samples/widgets/art/widgets/gauge.xpm +54 -0
  476. data/samples/widgets/art/widgets/header.xpm +54 -0
  477. data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
  478. data/samples/widgets/art/widgets/listbook.xpm +54 -0
  479. data/samples/widgets/art/widgets/listbox.xpm +54 -0
  480. data/samples/widgets/art/widgets/native.xpm +81 -0
  481. data/samples/widgets/art/widgets/notebook.xpm +54 -0
  482. data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
  483. data/samples/widgets/art/widgets/radiobox.xpm +54 -0
  484. data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
  485. data/samples/widgets/art/widgets/slider.xpm +54 -0
  486. data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
  487. data/samples/widgets/art/widgets/statbmp.xpm +40 -0
  488. data/samples/widgets/art/widgets/statbox.xpm +54 -0
  489. data/samples/widgets/art/widgets/stattext.xpm +54 -0
  490. data/samples/widgets/art/widgets/text.xpm +54 -0
  491. data/samples/widgets/art/widgets/timepick.xpm +207 -0
  492. data/samples/widgets/art/widgets/toggle.xpm +54 -0
  493. data/samples/widgets/art/widgets/toucan.png +0 -0
  494. data/samples/widgets/bmpcombobox.rb +651 -0
  495. data/samples/widgets/button.rb +462 -0
  496. data/samples/widgets/checkbox.rb +211 -0
  497. data/samples/widgets/choice.rb +287 -0
  498. data/samples/widgets/clrpicker.rb +156 -0
  499. data/samples/widgets/combobox.rb +516 -0
  500. data/samples/widgets/datepick.rb +215 -0
  501. data/samples/widgets/dirctrl.rb +265 -0
  502. data/samples/widgets/dirpicker.rb +158 -0
  503. data/samples/widgets/editlbox.rb +122 -0
  504. data/samples/widgets/filectrl.rb +216 -0
  505. data/samples/widgets/filepicker.rb +214 -0
  506. data/samples/widgets/fontpicker.rb +135 -0
  507. data/samples/widgets/gauge.rb +311 -0
  508. data/samples/widgets/headerctrl.rb +236 -0
  509. data/samples/widgets/hyperlink.rb +203 -0
  510. data/samples/widgets/itemcontainer.rb +185 -0
  511. data/samples/widgets/listbox.rb +473 -0
  512. data/samples/widgets/notebook.rb +488 -0
  513. data/samples/widgets/odcombobox.rb +608 -0
  514. data/samples/widgets/radiobox.rb +328 -0
  515. data/samples/widgets/searchctrl.rb +159 -0
  516. data/samples/widgets/slider.rb +594 -0
  517. data/samples/widgets/spinbtn.rb +443 -0
  518. data/samples/widgets/statbmp.rb +130 -0
  519. data/samples/widgets/static.rb +436 -0
  520. data/samples/widgets/textctrl.rb +700 -0
  521. data/samples/widgets/timepick.rb +148 -0
  522. data/samples/widgets/tn_widgets.png +0 -0
  523. data/samples/widgets/toggle.rb +385 -0
  524. data/samples/widgets/widgets.rb +1229 -0
  525. data/samples/xrc/custom_xrc_sample.rb +47 -41
  526. data/samples/xrc/xrc_sample.rb +53 -47
  527. data/tests/test_config.rb +207 -42
  528. data/tests/test_event_handling.rb +52 -34
  529. data/tests/test_events.rb +7 -0
  530. data/tests/test_item_data.rb +24 -0
  531. data/tests/test_persistence.rb +142 -0
  532. data/tests/test_sizer.rb +44 -1
  533. data/tests/test_validators.rb +805 -0
  534. metadata +103 -137
  535. data/lib/wx/core/choice.rb +0 -14
  536. data/lib/wx/core/combo_ctrl.rb +0 -110
  537. data/samples/bigdemo/About.rbw +0 -39
  538. data/samples/bigdemo/ColorPanel.rbw +0 -23
  539. data/samples/bigdemo/GridSimple.rbw +0 -78
  540. data/samples/bigdemo/MDIDemo.rbw +0 -57
  541. data/samples/bigdemo/PopupMenu.rbw +0 -146
  542. data/samples/bigdemo/ShapedWindow.rbw +0 -128
  543. data/samples/bigdemo/Sizers.rbw +0 -541
  544. data/samples/bigdemo/bigdemo.rb +0 -817
  545. data/samples/bigdemo/demoTemplate.rbw +0 -33
  546. data/samples/bigdemo/helpfile.htb +0 -0
  547. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  548. data/samples/bigdemo/icons/Test 015.png +0 -0
  549. data/samples/bigdemo/icons/choice.bmp +0 -0
  550. data/samples/bigdemo/icons/combo.bmp +0 -0
  551. data/samples/bigdemo/icons/combo.xpm +0 -27
  552. data/samples/bigdemo/icons/copy.xpm +0 -25
  553. data/samples/bigdemo/icons/cut.xpm +0 -24
  554. data/samples/bigdemo/icons/gauge.bmp +0 -0
  555. data/samples/bigdemo/icons/gauge.xpm +0 -27
  556. data/samples/bigdemo/icons/help.xpm +0 -25
  557. data/samples/bigdemo/icons/list.bmp +0 -0
  558. data/samples/bigdemo/icons/list.xpm +0 -27
  559. data/samples/bigdemo/icons/mondrian.ico +0 -0
  560. data/samples/bigdemo/icons/mondrian.xpm +0 -44
  561. data/samples/bigdemo/icons/new.xpm +0 -24
  562. data/samples/bigdemo/icons/ogl.ico +0 -0
  563. data/samples/bigdemo/icons/ogl.xpm +0 -45
  564. data/samples/bigdemo/icons/open.xpm +0 -26
  565. data/samples/bigdemo/icons/paste.bmp +0 -0
  566. data/samples/bigdemo/icons/paste.xpm +0 -38
  567. data/samples/bigdemo/icons/pointy.png +0 -0
  568. data/samples/bigdemo/icons/preview.xpm +0 -26
  569. data/samples/bigdemo/icons/print.xpm +0 -26
  570. data/samples/bigdemo/icons/radio.bmp +0 -0
  571. data/samples/bigdemo/icons/radio.xpm +0 -27
  572. data/samples/bigdemo/icons/robert.xpm +0 -415
  573. data/samples/bigdemo/icons/sashtest.ico +0 -0
  574. data/samples/bigdemo/icons/save.xpm +0 -25
  575. data/samples/bigdemo/icons/smiles.bmp +0 -0
  576. data/samples/bigdemo/icons/smiles.xpm +0 -39
  577. data/samples/bigdemo/icons/smiley.ico +0 -0
  578. data/samples/bigdemo/icons/smiley.xpm +0 -42
  579. data/samples/bigdemo/icons/stattext.xpm +0 -24
  580. data/samples/bigdemo/icons/test2.bmp +0 -0
  581. data/samples/bigdemo/icons/test2.png +0 -0
  582. data/samples/bigdemo/icons/test2.xpm +0 -79
  583. data/samples/bigdemo/icons/text.bmp +0 -0
  584. data/samples/bigdemo/icons/text.xpm +0 -27
  585. data/samples/bigdemo/icons/tog1.bmp +0 -0
  586. data/samples/bigdemo/icons/tog1.xpm +0 -38
  587. data/samples/bigdemo/icons/tog2.bmp +0 -0
  588. data/samples/bigdemo/icons/tog2.xpm +0 -38
  589. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  590. data/samples/bigdemo/icons/wxwin.ico +0 -0
  591. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  592. data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
  593. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  594. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  595. data/samples/bigdemo/run.rb +0 -98
  596. data/samples/bigdemo/tips.txt +0 -7
  597. data/samples/bigdemo/utils.rb +0 -20
  598. data/samples/bigdemo/wxArtProvider.rbw +0 -282
  599. data/samples/bigdemo/wxBitmapButton.rbw +0 -65
  600. data/samples/bigdemo/wxButton.rbw +0 -64
  601. data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
  602. data/samples/bigdemo/wxCheckBox.rbw +0 -50
  603. data/samples/bigdemo/wxCheckListBox.rbw +0 -65
  604. data/samples/bigdemo/wxChoice.rbw +0 -47
  605. data/samples/bigdemo/wxChoicebook.rbw +0 -78
  606. data/samples/bigdemo/wxColourDialog.rbw +0 -33
  607. data/samples/bigdemo/wxComboBox.rbw +0 -77
  608. data/samples/bigdemo/wxCursor.rbw +0 -136
  609. data/samples/bigdemo/wxDialog.rbw +0 -74
  610. data/samples/bigdemo/wxDirDialog.rbw +0 -29
  611. data/samples/bigdemo/wxDragImage.rbw +0 -70
  612. data/samples/bigdemo/wxFileDialog.rbw +0 -37
  613. data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
  614. data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
  615. data/samples/bigdemo/wxFontDialog.rbw +0 -200
  616. data/samples/bigdemo/wxFrame.rbw +0 -53
  617. data/samples/bigdemo/wxGauge.rbw +0 -65
  618. data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
  619. data/samples/bigdemo/wxGrid.rbw +0 -66
  620. data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
  621. data/samples/bigdemo/wxListBox.rbw +0 -140
  622. data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
  623. data/samples/bigdemo/wxMDIWindows.rbw +0 -50
  624. data/samples/bigdemo/wxMenu.rbw +0 -247
  625. data/samples/bigdemo/wxMessageDialog.rbw +0 -27
  626. data/samples/bigdemo/wxMiniFrame.rbw +0 -70
  627. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
  628. data/samples/bigdemo/wxNotebook.rbw +0 -136
  629. data/samples/bigdemo/wxProgressDialog.rbw +0 -43
  630. data/samples/bigdemo/wxRadioBox.rbw +0 -72
  631. data/samples/bigdemo/wxRadioButton.rbw +0 -125
  632. data/samples/bigdemo/wxSashWindow.rbw +0 -141
  633. data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
  634. data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
  635. data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
  636. data/samples/bigdemo/wxSlider.rbw +0 -42
  637. data/samples/bigdemo/wxSpinButton.rbw +0 -50
  638. data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
  639. data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
  640. data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
  641. data/samples/bigdemo/wxStaticText.rbw +0 -55
  642. data/samples/bigdemo/wxStatusBar.rbw +0 -126
  643. data/samples/bigdemo/wxTextCtrl.rbw +0 -149
  644. data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
  645. data/samples/bigdemo/wxToggleButton.rbw +0 -49
  646. data/samples/bigdemo/wxToolBar.rbw +0 -131
  647. data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
  648. data/samples/caret/caret.rb +0 -298
  649. data/samples/caret/mondrian.xpm +0 -44
  650. data/samples/controls/books.rb +0 -189
  651. data/samples/controls/choice.xpm +0 -27
  652. data/samples/controls/combo.xpm +0 -27
  653. data/samples/controls/controls.rb +0 -1099
  654. data/samples/controls/gauge.xpm +0 -27
  655. data/samples/controls/list.xpm +0 -27
  656. data/samples/controls/mondrian.ico +0 -0
  657. data/samples/controls/mondrian.xpm +0 -44
  658. data/samples/controls/radio.xpm +0 -27
  659. data/samples/controls/stattext.xpm +0 -24
  660. data/samples/controls/test2.bmp +0 -0
  661. data/samples/controls/text.xpm +0 -27
  662. data/samples/controls/tn_books.png +0 -0
  663. data/samples/controls/tn_controls.png +0 -0
  664. data/samples/etc/choice.rb +0 -87
  665. data/samples/etc/tn_choice.png +0 -0
  666. data/samples/text/mondrian.ico +0 -0
  667. data/samples/text/mondrian.xpm +0 -44
  668. /data/samples/{caret → etc}/tn_caret.png +0 -0
@@ -11,476 +11,466 @@
11
11
 
12
12
  require 'wx'
13
13
 
14
- WXPRINT_QUIT = Wx::ID_EXIT
15
- WXPRINT_PRINT = Wx::ID_PRINT
16
- WXPRINT_PAGE_SETUP = Wx::ID_PRINT_SETUP
17
- WXPRINT_PREVIEW = Wx::ID_PREVIEW
18
-
19
- WXPRINT_PRINT_PS = 105
20
- WXPRINT_PAGE_SETUP_PS = 107
21
- WXPRINT_PREVIEW_PS = 108
22
-
23
- WXPRINT_ABOUT = Wx::ID_ABOUT
24
-
25
- WXPRINT_ANGLEUP = 110
26
- WXPRINT_ANGLEDOWN = 111
27
-
28
- class MyFrame < Wx::Frame
29
-
30
- attr_accessor :canvas
31
-
32
- def initialize(parent, title, pos, size)
33
- super(parent, -1, title, pos, size)
34
- @canvas = nil
35
- @bitmap = Wx::Bitmap.new
36
- @angle = 30
37
-
38
- # map events
39
- evt_menu(WXPRINT_QUIT) { |e| on_exit(e) }
40
- evt_menu(WXPRINT_PRINT) { |e| on_print(e) }
41
- evt_menu(WXPRINT_PREVIEW) { |e| on_print_preview(e) }
42
- evt_menu(WXPRINT_PAGE_SETUP) { |e| on_page_setup(e) }
43
- evt_menu(WXPRINT_ABOUT) { |e| on_print_about(e) }
44
- evt_menu(WXPRINT_ANGLEUP) { |e| on_angle_up(e) }
45
- evt_menu(WXPRINT_ANGLEDOWN) { |e| on_angle_down(e) }
46
- end
14
+ module Printing
47
15
 
48
- def draw(dc)
49
- dc.set_background(Wx::WHITE_BRUSH)
50
- dc.clear()
51
- dc.set_font(Wx::get_app.test_font)
16
+ WXPRINT_QUIT = Wx::ID_EXIT
17
+ WXPRINT_PRINT = Wx::ID_PRINT
18
+ WXPRINT_PAGE_SETUP = Wx::ID_PRINT_SETUP
19
+ WXPRINT_PREVIEW = Wx::ID_PREVIEW
52
20
 
53
- dc.set_background_mode(Wx::BRUSHSTYLE_TRANSPARENT)
21
+ WXPRINT_PRINT_PS = 105
22
+ WXPRINT_PAGE_SETUP_PS = 107
23
+ WXPRINT_PREVIEW_PS = 108
54
24
 
55
- dc.set_brush(Wx::CYAN_BRUSH)
56
- dc.set_pen(Wx::RED_PEN)
25
+ WXPRINT_ABOUT = Wx::ID_ABOUT
57
26
 
58
- dc.draw_rounded_rectangle(0, 20, 200, 80, 20)
27
+ WXPRINT_ANGLEUP = 110
28
+ WXPRINT_ANGLEDOWN = 111
59
29
 
60
- dc.draw_text("Rectangle 200 by 80", 40, 40)
30
+ class MyFrame < Wx::Frame
61
31
 
62
- dc.set_pen(Wx::Pen.new(Wx::BLACK, 0, Wx::PENSTYLE_DOT_DASH))
63
- dc.draw_ellipse(50, 140, 100, 50)
64
- dc.set_pen(Wx::RED_PEN)
32
+ attr_accessor :canvas
65
33
 
66
- dc.draw_text("Test message: this is in 10 point text", 10, 180)
34
+ def initialize(parent, title, pos, size)
35
+ super(parent, -1, title, pos, size)
36
+ @canvas = nil
37
+ @bitmap = Wx::Bitmap.new
38
+ @angle = 30
67
39
 
68
- test = "Hebrew שלום -- Japanese (日本語)"
69
- dc.draw_text(test, 10, 200)
40
+ # map events
41
+ evt_menu(WXPRINT_QUIT) { |e| on_exit(e) }
42
+ evt_menu(WXPRINT_PRINT) { |e| on_print(e) }
43
+ evt_menu(WXPRINT_PREVIEW) { |e| on_print_preview(e) }
44
+ evt_menu(WXPRINT_PAGE_SETUP) { |e| on_page_setup(e) }
45
+ evt_menu(WXPRINT_ABOUT) { |e| on_print_about(e) }
46
+ evt_menu(WXPRINT_ANGLEUP) { |e| on_angle_up(e) }
47
+ evt_menu(WXPRINT_ANGLEDOWN) { |e| on_angle_down(e) }
48
+ end
70
49
 
71
- points = []
72
- points << Wx::Point.new(0, 0)
73
- points << Wx::Point.new(20, 0)
74
- points << Wx::Point.new(20, 20)
75
- points << Wx::Point.new(10, 20)
76
- points << Wx::Point.new(10, -20)
50
+ def draw(dc)
51
+ dc.set_background(Wx::WHITE_BRUSH)
52
+ dc.clear()
53
+ dc.set_font(Wx::get_app.test_font)
77
54
 
78
- dc.draw_polygon(points, 20, 250, Wx::ODDEVEN_RULE)
79
- dc.draw_polygon(points, 50, 250, Wx::WINDING_RULE)
55
+ dc.set_background_mode(Wx::BRUSHSTYLE_TRANSPARENT)
80
56
 
81
- dc.draw_elliptic_arc(80, 250, 60, 30, 0.0, 270.0)
57
+ dc.set_brush(Wx::CYAN_BRUSH)
58
+ dc.set_pen(Wx::RED_PEN)
82
59
 
83
- points[0].x = 150
84
- points[0].y = 250
85
- points[1].x = 180
86
- points[1].y = 250
87
- points[2].x = 180
88
- points[2].y = 220
89
- points[3].x = 200
90
- points[3].y = 220
91
- points.pop
92
- dc.draw_spline(points)
60
+ dc.draw_rounded_rectangle(0, 20, 200, 80, 20)
93
61
 
94
- dc.draw_arc(20, 10, 10, 10, 25, 40)
62
+ dc.draw_text("Rectangle 200 by 80", 40, 40)
95
63
 
96
- str = ""
97
- i = 0
98
- str = "---- Text at angle #{i} ----"
99
- dc.draw_rotated_text(str, 100, 300, i)
64
+ dc.set_pen(Wx::Pen.new(Wx::BLACK, 0, Wx::PENSTYLE_DOT_DASH))
65
+ dc.draw_ellipse(50, 140, 100, 50)
66
+ dc.set_pen(Wx::RED_PEN)
100
67
 
101
- i = @angle;
102
- str = "---- Text at angle #{i} ----"
103
- dc.draw_rotated_text(str, 100, 300, i)
68
+ dc.draw_text("Test message: this is in 10 point text", 10, 180)
104
69
 
105
- dc.set_pen(Wx::BLACK_PEN)
106
- dc.draw_line(0, 0, 200, 200)
107
- dc.draw_line(200, 0, 0, 200)
70
+ test = "Hebrew שלום -- Japanese (日本語)"
71
+ dc.draw_text(test, 10, 200)
108
72
 
109
- # Load icon
110
- if Wx::PLATFORM == "WXMSW"
111
- icon_file = File.join(File.dirname(__FILE__), 'mondrian.ico')
112
- my_icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_ICO)
113
- else
114
- icon_file = File.join(File.dirname(__FILE__), 'mondrian.xpm')
115
- my_icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_XPM)
116
- end
73
+ points = []
74
+ points << Wx::Point.new(0, 0)
75
+ points << Wx::Point.new(20, 0)
76
+ points << Wx::Point.new(20, 20)
77
+ points << Wx::Point.new(10, 20)
78
+ points << Wx::Point.new(10, -20)
117
79
 
118
- dc.draw_icon(my_icon, 100, 100)
80
+ dc.draw_polygon(points, 20, 250, Wx::ODDEVEN_RULE)
81
+ dc.draw_polygon(points, 50, 250, Wx::WINDING_RULE)
119
82
 
120
- if @bitmap.is_ok
121
- dc.draw_bitmap(@bitmap, 10, 10)
122
- end
123
- end
83
+ dc.draw_elliptic_arc(80, 250, 60, 30, 0.0, 270.0)
124
84
 
125
- def on_angle_up(event)
126
- @angle += 5
127
- canvas.refresh
128
- end
85
+ points[0].x = 150
86
+ points[0].y = 250
87
+ points[1].x = 180
88
+ points[1].y = 250
89
+ points[2].x = 180
90
+ points[2].y = 220
91
+ points[3].x = 200
92
+ points[3].y = 220
93
+ points.pop
94
+ dc.draw_spline(points)
129
95
 
130
- def on_angle_down(event)
131
- @angle -= 5
132
- canvas.refresh
133
- end
96
+ dc.draw_arc(20, 10, 10, 10, 25, 40)
134
97
 
135
- def on_size(event)
136
- super(event)
137
- end
98
+ str = ""
99
+ i = 0
100
+ str = "---- Text at angle #{i} ----"
101
+ dc.draw_rotated_text(str, 100, 300, i)
102
+
103
+ i = @angle;
104
+ str = "---- Text at angle #{i} ----"
105
+ dc.draw_rotated_text(str, 100, 300, i)
138
106
 
139
- def on_print(event)
140
- printer = Wx::Printer.new(Wx::PrintDialogData.new(Wx::get_app.page_setup_data.print_data))
141
- printout = MyPrintout.new("My printout")
142
- if (!printer.print(self, printout, true))
143
- if (Wx::Printer.get_last_error == Wx::PRINTER_ERROR)
144
- Wx::message_box("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", Wx::OK)
107
+ dc.set_pen(Wx::BLACK_PEN)
108
+ dc.draw_line(0, 0, 200, 200)
109
+ dc.draw_line(200, 0, 0, 200)
110
+
111
+ # Load icon
112
+ if Wx::PLATFORM == "WXMSW"
113
+ icon_file = File.join(File.dirname(__FILE__), 'mondrian.ico')
114
+ my_icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_ICO)
145
115
  else
146
- Wx::message_box("You canceled printing", "Printing", Wx::OK)
116
+ icon_file = File.join(File.dirname(__FILE__), 'mondrian.xpm')
117
+ my_icon = Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_XPM)
118
+ end
119
+
120
+ dc.draw_icon(my_icon, 100, 100)
121
+
122
+ if @bitmap.is_ok
123
+ dc.draw_bitmap(@bitmap, 10, 10)
147
124
  end
148
- else
149
- Wx::get_app.page_setup_data.print_data = printer.print_dialog_data.print_data
150
125
  end
151
- end
152
126
 
153
- def on_print_preview(event)
154
- # Pass two printout objects: for preview, and possible printing.
155
- preview = Wx::PrintPreview.new(MyPrintout.new,
156
- MyPrintout.new,
157
- Wx::PrintDialogData.new(Wx::get_app.page_setup_data.print_data))
158
- if not preview.is_ok
159
- # delete preview;
160
- Wx::message_box("There was a problem previewing.\nPerhaps your current printer is not set correctly?", "Previewing", Wx::OK)
161
- return
127
+ def on_angle_up(event)
128
+ @angle += 5
129
+ canvas.refresh
162
130
  end
163
131
 
164
- prev_frame = Wx::PreviewFrame.new(preview, self, "Demo Print Preview", Wx::Point.new(100, 100), Wx::Size.new(600, 650))
165
- prev_frame.centre(Wx::BOTH)
166
- prev_frame.init
167
- prev_frame.show
168
- end
132
+ def on_angle_down(event)
133
+ @angle -= 5
134
+ canvas.refresh
135
+ end
136
+
137
+ def on_size(event)
138
+ super(event)
139
+ end
169
140
 
170
- def on_page_setup(event)
171
- Wx::PRT.PageSetupDialog(self, Wx::get_app.page_setup_data) do |dlg|
172
- dlg.show_modal
141
+ def on_print(event)
142
+ printer = Wx::Printer.new(Wx::PrintDialogData.new(Wx::get_app.page_setup_data.print_data))
143
+ printout = MyPrintout.new("My printout")
144
+ if (!printer.print(self, printout, true))
145
+ if (Wx::Printer.get_last_error == Wx::PRINTER_ERROR)
146
+ Wx::message_box("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", Wx::OK)
147
+ else
148
+ Wx::message_box("You canceled printing", "Printing", Wx::OK)
149
+ end
150
+ else
151
+ Wx::get_app.page_setup_data.print_data = printer.print_dialog_data.print_data
152
+ end
153
+ end
173
154
 
174
- Wx::get_app.page_setup_data = dlg.page_setup_data
155
+ def on_print_preview(event)
156
+ # Pass two printout objects: for preview, and possible printing.
157
+ preview = Wx::PrintPreview.new(MyPrintout.new,
158
+ MyPrintout.new,
159
+ Wx::PrintDialogData.new(Wx::get_app.page_setup_data.print_data))
160
+ if not preview.is_ok
161
+ # delete preview;
162
+ Wx::message_box("There was a problem previewing.\nPerhaps your current printer is not set correctly?", "Previewing", Wx::OK)
163
+ return
164
+ end
165
+
166
+ prev_frame = Wx::PreviewFrame.new(preview, self, "Demo Print Preview", Wx::Point.new(100, 100), Wx::Size.new(600, 650))
167
+ prev_frame.centre(Wx::BOTH)
168
+ prev_frame.init
169
+ prev_frame.show
175
170
  end
176
- end
177
171
 
178
- def on_exit(event)
179
- close(true)
180
- end
172
+ def on_page_setup(event)
173
+ Wx::PRT.PageSetupDialog(self, Wx::get_app.page_setup_data) do |dlg|
174
+ dlg.show_modal
181
175
 
182
- def on_print_about(event)
183
- Wx::message_box("wxWidgets printing demo\nAuthor: Julian Smart\nAdapted to wxRuby by Sean Long",
184
- "About wxRuby printing demo", Wx::OK | Wx::CENTRE)
185
- end
176
+ Wx::get_app.page_setup_data = dlg.page_setup_data
177
+ end
178
+ end
186
179
 
187
- end
180
+ def on_exit(event)
181
+ close(true)
182
+ end
188
183
 
189
- class MyCanvas < Wx::ScrolledWindow
190
- # attr_accessor :frame
184
+ def on_print_about(event)
185
+ Wx::message_box("wxWidgets printing demo\nAuthor: Julian Smart\nAdapted to wxRuby by Sean Long",
186
+ "About wxRuby printing demo", Wx::OK | Wx::CENTRE)
187
+ end
191
188
 
192
- def initialize(parent, pos, size, style = Wx::RETAINED)
193
- super(parent, -1, pos, size, style)
194
- @frame = parent
195
- set_background_colour(Wx::WHITE)
196
- evt_mouse_events() { |e| on_event(e) }
197
189
  end
198
190
 
199
- def on_draw(dc)
200
- @frame.draw(dc)
201
- end
191
+ class MyCanvas < Wx::ScrolledWindow
192
+ # attr_accessor :frame
202
193
 
203
- def on_event(event) end
204
- end
194
+ def initialize(parent, pos, size, style = Wx::RETAINED)
195
+ super(parent, -1, pos, size, style)
196
+ @frame = parent
197
+ set_background_colour(Wx::WHITE)
198
+ evt_mouse_events() { |e| on_event(e) }
199
+ end
205
200
 
206
- class MyPrintout < Wx::Printout
207
- def initialize(title = "My printout")
208
- super(title)
201
+ def on_draw(dc)
202
+ @frame.draw(dc)
203
+ end
204
+
205
+ def on_event(event) end
209
206
  end
210
207
 
211
- def on_print_page(page)
212
- dc = get_dc
213
- if dc
214
- if page == 1
215
- draw_page_one(dc)
216
- elsif (page == 2)
217
- draw_page_two(dc)
218
- end
219
- dc.set_device_origin(0, 0)
220
- dc.set_user_scale(1.0, 1.0)
208
+ class MyPrintout < Wx::Printout
209
+ def initialize(title = "My printout")
210
+ super(title)
211
+ end
221
212
 
222
- buf = "PAGE #{page}"
223
- dc.draw_text(buf, 10, 10)
213
+ def on_print_page(page)
214
+ dc = get_dc
215
+ if dc
216
+ if page == 1
217
+ draw_page_one(dc)
218
+ elsif (page == 2)
219
+ draw_page_two(dc)
220
+ end
221
+ dc.set_device_origin(0, 0)
222
+ dc.set_user_scale(1.0, 1.0)
223
+
224
+ buf = "PAGE #{page}"
225
+ dc.draw_text(buf, 10, 10)
226
+
227
+ return true
228
+ else
229
+ return false
230
+ end
231
+ end
224
232
 
233
+ def on_begin_document(start_page, end_page)
234
+ go_ahead = super(start_page, end_page)
235
+ if (!go_ahead)
236
+ return false
237
+ end
225
238
  return true
226
- else
227
- return false
228
239
  end
229
- end
230
240
 
231
- def on_begin_document(start_page, end_page)
232
- go_ahead = super(start_page, end_page)
233
- if (!go_ahead)
234
- return false
241
+ def has_page(page)
242
+ return (page == 1 || page == 2)
235
243
  end
236
- return true
237
- end
238
244
 
239
- def has_page(page)
240
- return (page == 1 || page == 2)
241
- end
245
+ def get_page_info
246
+ min_page = 1
247
+ max_page = 2
248
+ sel_page_from = 1
249
+ sel_page_to = 2
250
+ [min_page, max_page, sel_page_from, sel_page_to]
251
+ end
242
252
 
243
- def get_page_info
244
- min_page = 1
245
- max_page = 2
246
- sel_page_from = 1
247
- sel_page_to = 2
248
- [min_page, max_page, sel_page_from, sel_page_to]
249
- end
253
+ def draw_page_one(dc)
254
+ # You might use THIS code if you were scaling
255
+ # graphics of known size to fit on the page.
250
256
 
251
- def draw_page_one(dc)
252
- # You might use THIS code if you were scaling
253
- # graphics of known size to fit on the page.
254
-
255
- # We know the graphic is 200x200. If we didn't know this,
256
- # we'd need to calculate it.
257
- max_x = 200
258
- max_y = 200
259
-
260
- # Let's have at least 50 device units margin
261
- margin_x = 50
262
- margin_y = 50
263
-
264
- # Add the margin to the graphic size
265
- max_x += (2 * margin_x)
266
- max_y += (2 * margin_y)
267
-
268
- # Get the size of the DC in pixels
269
- size = dc.get_size
270
- w = size.get_width
271
- h = size.get_height
272
-
273
- # Calculate a suitable scaling factor
274
- scale_x = (w / max_x)
275
- scale_y = (h / max_y)
276
-
277
- # Use x or y scaling factor, whichever fits on the DC
278
- # actualScale = Wx::min(scaleX,scaleY)
279
- if scale_x < scale_y
280
- actual_scale = scale_x
281
- else
282
- actual_scale = scale_y
283
- end
257
+ # We know the graphic is 200x200. If we didn't know this,
258
+ # we'd need to calculate it.
259
+ max_x = 200
260
+ max_y = 200
284
261
 
285
- # Calculate the position on the DC for centring the graphic
286
- pos_x = ((w - (200 * actual_scale)) / 2.0)
287
- pos_y = ((h - (200 * actual_scale)) / 2.0)
262
+ # Let's have at least 50 device units margin
263
+ margin_x = 50
264
+ margin_y = 50
288
265
 
289
- # Set the scale and origin
290
- dc.set_user_scale(actual_scale, actual_scale)
291
- dc.set_device_origin(pos_x.to_i, pos_y.to_i)
266
+ # Add the margin to the graphic size
267
+ max_x += (2 * margin_x)
268
+ max_y += (2 * margin_y)
292
269
 
293
- Wx::get_app.frame.draw(dc)
294
- end
270
+ # Get the size of the DC in pixels
271
+ size = dc.get_size
272
+ w = size.get_width
273
+ h = size.get_height
274
+
275
+ # Calculate a suitable scaling factor
276
+ scale_x = (w / max_x)
277
+ scale_y = (h / max_y)
278
+
279
+ # Use x or y scaling factor, whichever fits on the DC
280
+ # actualScale = Wx::min(scaleX,scaleY)
281
+ if scale_x < scale_y
282
+ actual_scale = scale_x
283
+ else
284
+ actual_scale = scale_y
285
+ end
286
+
287
+ # Calculate the position on the DC for centring the graphic
288
+ pos_x = ((w - (200 * actual_scale)) / 2.0)
289
+ pos_y = ((h - (200 * actual_scale)) / 2.0)
295
290
 
296
- def draw_page_two(dc)
297
- # You might use THIS code to set the printer DC to ROUGHLY reflect
298
- # the screen text size. This page also draws lines of actual length
299
- # 5cm on the page.
300
-
301
- # Get the logical pixels per inch of screen and printer
302
- ppi_screen_x, ppi_screen_y = get_ppi_screen
303
- ppi_printer_x, ppi_printer_y = get_ppi_printer
304
-
305
- # This scales the DC so that the printout roughly represents the
306
- # the screen scaling. The text point size _should_ be the right size
307
- # but in fact is too small for some reason. This is a detail that will
308
- # need to be addressed at some point but can be fudged for the
309
- # moment.
310
- scale = (ppi_printer_x.to_f / ppi_screen_x.to_f)
311
-
312
- # Now we have to check in case our real page size is reduced
313
- # (e.g. because we're drawing to a print preview memory DC)
314
- page_width, page_height = get_page_size_pixels
315
- size = dc.get_size
316
- w = size.get_width
317
- h = size.get_height
318
-
319
- # If printer pageWidth == current DC width, then this doesn't
320
- # change. But w might be the preview bitmap width, so scale down.
321
- overall_scale = scale * (w.to_f / page_width.to_f)
322
- dc.set_user_scale(overall_scale, overall_scale)
323
-
324
- # Calculate conversion factor for converting millimetres into
325
- # logical units.
326
- # There are approx. 25.4 mm to the inch. There are ppi
327
- # device units to the inch. Therefore 1 mm corresponds to
328
- # ppi/25.4 device units. We also divide by the
329
- # screen-to-printer scaling factor, because we need to
330
- # unscale to pass logical units to DrawLine.
331
-
332
- # Draw 50 mm by 50 mm L shape
333
- log_units_factor = (ppi_printer_x.to_f / (scale * 25.4))
334
- log_units = (50 * log_units_factor)
335
- dc.set_pen(Wx::BLACK_PEN)
336
- dc.draw_line(50, 250, (50.0 + log_units).to_i, 250)
337
- dc.draw_line(50, 250, 50, (250.0 + log_units).to_i)
338
-
339
- dc.set_background_mode(Wx::BRUSHSTYLE_TRANSPARENT)
340
- dc.set_brush(Wx::TRANSPARENT_BRUSH)
341
-
342
- # GetTextExtent demo:
343
- words = ["This ", "is ", "GetTextExtent ", "testing ", "string. ", "Enjoy ", "it!"]
344
- w, h = 0, 0
345
- x = 200
346
- y = 250
347
- fnt = Wx::Font.new(15, Wx::FONTFAMILY_SWISS, Wx::FONTSTYLE_NORMAL, Wx::FONTWEIGHT_NORMAL)
348
-
349
- dc.set_font(fnt)
350
-
351
- words.each do |word|
352
- w, h = dc.get_text_extent(word)
353
- dc.draw_rectangle(x, y, w.to_i, h.to_i)
354
- w, h = dc.get_text_extent(word)
355
- dc.draw_text(word, x, y)
356
- x += w
291
+ # Set the scale and origin
292
+ dc.set_user_scale(actual_scale, actual_scale)
293
+ dc.set_device_origin(pos_x.to_i, pos_y.to_i)
294
+
295
+ Wx::get_app.frame.draw(dc)
357
296
  end
358
297
 
359
- dc.set_font(Wx::get_app.test_font)
298
+ def draw_page_two(dc)
299
+ # You might use THIS code to set the printer DC to ROUGHLY reflect
300
+ # the screen text size. This page also draws lines of actual length
301
+ # 5cm on the page.
302
+
303
+ # Get the logical pixels per inch of screen and printer
304
+ ppi_screen_x, ppi_screen_y = get_ppi_screen
305
+ ppi_printer_x, ppi_printer_y = get_ppi_printer
306
+
307
+ # This scales the DC so that the printout roughly represents the
308
+ # the screen scaling. The text point size _should_ be the right size
309
+ # but in fact is too small for some reason. This is a detail that will
310
+ # need to be addressed at some point but can be fudged for the
311
+ # moment.
312
+ scale = (ppi_printer_x.to_f / ppi_screen_x.to_f)
313
+
314
+ # Now we have to check in case our real page size is reduced
315
+ # (e.g. because we're drawing to a print preview memory DC)
316
+ page_width, page_height = get_page_size_pixels
317
+ size = dc.get_size
318
+ w = size.get_width
319
+ h = size.get_height
320
+
321
+ # If printer pageWidth == current DC width, then this doesn't
322
+ # change. But w might be the preview bitmap width, so scale down.
323
+ overall_scale = scale * (w.to_f / page_width.to_f)
324
+ dc.set_user_scale(overall_scale, overall_scale)
325
+
326
+ # Calculate conversion factor for converting millimetres into
327
+ # logical units.
328
+ # There are approx. 25.4 mm to the inch. There are ppi
329
+ # device units to the inch. Therefore 1 mm corresponds to
330
+ # ppi/25.4 device units. We also divide by the
331
+ # screen-to-printer scaling factor, because we need to
332
+ # unscale to pass logical units to DrawLine.
333
+
334
+ # Draw 50 mm by 50 mm L shape
335
+ log_units_factor = (ppi_printer_x.to_f / (scale * 25.4))
336
+ log_units = (50 * log_units_factor)
337
+ dc.set_pen(Wx::BLACK_PEN)
338
+ dc.draw_line(50, 250, (50.0 + log_units).to_i, 250)
339
+ dc.draw_line(50, 250, 50, (250.0 + log_units).to_i)
340
+
341
+ dc.set_background_mode(Wx::BRUSHSTYLE_TRANSPARENT)
342
+ dc.set_brush(Wx::TRANSPARENT_BRUSH)
343
+
344
+ # GetTextExtent demo:
345
+ words = ["This ", "is ", "GetTextExtent ", "testing ", "string. ", "Enjoy ", "it!"]
346
+ w, h = 0, 0
347
+ x = 200
348
+ y = 250
349
+ fnt = Wx::Font.new(15, Wx::FONTFAMILY_SWISS, Wx::FONTSTYLE_NORMAL, Wx::FONTWEIGHT_NORMAL)
350
+
351
+ dc.set_font(fnt)
352
+
353
+ words.each do |word|
354
+ w, h = dc.get_text_extent(word)
355
+ dc.draw_rectangle(x, y, w.to_i, h.to_i)
356
+ w, h = dc.get_text_extent(word)
357
+ dc.draw_text(word, x, y)
358
+ x += w
359
+ end
360
360
 
361
- dc.draw_text("Some test text", 200, 300)
361
+ dc.set_font(Wx::get_app.test_font)
362
362
 
363
- left_margin = 20
364
- right_margin = 20
365
- top_margin = 20
366
- bottom_margin = 20
363
+ dc.draw_text("Some test text", 200, 300)
367
364
 
368
- page_width_mm, page_height_mm = get_page_size_mm
365
+ left_margin = 20
366
+ right_margin = 20
367
+ top_margin = 20
368
+ bottom_margin = 20
369
369
 
370
- left_margin_logical = (log_units_factor * left_margin).to_i
371
- top_margin_logical = (log_units_factor * top_margin).to_i
372
- bottom_margin_logical = (log_units_factor * (page_height_mm - bottom_margin)).to_i
373
- right_margin_logical = (log_units_factor * (page_width_mm - right_margin)).to_i
370
+ page_width_mm, page_height_mm = get_page_size_mm
374
371
 
375
- dc.set_pen(Wx::RED_PEN)
376
- dc.draw_line(left_margin_logical, top_margin_logical,
377
- right_margin_logical, top_margin_logical)
378
- dc.draw_line(left_margin_logical, bottom_margin_logical,
379
- right_margin_logical, bottom_margin_logical)
372
+ left_margin_logical = (log_units_factor * left_margin).to_i
373
+ top_margin_logical = (log_units_factor * top_margin).to_i
374
+ bottom_margin_logical = (log_units_factor * (page_height_mm - bottom_margin)).to_i
375
+ right_margin_logical = (log_units_factor * (page_width_mm - right_margin)).to_i
380
376
 
381
- write_page_header(self, dc, "A header", log_units_factor)
382
- end
377
+ dc.set_pen(Wx::RED_PEN)
378
+ dc.draw_line(left_margin_logical, top_margin_logical,
379
+ right_margin_logical, top_margin_logical)
380
+ dc.draw_line(left_margin_logical, bottom_margin_logical,
381
+ right_margin_logical, bottom_margin_logical)
382
+
383
+ write_page_header(self, dc, "A header", log_units_factor)
384
+ end
383
385
 
384
- # Writes a header on a page. Margin units are in millimetres.
385
- def write_page_header(printout, dc, text, mm_to_logical)
386
- page_width_mm, page_height_mm = printout.get_page_size_mm
386
+ # Writes a header on a page. Margin units are in millimetres.
387
+ def write_page_header(printout, dc, text, mm_to_logical)
388
+ page_width_mm, page_height_mm = printout.get_page_size_mm
387
389
 
388
- left_margin = 10
389
- top_margin = 10
390
- right_margin = 10
390
+ left_margin = 10
391
+ top_margin = 10
392
+ right_margin = 10
391
393
 
392
- left_margin_logical = (mm_to_logical * left_margin).to_i
393
- top_margin_logical = (mm_to_logical * top_margin).to_i
394
- right_margin_logical = (mm_to_logical * (page_width_mm - right_margin)).to_i
394
+ left_margin_logical = (mm_to_logical * left_margin).to_i
395
+ top_margin_logical = (mm_to_logical * top_margin).to_i
396
+ right_margin_logical = (mm_to_logical * (page_width_mm - right_margin)).to_i
395
397
 
396
- x_extent, y_extent = dc.get_text_extent(text)
397
- x_pos = (((((page_width_mm - left_margin - right_margin) / 2.0) + left_margin) * mm_to_logical) - (x_extent / 2.0))
398
- dc.draw_text(text, x_pos.to_i, top_margin_logical)
398
+ x_extent, y_extent = dc.get_text_extent(text)
399
+ x_pos = (((((page_width_mm - left_margin - right_margin) / 2.0) + left_margin) * mm_to_logical) - (x_extent / 2.0))
400
+ dc.draw_text(text, x_pos.to_i, top_margin_logical)
399
401
 
400
- dc.set_pen(Wx::BLACK_PEN)
401
- dc.draw_line(left_margin_logical, (top_margin_logical + y_extent).to_i,
402
- right_margin_logical, (top_margin_logical + y_extent).to_i)
402
+ dc.set_pen(Wx::BLACK_PEN)
403
+ dc.draw_line(left_margin_logical, (top_margin_logical + y_extent).to_i,
404
+ right_margin_logical, (top_margin_logical + y_extent).to_i)
403
405
 
404
- return true
406
+ return true
407
+ end
405
408
  end
406
- end
407
409
 
408
- class MyApp < Wx::App
409
- attr_accessor :frame, :test_font, :page_setup_data
410
+ class MyApp < Wx::App
411
+ attr_accessor :frame, :test_font, :page_setup_data
410
412
 
411
- def on_init
412
- @test_font = Wx::Font.new(10, Wx::FONTFAMILY_SWISS, Wx::FONTSTYLE_NORMAL, Wx::FONTWEIGHT_NORMAL)
413
+ def on_init
414
+ @test_font = Wx::Font.new(10, Wx::FONTFAMILY_SWISS, Wx::FONTSTYLE_NORMAL, Wx::FONTWEIGHT_NORMAL)
413
415
 
414
- # Create the main frame window
415
- @frame = MyFrame.new(nil, "wxRuby Printing Demo", Wx::Point.new(0, 0), Wx::Size.new(400, 400))
416
+ # Create the main frame window
417
+ @frame = MyFrame.new(nil, "wxRuby Printing Demo", Wx::Point.new(0, 0), Wx::Size.new(400, 400))
416
418
 
417
- # Give it a status line
418
- @frame.create_status_bar(2)
419
+ # Give it a status line
420
+ @frame.create_status_bar(2)
419
421
 
420
- # Load icon and bitmap
421
- if Wx::PLATFORM == "WXMSW"
422
- icon_file = File.join(File.dirname(__FILE__), 'mondrian.ico')
423
- @frame.set_icon(Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_ICO))
424
- else
425
- icon_file = File.join(File.dirname(__FILE__), 'mondrian.xpm')
426
- @frame.set_icon(Wx::Icon.new(icon_file, Wx::BITMAP_TYPE_XPM))
427
- end
422
+ # Load icon
423
+ @frame.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
428
424
 
429
- # Make a menubar
430
- file_menu = Wx::Menu.new
425
+ # Make a menubar
426
+ file_menu = Wx::Menu.new
431
427
 
432
- file_menu.append(WXPRINT_PRINT, "&Print...", "Print")
433
- file_menu.append(WXPRINT_PAGE_SETUP, "Page Set&up...", "Page setup")
434
- file_menu.append(WXPRINT_PREVIEW, "Print Pre&view", "Preview")
428
+ file_menu.append(WXPRINT_PRINT, "&Print...", "Print")
429
+ file_menu.append(WXPRINT_PAGE_SETUP, "Page Set&up...", "Page setup")
430
+ file_menu.append(WXPRINT_PREVIEW, "Print Pre&view", "Preview")
435
431
 
436
- =begin
437
- # Accelerators
438
- wxAcceleratorEntry entries[1];
439
- entries[0].Set(wxACCEL_CTRL, (int) 'V', WXPRINT_PREVIEW);
440
- wxAcceleratorTable accel(1, entries);
441
- frame->SetAcceleratorTable(accel);
442
- =end
432
+ file_menu.append_separator()
433
+ file_menu.append(WXPRINT_ANGLEUP, "Angle up\tAlt-U", "Raise rotated text angle")
434
+ file_menu.append(WXPRINT_ANGLEDOWN, "Angle down\tAlt-D", "Lower rotated text angle")
435
+ file_menu.append_separator()
436
+ file_menu.append(WXPRINT_QUIT, "E&xit", "Exit program")
443
437
 
444
- file_menu.append_separator()
445
- file_menu.append(WXPRINT_ANGLEUP, "Angle up\tAlt-U", "Raise rotated text angle")
446
- file_menu.append(WXPRINT_ANGLEDOWN, "Angle down\tAlt-D", "Lower rotated text angle")
447
- file_menu.append_separator()
448
- file_menu.append(WXPRINT_QUIT, "E&xit", "Exit program")
438
+ help_menu = Wx::Menu.new
439
+ help_menu.append(WXPRINT_ABOUT, "&About", "About this demo")
449
440
 
450
- help_menu = Wx::Menu.new
451
- help_menu.append(WXPRINT_ABOUT, "&About", "About this demo")
441
+ menu_bar = Wx::MenuBar.new
452
442
 
453
- menu_bar = Wx::MenuBar.new
443
+ menu_bar.append(file_menu, "&File")
444
+ menu_bar.append(help_menu, "&Help")
454
445
 
455
- menu_bar.append(file_menu, "&File")
456
- menu_bar.append(help_menu, "&Help")
446
+ # Associate the menu bar with the frame
447
+ @frame.set_menu_bar(menu_bar)
457
448
 
458
- # Associate the menu bar with the frame
459
- @frame.set_menu_bar(menu_bar)
449
+ canvas = MyCanvas.new(@frame, Wx::Point.new(0, 0), Wx::Size.new(100, 100), Wx::RETAINED | Wx::HSCROLL | Wx::VSCROLL)
460
450
 
461
- canvas = MyCanvas.new(@frame, Wx::Point.new(0, 0), Wx::Size.new(100, 100), Wx::RETAINED | Wx::HSCROLL | Wx::VSCROLL)
451
+ # Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction
452
+ canvas.set_scrollbars(20, 20, 50, 50)
462
453
 
463
- # Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction
464
- canvas.set_scrollbars(20, 20, 50, 50)
454
+ @frame.canvas = canvas
465
455
 
466
- @frame.canvas = canvas
456
+ @frame.centre(Wx::BOTH)
457
+ @frame.show()
467
458
 
468
- @frame.centre(Wx::BOTH)
469
- @frame.show()
459
+ @frame.set_status_text("Printing demo")
470
460
 
471
- @frame.set_status_text("Printing demo")
461
+ set_top_window(@frame)
472
462
 
473
- set_top_window(@frame)
463
+ #@print_data = Wx::PrintData.new
464
+ @page_setup_data = Wx::PageSetupDialogData.new
474
465
 
475
- #@print_data = Wx::PrintData.new
476
- @page_setup_data = Wx::PageSetupDialogData.new
466
+ return true
467
+ end
477
468
 
478
- return true
469
+ def on_exit
470
+ return true
471
+ end
479
472
  end
480
473
 
481
- def on_exit
482
- return true
483
- end
484
474
  end
485
475
 
486
476
  module PrintingSample
@@ -498,7 +488,7 @@ module PrintingSample
498
488
  end
499
489
 
500
490
  if $0 == __FILE__
501
- MyApp.run
491
+ Printing::MyApp.run
502
492
  end
503
493
 
504
494
  end