wxruby3 0.9.2 → 0.9.4
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/INSTALL.md +35 -29
- data/README.md +24 -15
- data/ext/wxruby3/include/wxruby-ClientData.h +48 -0
- data/ext/wxruby3/include/wxruby-Config.h +23 -5
- data/ext/wxruby3/include/wxruby-Persistence.h +79 -0
- data/ext/wxruby3/include/wxruby-Validator.h +39 -0
- data/ext/wxruby3/include/wxruby-ValidatorBinding.h +64 -0
- data/ext/wxruby3/swig/custom/director.swg +8 -0
- data/ext/wxruby3/swig/mark_free_impl.i +0 -33
- data/ext/wxruby3/swig/memory_management.i +6 -0
- data/lib/wx/core/bitmap_combobox.rb +17 -21
- data/lib/wx/core/book_ctrl_base.rb +16 -0
- data/lib/wx/core/combobox.rb +13 -3
- data/lib/wx/core/config.rb +454 -83
- data/lib/wx/core/controlwithitems.rb +40 -130
- 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/notebook.rb +10 -8
- data/lib/wx/core/owner_drawn_combobox.rb +45 -0
- data/lib/wx/core/peristent_object.rb +15 -0
- data/lib/wx/core/persistence_manager.rb +39 -0
- data/lib/wx/core/persistent_window.rb +16 -0
- data/lib/wx/core/size.rb +4 -0
- data/lib/wx/core/sizer.rb +1 -2
- data/lib/wx/core/standard_paths.rb +22 -0
- data/lib/wx/core/text_entry.rb +4 -1
- data/lib/wx/core/top_level_window.rb +16 -0
- data/lib/wx/core/treebook.rb +18 -0
- data/lib/wx/core/validator.rb +70 -5
- data/lib/wx/core/window.rb +3 -7
- data/lib/wx/core.rb +4 -0
- data/lib/wx/doc/art_locator.rb +1 -0
- data/lib/wx/doc/book_ctrl_base.rb +19 -0
- data/lib/wx/doc/comboctrl.rb +18 -0
- data/lib/wx/doc/config.rb +101 -41
- data/lib/wx/doc/controlwithitems.rb +16 -0
- 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/extra/12_client_data.md +89 -0
- data/lib/wx/doc/extra/13_validators.md +139 -0
- data/lib/wx/doc/extra/14_config.md +101 -0
- data/lib/wx/doc/extra/15_persistence.md +148 -0
- data/lib/wx/doc/gdi_common.rb +4 -0
- data/lib/wx/doc/generic_validator.rb +95 -0
- data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
- data/lib/wx/doc/num_validator.rb +387 -0
- data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
- data/lib/wx/doc/persistence_manager.rb +36 -0
- data/lib/wx/doc/persistent_object.rb +27 -0
- data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
- data/lib/wx/doc/static_bitmap.rb +25 -0
- data/lib/wx/doc/text_validator.rb +10 -0
- data/lib/wx/doc/top_level_window.rb +19 -0
- data/lib/wx/doc/treebook.rb +6 -1
- data/lib/wx/doc/validator.rb +113 -0
- data/lib/wx/doc/window.rb +30 -0
- data/lib/wx/html/simple_html_listbox.rb +24 -91
- data/lib/wx/keyword_defs.rb +34 -2
- data/lib/wx/rbn/ribbon_gallery.rb +0 -21
- data/lib/wx/version.rb +1 -1
- data/rakelib/build.rb +1 -1
- data/rakelib/lib/config/mingw.rb +12 -0
- 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 +39 -3
- data/rakelib/lib/core/parameter.rb +1 -1
- data/rakelib/lib/core/spec.rb +10 -0
- data/rakelib/lib/core/spec_helper.rb +8 -2
- data/rakelib/lib/director/app.rb +18 -0
- data/rakelib/lib/director/app_traits.rb +3 -1
- 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/config_base.rb +490 -19
- data/rakelib/lib/director/ctrl_with_items.rb +88 -21
- data/rakelib/lib/director/date_picker_ctrl.rb +8 -6
- data/rakelib/lib/director/editable_listbox.rb +30 -0
- data/rakelib/lib/director/event.rb +102 -12
- data/rakelib/lib/director/event_filter.rb +1 -1
- data/rakelib/lib/director/event_handler.rb +3 -2
- data/rakelib/lib/director/event_loop.rb +1 -1
- data/rakelib/lib/director/file_dialog_customize_hook.rb +2 -2
- data/rakelib/lib/director/functions.rb +4 -2
- data/rakelib/lib/director/generic_dirctrl.rb +17 -0
- data/rakelib/lib/director/grid_cell_attr.rb +1 -3
- data/rakelib/lib/director/grid_cell_editor.rb +1 -3
- data/rakelib/lib/director/grid_cell_renderer.rb +1 -3
- data/rakelib/lib/director/header_ctrl.rb +9 -1
- data/rakelib/lib/director/html_listbox.rb +97 -22
- 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/persistence_manager.rb +410 -0
- data/rakelib/lib/director/persistent_object.rb +70 -0
- data/rakelib/lib/director/persistent_window.rb +73 -0
- data/rakelib/lib/director/pgproperty.rb +3 -29
- data/rakelib/lib/director/ribbon_button_bar.rb +3 -3
- data/rakelib/lib/director/ribbon_gallery.rb +3 -5
- data/rakelib/lib/director/sizer.rb +15 -4
- data/rakelib/lib/director/sizer_item.rb +13 -0
- data/rakelib/lib/director/static_bitmap.rb +32 -0
- data/rakelib/lib/director/text_entry.rb +5 -1
- data/rakelib/lib/director/text_validator.rb +124 -13
- data/rakelib/lib/director/toggle_button.rb +1 -0
- data/rakelib/lib/director/top_level_window.rb +0 -2
- data/rakelib/lib/director/tree_ctrl.rb +35 -0
- data/rakelib/lib/director/utils.rb +16 -2
- data/rakelib/lib/director/validator.rb +196 -21
- data/rakelib/lib/director/window.rb +16 -2
- data/rakelib/lib/extractor/function.rb +2 -1
- data/rakelib/lib/generate/analyzer.rb +44 -44
- data/rakelib/lib/generate/doc.rb +11 -5
- data/rakelib/lib/specs/interfaces.rb +5 -0
- data/rakelib/lib/swig_runner.rb +55 -9
- data/rakelib/lib/typemap/client_data.rb +67 -0
- data/rakelib/lib/typemap/common.rb +3 -3
- data/rakelib/lib/typemap/config.rb +8 -0
- data/rakelib/lib/typemap/datetime.rb +1 -1
- data/rakelib/lib/typemap/tree_itemid.rb +2 -2
- 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 +1229 -0
- data/samples/xrc/custom_xrc_sample.rb +47 -41
- data/samples/xrc/xrc_sample.rb +53 -47
- data/tests/test_config.rb +207 -42
- 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_persistence.rb +142 -0
- data/tests/test_sizer.rb +44 -1
- data/tests/test_validators.rb +805 -0
- metadata +109 -138
- 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
data/samples/etc/miniframe.rb
CHANGED
|
@@ -11,68 +11,73 @@
|
|
|
11
11
|
|
|
12
12
|
require 'wx'
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
14
|
+
module MiniFrame
|
|
15
|
+
|
|
16
|
+
class MyFrame < Wx::Frame
|
|
17
|
+
attr_reader :mini
|
|
18
|
+
|
|
19
|
+
def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
|
|
20
|
+
super(nil, -1, title, pos, size, style)
|
|
21
|
+
|
|
22
|
+
self.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
|
|
23
|
+
|
|
24
|
+
menuFile = Wx::Menu.new
|
|
25
|
+
helpMenu = Wx::Menu.new
|
|
26
|
+
helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
|
27
|
+
menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
|
28
|
+
menuBar = Wx::MenuBar.new
|
|
29
|
+
menuBar.append(menuFile, "&File")
|
|
30
|
+
menuBar.append(helpMenu, "&Help")
|
|
31
|
+
set_menu_bar(menuBar)
|
|
32
|
+
|
|
33
|
+
create_status_bar(2)
|
|
34
|
+
set_status_text("Welcome to wxRuby!")
|
|
35
|
+
|
|
36
|
+
evt_menu(Wx::ID_EXIT) { on_quit }
|
|
37
|
+
evt_menu(Wx::ID_ABOUT) { on_about }
|
|
38
|
+
|
|
39
|
+
make_miniframe
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def make_miniframe
|
|
43
|
+
@mini = Wx::MiniFrame.new(self, -1, 'Mini Frame',
|
|
44
|
+
Wx::Point.new(300, 75), Wx::Size.new(300, 150),
|
|
45
|
+
Wx::DEFAULT_FRAME_STYLE|Wx::STAY_ON_TOP)
|
|
46
|
+
@mini_destroyed = false
|
|
47
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
|
48
|
+
text = Wx::StaticText.new(mini, -1, 'This is a MiniFrame.')
|
|
49
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
|
50
|
+
text = Wx::StaticText.new(mini, -1, 'It has a small title bar so it')
|
|
51
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
|
52
|
+
text = Wx::StaticText.new(mini, -1, 'doesn\'t take up too much space.')
|
|
53
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
|
54
|
+
text = Wx::StaticText.new(mini, -1, 'This MiniFrame has been set to')
|
|
55
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
|
56
|
+
text = Wx::StaticText.new(mini, -1, 'stay above the main app window.')
|
|
57
|
+
sizer.add(text, 0, Wx::ALL, 2)
|
|
58
|
+
mini.set_sizer(sizer)
|
|
59
|
+
|
|
60
|
+
mini.evt_window_destroy { |evt| @mini_destroyed = true }
|
|
61
|
+
|
|
62
|
+
mini.show
|
|
63
|
+
mini.raise_window
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def on_quit
|
|
67
|
+
mini.close unless @mini_destroyed
|
|
68
|
+
close
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def on_about
|
|
72
|
+
msg = sprintf("This is the About dialog of the miniframe sample.\n" \
|
|
73
|
+
"Welcome to %s", Wx::WXWIDGETS_VERSION)
|
|
74
|
+
Wx::message_box(msg, "About MiniFrame", Wx::OK|Wx::ICON_INFORMATION, self)
|
|
75
|
+
end
|
|
37
76
|
end
|
|
38
77
|
|
|
39
|
-
def make_miniframe
|
|
40
|
-
@mini = Wx::MiniFrame.new(self, -1, 'Mini Frame',
|
|
41
|
-
Wx::Point.new(300, 75), Wx::Size.new(300, 150),
|
|
42
|
-
Wx::DEFAULT_FRAME_STYLE|Wx::STAY_ON_TOP)
|
|
43
|
-
@mini_destroyed = false
|
|
44
|
-
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
|
45
|
-
text = Wx::StaticText.new(mini, -1, 'This is a MiniFrame.')
|
|
46
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
|
47
|
-
text = Wx::StaticText.new(mini, -1, 'It has a small title bar so it')
|
|
48
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
|
49
|
-
text = Wx::StaticText.new(mini, -1, 'doesn\'t take up too much space.')
|
|
50
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
|
51
|
-
text = Wx::StaticText.new(mini, -1, 'This MiniFrame has been set to')
|
|
52
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
|
53
|
-
text = Wx::StaticText.new(mini, -1, 'stay above the main app window.')
|
|
54
|
-
sizer.add(text, 0, Wx::ALL, 2)
|
|
55
|
-
mini.set_sizer(sizer)
|
|
56
|
-
|
|
57
|
-
mini.evt_window_destroy { |evt| @mini_destroyed = true }
|
|
58
|
-
|
|
59
|
-
mini.show
|
|
60
|
-
mini.raise
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def on_quit
|
|
64
|
-
mini.close unless @mini_destroyed
|
|
65
|
-
close
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def on_about
|
|
69
|
-
msg = sprintf("This is the About dialog of the miniframe sample.\n" \
|
|
70
|
-
"Welcome to %s", Wx::WXWIDGETS_VERSION)
|
|
71
|
-
Wx::message_box(msg, "About MiniFrame", Wx::OK|Wx::ICON_INFORMATION, self)
|
|
72
|
-
end
|
|
73
78
|
end
|
|
74
79
|
|
|
75
|
-
module
|
|
80
|
+
module MiniFrameSample
|
|
76
81
|
|
|
77
82
|
include WxRuby::Sample if defined? WxRuby::Sample
|
|
78
83
|
|
|
@@ -83,7 +88,7 @@ module ActivationSample
|
|
|
83
88
|
end
|
|
84
89
|
|
|
85
90
|
def self.activate
|
|
86
|
-
frame = MyFrame.new("Mini Frame wxRuby App",
|
|
91
|
+
frame = MiniFrame::MyFrame.new("Mini Frame wxRuby App",
|
|
87
92
|
Wx::Point.new(50, 50),
|
|
88
93
|
Wx::Size.new(450, 340))
|
|
89
94
|
frame.show
|
|
@@ -91,7 +96,7 @@ module ActivationSample
|
|
|
91
96
|
end
|
|
92
97
|
|
|
93
98
|
if $0 == __FILE__
|
|
94
|
-
Wx::App.run {
|
|
99
|
+
Wx::App.run { MiniFrameSample.activate }
|
|
95
100
|
end
|
|
96
101
|
|
|
97
102
|
end
|
data/samples/etc/sash.rb
CHANGED
|
@@ -11,112 +11,116 @@
|
|
|
11
11
|
|
|
12
12
|
require 'wx'
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
sash
|
|
103
|
-
|
|
14
|
+
module Sash
|
|
15
|
+
|
|
16
|
+
class MySashFrame < Wx::Frame
|
|
17
|
+
def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
|
|
18
|
+
super(nil, -1, title, pos, size, style)
|
|
19
|
+
|
|
20
|
+
self.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
|
|
21
|
+
|
|
22
|
+
menuFile = Wx::Menu.new
|
|
23
|
+
helpMenu = Wx::Menu.new
|
|
24
|
+
helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
|
25
|
+
menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
|
26
|
+
menuBar = Wx::MenuBar.new
|
|
27
|
+
menuBar.append(menuFile, "&File")
|
|
28
|
+
menuBar.append(helpMenu, "&Help")
|
|
29
|
+
set_menu_bar(menuBar)
|
|
30
|
+
|
|
31
|
+
create_status_bar(2)
|
|
32
|
+
set_status_text("wxRuby Sash sample")
|
|
33
|
+
|
|
34
|
+
evt_menu(Wx::ID_EXIT) { on_quit }
|
|
35
|
+
evt_menu(Wx::ID_ABOUT) { on_about }
|
|
36
|
+
|
|
37
|
+
# Start creating the sashes - these are created from outermost
|
|
38
|
+
# inwards.
|
|
39
|
+
sash = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
|
|
40
|
+
Wx::Size.new(150, self.get_size.height) )
|
|
41
|
+
# The default width of the sash is 150 pixels, and it extends the
|
|
42
|
+
# full height of the frame
|
|
43
|
+
sash.set_default_size( Wx::Size.new(150, self.get_size.height) )
|
|
44
|
+
# This sash splits the frame top to bottom
|
|
45
|
+
sash.set_orientation(Wx::LAYOUT_VERTICAL)
|
|
46
|
+
# Place the sash on the left of the frame
|
|
47
|
+
sash.set_alignment(Wx::LAYOUT_LEFT)
|
|
48
|
+
# Show a drag bar on the right of the sash
|
|
49
|
+
sash.set_sash_visible(Wx::SASH_RIGHT, true)
|
|
50
|
+
sash.set_background_colour(Wx::Colour.new(225, 200, 200) )
|
|
51
|
+
|
|
52
|
+
panel = Wx::Panel.new(sash)
|
|
53
|
+
v_siz = Wx::BoxSizer.new(Wx::VERTICAL)
|
|
54
|
+
chk_1 = Wx::CheckBox.new(panel, -1, 'test 1')
|
|
55
|
+
v_siz.add(chk_1)
|
|
56
|
+
chk_2 = Wx::CheckBox.new(panel, -1, 'test 2')
|
|
57
|
+
v_siz.add(chk_2)
|
|
58
|
+
panel.set_sizer_and_fit(v_siz)
|
|
59
|
+
|
|
60
|
+
# handle the sash being dragged
|
|
61
|
+
evt_sash_dragged( sash.get_id ) { | e | on_v_sash_dragged(sash, e) }
|
|
62
|
+
|
|
63
|
+
# Create another small sash on the bottom of the frame
|
|
64
|
+
sash_2 = Wx::SashLayoutWindow.new(self, -1, Wx::DEFAULT_POSITION,
|
|
65
|
+
Wx::Size.new(self.get_size.width,
|
|
66
|
+
100),
|
|
67
|
+
Wx::SW_3DSASH)
|
|
68
|
+
sash_2.set_default_size( Wx::Size.new(self.get_size.width, 100) )
|
|
69
|
+
sash_2.set_orientation(Wx::LAYOUT_HORIZONTAL)
|
|
70
|
+
sash_2.set_alignment(Wx::LAYOUT_BOTTOM)
|
|
71
|
+
sash_2.set_sash_visible(Wx::SASH_TOP, true)
|
|
72
|
+
text = Wx::StaticText.new(sash_2, -1, 'This is the second sash window')
|
|
73
|
+
evt_sash_dragged( sash_2.get_id ) { | e | on_h_sash_dragged(sash_2, e) }
|
|
74
|
+
|
|
75
|
+
# The main panel - the residual part of the frame that takes up all
|
|
76
|
+
# remaining space not used by the sash windows.
|
|
77
|
+
@m_panel = Wx::Panel.new(self, -1)
|
|
78
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
|
79
|
+
|
|
80
|
+
txt = Wx::TextCtrl.new(@m_panel, -1, 'Main panel area',
|
|
81
|
+
Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
|
|
82
|
+
Wx::SUNKEN_BORDER|Wx::TE_MULTILINE)
|
|
83
|
+
sizer.add(txt, 1, Wx::EXPAND|Wx::ALL, 10)
|
|
84
|
+
@m_panel.set_sizer_and_fit(sizer)
|
|
85
|
+
|
|
86
|
+
# Adjust the size of the sashes when the frame is resized
|
|
87
|
+
evt_size { | e | on_size(e) }
|
|
88
|
+
|
|
89
|
+
# Call LayoutAlgorithm#layout_frame to layout the sashes.
|
|
90
|
+
# The second argument is the residual window that takes up remaining
|
|
91
|
+
# space
|
|
92
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def on_v_sash_dragged(sash, e)
|
|
96
|
+
# Call get_drag_rect to get the new size
|
|
97
|
+
size = Wx::Size.new( e.get_drag_rect.width, self.get_size.height )
|
|
98
|
+
sash.set_default_size( size )
|
|
99
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def on_h_sash_dragged(sash, e)
|
|
103
|
+
size = Wx::Size.new( self.get_size.width, e.get_drag_rect.height )
|
|
104
|
+
sash.set_default_size( size )
|
|
105
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def on_size(e)
|
|
109
|
+
e.skip
|
|
110
|
+
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def on_quit
|
|
114
|
+
close(true)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def on_about
|
|
118
|
+
msg = sprintf("This is the About dialog of the sash sample.\n" \
|
|
119
|
+
"Welcome to %s", Wx::WXWIDGETS_VERSION)
|
|
120
|
+
Wx::message_box(msg, "About Sash", Wx::OK|Wx::ICON_INFORMATION, self)
|
|
121
|
+
end
|
|
104
122
|
end
|
|
105
123
|
|
|
106
|
-
def on_size(e)
|
|
107
|
-
e.skip
|
|
108
|
-
Wx::LayoutAlgorithm.new.layout_frame(self, @m_panel)
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def on_quit
|
|
112
|
-
close(true)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def on_about
|
|
116
|
-
msg = sprintf("This is the About dialog of the sash sample.\n" \
|
|
117
|
-
"Welcome to %s", Wx::WXWIDGETS_VERSION)
|
|
118
|
-
Wx::message_box(msg, "About Sash", Wx::OK|Wx::ICON_INFORMATION, self)
|
|
119
|
-
end
|
|
120
124
|
end
|
|
121
125
|
|
|
122
126
|
module SashSample
|
|
@@ -130,7 +134,7 @@ module SashSample
|
|
|
130
134
|
end
|
|
131
135
|
|
|
132
136
|
def self.activate
|
|
133
|
-
frame = MySashFrame.new("Sash Layout wxRuby App",
|
|
137
|
+
frame = Sash::MySashFrame.new("Sash Layout wxRuby App",
|
|
134
138
|
Wx::Point.new(50, 50),
|
|
135
139
|
Wx::Size.new(450, 340))
|
|
136
140
|
|
data/samples/etc/scrollwin.rb
CHANGED
|
@@ -14,90 +14,96 @@ require 'wx'
|
|
|
14
14
|
# Example demonstrating the use of Wx::ScrolledWindow and the
|
|
15
15
|
# ScrollWinEvents
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
event
|
|
65
|
-
|
|
17
|
+
module ScrollWin
|
|
18
|
+
|
|
19
|
+
class ScrollFrame < Wx::Frame
|
|
20
|
+
def initialize(title)
|
|
21
|
+
super(nil, -1, 'Thumb Scrolling Test',
|
|
22
|
+
Wx::DEFAULT_POSITION, Wx::Size.new(400, 300),
|
|
23
|
+
Wx::SYSTEM_MENU|Wx::CAPTION|Wx::RESIZE_BORDER|
|
|
24
|
+
Wx::MAXIMIZE_BOX|Wx::MINIMIZE_BOX|Wx::CLOSE_BOX)
|
|
25
|
+
|
|
26
|
+
self.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
|
|
27
|
+
|
|
28
|
+
@scroll_win = Wx::ScrolledWindow.new(self, -1)
|
|
29
|
+
# Set the interior size (pixels) of the scrolling window
|
|
30
|
+
@scroll_win.set_virtual_size(1000, 1500)
|
|
31
|
+
# Set the number of pixels moved per 'line' / click on the scrollbars
|
|
32
|
+
@scroll_win.set_scroll_rate(5, 5)
|
|
33
|
+
|
|
34
|
+
@button = Wx::Button.new(@scroll_win, -1, 'Press Me',
|
|
35
|
+
Wx::Point.new(200,200),
|
|
36
|
+
Wx::Size.new(125, 30))
|
|
37
|
+
|
|
38
|
+
# NOTE that all ScrollWin event hooks do not take an id - i.e. they
|
|
39
|
+
# are only generated from the originating Window itself - in this
|
|
40
|
+
# case, the ScrollWindow. So, we need to do:
|
|
41
|
+
# @scroll_win.evt_scrollwin_xxx { ...
|
|
42
|
+
# AND NOT
|
|
43
|
+
# evt_scrollwin_xxx(@scroll_win.get_id) { ...
|
|
44
|
+
@scroll_win.evt_scrollwin_linedown { | e | on_line(e, 'down') }
|
|
45
|
+
@scroll_win.evt_scrollwin_lineup { | e | on_line(e,'up') }
|
|
46
|
+
|
|
47
|
+
@scroll_win.evt_scrollwin_thumbtrack { | e | on_thumb(e, 'track') }
|
|
48
|
+
@scroll_win.evt_scrollwin_thumbrelease { | e | on_thumb(e, 'release') }
|
|
49
|
+
|
|
50
|
+
@scroll_win.evt_scrollwin_pagedown { | e | on_page(e, 'down') }
|
|
51
|
+
@scroll_win.evt_scrollwin_pageup { | e | on_page(e, 'up') }
|
|
52
|
+
|
|
53
|
+
# not sure how these are meant to be generated
|
|
54
|
+
@scroll_win.evt_scrollwin_top { | e | on_top(e) }
|
|
55
|
+
@scroll_win.evt_scrollwin_bottom { | e | on_bottom(e) }
|
|
56
|
+
#@scroll_win.evt_scrollwin { | e | p e }
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Handle scrolling by page - typically done by clicking on the
|
|
60
|
+
# scrollbar itself, above or below the thumb position
|
|
61
|
+
# +direction+ is either 'up' (= left, if dealing with a horizontal
|
|
62
|
+
# scrollbar) or 'down' (= right) - WxRuby generates different events
|
|
63
|
+
# for these.
|
|
64
|
+
def on_page(event, direction)
|
|
65
|
+
pos = event.get_position
|
|
66
|
+
orient = event.get_orientation == Wx::VERTICAL ? 'VERTICAL' : 'HORIZONTAL'
|
|
67
|
+
puts "#{orient} scrollbar page #{direction} @ #{pos}"
|
|
68
|
+
event.skip # allow default scrolling action
|
|
69
|
+
end
|
|
66
70
|
|
|
67
|
-
|
|
68
|
-
# Handle scrolling by line - typically done by clicking the up/down
|
|
69
|
-
# (or left/right) scroll buttons at the end of the scrollbar.
|
|
70
|
-
# +direction+ is either 'up' (= left, if dealing with a horizontal
|
|
71
|
-
# scrollbar) or 'down' (= right)
|
|
72
|
-
def on_line(event, direction)
|
|
73
|
-
orient = event.get_orientation == Wx::VERTICAL ? 'VERTICAL' : 'HORIZONTAL'
|
|
74
|
-
pos = event.get_position
|
|
75
|
-
puts "#{orient} scrollbar line #{direction} @ #{pos}"
|
|
76
|
-
event.skip # allow default action
|
|
77
|
-
end
|
|
78
71
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
72
|
+
# Handle scrolling by line - typically done by clicking the up/down
|
|
73
|
+
# (or left/right) scroll buttons at the end of the scrollbar.
|
|
74
|
+
# +direction+ is either 'up' (= left, if dealing with a horizontal
|
|
75
|
+
# scrollbar) or 'down' (= right)
|
|
76
|
+
def on_line(event, direction)
|
|
77
|
+
orient = event.get_orientation == Wx::VERTICAL ? 'VERTICAL' : 'HORIZONTAL'
|
|
78
|
+
pos = event.get_position
|
|
79
|
+
puts "#{orient} scrollbar line #{direction} @ #{pos}"
|
|
80
|
+
event.skip # allow default action
|
|
88
81
|
end
|
|
89
|
-
event.skip
|
|
90
|
-
end
|
|
91
82
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
83
|
+
# Handle scrolling done by click-dragging the 'thumb' within a scrollbar.
|
|
84
|
+
# +action+ contains either 'track' for thumbtrack drag events, or 'release'
|
|
85
|
+
# for thumb-release
|
|
86
|
+
def on_thumb(event, action)
|
|
87
|
+
pos = event.get_position
|
|
88
|
+
if event.get_orientation == Wx::VERTICAL
|
|
89
|
+
puts "VERTICAL thumb #{action} @ #{pos}"
|
|
90
|
+
else
|
|
91
|
+
puts "HORIZONTAL thumb #{action} @ #{pos}"
|
|
92
|
+
end
|
|
93
|
+
event.skip
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# (Assuming this should be triggered when the End key is pressed)?
|
|
97
|
+
def on_bottom(event)
|
|
98
|
+
puts "bottom"
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# (Assuming this should be triggered when the Home/Begin key is pressed)?
|
|
103
|
+
def on_top(event)
|
|
104
|
+
puts "top"
|
|
105
|
+
end
|
|
97
106
|
|
|
98
|
-
# (Assuming this should be triggered when the Home/Begin key is pressed)?
|
|
99
|
-
def on_top(event)
|
|
100
|
-
puts "top"
|
|
101
107
|
end
|
|
102
108
|
|
|
103
109
|
end
|
|
@@ -113,7 +119,7 @@ module ScrollwinSample
|
|
|
113
119
|
end
|
|
114
120
|
|
|
115
121
|
def self.activate
|
|
116
|
-
frame = ScrollFrame.new('')
|
|
122
|
+
frame = ScrollWin::ScrollFrame.new('')
|
|
117
123
|
frame.show(true)
|
|
118
124
|
frame
|
|
119
125
|
end
|