rwx 0.0.1.dev
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 +7 -0
- data/.gitignore +49 -0
- data/COPYING +0 -0
- data/README.rdoc +0 -0
- data/Rakefile +100 -0
- data/VERSION +1 -0
- data/ext/extconf.rb +112 -0
- data/ext/main.cpp +432 -0
- data/ext/main.hpp +454 -0
- data/ext/rwx.cpp +472 -0
- data/ext/wxAboutDlg.cpp +213 -0
- data/ext/wxAboutDlg.hpp +19 -0
- data/ext/wxAnyButton.cpp +141 -0
- data/ext/wxAnyButton.hpp +17 -0
- data/ext/wxAnyChoiceDialog.cpp +93 -0
- data/ext/wxAnyChoiceDialog.hpp +19 -0
- data/ext/wxApp.cpp +205 -0
- data/ext/wxApp.hpp +48 -0
- data/ext/wxAui.hpp +19 -0
- data/ext/wxAuiBook.cpp +453 -0
- data/ext/wxAuiBook.hpp +21 -0
- data/ext/wxAuiManager.cpp +79 -0
- data/ext/wxAuiManager.hpp +18 -0
- data/ext/wxAuiPane.cpp +343 -0
- data/ext/wxAuiPane.hpp +29 -0
- data/ext/wxAuiToolBar.cpp +47 -0
- data/ext/wxAuiToolBar.hpp +17 -0
- data/ext/wxBitmap.cpp +368 -0
- data/ext/wxBitmap.hpp +60 -0
- data/ext/wxBitmapButton.cpp +82 -0
- data/ext/wxBitmapButton.hpp +17 -0
- data/ext/wxBitmapComboBox.cpp +284 -0
- data/ext/wxBitmapComboBox.hpp +22 -0
- data/ext/wxBitmapToggleButton.cpp +82 -0
- data/ext/wxBitmapToggleButton.hpp +17 -0
- data/ext/wxBookCtrl.cpp +633 -0
- data/ext/wxBookCtrl.hpp +22 -0
- data/ext/wxBoxSizer.cpp +60 -0
- data/ext/wxBoxSizer.hpp +17 -0
- data/ext/wxBrush.cpp +281 -0
- data/ext/wxBrush.hpp +28 -0
- data/ext/wxButton.cpp +85 -0
- data/ext/wxButton.hpp +17 -0
- data/ext/wxButtonToolBar.cpp +54 -0
- data/ext/wxButtonToolBar.hpp +21 -0
- data/ext/wxCalendarCtrl.cpp +91 -0
- data/ext/wxCalendarCtrl.hpp +17 -0
- data/ext/wxCalendarCtrlBase.cpp +55 -0
- data/ext/wxCalendarCtrlBase.hpp +26 -0
- data/ext/wxCalendarCtrlGeneric.cpp +102 -0
- data/ext/wxCalendarCtrlGeneric.hpp +21 -0
- data/ext/wxCheckBox.cpp +157 -0
- data/ext/wxCheckBox.hpp +17 -0
- data/ext/wxCheckListBox.cpp +191 -0
- data/ext/wxCheckListBox.hpp +20 -0
- data/ext/wxChoice.cpp +133 -0
- data/ext/wxChoice.hpp +30 -0
- data/ext/wxChoiceBook.cpp +90 -0
- data/ext/wxChoiceBook.hpp +23 -0
- data/ext/wxCollapsiblePane.cpp +110 -0
- data/ext/wxCollapsiblePane.hpp +21 -0
- data/ext/wxColor.cpp +435 -0
- data/ext/wxColor.hpp +38 -0
- data/ext/wxColorDialog.cpp +97 -0
- data/ext/wxColorDialog.hpp +19 -0
- data/ext/wxColorPicker.cpp +131 -0
- data/ext/wxColorPicker.hpp +20 -0
- data/ext/wxColorPickerWidget.cpp +105 -0
- data/ext/wxColorPickerWidget.hpp +20 -0
- data/ext/wxComboBox.cpp +214 -0
- data/ext/wxComboBox.hpp +22 -0
- data/ext/wxCommandEvent.cpp +45 -0
- data/ext/wxCommandEvent.hpp +16 -0
- data/ext/wxConfig.cpp +19 -0
- data/ext/wxConfig.hpp +17 -0
- data/ext/wxContextHelpButton.cpp +93 -0
- data/ext/wxContextHelpButton.hpp +21 -0
- data/ext/wxControl.cpp +90 -0
- data/ext/wxControl.hpp +15 -0
- data/ext/wxCursor.cpp +108 -0
- data/ext/wxCursor.hpp +25 -0
- data/ext/wxDC.cpp +252 -0
- data/ext/wxDC.hpp +18 -0
- data/ext/wxDataView.cpp +224 -0
- data/ext/wxDataView.hpp +45 -0
- data/ext/wxDataViewList.cpp +190 -0
- data/ext/wxDataViewList.hpp +17 -0
- data/ext/wxDatePicker.cpp +103 -0
- data/ext/wxDatePicker.hpp +22 -0
- data/ext/wxDialog.cpp +120 -0
- data/ext/wxDialog.hpp +17 -0
- data/ext/wxDirDialog.cpp +152 -0
- data/ext/wxDirDialog.hpp +20 -0
- data/ext/wxDirPicker.cpp +134 -0
- data/ext/wxDirPicker.hpp +28 -0
- data/ext/wxDirPickerWidget.cpp +127 -0
- data/ext/wxDirPickerWidget.hpp +20 -0
- data/ext/wxError.cpp +67 -0
- data/ext/wxError.hpp +17 -0
- data/ext/wxEvent.cpp +60 -0
- data/ext/wxEvent.hpp +17 -0
- data/ext/wxEvtHandler.cpp +291 -0
- data/ext/wxEvtHandler.hpp +85 -0
- data/ext/wxFileCtrl.cpp +98 -0
- data/ext/wxFileCtrl.hpp +17 -0
- data/ext/wxFileCtrlBase.cpp +219 -0
- data/ext/wxFileCtrlBase.hpp +33 -0
- data/ext/wxFileCtrlGeneric.cpp +106 -0
- data/ext/wxFileCtrlGeneric.hpp +19 -0
- data/ext/wxFileDialog.cpp +268 -0
- data/ext/wxFileDialog.hpp +19 -0
- data/ext/wxFileDirPicker.cpp +89 -0
- data/ext/wxFileDirPicker.hpp +29 -0
- data/ext/wxFileHistory.cpp +134 -0
- data/ext/wxFileHistory.hpp +20 -0
- data/ext/wxFilePicker.cpp +160 -0
- data/ext/wxFilePicker.hpp +28 -0
- data/ext/wxFilePickerWidget.cpp +139 -0
- data/ext/wxFilePickerWidget.hpp +20 -0
- data/ext/wxFont.cpp +542 -0
- data/ext/wxFont.hpp +37 -0
- data/ext/wxFontDialog.cpp +143 -0
- data/ext/wxFontDialog.hpp +21 -0
- data/ext/wxFontPicker.cpp +160 -0
- data/ext/wxFontPicker.hpp +21 -0
- data/ext/wxFontPickerWidget.cpp +128 -0
- data/ext/wxFontPickerWidget.hpp +20 -0
- data/ext/wxFrame.cpp +274 -0
- data/ext/wxFrame.hpp +17 -0
- data/ext/wxGauge.cpp +167 -0
- data/ext/wxGauge.hpp +17 -0
- data/ext/wxGrid.cpp +250 -0
- data/ext/wxGrid.hpp +43 -0
- data/ext/wxGridCellAttr.cpp +68 -0
- data/ext/wxGridCellAttr.hpp +26 -0
- data/ext/wxGridCellRenderer.cpp +120 -0
- data/ext/wxGridCellRenderer.hpp +30 -0
- data/ext/wxGridTable.cpp +111 -0
- data/ext/wxGridTable.hpp +47 -0
- data/ext/wxHyperLink.cpp +148 -0
- data/ext/wxHyperLink.hpp +20 -0
- data/ext/wxImage.cpp +884 -0
- data/ext/wxImage.hpp +24 -0
- data/ext/wxInfoBar.cpp +85 -0
- data/ext/wxInfoBar.hpp +21 -0
- data/ext/wxInfoBarBase.cpp +145 -0
- data/ext/wxInfoBarBase.hpp +21 -0
- data/ext/wxInfoBarGeneric.cpp +90 -0
- data/ext/wxInfoBarGeneric.hpp +21 -0
- data/ext/wxItemContainer.cpp +313 -0
- data/ext/wxItemContainer.hpp +17 -0
- data/ext/wxKeyEvent.cpp +35 -0
- data/ext/wxKeyEvent.hpp +16 -0
- data/ext/wxListBook.cpp +90 -0
- data/ext/wxListBook.hpp +21 -0
- data/ext/wxListBox.cpp +290 -0
- data/ext/wxListBox.hpp +29 -0
- data/ext/wxMenu.cpp +600 -0
- data/ext/wxMenu.hpp +17 -0
- data/ext/wxMenuBar.cpp +180 -0
- data/ext/wxMenuBar.hpp +17 -0
- data/ext/wxMenuItem.cpp +174 -0
- data/ext/wxMenuItem.hpp +17 -0
- data/ext/wxMessageDialog.cpp +91 -0
- data/ext/wxMessageDialog.hpp +19 -0
- data/ext/wxMessageDialogBase.cpp +152 -0
- data/ext/wxMessageDialogBase.hpp +18 -0
- data/ext/wxMessageDialogGeneric.cpp +91 -0
- data/ext/wxMessageDialogGeneric.hpp +19 -0
- data/ext/wxMouseEvent.cpp +60 -0
- data/ext/wxMouseEvent.hpp +16 -0
- data/ext/wxMultiChoiceDialog.cpp +143 -0
- data/ext/wxMultiChoiceDialog.hpp +19 -0
- data/ext/wxNoteBook.cpp +89 -0
- data/ext/wxNoteBook.hpp +21 -0
- data/ext/wxNotifyEvent.cpp +45 -0
- data/ext/wxNotifyEvent.hpp +16 -0
- data/ext/wxNumberEntryDialog.cpp +131 -0
- data/ext/wxNumberEntryDialog.hpp +20 -0
- data/ext/wxPalette.cpp +214 -0
- data/ext/wxPalette.hpp +24 -0
- data/ext/wxPanel.cpp +77 -0
- data/ext/wxPanel.hpp +19 -0
- data/ext/wxPasswordEntryDialog.cpp +141 -0
- data/ext/wxPasswordEntryDialog.hpp +20 -0
- data/ext/wxPen.cpp +323 -0
- data/ext/wxPen.hpp +37 -0
- data/ext/wxPickerBase.cpp +121 -0
- data/ext/wxPickerBase.hpp +28 -0
- data/ext/wxPoint.cpp +224 -0
- data/ext/wxPoint.hpp +40 -0
- data/ext/wxPreferences.cpp +149 -0
- data/ext/wxPreferences.hpp +18 -0
- data/ext/wxProgressDialog.cpp +171 -0
- data/ext/wxProgressDialog.hpp +20 -0
- data/ext/wxProperty.cpp +723 -0
- data/ext/wxProperty.hpp +16 -0
- data/ext/wxPropertyCell.cpp +99 -0
- data/ext/wxPropertyCell.hpp +16 -0
- data/ext/wxPropertyGrid.cpp +234 -0
- data/ext/wxPropertyGrid.hpp +20 -0
- data/ext/wxPropertyGridInterface.cpp +146 -0
- data/ext/wxPropertyGridInterface.hpp +33 -0
- data/ext/wxPropertyGridManager.cpp +257 -0
- data/ext/wxPropertyGridManager.hpp +20 -0
- data/ext/wxPropertyGridPage.cpp +65 -0
- data/ext/wxPropertyGridPage.hpp +20 -0
- data/ext/wxRadioBox.cpp +405 -0
- data/ext/wxRadioBox.hpp +20 -0
- data/ext/wxRadioButton.cpp +107 -0
- data/ext/wxRadioButton.hpp +16 -0
- data/ext/wxRearrangeCtrl.cpp +89 -0
- data/ext/wxRearrangeCtrl.hpp +20 -0
- data/ext/wxRearrangeDialog.cpp +122 -0
- data/ext/wxRearrangeDialog.hpp +20 -0
- data/ext/wxRearrangeList.cpp +94 -0
- data/ext/wxRearrangeList.hpp +20 -0
- data/ext/wxRect.cpp +281 -0
- data/ext/wxRect.hpp +29 -0
- data/ext/wxRichMessageDialog.cpp +91 -0
- data/ext/wxRichMessageDialog.hpp +21 -0
- data/ext/wxRichTextAttr.cpp +69 -0
- data/ext/wxRichTextAttr.hpp +28 -0
- data/ext/wxRichTextCtrl.cpp +484 -0
- data/ext/wxRichTextCtrl.hpp +21 -0
- data/ext/wxRichTextStyle.cpp +86 -0
- data/ext/wxRichTextStyle.hpp +25 -0
- data/ext/wxRichTextStyleSheet.cpp +497 -0
- data/ext/wxRichTextStyleSheet.hpp +21 -0
- data/ext/wxSTC.cpp +331 -0
- data/ext/wxSTC.hpp +21 -0
- data/ext/wxScrollEvent.cpp +43 -0
- data/ext/wxScrollEvent.hpp +16 -0
- data/ext/wxSearchCtrl.cpp +189 -0
- data/ext/wxSearchCtrl.hpp +21 -0
- data/ext/wxSimpleBook.cpp +89 -0
- data/ext/wxSimpleBook.hpp +21 -0
- data/ext/wxSingleChoiceDialog.cpp +147 -0
- data/ext/wxSingleChoiceDialog.hpp +19 -0
- data/ext/wxSize.cpp +206 -0
- data/ext/wxSize.hpp +32 -0
- data/ext/wxSizer.cpp +368 -0
- data/ext/wxSizer.hpp +23 -0
- data/ext/wxSizerItem.cpp +37 -0
- data/ext/wxSizerItem.hpp +18 -0
- data/ext/wxSlider.cpp +204 -0
- data/ext/wxSlider.hpp +21 -0
- data/ext/wxSpinButton.cpp +158 -0
- data/ext/wxSpinButton.hpp +20 -0
- data/ext/wxSpinCtrl.cpp +132 -0
- data/ext/wxSpinCtrl.hpp +21 -0
- data/ext/wxStartUpTip.cpp +44 -0
- data/ext/wxStartUpTip.hpp +16 -0
- data/ext/wxStaticBitmap.cpp +79 -0
- data/ext/wxStaticBitmap.hpp +17 -0
- data/ext/wxStaticBitmapBase.cpp +46 -0
- data/ext/wxStaticBitmapBase.hpp +22 -0
- data/ext/wxStaticBitmapGeneric.cpp +82 -0
- data/ext/wxStaticBitmapGeneric.hpp +17 -0
- data/ext/wxStaticBox.cpp +92 -0
- data/ext/wxStaticBox.hpp +22 -0
- data/ext/wxStaticLine.cpp +100 -0
- data/ext/wxStaticLine.hpp +22 -0
- data/ext/wxStaticText.cpp +82 -0
- data/ext/wxStaticText.hpp +21 -0
- data/ext/wxStatusBar.cpp +417 -0
- data/ext/wxStatusBar.hpp +17 -0
- data/ext/wxStream.cpp +41 -0
- data/ext/wxStream.hpp +46 -0
- data/ext/wxTaskBar.cpp +104 -0
- data/ext/wxTaskBar.hpp +41 -0
- data/ext/wxTextArea.cpp +141 -0
- data/ext/wxTextArea.hpp +21 -0
- data/ext/wxTextAttr.cpp +320 -0
- data/ext/wxTextAttr.hpp +28 -0
- data/ext/wxTextCtrl.cpp +177 -0
- data/ext/wxTextCtrl.hpp +30 -0
- data/ext/wxTextEntry.cpp +248 -0
- data/ext/wxTextEntry.hpp +19 -0
- data/ext/wxTextEntryDialog.cpp +133 -0
- data/ext/wxTextEntryDialog.hpp +20 -0
- data/ext/wxTimePicker.cpp +105 -0
- data/ext/wxTimePicker.hpp +22 -0
- data/ext/wxTimer.cpp +106 -0
- data/ext/wxTimer.hpp +16 -0
- data/ext/wxToggleButton.cpp +96 -0
- data/ext/wxToggleButton.hpp +21 -0
- data/ext/wxToolBar.cpp +85 -0
- data/ext/wxToolBar.hpp +17 -0
- data/ext/wxToolBarBase.cpp +615 -0
- data/ext/wxToolBarBase.hpp +17 -0
- data/ext/wxToolBarTool.cpp +179 -0
- data/ext/wxToolBarTool.hpp +16 -0
- data/ext/wxToolBook.cpp +96 -0
- data/ext/wxToolBook.hpp +23 -0
- data/ext/wxToplevel.cpp +125 -0
- data/ext/wxToplevel.hpp +25 -0
- data/ext/wxTreeBook.cpp +240 -0
- data/ext/wxTreeBook.hpp +21 -0
- data/ext/wxTreeCtrl.cpp +443 -0
- data/ext/wxTreeCtrl.hpp +66 -0
- data/ext/wxVariant.cpp +65 -0
- data/ext/wxVariant.hpp +17 -0
- data/ext/wxWindow.cpp +980 -0
- data/ext/wxWindow.hpp +35 -0
- data/ext/wxWizard.cpp +321 -0
- data/ext/wxWizard.hpp +19 -0
- data/ext/wxWizardPage.cpp +137 -0
- data/ext/wxWizardPage.hpp +38 -0
- data/ext/wxXRC.cpp +48 -0
- data/ext/wxXRC.hpp +21 -0
- data/old_tests/button.rb +56 -0
- data/old_tests/file.png +0 -0
- data/old_tests/green.xpm +25 -0
- data/old_tests/new16x16.png +0 -0
- data/old_tests/project.xml +10 -0
- data/old_tests/propertygrid.rb +51 -0
- data/old_tests/red.xpm +25 -0
- data/old_tests/ruby32x32.png +0 -0
- data/old_tests/status.rb +45 -0
- data/old_tests/test.rb +580 -0
- data/old_tests/wizard.xrc +40 -0
- data/old_tests/xrc.rb +38 -0
- data/rwx.gemspec +43 -0
- data/samples/controls/controls.rb +143 -0
- data/samples/controls/icons/choice.bmp +0 -0
- data/samples/controls/icons/choice.xpm +27 -0
- data/samples/controls/icons/combo.bmp +0 -0
- data/samples/controls/icons/combo.xpm +27 -0
- data/samples/controls/icons/gauge.bmp +0 -0
- data/samples/controls/icons/gauge.xpm +27 -0
- data/samples/controls/icons/list.bmp +0 -0
- data/samples/controls/icons/list.xpm +27 -0
- data/samples/controls/icons/radio.bmp +0 -0
- data/samples/controls/icons/radio.xpm +27 -0
- data/samples/controls/icons/stattext.xpm +24 -0
- data/samples/controls/icons/text.bmp +0 -0
- data/samples/controls/icons/text.xpm +27 -0
- data/samples/dialog/dialog_sample.rb +227 -0
- data/samples/sample.xpm +44 -0
- data/samples/widgets/icons/bmpbtn.xpm +37 -0
- data/samples/widgets/icons/bmpcombobox.xpm +54 -0
- data/samples/widgets/icons/button.xpm +54 -0
- data/samples/widgets/icons/checkbox.xpm +54 -0
- data/samples/widgets/icons/choice.xpm +27 -0
- data/samples/widgets/icons/choicebk.xpm +54 -0
- data/samples/widgets/icons/clrpicker.xpm +193 -0
- data/samples/widgets/icons/combobox.xpm +54 -0
- data/samples/widgets/icons/datepick.xpm +200 -0
- data/samples/widgets/icons/dirctrl.xpm +54 -0
- data/samples/widgets/icons/dirpicker.xpm +213 -0
- data/samples/widgets/icons/filepicker.xpm +214 -0
- data/samples/widgets/icons/fontpicker.xpm +185 -0
- data/samples/widgets/icons/gauge.xpm +54 -0
- data/samples/widgets/icons/hyperlnk.xpm +54 -0
- data/samples/widgets/icons/listbook.xpm +54 -0
- data/samples/widgets/icons/listbox.xpm +54 -0
- data/samples/widgets/icons/notebook.xpm +54 -0
- data/samples/widgets/icons/odcombobox.xpm +54 -0
- data/samples/widgets/icons/radiobox.xpm +54 -0
- data/samples/widgets/icons/scrolbar.xpm +54 -0
- data/samples/widgets/icons/slider.xpm +54 -0
- data/samples/widgets/icons/spinbtn.xpm +40 -0
- data/samples/widgets/icons/statbmp.xpm +40 -0
- data/samples/widgets/icons/statbox.xpm +54 -0
- data/samples/widgets/icons/stattext.xpm +54 -0
- data/samples/widgets/icons/text.xpm +54 -0
- data/samples/widgets/icons/timepick.xpm +207 -0
- data/samples/widgets/icons/toggle.xpm +54 -0
- data/samples/widgets/pages/colorpicker.rb +66 -0
- data/samples/widgets/pages/common.rb +17 -0
- data/samples/widgets/widgets.rb +29 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +59 -0
- data/test/test_color.rb +64 -0
- metadata +470 -0
data/ext/wxListBox.hpp
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* wxListBox.hpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 04.03.2012
|
|
5
|
+
* Author: hanmac
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef WXLISTBOX_HPP_
|
|
9
|
+
#define WXLISTBOX_HPP_
|
|
10
|
+
|
|
11
|
+
#include "wxControl.hpp"
|
|
12
|
+
|
|
13
|
+
extern VALUE rb_cWXListBox;
|
|
14
|
+
|
|
15
|
+
void Init_WXListBox(VALUE rb_mWX);
|
|
16
|
+
#if wxUSE_LISTBOX
|
|
17
|
+
#include <wx/listbox.h>
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
namespace RubyWX {
|
|
22
|
+
namespace ListBox {
|
|
23
|
+
|
|
24
|
+
void set_style_flags(VALUE hash,int& flags);
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#endif /* WXLISTBOX_HPP_ */
|
data/ext/wxMenu.cpp
ADDED
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* wxMenu.cpp
|
|
3
|
+
*
|
|
4
|
+
* Created on: 17.02.2012
|
|
5
|
+
* Author: hanmac
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
#include "wxMenu.hpp"
|
|
11
|
+
#include "wxMenuItem.hpp"
|
|
12
|
+
#include "wxEvtHandler.hpp"
|
|
13
|
+
#include "wxApp.hpp"
|
|
14
|
+
|
|
15
|
+
VALUE rb_cWXMenu;
|
|
16
|
+
|
|
17
|
+
#if wxUSE_MENUS
|
|
18
|
+
|
|
19
|
+
#define _self unwrap<wxMenu*>(self)
|
|
20
|
+
|
|
21
|
+
namespace RubyWX {
|
|
22
|
+
namespace Menu {
|
|
23
|
+
|
|
24
|
+
macro_attr(Title,wxString)
|
|
25
|
+
macro_attr(Parent,wxMenu*)
|
|
26
|
+
macro_attr(EventHandler,wxEvtHandler*)
|
|
27
|
+
|
|
28
|
+
singlereturn(AppendSeparator)
|
|
29
|
+
singlereturn(PrependSeparator)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
APP_PROTECT(wxMenu)
|
|
33
|
+
|
|
34
|
+
DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
|
|
35
|
+
{
|
|
36
|
+
VALUE title;
|
|
37
|
+
rb_scan_args(argc, argv, "01",&title);
|
|
38
|
+
|
|
39
|
+
if(NIL_P(title))
|
|
40
|
+
_self->SetTitle("");
|
|
41
|
+
else if(SYMBOL_P(title))
|
|
42
|
+
_self->SetTitle(wxGetStockLabel(unwrapID(title)));
|
|
43
|
+
else
|
|
44
|
+
_setTitle(self,title);
|
|
45
|
+
if(rb_block_given_p()){
|
|
46
|
+
rb_yield(self);
|
|
47
|
+
}
|
|
48
|
+
return self;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
singlereturn(GetMenuBar);
|
|
52
|
+
|
|
53
|
+
DLL_LOCAL VALUE _each_size(VALUE self)
|
|
54
|
+
{
|
|
55
|
+
return UINT2NUM(_self->GetMenuItemCount());
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
DLL_LOCAL VALUE _each(VALUE self)
|
|
60
|
+
{
|
|
61
|
+
RETURN_SIZED_ENUMERATOR(self,0,NULL,RUBY_METHOD_FUNC(_each_size));
|
|
62
|
+
std::size_t count = _self->GetMenuItemCount();
|
|
63
|
+
for(std::size_t i = 0;i < count;++i)
|
|
64
|
+
rb_yield(wrap(_self->FindItemByPosition(i)));
|
|
65
|
+
return self;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
void bind_callback(wxMenu* menu,wxWindowID id)
|
|
69
|
+
{
|
|
70
|
+
if(rb_block_given_p()){
|
|
71
|
+
VALUE proc = rb_block_proc();
|
|
72
|
+
menu->Bind(wxEVT_MENU,RubyFunctor(proc),id);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
DLL_LOCAL bool check_title(wxWindowID wid, VALUE id, VALUE text)
|
|
77
|
+
{
|
|
78
|
+
if(!wxIsStockID(wid) && (NIL_P(text) || rb_str_length(text) == INT2FIX(0)))
|
|
79
|
+
{
|
|
80
|
+
rb_raise(rb_eArgError,"id %"PRIsVALUE"s (%d) needs an text", id, wid);
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
DLL_LOCAL bool check_menu_mitle(wxMenu *m,wxString &wtext)
|
|
87
|
+
{
|
|
88
|
+
if(wtext.empty())
|
|
89
|
+
{
|
|
90
|
+
if(m->GetTitle().empty())
|
|
91
|
+
{
|
|
92
|
+
rb_raise(rb_eArgError,"menu must have a title");
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
wtext = m->GetTitle();
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
DLL_LOCAL VALUE _append_base(int argc,VALUE *argv,VALUE self,wxItemKind kind)
|
|
102
|
+
{
|
|
103
|
+
VALUE id,text,help;
|
|
104
|
+
|
|
105
|
+
rb_scan_args(argc, argv, "12",&id,&text,&help);
|
|
106
|
+
wxWindowID wid(unwrapID(id));
|
|
107
|
+
|
|
108
|
+
if(check_title(wid,id,text))
|
|
109
|
+
{
|
|
110
|
+
wxMenuItem *item = _self->Append(wid,unwrap<wxString>(text),unwrap<wxString>(help),kind);
|
|
111
|
+
bind_callback(_self,item->GetId());
|
|
112
|
+
return wrap(item);
|
|
113
|
+
}
|
|
114
|
+
return Qnil;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
/*
|
|
119
|
+
* call-seq:
|
|
120
|
+
* add_normal(id, text, [help]) -> WX::Menu::Item
|
|
121
|
+
* add_normal(id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
122
|
+
*
|
|
123
|
+
* adds a new normal menu item to the Menu widget.
|
|
124
|
+
* when block is given, bind the block to the event of the menu item.
|
|
125
|
+
* ===Arguments
|
|
126
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
127
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the system defined)
|
|
128
|
+
* * help shown in WX::StatusBar. String
|
|
129
|
+
* ===Return value
|
|
130
|
+
* WX::Menu::Item
|
|
131
|
+
* === Exceptions
|
|
132
|
+
* [ArgumentError]
|
|
133
|
+
* * when id is not a StockID and text is nil or empty
|
|
134
|
+
*
|
|
135
|
+
*/
|
|
136
|
+
DLL_LOCAL VALUE _appendNormalItem(int argc,VALUE *argv,VALUE self)
|
|
137
|
+
{
|
|
138
|
+
return _append_base(argc,argv,self,wxITEM_NORMAL);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/*
|
|
142
|
+
* call-seq:
|
|
143
|
+
* add_check(id, text, [help]) -> WX::Menu::Item
|
|
144
|
+
* add_check(id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
145
|
+
*
|
|
146
|
+
* adds a new check menu item to the Menu widget.
|
|
147
|
+
* when block is given, bind the block to the event of the menu item.
|
|
148
|
+
* ===Arguments
|
|
149
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
150
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
151
|
+
* * help shown in WX::StatusBar. String
|
|
152
|
+
* ===Return value
|
|
153
|
+
* WX::Menu::Item
|
|
154
|
+
* === Exceptions
|
|
155
|
+
* [ArgumentError]
|
|
156
|
+
* * when id is not a StockID and text is nil or empty
|
|
157
|
+
*
|
|
158
|
+
*/
|
|
159
|
+
DLL_LOCAL VALUE _appendCheckItem(int argc,VALUE *argv,VALUE self)
|
|
160
|
+
{
|
|
161
|
+
return _append_base(argc,argv,self,wxITEM_CHECK);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/*
|
|
165
|
+
* call-seq:
|
|
166
|
+
* add_radio(id, text, [help]) -> WX::Menu::Item
|
|
167
|
+
* add_radio(id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
168
|
+
*
|
|
169
|
+
* adds a new radio menu item to the Menu widget.
|
|
170
|
+
* when block is given, bind the block to the event of the menu item.
|
|
171
|
+
* ===Arguments
|
|
172
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
173
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
174
|
+
* * help shown in WX::StatusBar. String
|
|
175
|
+
* ===Return value
|
|
176
|
+
* WX::Menu::Item
|
|
177
|
+
* === Exceptions
|
|
178
|
+
* [ArgumentError]
|
|
179
|
+
* * when id is not a StockID and text is nil or empty
|
|
180
|
+
*
|
|
181
|
+
*/
|
|
182
|
+
DLL_LOCAL VALUE _appendRadioItem(int argc,VALUE *argv,VALUE self)
|
|
183
|
+
{
|
|
184
|
+
return _append_base(argc,argv,self,wxITEM_RADIO);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/*
|
|
188
|
+
* call-seq:
|
|
189
|
+
* add_menu(text, [help]) {|menu| ... } -> WX::Menu::Item
|
|
190
|
+
* add_menu(menu, text, [help]) -> WX::Menu::Item
|
|
191
|
+
*
|
|
192
|
+
* adds a new sub menu item to the Menu widget.
|
|
193
|
+
* when block is given, it created a new menu and yields it into the block.
|
|
194
|
+
* ===Arguments
|
|
195
|
+
* * text is the Label of the menu item. String
|
|
196
|
+
* * help shown in WX::StatusBar. String
|
|
197
|
+
* ===Return value
|
|
198
|
+
* WX::Menu::Item
|
|
199
|
+
* === Exceptions
|
|
200
|
+
* [ArgumentError]
|
|
201
|
+
* * when either menu hasn't a title and text is empty
|
|
202
|
+
* [TypeError]
|
|
203
|
+
* * when menu is nil
|
|
204
|
+
*
|
|
205
|
+
*/
|
|
206
|
+
DLL_LOCAL VALUE _append_menu(int argc,VALUE *argv,VALUE self)
|
|
207
|
+
{
|
|
208
|
+
VALUE text,help,menu;
|
|
209
|
+
|
|
210
|
+
wxMenu *m = NULL;
|
|
211
|
+
if(rb_block_given_p()){
|
|
212
|
+
rb_scan_args(argc, argv, "11",&text,&help);
|
|
213
|
+
m = new wxMenu;
|
|
214
|
+
rb_yield(wrap(m));
|
|
215
|
+
}else{
|
|
216
|
+
rb_scan_args(argc, argv, "12",&menu,&text,&help);
|
|
217
|
+
|
|
218
|
+
if(!nil_check(menu,"menu"))
|
|
219
|
+
return Qnil;
|
|
220
|
+
|
|
221
|
+
m = unwrap<wxMenu*>(menu);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
wxString wtext(unwrap<wxString>(text));
|
|
225
|
+
|
|
226
|
+
if(check_menu_mitle(m,wtext))
|
|
227
|
+
return wrap(_self->AppendSubMenu(m,wtext,unwrap<wxString>(help)));
|
|
228
|
+
|
|
229
|
+
return Qnil;
|
|
230
|
+
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
DLL_LOCAL VALUE _appendShift(VALUE self,VALUE val)
|
|
234
|
+
{
|
|
235
|
+
if(rb_obj_is_kind_of(val,rb_cWXMenuItem)) {
|
|
236
|
+
_self->Append(unwrap<wxMenuItem*>(val));
|
|
237
|
+
} else {
|
|
238
|
+
wxWindowID id = unwrapID(val);
|
|
239
|
+
if(!wxIsStockID(id))
|
|
240
|
+
rb_raise(rb_eArgError,"id \"%"PRIsVALUE"\" cant be fast added", val);
|
|
241
|
+
_self->Append(id);
|
|
242
|
+
}
|
|
243
|
+
return self;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
DLL_LOCAL VALUE _insert_base(int argc,VALUE *argv,VALUE self,wxItemKind kind)
|
|
249
|
+
{
|
|
250
|
+
VALUE idx,id,text,help;
|
|
251
|
+
rb_scan_args(argc, argv, "22",&idx,&id,&text,&help);
|
|
252
|
+
|
|
253
|
+
wxWindowID wid(unwrapID(id));
|
|
254
|
+
|
|
255
|
+
if(check_title(wid,id,text))
|
|
256
|
+
{
|
|
257
|
+
int cidx = NUM2INT(idx);
|
|
258
|
+
if(check_index(cidx,_self->GetMenuItemCount()+1))
|
|
259
|
+
{
|
|
260
|
+
wxMenuItem *item = _self->Insert(cidx,wid,unwrap<wxString>(text),unwrap<wxString>(help),kind);
|
|
261
|
+
bind_callback(_self,item->GetId());
|
|
262
|
+
return wrap(item);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return Qnil;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
/*
|
|
270
|
+
* call-seq:
|
|
271
|
+
* insert_normal(pos, id, text, [help]) -> WX::Menu::Item
|
|
272
|
+
* insert_normal(pos, id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
273
|
+
*
|
|
274
|
+
* inserts a new normal menu item to the Menu widget to the given position.
|
|
275
|
+
* when block is given, bind the block to the event of the menu item.
|
|
276
|
+
* ===Arguments
|
|
277
|
+
* * pos where the item should be added.
|
|
278
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
279
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
280
|
+
* * help shown in WX::StatusBar. String
|
|
281
|
+
* ===Return value
|
|
282
|
+
* WX::Menu::Item
|
|
283
|
+
* === Exceptions
|
|
284
|
+
* [ArgumentError]
|
|
285
|
+
* * when id is not a StockID and text is nil or empty
|
|
286
|
+
* [IndexError]
|
|
287
|
+
* * pos is greater than the count of MenuItems
|
|
288
|
+
*
|
|
289
|
+
*/
|
|
290
|
+
DLL_LOCAL VALUE _insertNormalItem(int argc,VALUE *argv,VALUE self)
|
|
291
|
+
{
|
|
292
|
+
return _insert_base(argc,argv,self,wxITEM_NORMAL);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/*
|
|
296
|
+
* call-seq:
|
|
297
|
+
* insert_check(pos, id, text, [help]) -> WX::Menu::Item
|
|
298
|
+
* insert_check(pos, id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
299
|
+
*
|
|
300
|
+
* inserts a new check menu item to the Menu widget to the given position.
|
|
301
|
+
* when block is given, bind the block to the event of the menu item.
|
|
302
|
+
* ===Arguments
|
|
303
|
+
* * pos where the item should be added.
|
|
304
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
305
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
306
|
+
* * help shown in WX::StatusBar. String
|
|
307
|
+
* ===Return value
|
|
308
|
+
* WX::Menu::Item
|
|
309
|
+
* === Exceptions
|
|
310
|
+
* [ArgumentError]
|
|
311
|
+
* * when id is not a StockID and text is nil or empty
|
|
312
|
+
* [IndexError]
|
|
313
|
+
* * pos is greater than the count of MenuItems
|
|
314
|
+
*
|
|
315
|
+
*/
|
|
316
|
+
DLL_LOCAL VALUE _insertCheckItem(int argc,VALUE *argv,VALUE self)
|
|
317
|
+
{
|
|
318
|
+
return _insert_base(argc,argv,self,wxITEM_CHECK);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/*
|
|
322
|
+
* call-seq:
|
|
323
|
+
* insert_radio(pos, id, text, [help]) -> WX::Menu::Item
|
|
324
|
+
* insert_radio(pos, id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
325
|
+
*
|
|
326
|
+
* inserts a new radio menu item to the Menu widget to the given position.
|
|
327
|
+
* when block is given, bind the block to the event of the menu item.
|
|
328
|
+
* ===Arguments
|
|
329
|
+
* * pos where the item should be added.
|
|
330
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
331
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
332
|
+
* * help shown in WX::StatusBar. String
|
|
333
|
+
* ===Return value
|
|
334
|
+
* WX::Menu::Item
|
|
335
|
+
* === Exceptions
|
|
336
|
+
* [ArgumentError]
|
|
337
|
+
* * when id is not a StockID and text is nil or empty
|
|
338
|
+
* [IndexError]
|
|
339
|
+
* * pos is greater than the count of MenuItems
|
|
340
|
+
*
|
|
341
|
+
*/
|
|
342
|
+
DLL_LOCAL VALUE _insertRadioItem(int argc,VALUE *argv,VALUE self)
|
|
343
|
+
{
|
|
344
|
+
return _insert_base(argc,argv,self,wxITEM_RADIO);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/*
|
|
348
|
+
* call-seq:
|
|
349
|
+
* insert_menu(pos, text, [help]) {|menu| ... } -> WX::Menu::Item
|
|
350
|
+
* insert_menu(pos, menu, text, [help]) -> WX::Menu::Item
|
|
351
|
+
*
|
|
352
|
+
* insert a new sub menu item to the Menu widget into the given position.
|
|
353
|
+
* when block is given, it created a new menu and yields it into the block.
|
|
354
|
+
* ===Arguments
|
|
355
|
+
* * pos where the item should be added.
|
|
356
|
+
* * text is the Label of the menu item. String
|
|
357
|
+
* * help shown in WX::StatusBar. String
|
|
358
|
+
* ===Return value
|
|
359
|
+
* WX::Menu::Item
|
|
360
|
+
* === Exceptions
|
|
361
|
+
* [ArgumentError]
|
|
362
|
+
* * when either menu hasn't a title and text is empty
|
|
363
|
+
* [TypeError]
|
|
364
|
+
* * when menu is nil
|
|
365
|
+
* [IndexError]
|
|
366
|
+
* * pos is greater than the count of MenuItems
|
|
367
|
+
*
|
|
368
|
+
*/
|
|
369
|
+
DLL_LOCAL VALUE _insert_menu(int argc,VALUE *argv,VALUE self)
|
|
370
|
+
{
|
|
371
|
+
VALUE idx,text,help,menu;
|
|
372
|
+
|
|
373
|
+
wxMenu *m = NULL;
|
|
374
|
+
if(rb_block_given_p()){
|
|
375
|
+
rb_scan_args(argc, argv, "21",&idx,&text,&help);
|
|
376
|
+
m = new wxMenu;
|
|
377
|
+
rb_yield(wrap(m));
|
|
378
|
+
}else{
|
|
379
|
+
rb_scan_args(argc, argv, "22",&idx,&menu,&text,&help);
|
|
380
|
+
|
|
381
|
+
if(!nil_check(menu,"menu"))
|
|
382
|
+
return Qnil;
|
|
383
|
+
|
|
384
|
+
m = unwrap<wxMenu*>(menu);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
wxString wtext(unwrap<wxString>(text));
|
|
388
|
+
|
|
389
|
+
if(check_menu_mitle(m,wtext))
|
|
390
|
+
{
|
|
391
|
+
int cidx = NUM2INT(idx);
|
|
392
|
+
if(check_index(cidx,_self->GetMenuItemCount()+1))
|
|
393
|
+
{
|
|
394
|
+
return wrap(_self->Insert(cidx,wxID_ANY,wtext,m,unwrap<wxString>(help)));
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return Qnil;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
DLL_LOCAL VALUE _prepend_base(int argc,VALUE *argv,VALUE self,wxItemKind kind)
|
|
402
|
+
{
|
|
403
|
+
VALUE id,text,help;
|
|
404
|
+
rb_scan_args(argc, argv, "12",&id,&text,&help);
|
|
405
|
+
|
|
406
|
+
wxWindowID wid(unwrapID(id));
|
|
407
|
+
|
|
408
|
+
if(check_title(wid,id,text))
|
|
409
|
+
{
|
|
410
|
+
wxMenuItem *item = _self->Prepend(wid,unwrap<wxString>(text),unwrap<wxString>(help),kind);
|
|
411
|
+
bind_callback(_self,item->GetId());
|
|
412
|
+
return wrap(item);
|
|
413
|
+
}
|
|
414
|
+
return Qnil;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/*
|
|
418
|
+
* call-seq:
|
|
419
|
+
* prepend_normal(id, text, [help]) -> WX::Menu::Item
|
|
420
|
+
* prepend_normal(id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
421
|
+
*
|
|
422
|
+
* prepends a new normal menu item to the Menu widget.
|
|
423
|
+
* when block is given, bind the block to the event of the menu item.
|
|
424
|
+
* ===Arguments
|
|
425
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
426
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
427
|
+
* * help shown in WX::StatusBar. String
|
|
428
|
+
* ===Return value
|
|
429
|
+
* WX::Menu::Item
|
|
430
|
+
* === Exceptions
|
|
431
|
+
* [ArgumentError]
|
|
432
|
+
* * when id is not a StockID and text is nil or empty
|
|
433
|
+
*
|
|
434
|
+
*/
|
|
435
|
+
DLL_LOCAL VALUE _prependNormalItem(int argc,VALUE *argv,VALUE self)
|
|
436
|
+
{
|
|
437
|
+
return _prepend_base(argc,argv,self,wxITEM_NORMAL);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/*
|
|
441
|
+
* call-seq:
|
|
442
|
+
* prepend_check(id, text, [help]) -> WX::Menu::Item
|
|
443
|
+
* prepend_check(id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
444
|
+
*
|
|
445
|
+
* prepends a new check menu item to the Menu widget.
|
|
446
|
+
* when block is given, bind the block to the event of the menu item.
|
|
447
|
+
* ===Arguments
|
|
448
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
449
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
450
|
+
* * help shown in WX::StatusBar. String
|
|
451
|
+
* ===Return value
|
|
452
|
+
* WX::Menu::Item
|
|
453
|
+
* === Exceptions
|
|
454
|
+
* [ArgumentError]
|
|
455
|
+
* * when id is not a StockID and text is nil or empty
|
|
456
|
+
*
|
|
457
|
+
*/
|
|
458
|
+
DLL_LOCAL VALUE _prependCheckItem(int argc,VALUE *argv,VALUE self)
|
|
459
|
+
{
|
|
460
|
+
return _prepend_base(argc,argv,self,wxITEM_CHECK);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/*
|
|
464
|
+
* call-seq:
|
|
465
|
+
* prepend_radio(id, text, [help]) -> WX::Menu::Item
|
|
466
|
+
* prepend_radio(id, text, [help]) {|event| ... } -> WX::Menu::Item
|
|
467
|
+
*
|
|
468
|
+
* prepends a new radio menu item to the Menu widget.
|
|
469
|
+
* when block is given, bind the block to the event of the menu item.
|
|
470
|
+
* ===Arguments
|
|
471
|
+
* * id of the menu item: Symbol/Integer/nil
|
|
472
|
+
* * text is the Label of the menu item. String (can be nil if id is one of the pre defined)
|
|
473
|
+
* * help shown in WX::StatusBar. String
|
|
474
|
+
* ===Return value
|
|
475
|
+
* WX::Menu::Item
|
|
476
|
+
* === Exceptions
|
|
477
|
+
* [ArgumentError]
|
|
478
|
+
* * when id is not a StockID and text is nil or empty
|
|
479
|
+
*
|
|
480
|
+
*/
|
|
481
|
+
DLL_LOCAL VALUE _prependRadioItem(int argc,VALUE *argv,VALUE self)
|
|
482
|
+
{
|
|
483
|
+
return _prepend_base(argc,argv,self,wxITEM_RADIO);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/*
|
|
487
|
+
* call-seq:
|
|
488
|
+
* prepend_menu(text, [help]) {|menu| ... } -> WX::Menu::Item
|
|
489
|
+
* prepend_menu(menu, text, [help]) -> WX::Menu::Item
|
|
490
|
+
*
|
|
491
|
+
* prepends a new sub menu item to the Menu widget.
|
|
492
|
+
* when block is given, it created a new menu and yields it into the block.
|
|
493
|
+
* ===Arguments
|
|
494
|
+
* * text is the Label of the menu item. String
|
|
495
|
+
* * help shown in WX::StatusBar. String
|
|
496
|
+
* ===Return value
|
|
497
|
+
* WX::Menu::Item
|
|
498
|
+
* === Exceptions
|
|
499
|
+
* [ArgumentError]
|
|
500
|
+
* * when either menu hasn't a title and text is empty
|
|
501
|
+
* [TypeError]
|
|
502
|
+
* * when menu is nil
|
|
503
|
+
*
|
|
504
|
+
*/
|
|
505
|
+
DLL_LOCAL VALUE _prepend_menu(int argc,VALUE *argv,VALUE self)
|
|
506
|
+
{
|
|
507
|
+
VALUE text,help,menu;
|
|
508
|
+
|
|
509
|
+
wxMenu *m = NULL;
|
|
510
|
+
if(rb_block_given_p()){
|
|
511
|
+
rb_scan_args(argc, argv, "11",&text,&help);
|
|
512
|
+
m = new wxMenu;
|
|
513
|
+
rb_yield(wrap(m));
|
|
514
|
+
}else{
|
|
515
|
+
rb_scan_args(argc, argv, "12",&menu,&text,&help);
|
|
516
|
+
|
|
517
|
+
if(!nil_check(menu,"menu"))
|
|
518
|
+
return Qnil;
|
|
519
|
+
|
|
520
|
+
m = unwrap<wxMenu*>(menu);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
wxString wtext(unwrap<wxString>(text));
|
|
524
|
+
|
|
525
|
+
if(check_menu_mitle(m,wtext))
|
|
526
|
+
return wrap(_self->Prepend(wxID_ANY,wtext,m,unwrap<wxString>(help)));
|
|
527
|
+
|
|
528
|
+
return Qnil;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
#if wxUSE_XRC
|
|
533
|
+
DLL_LOCAL VALUE _load_xrc(VALUE self,VALUE name)
|
|
534
|
+
{
|
|
535
|
+
return wrap(wxXmlResource::Get()->LoadMenu(unwrap<wxString>(name)));
|
|
536
|
+
}
|
|
537
|
+
#endif
|
|
538
|
+
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
#endif
|
|
542
|
+
|
|
543
|
+
DLL_LOCAL void Init_WXMenu(VALUE rb_mWX)
|
|
544
|
+
{
|
|
545
|
+
#if 0
|
|
546
|
+
rb_mWXEvtHandler = rb_define_module_under(rb_mWX,"EvtHandler");
|
|
547
|
+
|
|
548
|
+
rb_define_attr(rb_cWXMenu,"title",1,1);
|
|
549
|
+
rb_define_attr(rb_cWXMenu,"parent",1,1);
|
|
550
|
+
|
|
551
|
+
#endif
|
|
552
|
+
|
|
553
|
+
#if wxUSE_MENUS
|
|
554
|
+
using namespace RubyWX::Menu;
|
|
555
|
+
rb_cWXMenu = rb_define_class_under(rb_mWX,"Menu",rb_cObject);
|
|
556
|
+
rb_define_alloc_func(rb_cWXMenu,_alloc);
|
|
557
|
+
|
|
558
|
+
rb_define_method(rb_cWXMenu,"initialize",RUBY_METHOD_FUNC(_initialize),1);
|
|
559
|
+
|
|
560
|
+
rb_include_module(rb_cWXMenu,rb_mWXEvtHandler);
|
|
561
|
+
rb_include_module(rb_cWXMenu,rb_mEnumerable);
|
|
562
|
+
|
|
563
|
+
rb_define_attr_method(rb_cWXMenu,"title",_getTitle,_setTitle);
|
|
564
|
+
rb_define_attr_method(rb_cWXMenu,"parent",_getParent,_setParent);
|
|
565
|
+
|
|
566
|
+
rb_define_method(rb_cWXMenu,"each",RUBY_METHOD_FUNC(_each),0);
|
|
567
|
+
|
|
568
|
+
rb_define_method(rb_cWXMenu,"append_normal",RUBY_METHOD_FUNC(_appendNormalItem),-1);
|
|
569
|
+
rb_define_method(rb_cWXMenu,"append_check",RUBY_METHOD_FUNC(_appendCheckItem),-1);
|
|
570
|
+
rb_define_method(rb_cWXMenu,"append_radio",RUBY_METHOD_FUNC(_appendRadioItem),-1);
|
|
571
|
+
rb_define_method(rb_cWXMenu,"append_menu",RUBY_METHOD_FUNC(_append_menu),-1);
|
|
572
|
+
|
|
573
|
+
rb_define_method(rb_cWXMenu,"append_separator",RUBY_METHOD_FUNC(_AppendSeparator),0);
|
|
574
|
+
|
|
575
|
+
rb_define_method(rb_cWXMenu,"insert_normal",RUBY_METHOD_FUNC(_insertNormalItem),-1);
|
|
576
|
+
rb_define_method(rb_cWXMenu,"insert_check",RUBY_METHOD_FUNC(_insertCheckItem),-1);
|
|
577
|
+
rb_define_method(rb_cWXMenu,"insert_radio",RUBY_METHOD_FUNC(_insertRadioItem),-1);
|
|
578
|
+
rb_define_method(rb_cWXMenu,"insert_menu",RUBY_METHOD_FUNC(_insert_menu),-1);
|
|
579
|
+
|
|
580
|
+
rb_define_method(rb_cWXMenu,"prepend_normal",RUBY_METHOD_FUNC(_prependNormalItem),-1);
|
|
581
|
+
rb_define_method(rb_cWXMenu,"prepend_check",RUBY_METHOD_FUNC(_prependCheckItem),-1);
|
|
582
|
+
rb_define_method(rb_cWXMenu,"prepend_radio",RUBY_METHOD_FUNC(_prependRadioItem),-1);
|
|
583
|
+
rb_define_method(rb_cWXMenu,"prepend_menu",RUBY_METHOD_FUNC(_prepend_menu),-1);
|
|
584
|
+
|
|
585
|
+
rb_define_method(rb_cWXMenu,"prepend_separator",RUBY_METHOD_FUNC(_PrependSeparator),0);
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
rb_define_method(rb_cWXMenu,"<<",RUBY_METHOD_FUNC(_appendShift),1);
|
|
589
|
+
|
|
590
|
+
rb_define_method(rb_cWXMenu,"menubar",RUBY_METHOD_FUNC(_GetMenuBar),0);
|
|
591
|
+
|
|
592
|
+
#if wxUSE_XRC
|
|
593
|
+
rb_define_singleton_method(rb_cWXMenu,"load_xrc",RUBY_METHOD_FUNC(_load_xrc),1);
|
|
594
|
+
#endif
|
|
595
|
+
|
|
596
|
+
registerEventType<wxCommandEvent>("menu",wxEVT_MENU);
|
|
597
|
+
|
|
598
|
+
registerInfo<wxMenu>(rb_cWXMenu);
|
|
599
|
+
#endif
|
|
600
|
+
}
|