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
@@ -12,337 +12,341 @@
|
|
12
12
|
require 'wx'
|
13
13
|
require 'date'
|
14
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
|
-
|
15
|
+
module CalendarTest
|
16
|
+
|
17
|
+
include Wx
|
18
|
+
|
19
|
+
Calendar_Cal_Monday = 200
|
20
|
+
Calendar_Cal_Holidays = 201
|
21
|
+
Calendar_Cal_Special = 202
|
22
|
+
Calendar_Cal_Month = 203
|
23
|
+
Calendar_Cal_Year = 204
|
24
|
+
Calendar_Cal_SeqMonth = 205
|
25
|
+
Calendar_Cal_SurroundWeeks = 206
|
26
|
+
|
27
|
+
Calendar_DatePicker_AskDate = 300
|
28
|
+
Calendar_DatePicker_ShowCentury = 301
|
29
|
+
Calendar_DatePicker_DropDown = 302
|
30
|
+
Calendar_DatePicker_AllowNone = 303
|
31
|
+
Calendar_DatePicker_StartWithNone = 304
|
32
|
+
|
33
|
+
class MyCalendar < CalendarCtrl
|
34
|
+
attr_reader :date
|
35
|
+
|
36
|
+
def initialize(parent, display_frame, initial_date, calendar_flags)
|
37
|
+
super( parent,
|
38
|
+
:date => initial_date,
|
39
|
+
:style => calendar_flags | Wx::RAISED_BORDER)
|
40
|
+
|
41
|
+
@display = display_frame
|
42
|
+
@date = initial_date
|
43
|
+
@weekday_names = %w|Sun Mon Tue Wed Thu Fri Sat|
|
44
|
+
|
45
|
+
evt_calendar self, :on_calendar
|
46
|
+
evt_calendar_sel_changed self, :on_calendar_change
|
47
|
+
evt_calendar_weekday_clicked self, :on_calendar_weekday_click
|
48
|
+
evt_right_down :on_hit_test
|
49
|
+
end
|
48
50
|
|
49
|
-
|
50
|
-
|
51
|
-
|
51
|
+
def on_calendar(event)
|
52
|
+
@display.date = event.date
|
53
|
+
end
|
52
54
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
55
|
+
def on_calendar_change(event)
|
56
|
+
@date = event.date
|
57
|
+
Wx.log_status("Selected date: #{@date.strftime('%A %d %B %Y')}")
|
58
|
+
end
|
57
59
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
60
|
+
def on_calendar_weekday_click(event)
|
61
|
+
wday = event.week_day
|
62
|
+
Wx.log_status("Clicked on #{@weekday_names[wday]}")
|
63
|
+
end
|
62
64
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
65
|
+
def on_hit_test(event)
|
66
|
+
hit = hit_test(event.position)
|
67
|
+
case hit
|
68
|
+
when Time, DateTime
|
69
|
+
Wx.log_status("Hit-test: date #{hit}")
|
70
|
+
when Fixnum
|
71
|
+
Wx.log_status("Hit-test: weekday header #{hit}")
|
72
|
+
when NilClass
|
73
|
+
Wx.log_status("Hit-test: Nothing")
|
74
|
+
end
|
72
75
|
end
|
73
76
|
end
|
74
|
-
end
|
75
77
|
|
76
|
-
class MyFrame < Frame
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
78
|
+
class MyFrame < Frame
|
79
|
+
def initialize(title)
|
80
|
+
super(nil, -1, title)
|
81
|
+
@panel = Wx::Panel.new(self)
|
82
|
+
add_menu_bar
|
83
|
+
add_status_bar
|
82
84
|
|
83
|
-
|
85
|
+
@calendar_flags = Wx::CAL_MONDAY_FIRST | Wx::CAL_SHOW_HOLIDAYS
|
84
86
|
|
85
|
-
|
87
|
+
@calendar = MyCalendar.new(@panel, self, Wx::DEFAULT_DATE_TIME, @calendar_flags)
|
86
88
|
|
87
|
-
|
88
|
-
|
89
|
+
@sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
90
|
+
configure_window
|
89
91
|
|
90
|
-
|
91
|
-
|
92
|
+
evt_menu Wx::ID_EXIT, :on_quit
|
93
|
+
evt_menu Wx::ID_ABOUT, :on_about
|
92
94
|
|
93
|
-
|
94
|
-
|
95
|
+
evt_menu Calendar_DatePicker_AskDate, :on_ask_date
|
96
|
+
evt_update_ui Calendar_DatePicker_StartWithNone, :on_update_ui_start_with_none
|
95
97
|
|
96
|
-
|
97
|
-
|
98
|
-
|
98
|
+
evt_menu Calendar_Cal_Monday, :on_cal_monday
|
99
|
+
evt_menu Calendar_Cal_Holidays, :on_cal_holidays
|
100
|
+
evt_menu Calendar_Cal_Special, :on_cal_special
|
99
101
|
|
100
|
-
|
101
|
-
|
102
|
+
evt_menu Calendar_Cal_Month, :on_cal_allow_month
|
103
|
+
evt_menu Calendar_Cal_Year, :on_cal_allow_year if Wx::PLATFORM == 'WXOSX'
|
102
104
|
|
103
|
-
|
104
|
-
|
105
|
+
evt_menu Calendar_Cal_SeqMonth, :on_cal_seq_month
|
106
|
+
evt_menu Calendar_Cal_SurroundWeeks, :on_cal_show_surrounding_weeks
|
105
107
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
def add_menu_bar
|
110
|
-
# create a menu bar
|
111
|
-
menu_file = Menu.new
|
112
|
-
|
113
|
-
menu_file.append(Wx::ID_ABOUT, "&About...\tCtrl-A", "Show about dialog")
|
114
|
-
menu_file.append_separator
|
115
|
-
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit self program")
|
116
|
-
|
117
|
-
menu_cal = Menu.new
|
118
|
-
menu_cal.append(Calendar_Cal_Monday,
|
119
|
-
"Monday &first weekday\tCtrl-F",
|
120
|
-
"Toggle between Mon and Sun as the first week day",
|
121
|
-
ITEM_CHECK)
|
122
|
-
menu_cal.append(Calendar_Cal_Holidays, "Show &holidays\tCtrl-H",
|
123
|
-
"Toggle highlighting the holidays",
|
124
|
-
ITEM_CHECK)
|
125
|
-
menu_cal.append(Calendar_Cal_Special, "Highlight &special dates\tCtrl-S",
|
126
|
-
"Test custom highlighting",
|
127
|
-
ITEM_CHECK)
|
128
|
-
menu_cal.append(Calendar_Cal_SurroundWeeks,
|
129
|
-
"Show s&urrounding weeks\tCtrl-W",
|
130
|
-
"Show the neighbouring weeks in the prev/next month",
|
131
|
-
ITEM_CHECK)
|
132
|
-
menu_cal.append_separator
|
133
|
-
menu_cal.append(Calendar_Cal_SeqMonth,
|
134
|
-
"To&ggle month selector style\tCtrl-G",
|
135
|
-
"Use another style for the calendar controls",
|
136
|
-
ITEM_CHECK)
|
137
|
-
menu_cal.append(Calendar_Cal_Month, "&Month can be changed\tCtrl-M",
|
138
|
-
"Allow changing the month in the calendar",
|
139
|
-
ITEM_CHECK)
|
140
|
-
menu_cal.append(Calendar_Cal_Year, "&Year can be changed\tCtrl-Y",
|
141
|
-
"Allow changing the year in the calendar",
|
142
|
-
ITEM_CHECK)
|
143
|
-
|
144
|
-
menu_date = Menu.new
|
145
|
-
menu_date.append_check_item(Calendar_DatePicker_ShowCentury, "Al&ways show century")
|
146
|
-
menu_date.append_check_item(Calendar_DatePicker_DropDown, "Use &drop down control")
|
147
|
-
menu_date.append_check_item(Calendar_DatePicker_AllowNone, "Allow &no date")
|
148
|
-
menu_date.append_check_item(Calendar_DatePicker_StartWithNone, "Start &with no date")
|
149
|
-
menu_date.append_separator
|
150
|
-
menu_date.append(Calendar_DatePicker_AskDate, "&Choose date...\tCtrl-D", "Show dialog with DatePickerCtrl")
|
151
|
-
|
152
|
-
# now append the freshly created menu to the menu bar...
|
153
|
-
menu_bar = MenuBar.new
|
154
|
-
menu_bar.append(menu_file, "&File")
|
155
|
-
menu_bar.append(menu_cal, "&Calendar")
|
156
|
-
menu_bar.append(menu_date, "&Date picker")
|
157
|
-
|
158
|
-
menu_bar.check(Calendar_Cal_Monday, true)
|
159
|
-
menu_bar.check(Calendar_Cal_Holidays, true)
|
160
|
-
menu_bar.check(Calendar_Cal_Month, true)
|
161
|
-
menu_bar.check(Calendar_Cal_Year, true)
|
162
|
-
|
163
|
-
menu_bar.check(Calendar_DatePicker_ShowCentury, true)
|
164
|
-
|
165
|
-
# ... and attach self menu bar to the frame
|
166
|
-
self.menu_bar = menu_bar
|
167
|
-
end
|
108
|
+
evt_update_ui Calendar_Cal_Year, :on_allow_year_update
|
109
|
+
end
|
168
110
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
111
|
+
def add_menu_bar
|
112
|
+
# create a menu bar
|
113
|
+
menu_file = Wx::Menu.new
|
114
|
+
|
115
|
+
menu_file.append(Wx::ID_ABOUT, "&About...\tCtrl-A", "Show about dialog")
|
116
|
+
menu_file.append_separator
|
117
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit self program")
|
118
|
+
|
119
|
+
menu_cal = Wx::Menu.new
|
120
|
+
menu_cal.append(Calendar_Cal_Monday,
|
121
|
+
"Monday &first weekday\tCtrl-F",
|
122
|
+
"Toggle between Mon and Sun as the first week day",
|
123
|
+
Wx::ITEM_CHECK)
|
124
|
+
menu_cal.append(Calendar_Cal_Holidays, "Show &holidays\tCtrl-H",
|
125
|
+
"Toggle highlighting the holidays",
|
126
|
+
Wx::ITEM_CHECK)
|
127
|
+
menu_cal.append(Calendar_Cal_Special, "Highlight &special dates\tCtrl-S",
|
128
|
+
"Test custom highlighting",
|
129
|
+
Wx::ITEM_CHECK)
|
130
|
+
menu_cal.append(Calendar_Cal_SurroundWeeks,
|
131
|
+
"Show s&urrounding weeks\tCtrl-W",
|
132
|
+
"Show the neighbouring weeks in the prev/next month",
|
133
|
+
Wx::ITEM_CHECK)
|
134
|
+
menu_cal.append_separator
|
135
|
+
menu_cal.append(Calendar_Cal_SeqMonth,
|
136
|
+
"To&ggle month selector style\tCtrl-G",
|
137
|
+
"Use another style for the calendar controls",
|
138
|
+
Wx::ITEM_CHECK)
|
139
|
+
menu_cal.append(Calendar_Cal_Month, "&Month can be changed\tCtrl-M",
|
140
|
+
"Allow changing the month in the calendar",
|
141
|
+
Wx::ITEM_CHECK)
|
142
|
+
menu_cal.append(Calendar_Cal_Year, "&Year can be changed\tCtrl-Y",
|
143
|
+
"Allow changing the year in the calendar",
|
144
|
+
Wx::ITEM_CHECK) if Wx::PLATFORM == 'WXOSX'
|
145
|
+
|
146
|
+
menu_date = Wx::Menu.new
|
147
|
+
menu_date.append_check_item(Calendar_DatePicker_ShowCentury, "Al&ways show century")
|
148
|
+
menu_date.append_check_item(Calendar_DatePicker_DropDown, "Use &drop down control")
|
149
|
+
menu_date.append_check_item(Calendar_DatePicker_AllowNone, "Allow &no date")
|
150
|
+
menu_date.append_check_item(Calendar_DatePicker_StartWithNone, "Start &with no date")
|
151
|
+
menu_date.append_separator
|
152
|
+
menu_date.append(Calendar_DatePicker_AskDate, "&Choose date...\tCtrl-D", "Show dialog with DatePickerCtrl")
|
153
|
+
|
154
|
+
# now append the freshly created menu to the menu bar...
|
155
|
+
menu_bar = Wx::MenuBar.new
|
156
|
+
menu_bar.append(menu_file, "&File")
|
157
|
+
menu_bar.append(menu_cal, "&Calendar")
|
158
|
+
menu_bar.append(menu_date, "&Date picker")
|
159
|
+
|
160
|
+
menu_bar.check(Calendar_Cal_Monday, true)
|
161
|
+
menu_bar.check(Calendar_Cal_Holidays, true)
|
162
|
+
menu_bar.check(Calendar_Cal_Month, true)
|
163
|
+
menu_bar.check(Calendar_Cal_Year, true) if Wx::PLATFORM == 'WXOSX'
|
164
|
+
|
165
|
+
menu_bar.check(Calendar_DatePicker_ShowCentury, true)
|
166
|
+
|
167
|
+
# ... and attach self menu bar to the frame
|
168
|
+
self.menu_bar = menu_bar
|
169
|
+
end
|
186
170
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
171
|
+
def add_status_bar
|
172
|
+
# create a status bar just for fun (by default with 1 pane only)
|
173
|
+
create_status_bar
|
174
|
+
set_status_text("Welcome to Windows!")
|
175
|
+
end
|
192
176
|
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
177
|
+
def configure_window
|
178
|
+
@sizer.add(@calendar, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
179
|
+
@sizer.size_hints = @panel
|
180
|
+
layout
|
181
|
+
@panel.sizer = @sizer
|
182
|
+
end
|
197
183
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
184
|
+
def on_quit
|
185
|
+
# true is to force the frame to close
|
186
|
+
close(true)
|
187
|
+
end
|
202
188
|
|
203
|
-
|
204
|
-
|
205
|
-
|
189
|
+
def on_about
|
190
|
+
Wx.message_box("wxRuby CalendarCtrl sample\nby Kevin Smith\n" +
|
191
|
+
"based on the wxWidgets version by Vadim Zeitlin",
|
192
|
+
"About Calendar", Wx::OK | Wx::ICON_INFORMATION, self)
|
193
|
+
end
|
206
194
|
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
195
|
+
def on_cal_monday(event)
|
196
|
+
enable = get_menu_bar.is_checked(event.get_id)
|
197
|
+
toggle_cal_style(enable, CAL_MONDAY_FIRST)
|
198
|
+
end
|
211
199
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
200
|
+
def on_cal_holidays(event)
|
201
|
+
enable = get_menu_bar.is_checked(event.get_id)
|
202
|
+
@calendar.enable_holiday_display(enable)
|
203
|
+
end
|
216
204
|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
end
|
205
|
+
def on_cal_special(event)
|
206
|
+
highlight_special(get_menu_bar.is_checked(event.get_id))
|
207
|
+
end
|
221
208
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
209
|
+
def on_cal_allow_month(event)
|
210
|
+
allow = get_menu_bar.is_checked(event.get_id)
|
211
|
+
@calendar.enable_month_change(allow)
|
212
|
+
end
|
226
213
|
|
227
|
-
|
228
|
-
|
229
|
-
|
214
|
+
def on_cal_allow_year(event)
|
215
|
+
allow = get_menu_bar.is_checked(event.get_id)
|
216
|
+
@calendar.enable_year_change(allow)
|
217
|
+
end
|
230
218
|
|
231
|
-
|
232
|
-
|
233
|
-
|
219
|
+
def on_cal_seq_month(event)
|
220
|
+
allow = get_menu_bar.is_checked(event.get_id)
|
221
|
+
toggle_cal_style(allow, Wx::CAL_SEQUENTIAL_MONTH_SELECTION)
|
222
|
+
end
|
223
|
+
|
224
|
+
def on_cal_show_surrounding_weeks(event)
|
225
|
+
allow = get_menu_bar.is_checked(event.get_id)
|
226
|
+
toggle_cal_style(allow, Wx::CAL_SHOW_SURROUNDING_WEEKS)
|
227
|
+
end
|
228
|
+
|
229
|
+
def on_allow_year_update(event)
|
230
|
+
event.enable( get_menu_bar.is_checked(Calendar_Cal_Month))
|
231
|
+
end
|
234
232
|
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
style = DP_DEFAULT
|
239
|
-
style |= DP_SHOWCENTURY if get_menu_bar.is_checked(Calendar_DatePicker_ShowCentury)
|
240
|
-
style |= DP_DROPDOWN if get_menu_bar.is_checked(Calendar_DatePicker_DropDown)
|
241
|
-
if get_menu_bar.is_checked(Calendar_DatePicker_AllowNone)
|
242
|
-
style |= DP_ALLOWNONE
|
243
|
-
dt = nil if get_menu_bar.is_checked(Calendar_DatePicker_StartWithNone)
|
233
|
+
def on_update_ui_start_with_none(event)
|
234
|
+
event.enable( get_menu_bar.is_checked(Calendar_DatePicker_AllowNone))
|
244
235
|
end
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
236
|
+
|
237
|
+
def on_ask_date(_event)
|
238
|
+
dt = @calendar.get_date
|
239
|
+
|
240
|
+
style = Wx::DP_DEFAULT
|
241
|
+
style |= Wx::DP_SHOWCENTURY if get_menu_bar.is_checked(Calendar_DatePicker_ShowCentury)
|
242
|
+
style |= Wx::DP_DROPDOWN if get_menu_bar.is_checked(Calendar_DatePicker_DropDown)
|
243
|
+
if get_menu_bar.is_checked(Calendar_DatePicker_AllowNone)
|
244
|
+
style |= Wx::DP_ALLOWNONE
|
245
|
+
dt = nil if get_menu_bar.is_checked(Calendar_DatePicker_StartWithNone)
|
246
|
+
end
|
247
|
+
|
248
|
+
CalendarTest.MyDialog(self, dt, style) do |dlg|
|
249
|
+
if dlg.show_modal == Wx::ID_OK
|
250
|
+
if (dt = dlg.get_date)
|
251
|
+
today = Time.now
|
252
|
+
if dt.day == today.day && dt.month == today.month
|
253
|
+
Wx.message_box("Happy birthday", "Calendar Sample")
|
254
|
+
end
|
255
|
+
@calendar.set_date(dt)
|
256
|
+
Wx.log_status("Changed the date to your input")
|
257
|
+
else
|
258
|
+
Wx.log_status("No date entered")
|
252
259
|
end
|
253
|
-
@calendar.set_date(dt)
|
254
|
-
log_status("Changed the date to your input")
|
255
|
-
else
|
256
|
-
log_status("No date entered")
|
257
260
|
end
|
258
261
|
end
|
259
262
|
end
|
260
|
-
end
|
261
263
|
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
264
|
+
def toggle_cal_style(on,flag)
|
265
|
+
style = @calendar.get_window_style_flag
|
266
|
+
date = @calendar.date
|
267
|
+
@sizer.detach(@calendar)
|
268
|
+
@calendar.destroy
|
269
|
+
if on
|
270
|
+
style |= flag
|
271
|
+
else
|
272
|
+
style &= ~flag
|
273
|
+
end
|
274
|
+
@calendar = MyCalendar.new(@panel, self, date, style)
|
275
|
+
@sizer.add(@calendar, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
276
|
+
@panel.layout
|
277
|
+
end
|
278
|
+
|
279
|
+
def highlight_special(on)
|
280
|
+
if on
|
281
|
+
attr_red_circle = Wx::CalendarDateAttr.new(Wx::CAL_BORDER_ROUND, Wx::RED)
|
282
|
+
attr_green_square = Wx::CalendarDateAttr.new(Wx::CAL_BORDER_SQUARE, Wx::GREEN)
|
283
|
+
# This wraps correctly, but causes problems because the colour is freed
|
284
|
+
# when the attribute is reset.
|
285
|
+
#
|
286
|
+
# attr_header_like = CalendarDateAttr.new(BLUE, LIGHT_GREY)
|
287
|
+
|
288
|
+
@calendar.set_attr(17, attr_red_circle)
|
289
|
+
@calendar.set_attr(29, attr_green_square)
|
290
|
+
# @calendar.set_attr(13, attr_header_like)
|
291
|
+
else
|
292
|
+
@calendar.reset_attr(17)
|
293
|
+
@calendar.reset_attr(29)
|
294
|
+
# @calendar.reset_attr(13)
|
295
|
+
end
|
296
|
+
@calendar.refresh
|
271
297
|
end
|
272
|
-
@calendar = MyCalendar.new(@panel, self, date, style)
|
273
|
-
@sizer.add(@calendar, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
|
274
|
-
@panel.layout
|
275
|
-
end
|
276
298
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
# This wraps correctly, but causes problems because the colour is freed
|
282
|
-
# when the attribute is reset.
|
283
|
-
#
|
284
|
-
# attr_header_like = CalendarDateAttr.new(BLUE, LIGHT_GREY)
|
285
|
-
|
286
|
-
@calendar.set_attr(17, attr_red_circle)
|
287
|
-
@calendar.set_attr(29, attr_green_square)
|
288
|
-
# @calendar.set_attr(13, attr_header_like)
|
289
|
-
else
|
290
|
-
@calendar.reset_attr(17)
|
291
|
-
@calendar.reset_attr(29)
|
292
|
-
# @calendar.reset_attr(13)
|
299
|
+
def set_date(d)
|
300
|
+
str = "%s-%s-%s" % [ d.year, d.mon, d.day ]
|
301
|
+
Wx.MessageDialog( self, "The selected date is #{str}",
|
302
|
+
"Date chosen" ) { |dlg| dlg.show_modal }
|
293
303
|
end
|
294
|
-
|
295
|
-
end
|
304
|
+
alias :date= :set_date
|
296
305
|
|
297
|
-
def set_date(d)
|
298
|
-
str = "%s-%s-%s" % [ d.year, d.mon, d.day ]
|
299
|
-
Wx.MessageDialog( self, "The selected date is #{str}",
|
300
|
-
"Date chosen" ) { |dlg| dlg.show_modal }
|
301
306
|
end
|
302
|
-
alias :date= :set_date
|
303
|
-
|
304
|
-
end
|
305
307
|
|
306
|
-
class MyDialog < Dialog
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
sizer_text = BoxSizer.new(HORIZONTAL)
|
315
|
-
sizer_text.add(StaticText.new(self, ID_ANY, "Date in ISO format:"), 0, ALL|ALIGN_CENTRE_VERTICAL, 10)
|
316
|
-
@text = TextCtrl.new(self)
|
317
|
-
sizer_text.add(@text, 1, ALL|ALIGN_CENTRE_VERTICAL, 10)
|
318
|
-
|
319
|
-
sizer_top = BoxSizer.new(VERTICAL)
|
320
|
-
sizer_top.add(StaticText.new(self, ID_ANY, "Enter your birthday date (not before 20th century):"), 0, ALL, 10)
|
321
|
-
|
322
|
-
@picker = DatePickerCtrl.new(self, ID_ANY, dt, DEFAULT_POSITION, DEFAULT_SIZE, picker_style)
|
323
|
-
@picker.set_range(DateTime.new(1900, 1, 1), nil)
|
324
|
-
sizer_top.add(@picker, 0, ALL|EXPAND, 10)
|
325
|
-
sizer_top.add_stretch_spacer(1)
|
326
|
-
sizer_top.add(sizer_text, 0, EXPAND)
|
327
|
-
|
328
|
-
sizer_top.add(sizer_buttons, 0, ALL|ALIGN_CENTER, 10)
|
329
|
-
|
330
|
-
set_sizer_and_fit(sizer_top)
|
331
|
-
layout
|
332
|
-
|
333
|
-
evt_date_changed(@picker, :on_date_changed)
|
334
|
-
end
|
308
|
+
class MyDialog < Dialog
|
309
|
+
def initialize(parent, dt, picker_style)
|
310
|
+
super(parent, :style => Wx::DEFAULT_DIALOG_STYLE|Wx::RESIZE_BORDER)
|
311
|
+
sizer_buttons = Wx::StdDialogButtonSizer.new
|
312
|
+
sizer_buttons.add_button(Wx::Button.new(self, Wx::ID_OK))
|
313
|
+
sizer_buttons.add_button(Wx::Button.new(self, Wx::ID_CANCEL))
|
314
|
+
sizer_buttons.realize
|
335
315
|
|
336
|
-
|
337
|
-
|
338
|
-
|
316
|
+
sizer_text = Wx::BoxSizer.new(Wx::HORIZONTAL)
|
317
|
+
sizer_text.add(Wx::StaticText.new(self, Wx::ID_ANY, "Date in ISO format:"), 0, Wx::ALL|Wx::ALIGN_CENTRE_VERTICAL, 10)
|
318
|
+
@text = Wx::TextCtrl.new(self)
|
319
|
+
sizer_text.add(@text, 1, Wx::ALL|Wx::ALIGN_CENTRE_VERTICAL, 10)
|
320
|
+
|
321
|
+
sizer_top = Wx::BoxSizer.new(Wx::VERTICAL)
|
322
|
+
sizer_top.add(Wx::StaticText.new(self, Wx::ID_ANY, "Enter your birthday date (not before 20th century):"), 0, Wx::ALL, 10)
|
323
|
+
|
324
|
+
@picker = Wx::DatePickerCtrl.new(self, Wx::ID_ANY, dt, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, picker_style)
|
325
|
+
@picker.set_range(DateTime.new(1900, 1, 1), nil)
|
326
|
+
sizer_top.add(@picker, 0, Wx::ALL|Wx::EXPAND, 10)
|
327
|
+
sizer_top.add_stretch_spacer(1)
|
328
|
+
sizer_top.add(sizer_text, 0, Wx::EXPAND)
|
339
329
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
330
|
+
sizer_top.add(sizer_buttons, 0, Wx::ALL|Wx::ALIGN_CENTER, 10)
|
331
|
+
|
332
|
+
set_sizer_and_fit(sizer_top)
|
333
|
+
layout
|
334
|
+
|
335
|
+
evt_date_changed(@picker, :on_date_changed)
|
336
|
+
end
|
337
|
+
|
338
|
+
def get_date
|
339
|
+
@picker.get_value
|
345
340
|
end
|
341
|
+
|
342
|
+
def on_date_changed(event)
|
343
|
+
if (dt = event.get_date)
|
344
|
+
@text.set_value(dt.to_s)
|
345
|
+
else
|
346
|
+
@text.set_value("")
|
347
|
+
end
|
348
|
+
end
|
349
|
+
|
346
350
|
end
|
347
351
|
|
348
352
|
end
|
@@ -362,7 +366,7 @@ module CalendarSample
|
|
362
366
|
end
|
363
367
|
|
364
368
|
if $0 == __FILE__
|
365
|
-
Wx::App.run { MyFrame.new("Calendar Windows sample").show(true) }
|
369
|
+
Wx::App.run { CalendarTest::MyFrame.new("Calendar Windows sample").show(true) }
|
366
370
|
end
|
367
371
|
|
368
372
|
end
|