wxruby3 0.9.1 → 0.9.3
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.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/INSTALL.md +35 -29
- data/README.md +24 -15
- data/ext/wxruby3/include/wxRubyApp.h +338 -0
- data/ext/wxruby3/include/wxruby-ClientData.h +48 -0
- data/ext/wxruby3/include/wxruby-Config.h +6 -6
- data/ext/wxruby3/include/wxruby-Validator.h +39 -0
- data/ext/wxruby3/include/wxruby-ValidatorBinding.h +64 -0
- data/ext/wxruby3/swig/common.i +1 -1
- data/ext/wxruby3/swig/custom/director.swg +8 -0
- data/ext/wxruby3/swig/mark_free_impl.i +0 -33
- data/lib/wx/aui/aui_tab_ctrl.rb +18 -0
- data/lib/wx/aui/auinotebook.rb +6 -2
- data/lib/wx/aui/require.rb +1 -0
- data/lib/wx/core/app.rb +2 -2
- data/lib/wx/core/bitmap_combobox.rb +17 -21
- data/lib/wx/core/collapsible_pane.rb +1 -1
- data/lib/wx/core/combobox.rb +13 -3
- data/lib/wx/core/controlwithitems.rb +40 -128
- data/lib/wx/core/enum.rb +17 -1
- data/lib/wx/core/event.rb +6 -1
- data/lib/wx/core/evthandler.rb +8 -2
- data/lib/wx/core/generic_validator.rb +312 -0
- data/lib/wx/core/listbox.rb +2 -2
- data/lib/wx/core/log.rb +1 -1
- data/lib/wx/core/menu.rb +10 -0
- data/lib/wx/core/notebook.rb +6 -2
- data/lib/wx/core/owner_drawn_combobox.rb +45 -0
- data/lib/wx/core/size.rb +4 -0
- data/lib/wx/core/sizer.rb +12 -2
- data/lib/wx/core/standard_paths.rb +22 -0
- data/lib/wx/core/task_bar_button.rb +19 -0
- data/lib/wx/core/text_entry.rb +4 -1
- data/lib/wx/core/textctrl.rb +11 -1
- data/lib/wx/core/{treectrl.rb → tree_ctrl.rb} +31 -12
- data/lib/wx/core/validator.rb +70 -5
- data/lib/wx/core/window.rb +13 -7
- data/lib/wx/doc/app.rb +48 -38
- data/lib/wx/doc/art_locator.rb +48 -43
- data/lib/wx/doc/aui/auimanager.rb +16 -8
- data/lib/wx/doc/aui/auinotebook.rb +20 -5
- data/lib/wx/doc/clipboard.rb +11 -7
- data/lib/wx/doc/colour_dialog.rb +14 -10
- data/lib/wx/doc/comboctrl.rb +18 -0
- data/lib/wx/doc/controlwithitems.rb +34 -8
- data/lib/wx/doc/data_object.rb +2 -2
- data/lib/wx/doc/date_picker_ctrl.rb +23 -0
- data/lib/wx/doc/editable_listbox.rb +44 -0
- data/lib/wx/doc/enum.rb +15 -0
- data/lib/wx/doc/event.rb +12 -0
- data/lib/wx/doc/evthandler.rb +113 -108
- data/lib/wx/doc/extra/12_client_data.md +89 -0
- data/lib/wx/doc/extra/13_validators.md +139 -0
- data/lib/wx/doc/font.rb +1 -0
- data/lib/wx/doc/gc_dc.rb +6 -1
- data/lib/wx/doc/gdi_common.rb +4 -0
- data/lib/wx/doc/generic_validator.rb +95 -0
- data/lib/wx/doc/graphics_context.rb +1 -0
- data/lib/wx/doc/grid/grid.rb +22 -1
- data/lib/wx/doc/help_controller.rb +11 -7
- data/lib/wx/doc/html/html_help_controller.rb +12 -4
- data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
- data/lib/wx/doc/list_ctrl.rb +33 -29
- data/lib/wx/doc/menu.rb +20 -0
- data/lib/wx/doc/notebook.rb +21 -0
- data/lib/wx/doc/num_validator.rb +387 -0
- data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
- data/lib/wx/doc/pg/events.rb +13 -9
- data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
- data/lib/wx/doc/pg/pg_property.rb +18 -0
- data/lib/wx/doc/progress_dialog.rb +36 -32
- data/lib/wx/doc/prt/page_setup_dialog.rb +20 -12
- data/lib/wx/doc/prt/print_data.rb +13 -5
- data/lib/wx/doc/prt/print_dialog.rb +31 -23
- data/lib/wx/doc/prt/printer.rb +20 -12
- data/lib/wx/doc/radio_box.rb +19 -15
- data/lib/wx/doc/rbn/ribbon_bar.rb +13 -5
- data/lib/wx/doc/rbn/ribbon_button_bar.rb +13 -5
- data/lib/wx/doc/rbn/ribbon_gallery.rb +13 -5
- data/lib/wx/doc/rbn/ribbon_tool_bar.rb +13 -5
- data/lib/wx/doc/region_iterator.rb +32 -28
- data/lib/wx/doc/rtc/rich_text_composite_object.rb +24 -0
- data/lib/wx/doc/rtc/rich_text_ctrl.rb +24 -0
- data/lib/wx/doc/rtc/rich_text_paragraph.rb +24 -0
- data/lib/wx/doc/rtc/richtext_buffer.rb +27 -19
- data/lib/wx/doc/rtc/richtext_printing.rb +17 -9
- data/lib/wx/doc/rtc/richtext_style_sheet.rb +17 -9
- data/lib/wx/doc/sizer.rb +20 -0
- data/lib/wx/doc/static_bitmap.rb +25 -0
- data/lib/wx/doc/stc/styled_text_ctrl.rb +24 -0
- data/lib/wx/doc/stream.rb +39 -35
- data/lib/wx/doc/system_settings.rb +30 -26
- data/lib/wx/doc/text_validator.rb +23 -9
- data/lib/wx/doc/textctrl.rb +16 -0
- data/lib/wx/doc/tree_ctrl.rb +95 -0
- data/lib/wx/doc/treebook.rb +9 -5
- data/lib/wx/doc/v_list_box.rb +9 -5
- data/lib/wx/doc/validator.rb +113 -0
- data/lib/wx/doc/variant.rb +164 -160
- data/lib/wx/doc/window.rb +87 -47
- data/lib/wx/doc/window_disabler.rb +10 -6
- data/lib/wx/grid/grid.rb +27 -4
- data/lib/wx/html/simple_html_listbox.rb +24 -91
- data/lib/wx/keyword_defs.rb +34 -2
- data/lib/wx/pg/pg_property.rb +22 -0
- data/lib/wx/rbn/ribbon_gallery.rb +0 -21
- data/lib/wx/rtc/require.rb +3 -0
- data/lib/wx/rtc/rich_text_composite_object.rb +25 -0
- data/lib/wx/rtc/rich_text_ctrl.rb +25 -0
- data/lib/wx/rtc/rich_text_paragraph.rb +25 -0
- data/lib/wx/stc/require.rb +1 -0
- data/lib/wx/stc/styled_text_ctrl.rb +25 -0
- data/lib/wx/version.rb +1 -1
- data/rakelib/lib/config/linux.rb +0 -3
- data/rakelib/lib/config/macosx.rb +2 -2
- data/rakelib/lib/config/mingw.rb +13 -1
- data/rakelib/lib/config/unixish.rb +1 -1
- data/rakelib/lib/config.rb +14 -4
- data/rakelib/lib/core/include/client_data.inc +65 -0
- data/rakelib/lib/core/include/funcall.inc +1 -1
- data/rakelib/lib/core/package.rb +31 -9
- data/rakelib/lib/core/parameter.rb +1 -1
- data/rakelib/lib/core/spec.rb +6 -1
- data/rakelib/lib/core/spec_helper.rb +7 -1
- data/rakelib/lib/director/accelerator.rb +2 -3
- data/rakelib/lib/director/accessible.rb +47 -0
- data/rakelib/lib/director/app.rb +30 -319
- data/rakelib/lib/director/app_traits.rb +13 -13
- data/rakelib/lib/director/bitmap_combobox.rb +2 -2
- data/rakelib/lib/director/combobox.rb +22 -0
- data/rakelib/lib/director/comboctrl.rb +1 -55
- data/rakelib/lib/director/ctrl_with_items.rb +105 -26
- data/rakelib/lib/director/data_format.rb +1 -1
- data/rakelib/lib/director/date_picker_ctrl.rb +8 -6
- data/rakelib/lib/director/derived_dc.rb +1 -1
- data/rakelib/lib/director/dialog.rb +1 -0
- data/rakelib/lib/director/drag_image.rb +2 -3
- data/rakelib/lib/director/editable_listbox.rb +30 -0
- data/rakelib/lib/director/event.rb +104 -14
- data/rakelib/lib/director/event_handler.rb +3 -2
- data/rakelib/lib/director/frame.rb +1 -3
- data/rakelib/lib/director/functions.rb +4 -2
- data/rakelib/lib/director/gdicommon.rb +8 -10
- data/rakelib/lib/director/generic_dirctrl.rb +17 -0
- data/rakelib/lib/director/graphics_context.rb +2 -4
- data/rakelib/lib/director/grid_cell_attr.rb +0 -2
- data/rakelib/lib/director/grid_cell_editor.rb +0 -2
- data/rakelib/lib/director/grid_cell_renderer.rb +0 -2
- data/rakelib/lib/director/grid_ctrl.rb +34 -3
- data/rakelib/lib/director/header_ctrl.rb +6 -1
- data/rakelib/lib/director/html_listbox.rb +96 -22
- data/rakelib/lib/director/icon.rb +5 -2
- data/rakelib/lib/director/list_ctrl.rb +5 -6
- data/rakelib/lib/director/locale.rb +1 -3
- data/rakelib/lib/director/log.rb +1 -4
- data/rakelib/lib/director/media_ctrl.rb +54 -0
- data/rakelib/lib/director/menu.rb +16 -1
- data/rakelib/lib/director/menu_item.rb +2 -2
- data/rakelib/lib/director/num_validator.rb +495 -0
- data/rakelib/lib/director/numeric_property_validator.rb +131 -6
- data/rakelib/lib/director/owner_drawn_combobox.rb +192 -0
- data/rakelib/lib/director/pgproperties.rb +1 -1
- data/rakelib/lib/director/pgproperty.rb +27 -30
- data/rakelib/lib/director/property_grid_interface.rb +5 -10
- data/rakelib/lib/director/ribbon_button_bar.rb +3 -3
- data/rakelib/lib/director/ribbon_gallery.rb +3 -5
- data/rakelib/lib/director/richtext_composite_object.rb +25 -0
- data/rakelib/lib/director/richtext_ctrl.rb +14 -4
- data/rakelib/lib/director/richtext_formatting_dialog.rb +7 -5
- data/rakelib/lib/director/richtext_paragraph_layout_box.rb +9 -7
- data/rakelib/lib/director/sizer.rb +30 -4
- data/rakelib/lib/director/sizer_item.rb +13 -0
- data/rakelib/lib/director/static_bitmap.rb +28 -0
- data/rakelib/lib/director/static_box.rb +4 -5
- data/rakelib/lib/director/styled_text_ctrl.rb +12 -0
- data/rakelib/lib/director/task_bar_button.rb +30 -0
- data/rakelib/lib/director/task_bar_icon.rb +5 -13
- data/rakelib/lib/director/text_entry.rb +4 -0
- data/rakelib/lib/director/text_validator.rb +124 -13
- data/rakelib/lib/director/textctrl.rb +12 -1
- data/rakelib/lib/director/toggle_button.rb +1 -0
- data/rakelib/lib/director/tool_tip.rb +1 -1
- data/rakelib/lib/director/top_level_window.rb +4 -7
- data/rakelib/lib/director/tree_ctrl.rb +40 -6
- data/rakelib/lib/director/utils.rb +16 -2
- data/rakelib/lib/director/validator.rb +196 -21
- data/rakelib/lib/director/variant.rb +1 -1
- data/rakelib/lib/director/window.rb +40 -7
- data/rakelib/lib/director.rb +4 -4
- data/rakelib/lib/extractor/function.rb +8 -7
- data/rakelib/lib/extractor.rb +34 -5
- data/rakelib/lib/generate/analyzer.rb +9 -4
- data/rakelib/lib/generate/doc/busy_info.yaml +0 -2
- data/rakelib/lib/generate/doc/clipboard.yaml +0 -2
- data/rakelib/lib/generate/doc/cursor.yaml +0 -2
- data/rakelib/lib/generate/doc/panel.yaml +7 -0
- data/rakelib/lib/generate/doc.rb +85 -17
- data/rakelib/lib/specs/interfaces.rb +163 -160
- data/rakelib/lib/swig_runner.rb +55 -9
- data/rakelib/lib/typemap/client_data.rb +67 -0
- data/rakelib/lib/typemap/common.rb +33 -4
- data/rakelib/lib/typemap/datetime.rb +1 -1
- data/rakelib/lib/typemap/tree_itemid.rb +2 -2
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +74 -2
- data/rakelib/yard/templates/default/fulldoc/html/full_list.erb +38 -0
- data/rakelib/yard/templates/default/fulldoc/html/setup.rb +39 -0
- data/rakelib/yard/templates/default/tags/html/wxrb_require.erb +10 -0
- data/rakelib/yard/templates/default/tags/setup.rb +16 -0
- data/rakelib/yard/yard-custom-templates.rb +3 -0
- data/samples/aui/aui.rb +1237 -1233
- data/samples/calendar/calendar.rb +293 -289
- data/samples/controls/get_item_sample.rb +83 -79
- data/samples/controls/htlbox.rb +331 -327
- data/samples/dialogs/dialogs.rb +682 -694
- data/samples/dialogs/wizard.rb +52 -55
- data/samples/dragdrop/dragdrop.rb +146 -142
- data/samples/drawing/bitmap.rb +29 -26
- data/samples/drawing/bitmap_image.rb +84 -80
- data/samples/drawing/graphics_drawing.rb +209 -205
- data/samples/drawing/image_prt.rb +344 -340
- data/samples/drawing/maths_images.rb +18 -1
- data/samples/drawing/rmagic_bitmap_image.rb +88 -84
- data/samples/etc/caret.rb +306 -0
- data/samples/etc/miniframe.rb +65 -60
- data/samples/etc/sash.rb +109 -105
- data/samples/etc/scrollwin.rb +86 -80
- data/samples/etc/system_settings.rb +216 -209
- data/samples/event/activation.rb +72 -67
- data/samples/event/event.rb +160 -153
- data/samples/event/threaded.rb +8 -1
- data/samples/event/update_ui_event.rb +67 -60
- data/samples/grid/grid.rb +188 -181
- data/samples/grid/gridtablebase.rb +136 -129
- data/samples/html/html.rb +208 -204
- data/samples/mdi/mdi.rb +59 -54
- data/samples/minimal/minimal.rb +54 -51
- data/samples/minimal/nothing.rb +1 -0
- data/samples/printing/printing.rb +367 -377
- data/samples/printing/printing2.rb +203 -198
- data/samples/propgrid/propgrid.rb +2312 -2308
- data/samples/propgrid/propgrid_minimal.rb +57 -50
- data/samples/ribbon/ribbon.rb +780 -774
- data/samples/sampler/ext.rb +0 -33
- data/samples/sampler/sample.rb +4 -9
- data/samples/sampler.rb +1 -1
- data/samples/splash/splash.rb +118 -116
- data/samples/text/rich_textctrl.rb +207 -201
- data/samples/text/richtext.rb +1409 -1405
- data/samples/text/scintilla.rb +137 -128
- data/samples/text/textctrl.rb +89 -83
- data/samples/text/unicode.rb +175 -168
- data/samples/treectrl/treectrl.rb +1430 -1426
- data/samples/widgets/activityindicator.rb +95 -0
- data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
- data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
- data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
- data/samples/widgets/art/widgets/button.xpm +54 -0
- data/samples/widgets/art/widgets/checkbox.xpm +54 -0
- data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
- data/samples/widgets/art/widgets/choicebk.xpm +54 -0
- data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
- data/samples/widgets/art/widgets/combobox.xpm +54 -0
- data/samples/widgets/art/widgets/datepick.xpm +200 -0
- data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
- data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
- data/samples/widgets/art/widgets/filepicker.xpm +214 -0
- data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
- data/samples/widgets/art/widgets/gauge.xpm +54 -0
- data/samples/widgets/art/widgets/header.xpm +54 -0
- data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
- data/samples/widgets/art/widgets/listbook.xpm +54 -0
- data/samples/widgets/art/widgets/listbox.xpm +54 -0
- data/samples/widgets/art/widgets/native.xpm +81 -0
- data/samples/widgets/art/widgets/notebook.xpm +54 -0
- data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
- data/samples/widgets/art/widgets/radiobox.xpm +54 -0
- data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
- data/samples/widgets/art/widgets/slider.xpm +54 -0
- data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
- data/samples/widgets/art/widgets/statbmp.xpm +40 -0
- data/samples/widgets/art/widgets/statbox.xpm +54 -0
- data/samples/widgets/art/widgets/stattext.xpm +54 -0
- data/samples/widgets/art/widgets/text.xpm +54 -0
- data/samples/widgets/art/widgets/timepick.xpm +207 -0
- data/samples/widgets/art/widgets/toggle.xpm +54 -0
- data/samples/widgets/art/widgets/toucan.png +0 -0
- data/samples/widgets/bmpcombobox.rb +651 -0
- data/samples/widgets/button.rb +462 -0
- data/samples/widgets/checkbox.rb +211 -0
- data/samples/widgets/choice.rb +287 -0
- data/samples/widgets/clrpicker.rb +156 -0
- data/samples/widgets/combobox.rb +516 -0
- data/samples/widgets/datepick.rb +215 -0
- data/samples/widgets/dirctrl.rb +265 -0
- data/samples/widgets/dirpicker.rb +158 -0
- data/samples/widgets/editlbox.rb +122 -0
- data/samples/widgets/filectrl.rb +216 -0
- data/samples/widgets/filepicker.rb +214 -0
- data/samples/widgets/fontpicker.rb +135 -0
- data/samples/widgets/gauge.rb +311 -0
- data/samples/widgets/headerctrl.rb +236 -0
- data/samples/widgets/hyperlink.rb +203 -0
- data/samples/widgets/itemcontainer.rb +185 -0
- data/samples/widgets/listbox.rb +473 -0
- data/samples/widgets/notebook.rb +488 -0
- data/samples/widgets/odcombobox.rb +608 -0
- data/samples/widgets/radiobox.rb +328 -0
- data/samples/widgets/searchctrl.rb +159 -0
- data/samples/widgets/slider.rb +594 -0
- data/samples/widgets/spinbtn.rb +443 -0
- data/samples/widgets/statbmp.rb +130 -0
- data/samples/widgets/static.rb +436 -0
- data/samples/widgets/textctrl.rb +700 -0
- data/samples/widgets/timepick.rb +148 -0
- data/samples/widgets/tn_widgets.png +0 -0
- data/samples/widgets/toggle.rb +385 -0
- data/samples/widgets/widgets.rb +1233 -0
- data/samples/xrc/custom_xrc_sample.rb +47 -41
- data/samples/xrc/xrc_sample.rb +53 -47
- data/tests/media/beep_lo.wav +0 -0
- data/tests/test_event_handling.rb +52 -34
- data/tests/test_events.rb +7 -0
- data/tests/test_item_data.rb +24 -0
- data/tests/test_list_ctrl.rb +1 -1
- data/tests/test_media_ctrl.rb +38 -0
- data/tests/test_menu.rb +69 -0
- data/tests/test_pg.rb +27 -0
- data/tests/test_richtext.rb +45 -0
- data/tests/test_sizer.rb +59 -0
- data/tests/test_std_controls.rb +42 -1
- data/tests/test_styled_text_ctrl.rb +46 -0
- data/tests/test_tree_ctrl.rb +138 -0
- data/tests/test_validators.rb +805 -0
- data/tests/test_window.rb +12 -0
- data/tests/testapp_noframe.rb +1 -1
- metadata +121 -139
- data/lib/wx/core/choice.rb +0 -14
- data/lib/wx/core/combo_ctrl.rb +0 -110
- data/rakelib/lib/typemap/grid_client_data.rb +0 -58
- data/samples/bigdemo/About.rbw +0 -39
- data/samples/bigdemo/ColorPanel.rbw +0 -23
- data/samples/bigdemo/GridSimple.rbw +0 -78
- data/samples/bigdemo/MDIDemo.rbw +0 -57
- data/samples/bigdemo/PopupMenu.rbw +0 -146
- data/samples/bigdemo/ShapedWindow.rbw +0 -128
- data/samples/bigdemo/Sizers.rbw +0 -541
- data/samples/bigdemo/bigdemo.rb +0 -817
- data/samples/bigdemo/demoTemplate.rbw +0 -33
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +0 -27
- data/samples/bigdemo/icons/copy.xpm +0 -25
- data/samples/bigdemo/icons/cut.xpm +0 -24
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +0 -27
- data/samples/bigdemo/icons/help.xpm +0 -25
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +0 -27
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +0 -44
- data/samples/bigdemo/icons/new.xpm +0 -24
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +0 -45
- data/samples/bigdemo/icons/open.xpm +0 -26
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +0 -38
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +0 -26
- data/samples/bigdemo/icons/print.xpm +0 -26
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +0 -27
- data/samples/bigdemo/icons/robert.xpm +0 -415
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +0 -25
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +0 -39
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +0 -42
- data/samples/bigdemo/icons/stattext.xpm +0 -24
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +0 -79
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +0 -27
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +0 -38
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +0 -38
- data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +0 -98
- data/samples/bigdemo/tips.txt +0 -7
- data/samples/bigdemo/utils.rb +0 -20
- data/samples/bigdemo/wxArtProvider.rbw +0 -282
- data/samples/bigdemo/wxBitmapButton.rbw +0 -65
- data/samples/bigdemo/wxButton.rbw +0 -64
- data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
- data/samples/bigdemo/wxCheckBox.rbw +0 -50
- data/samples/bigdemo/wxCheckListBox.rbw +0 -65
- data/samples/bigdemo/wxChoice.rbw +0 -47
- data/samples/bigdemo/wxChoicebook.rbw +0 -78
- data/samples/bigdemo/wxColourDialog.rbw +0 -33
- data/samples/bigdemo/wxComboBox.rbw +0 -77
- data/samples/bigdemo/wxCursor.rbw +0 -136
- data/samples/bigdemo/wxDialog.rbw +0 -74
- data/samples/bigdemo/wxDirDialog.rbw +0 -29
- data/samples/bigdemo/wxDragImage.rbw +0 -70
- data/samples/bigdemo/wxFileDialog.rbw +0 -37
- data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
- data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
- data/samples/bigdemo/wxFontDialog.rbw +0 -200
- data/samples/bigdemo/wxFrame.rbw +0 -53
- data/samples/bigdemo/wxGauge.rbw +0 -65
- data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
- data/samples/bigdemo/wxGrid.rbw +0 -66
- data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
- data/samples/bigdemo/wxListBox.rbw +0 -140
- data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
- data/samples/bigdemo/wxMDIWindows.rbw +0 -50
- data/samples/bigdemo/wxMenu.rbw +0 -247
- data/samples/bigdemo/wxMessageDialog.rbw +0 -27
- data/samples/bigdemo/wxMiniFrame.rbw +0 -70
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
- data/samples/bigdemo/wxNotebook.rbw +0 -136
- data/samples/bigdemo/wxProgressDialog.rbw +0 -43
- data/samples/bigdemo/wxRadioBox.rbw +0 -72
- data/samples/bigdemo/wxRadioButton.rbw +0 -125
- data/samples/bigdemo/wxSashWindow.rbw +0 -141
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
- data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
- data/samples/bigdemo/wxSlider.rbw +0 -42
- data/samples/bigdemo/wxSpinButton.rbw +0 -50
- data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
- data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
- data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
- data/samples/bigdemo/wxStaticText.rbw +0 -55
- data/samples/bigdemo/wxStatusBar.rbw +0 -126
- data/samples/bigdemo/wxTextCtrl.rbw +0 -149
- data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
- data/samples/bigdemo/wxToggleButton.rbw +0 -49
- data/samples/bigdemo/wxToolBar.rbw +0 -131
- data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
- data/samples/caret/caret.rb +0 -298
- data/samples/caret/mondrian.xpm +0 -44
- data/samples/controls/books.rb +0 -189
- data/samples/controls/choice.xpm +0 -27
- data/samples/controls/combo.xpm +0 -27
- data/samples/controls/controls.rb +0 -1099
- data/samples/controls/gauge.xpm +0 -27
- data/samples/controls/list.xpm +0 -27
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +0 -44
- data/samples/controls/radio.xpm +0 -27
- data/samples/controls/stattext.xpm +0 -24
- data/samples/controls/test2.bmp +0 -0
- data/samples/controls/text.xpm +0 -27
- data/samples/controls/tn_books.png +0 -0
- data/samples/controls/tn_controls.png +0 -0
- data/samples/etc/choice.rb +0 -87
- data/samples/etc/tn_choice.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +0 -44
- /data/samples/{caret → etc}/tn_caret.png +0 -0
|
@@ -11,476 +11,466 @@
|
|
|
11
11
|
|
|
12
12
|
require 'wx'
|
|
13
13
|
|
|
14
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
21
|
+
WXPRINT_PRINT_PS = 105
|
|
22
|
+
WXPRINT_PAGE_SETUP_PS = 107
|
|
23
|
+
WXPRINT_PREVIEW_PS = 108
|
|
54
24
|
|
|
55
|
-
|
|
56
|
-
dc.set_pen(Wx::RED_PEN)
|
|
25
|
+
WXPRINT_ABOUT = Wx::ID_ABOUT
|
|
57
26
|
|
|
58
|
-
|
|
27
|
+
WXPRINT_ANGLEUP = 110
|
|
28
|
+
WXPRINT_ANGLEDOWN = 111
|
|
59
29
|
|
|
60
|
-
|
|
30
|
+
class MyFrame < Wx::Frame
|
|
61
31
|
|
|
62
|
-
|
|
63
|
-
dc.draw_ellipse(50, 140, 100, 50)
|
|
64
|
-
dc.set_pen(Wx::RED_PEN)
|
|
32
|
+
attr_accessor :canvas
|
|
65
33
|
|
|
66
|
-
|
|
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
|
-
|
|
69
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
79
|
-
dc.draw_polygon(points, 50, 250, Wx::WINDING_RULE)
|
|
55
|
+
dc.set_background_mode(Wx::BRUSHSTYLE_TRANSPARENT)
|
|
80
56
|
|
|
81
|
-
|
|
57
|
+
dc.set_brush(Wx::CYAN_BRUSH)
|
|
58
|
+
dc.set_pen(Wx::RED_PEN)
|
|
82
59
|
|
|
83
|
-
|
|
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
|
-
|
|
62
|
+
dc.draw_text("Rectangle 200 by 80", 40, 40)
|
|
95
63
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
dc.draw_line(200, 0, 0, 200)
|
|
70
|
+
test = "Hebrew שלום -- Japanese (日本語)"
|
|
71
|
+
dc.draw_text(test, 10, 200)
|
|
108
72
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
80
|
+
dc.draw_polygon(points, 20, 250, Wx::ODDEVEN_RULE)
|
|
81
|
+
dc.draw_polygon(points, 50, 250, Wx::WINDING_RULE)
|
|
119
82
|
|
|
120
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
131
|
-
@angle -= 5
|
|
132
|
-
canvas.refresh
|
|
133
|
-
end
|
|
96
|
+
dc.draw_arc(20, 10, 10, 10, 25, 40)
|
|
134
97
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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
|
-
|
|
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
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
end
|
|
176
|
+
Wx::get_app.page_setup_data = dlg.page_setup_data
|
|
177
|
+
end
|
|
178
|
+
end
|
|
186
179
|
|
|
187
|
-
|
|
180
|
+
def on_exit(event)
|
|
181
|
+
close(true)
|
|
182
|
+
end
|
|
188
183
|
|
|
189
|
-
|
|
190
|
-
|
|
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
|
-
|
|
200
|
-
|
|
201
|
-
end
|
|
191
|
+
class MyCanvas < Wx::ScrolledWindow
|
|
192
|
+
# attr_accessor :frame
|
|
202
193
|
|
|
203
|
-
|
|
204
|
-
|
|
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
|
-
|
|
207
|
-
|
|
208
|
-
|
|
201
|
+
def on_draw(dc)
|
|
202
|
+
@frame.draw(dc)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def on_event(event) end
|
|
209
206
|
end
|
|
210
207
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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
|
-
|
|
223
|
-
dc
|
|
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
|
-
|
|
232
|
-
|
|
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
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
262
|
+
# Let's have at least 50 device units margin
|
|
263
|
+
margin_x = 50
|
|
264
|
+
margin_y = 50
|
|
288
265
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
266
|
+
# Add the margin to the graphic size
|
|
267
|
+
max_x += (2 * margin_x)
|
|
268
|
+
max_y += (2 * margin_y)
|
|
292
269
|
|
|
293
|
-
|
|
294
|
-
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
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
|
|
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
|
-
|
|
361
|
+
dc.set_font(Wx::get_app.test_font)
|
|
362
362
|
|
|
363
|
-
|
|
364
|
-
right_margin = 20
|
|
365
|
-
top_margin = 20
|
|
366
|
-
bottom_margin = 20
|
|
363
|
+
dc.draw_text("Some test text", 200, 300)
|
|
367
364
|
|
|
368
|
-
|
|
365
|
+
left_margin = 20
|
|
366
|
+
right_margin = 20
|
|
367
|
+
top_margin = 20
|
|
368
|
+
bottom_margin = 20
|
|
369
369
|
|
|
370
|
-
|
|
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
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
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
|
-
|
|
382
|
-
|
|
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
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
-
|
|
389
|
-
|
|
390
|
-
|
|
390
|
+
left_margin = 10
|
|
391
|
+
top_margin = 10
|
|
392
|
+
right_margin = 10
|
|
391
393
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
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
|
-
|
|
397
|
-
|
|
398
|
-
|
|
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
|
-
|
|
401
|
-
|
|
402
|
-
|
|
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
|
-
|
|
406
|
+
return true
|
|
407
|
+
end
|
|
405
408
|
end
|
|
406
|
-
end
|
|
407
409
|
|
|
408
|
-
class MyApp < Wx::App
|
|
409
|
-
|
|
410
|
+
class MyApp < Wx::App
|
|
411
|
+
attr_accessor :frame, :test_font, :page_setup_data
|
|
410
412
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
+
def on_init
|
|
414
|
+
@test_font = Wx::Font.new(10, Wx::FONTFAMILY_SWISS, Wx::FONTSTYLE_NORMAL, Wx::FONTWEIGHT_NORMAL)
|
|
413
415
|
|
|
414
|
-
|
|
415
|
-
|
|
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
|
-
|
|
418
|
-
|
|
419
|
+
# Give it a status line
|
|
420
|
+
@frame.create_status_bar(2)
|
|
419
421
|
|
|
420
|
-
|
|
421
|
-
|
|
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
|
-
|
|
430
|
-
|
|
425
|
+
# Make a menubar
|
|
426
|
+
file_menu = Wx::Menu.new
|
|
431
427
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
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
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
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
|
-
|
|
445
|
-
|
|
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
|
-
|
|
451
|
-
help_menu.append(WXPRINT_ABOUT, "&About", "About this demo")
|
|
441
|
+
menu_bar = Wx::MenuBar.new
|
|
452
442
|
|
|
453
|
-
|
|
443
|
+
menu_bar.append(file_menu, "&File")
|
|
444
|
+
menu_bar.append(help_menu, "&Help")
|
|
454
445
|
|
|
455
|
-
|
|
456
|
-
|
|
446
|
+
# Associate the menu bar with the frame
|
|
447
|
+
@frame.set_menu_bar(menu_bar)
|
|
457
448
|
|
|
458
|
-
|
|
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
|
-
|
|
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
|
-
|
|
464
|
-
canvas.set_scrollbars(20, 20, 50, 50)
|
|
454
|
+
@frame.canvas = canvas
|
|
465
455
|
|
|
466
|
-
|
|
456
|
+
@frame.centre(Wx::BOTH)
|
|
457
|
+
@frame.show()
|
|
467
458
|
|
|
468
|
-
|
|
469
|
-
@frame.show()
|
|
459
|
+
@frame.set_status_text("Printing demo")
|
|
470
460
|
|
|
471
|
-
|
|
461
|
+
set_top_window(@frame)
|
|
472
462
|
|
|
473
|
-
|
|
463
|
+
#@print_data = Wx::PrintData.new
|
|
464
|
+
@page_setup_data = Wx::PageSetupDialogData.new
|
|
474
465
|
|
|
475
|
-
|
|
476
|
-
|
|
466
|
+
return true
|
|
467
|
+
end
|
|
477
468
|
|
|
478
|
-
|
|
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
|