wxruby-ruby19 1.9.8-x86-linux → 1.9.10-x86-linux
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.
- data/LICENSE +53 -0
 - data/README +297 -0
 - data/lib/wx/accessors.rb +58 -0
 - data/lib/wx/classes/acceleratortable.rb +28 -0
 - data/lib/wx/classes/animation.rb +18 -0
 - data/lib/wx/classes/app.rb +51 -0
 - data/lib/wx/classes/artprovider.rb +31 -0
 - data/lib/wx/classes/auinotebook.rb +9 -0
 - data/lib/wx/classes/bitmap.rb +56 -0
 - data/lib/wx/classes/busycursor.rb +12 -0
 - data/lib/wx/classes/checklistbox.rb +45 -0
 - data/lib/wx/classes/choice.rb +4 -0
 - data/lib/wx/classes/clientdc.rb +13 -0
 - data/lib/wx/classes/clipboard.rb +32 -0
 - data/lib/wx/classes/colour.rb +49 -0
 - data/lib/wx/classes/combobox.rb +4 -0
 - data/lib/wx/classes/commandevent.rb +7 -0
 - data/lib/wx/classes/controlwithitems.rb +10 -0
 - data/lib/wx/classes/data_object.rb +14 -0
 - data/lib/wx/classes/data_object_simple.rb +6 -0
 - data/lib/wx/classes/dataformat.rb +23 -0
 - data/lib/wx/classes/dc.rb +57 -0
 - data/lib/wx/classes/event.rb +5 -0
 - data/lib/wx/classes/evthandler.rb +1039 -0
 - data/lib/wx/classes/font.rb +118 -0
 - data/lib/wx/classes/functions.rb +44 -0
 - data/lib/wx/classes/gauge.rb +12 -0
 - data/lib/wx/classes/genericdirctrl.rb +36 -0
 - data/lib/wx/classes/grid.rb +146 -0
 - data/lib/wx/classes/hboxsizer.rb +6 -0
 - data/lib/wx/classes/helpcontroller.rb +5 -0
 - data/lib/wx/classes/helpcontrollerhelpprovider.rb +23 -0
 - data/lib/wx/classes/helpprovider.rb +15 -0
 - data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
 - data/lib/wx/classes/htmlwindow.rb +14 -0
 - data/lib/wx/classes/icon.rb +32 -0
 - data/lib/wx/classes/iconbundle.rb +3 -0
 - data/lib/wx/classes/image.rb +43 -0
 - data/lib/wx/classes/imagelist.rb +3 -0
 - data/lib/wx/classes/listbox.rb +4 -0
 - data/lib/wx/classes/listctrl.rb +33 -0
 - data/lib/wx/classes/locale.rb +28 -0
 - data/lib/wx/classes/mediactrl.rb +48 -0
 - data/lib/wx/classes/menu.rb +62 -0
 - data/lib/wx/classes/menuitem.rb +7 -0
 - data/lib/wx/classes/notebook.rb +9 -0
 - data/lib/wx/classes/object.rb +14 -0
 - data/lib/wx/classes/paintdc.rb +12 -0
 - data/lib/wx/classes/point.rb +56 -0
 - data/lib/wx/classes/previewframe.rb +13 -0
 - data/lib/wx/classes/rect.rb +19 -0
 - data/lib/wx/classes/richtextctrl.rb +63 -0
 - data/lib/wx/classes/simplehelpprovider.rb +38 -0
 - data/lib/wx/classes/size.rb +58 -0
 - data/lib/wx/classes/sizer.rb +37 -0
 - data/lib/wx/classes/sound.rb +23 -0
 - data/lib/wx/classes/standardpaths.rb +9 -0
 - data/lib/wx/classes/styledtextctrl.rb +92 -0
 - data/lib/wx/classes/textctrl.rb +14 -0
 - data/lib/wx/classes/texturlevent.rb +18 -0
 - data/lib/wx/classes/timer.rb +94 -0
 - data/lib/wx/classes/toolbar.rb +27 -0
 - data/lib/wx/classes/toolbartool.rb +4 -0
 - data/lib/wx/classes/treectrl.rb +44 -0
 - data/lib/wx/classes/vboxsizer.rb +6 -0
 - data/lib/wx/classes/window.rb +89 -0
 - data/lib/wx/classes/xmlresource.rb +54 -0
 - data/lib/wx/helpers.rb +45 -0
 - data/lib/wx/keyword_ctors.rb +204 -0
 - data/lib/wx/keyword_defs.rb +558 -0
 - data/lib/wx/version.rb +3 -0
 - data/lib/wx.rb +53 -0
 - data/lib/wxruby2.so +0 -0
 - data/samples/SAMPLES-LICENSE.TXT +18 -0
 - data/samples/aui/aui.rb +1356 -0
 - data/samples/bigdemo/About.rbw +39 -0
 - data/samples/bigdemo/ColorPanel.rbw +23 -0
 - data/samples/bigdemo/GridSimple.rbw +78 -0
 - data/samples/bigdemo/MDIDemo.rbw +57 -0
 - data/samples/bigdemo/PopupMenu.rbw +149 -0
 - data/samples/bigdemo/ShapedWindow.rbw +131 -0
 - data/samples/bigdemo/Sizers.rbw +543 -0
 - data/samples/bigdemo/bigdemo.rb +823 -0
 - data/samples/bigdemo/demoTemplate.rbw +33 -0
 - 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/choice.xpm +27 -0
 - data/samples/bigdemo/icons/combo.bmp +0 -0
 - data/samples/bigdemo/icons/combo.xpm +27 -0
 - data/samples/bigdemo/icons/copy.xpm +25 -0
 - data/samples/bigdemo/icons/cut.xpm +24 -0
 - data/samples/bigdemo/icons/gauge.bmp +0 -0
 - data/samples/bigdemo/icons/gauge.xpm +27 -0
 - data/samples/bigdemo/icons/help.xpm +25 -0
 - data/samples/bigdemo/icons/list.bmp +0 -0
 - data/samples/bigdemo/icons/list.xpm +27 -0
 - data/samples/bigdemo/icons/mondrian.ico +0 -0
 - data/samples/bigdemo/icons/mondrian.xpm +44 -0
 - data/samples/bigdemo/icons/new.xpm +24 -0
 - data/samples/bigdemo/icons/ogl.ico +0 -0
 - data/samples/bigdemo/icons/ogl.xpm +45 -0
 - data/samples/bigdemo/icons/open.xpm +26 -0
 - data/samples/bigdemo/icons/paste.bmp +0 -0
 - data/samples/bigdemo/icons/paste.xpm +38 -0
 - data/samples/bigdemo/icons/pointy.png +0 -0
 - data/samples/bigdemo/icons/preview.xpm +26 -0
 - data/samples/bigdemo/icons/print.xpm +26 -0
 - data/samples/bigdemo/icons/radio.bmp +0 -0
 - data/samples/bigdemo/icons/radio.xpm +27 -0
 - data/samples/bigdemo/icons/robert.xpm +415 -0
 - data/samples/bigdemo/icons/ruby.png +0 -0
 - data/samples/bigdemo/icons/sashtest.ico +0 -0
 - data/samples/bigdemo/icons/save.xpm +25 -0
 - data/samples/bigdemo/icons/smiles.bmp +0 -0
 - data/samples/bigdemo/icons/smiles.xpm +39 -0
 - data/samples/bigdemo/icons/smiley.ico +0 -0
 - data/samples/bigdemo/icons/smiley.xpm +42 -0
 - data/samples/bigdemo/icons/stattext.xpm +24 -0
 - data/samples/bigdemo/icons/test2.bmp +0 -0
 - data/samples/bigdemo/icons/test2.png +0 -0
 - data/samples/bigdemo/icons/test2.xpm +79 -0
 - data/samples/bigdemo/icons/text.bmp +0 -0
 - data/samples/bigdemo/icons/text.xpm +27 -0
 - data/samples/bigdemo/icons/tog1.bmp +0 -0
 - data/samples/bigdemo/icons/tog1.xpm +38 -0
 - data/samples/bigdemo/icons/tog2.bmp +0 -0
 - data/samples/bigdemo/icons/tog2.xpm +38 -0
 - data/samples/bigdemo/icons/wxwin.ico +0 -0
 - data/samples/bigdemo/icons/wxwin16x16.png +0 -0
 - data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
 - data/samples/bigdemo/icons/wxwin32x32.png +0 -0
 - data/samples/bigdemo/icons/wxwin48x48.png +0 -0
 - data/samples/bigdemo/run.rb +90 -0
 - data/samples/bigdemo/tips.txt +7 -0
 - data/samples/bigdemo/utils.rb +12 -0
 - data/samples/bigdemo/wxArtProvider.rbw +281 -0
 - data/samples/bigdemo/wxBitmapButton.rbw +65 -0
 - data/samples/bigdemo/wxButton.rbw +64 -0
 - data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
 - data/samples/bigdemo/wxCheckBox.rbw +50 -0
 - data/samples/bigdemo/wxCheckListBox.rbw +65 -0
 - data/samples/bigdemo/wxChoice.rbw +47 -0
 - data/samples/bigdemo/wxChoicebook.rbw +78 -0
 - data/samples/bigdemo/wxColourDialog.rbw +31 -0
 - data/samples/bigdemo/wxComboBox.rbw +77 -0
 - data/samples/bigdemo/wxCursor.rbw +136 -0
 - data/samples/bigdemo/wxDialog.rbw +74 -0
 - data/samples/bigdemo/wxDirDialog.rbw +29 -0
 - data/samples/bigdemo/wxDragImage.rbw +70 -0
 - data/samples/bigdemo/wxFileDialog.rbw +37 -0
 - data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
 - data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
 - data/samples/bigdemo/wxFontDialog.rbw +173 -0
 - data/samples/bigdemo/wxFrame.rbw +53 -0
 - data/samples/bigdemo/wxGauge.rbw +71 -0
 - data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
 - data/samples/bigdemo/wxGrid.rbw +66 -0
 - data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
 - data/samples/bigdemo/wxListBox.rbw +140 -0
 - data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
 - data/samples/bigdemo/wxMDIWindows.rbw +50 -0
 - data/samples/bigdemo/wxMenu.rbw +236 -0
 - data/samples/bigdemo/wxMessageDialog.rbw +27 -0
 - data/samples/bigdemo/wxMiniFrame.rbw +70 -0
 - data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
 - data/samples/bigdemo/wxNotebook.rbw +136 -0
 - data/samples/bigdemo/wxProgressDialog.rbw +43 -0
 - data/samples/bigdemo/wxRadioBox.rbw +72 -0
 - data/samples/bigdemo/wxRadioButton.rbw +125 -0
 - data/samples/bigdemo/wxSashWindow.rbw +141 -0
 - data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
 - data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
 - data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
 - data/samples/bigdemo/wxSlider.rbw +42 -0
 - data/samples/bigdemo/wxSpinButton.rbw +50 -0
 - data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
 - data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
 - data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
 - data/samples/bigdemo/wxStaticText.rbw +55 -0
 - data/samples/bigdemo/wxStatusBar.rbw +126 -0
 - data/samples/bigdemo/wxTextCtrl.rbw +149 -0
 - data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
 - data/samples/bigdemo/wxToggleButton.rbw +49 -0
 - data/samples/bigdemo/wxToolBar.rbw +131 -0
 - data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
 - data/samples/calendar/calendar.rb +256 -0
 - data/samples/caret/caret.rb +282 -0
 - data/samples/caret/mondrian.xpm +44 -0
 - data/samples/controls/controls.rb +1136 -0
 - data/samples/controls/get_item_sample.rb +87 -0
 - data/samples/controls/icons/choice.xpm +27 -0
 - data/samples/controls/icons/combo.xpm +27 -0
 - data/samples/controls/icons/gauge.xpm +27 -0
 - data/samples/controls/icons/list.xpm +27 -0
 - data/samples/controls/icons/radio.xpm +27 -0
 - data/samples/controls/icons/stattext.xpm +24 -0
 - data/samples/controls/icons/text.xpm +27 -0
 - data/samples/controls/mondrian.ico +0 -0
 - data/samples/controls/mondrian.xpm +44 -0
 - data/samples/controls/test2.bmp +0 -0
 - data/samples/dialogs/dialogs.rb +797 -0
 - data/samples/dialogs/tips.txt +18 -0
 - data/samples/dragdrop/dragdrop.rb +177 -0
 - data/samples/drawing/graphics_drawing.rb +235 -0
 - data/samples/drawing/images.rb +37 -0
 - data/samples/drawing/paperclip.png +0 -0
 - data/samples/etc/activation.rb +102 -0
 - data/samples/etc/choice.rb +67 -0
 - data/samples/etc/miniframe.rb +79 -0
 - data/samples/etc/sash.rb +130 -0
 - data/samples/etc/scrollwin.rb +110 -0
 - data/samples/etc/system_settings.rb +252 -0
 - data/samples/etc/threaded.rb +72 -0
 - data/samples/etc/toolbar_sizer_additem.rb +55 -0
 - data/samples/etc/wizard.rb +74 -0
 - data/samples/event/event.rb +182 -0
 - data/samples/event/update_ui_event.rb +70 -0
 - data/samples/grid/grid.rb +198 -0
 - data/samples/grid/gridtablebase.rb +148 -0
 - data/samples/html/html.rb +262 -0
 - data/samples/listbook/listbook.rb +174 -0
 - data/samples/listbook/listbook.xrc +370 -0
 - data/samples/mdi/mdi.rb +85 -0
 - data/samples/media/mediactrl.rb +167 -0
 - data/samples/minimal/minimal.rb +77 -0
 - data/samples/minimal/mondrian.ico +0 -0
 - data/samples/minimal/mondrian.png +0 -0
 - data/samples/minimal/nothing.rb +16 -0
 - data/samples/opengl/cube.rb +117 -0
 - data/samples/printing/mondrian.ico +0 -0
 - data/samples/printing/mondrian.xpm +44 -0
 - data/samples/printing/printing.rb +487 -0
 - data/samples/sockets/SocketPackets.rb +27 -0
 - data/samples/sockets/res/message-new.png +0 -0
 - data/samples/sockets/res/user.png +0 -0
 - data/samples/sockets/wxClient.rb +395 -0
 - data/samples/sockets/wxServer.rb +422 -0
 - data/samples/sockets/wxSocketGUI.rb +97 -0
 - data/samples/text/format-text-bold.png +0 -0
 - data/samples/text/format-text-italic.png +0 -0
 - data/samples/text/format-text-underline.png +0 -0
 - data/samples/text/mondrian.ico +0 -0
 - data/samples/text/mondrian.xpm +44 -0
 - data/samples/text/rich_textctrl.rb +98 -0
 - data/samples/text/scintilla.rb +169 -0
 - data/samples/text/textctrl.rb +111 -0
 - data/samples/text/unicode.rb +242 -0
 - data/samples/text/utf8.txt +15 -0
 - data/samples/treectrl/icon1.xpm +79 -0
 - data/samples/treectrl/icon2.xpm +53 -0
 - data/samples/treectrl/icon3.xpm +79 -0
 - data/samples/treectrl/icon4.xpm +43 -0
 - data/samples/treectrl/icon5.xpm +79 -0
 - data/samples/treectrl/treectrl.rb +1166 -0
 - data/samples/xrc/samples.xrc +46 -0
 - data/samples/xrc/xrc_sample.rb +76 -0
 - metadata +234 -220
 
| 
         @@ -0,0 +1,112 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            # A virtual ListCtrl loads its items as needed from a virtual store. So
         
     | 
| 
      
 12 
     | 
    
         
            +
            # it's useful for linking to existing data sources, or for displaying
         
     | 
| 
      
 13 
     | 
    
         
            +
            # very large lists. It's subclassed in ruby, and the item_count is set;
         
     | 
| 
      
 14 
     | 
    
         
            +
            # the get_item_text methods should return how to display a given line.
         
     | 
| 
      
 15 
     | 
    
         
            +
            class TestVirtualList < Wx::ListCtrl
         
     | 
| 
      
 16 
     | 
    
         
            +
                def initialize(parent, log)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  super parent, :style => Wx::LC_REPORT|Wx::LC_VIRTUAL|
         
     | 
| 
      
 18 
     | 
    
         
            +
                                          Wx::LC_HRULES| Wx::LC_VRULES
         
     | 
| 
      
 19 
     | 
    
         
            +
                    @log = log
         
     | 
| 
      
 20 
     | 
    
         
            +
                    
         
     | 
| 
      
 21 
     | 
    
         
            +
                    @il = Wx::ImageList.new(16,16)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    bmp_file = File.join(File.dirname(__FILE__), "icons/wxwin16x16.xpm")
         
     | 
| 
      
 23 
     | 
    
         
            +
                    
         
     | 
| 
      
 24 
     | 
    
         
            +
                    @idx1 = @il.add(Wx::Bitmap.new(bmp_file))
         
     | 
| 
      
 25 
     | 
    
         
            +
                    set_image_list(@il, Wx::IMAGE_LIST_SMALL)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    
         
     | 
| 
      
 27 
     | 
    
         
            +
                    insert_column(0,"First")
         
     | 
| 
      
 28 
     | 
    
         
            +
                    insert_column(1,"Second")
         
     | 
| 
      
 29 
     | 
    
         
            +
                    insert_column(2,"Third")
         
     | 
| 
      
 30 
     | 
    
         
            +
                    set_column_width(0,175)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    set_column_width(1,175)
         
     | 
| 
      
 32 
     | 
    
         
            +
                    set_column_width(2,175)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    
         
     | 
| 
      
 34 
     | 
    
         
            +
                    # Important - call this 
         
     | 
| 
      
 35 
     | 
    
         
            +
                    self.item_count = 10_000
         
     | 
| 
      
 36 
     | 
    
         
            +
                    
         
     | 
| 
      
 37 
     | 
    
         
            +
                    @attr1 = Wx::ListItemAttr.new()
         
     | 
| 
      
 38 
     | 
    
         
            +
                    @attr1.set_background_colour(Wx::Colour.new("YELLOW"))
         
     | 
| 
      
 39 
     | 
    
         
            +
                    
         
     | 
| 
      
 40 
     | 
    
         
            +
                    @attr2 = Wx::ListItemAttr.new()
         
     | 
| 
      
 41 
     | 
    
         
            +
                    @attr2.set_background_colour(Wx::Colour.new("LIGHT BLUE"))
         
     | 
| 
      
 42 
     | 
    
         
            +
                    
         
     | 
| 
      
 43 
     | 
    
         
            +
                    evt_list_item_selected(get_id()) {|event| on_item_selected(event)}
         
     | 
| 
      
 44 
     | 
    
         
            +
                    evt_list_item_activated(get_id()) {|event| on_item_activated(event)}
         
     | 
| 
      
 45 
     | 
    
         
            +
                    evt_list_item_deselected(get_id()) {|event| on_item_deselected(event)}
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
                
         
     | 
| 
      
 48 
     | 
    
         
            +
                def on_item_selected(event)
         
     | 
| 
      
 49 
     | 
    
         
            +
                    @currentItem = event.get_index()
         
     | 
| 
      
 50 
     | 
    
         
            +
                    @item = event.get_item()
         
     | 
| 
      
 51 
     | 
    
         
            +
                    get_column(1,@item)
         
     | 
| 
      
 52 
     | 
    
         
            +
                    
         
     | 
| 
      
 53 
     | 
    
         
            +
                    @log.write_text('on_item_selected: "%s", "%s", "%s", "%s"' % [@currentItem, get_item_text(@currentItem), 
         
     | 
| 
      
 54 
     | 
    
         
            +
                                        @item.get_text(), get_column(2,@item) ? @item.get_text() : nil])
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
                
         
     | 
| 
      
 57 
     | 
    
         
            +
                def on_item_activated(event)
         
     | 
| 
      
 58 
     | 
    
         
            +
                    @currentItem = event.get_index()
         
     | 
| 
      
 59 
     | 
    
         
            +
                    @log.write_text("on_item_activated: %s\nTopItem: %s" % [get_item_text(@currentItem), get_top_item()])
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
                
         
     | 
| 
      
 62 
     | 
    
         
            +
                def on_item_deselected(event)
         
     | 
| 
      
 63 
     | 
    
         
            +
                    @log.write_text("on_item_deselected: %s" % event.get_index())
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
                
         
     | 
| 
      
 66 
     | 
    
         
            +
                # These three following methods are callbacks for implementing the
         
     | 
| 
      
 67 
     | 
    
         
            +
                # "virtualness" of the list; they *must* be defined by any ListCtrl
         
     | 
| 
      
 68 
     | 
    
         
            +
                # object with the style LC_VIRTUAL.
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                # Normally you would determine the text, attributes and/or image
         
     | 
| 
      
 71 
     | 
    
         
            +
                # based on values from some external data source, but for this demo
         
     | 
| 
      
 72 
     | 
    
         
            +
                # we'll just calculate them based on order. 
         
     | 
| 
      
 73 
     | 
    
         
            +
                def on_get_item_text(item, col)
         
     | 
| 
      
 74 
     | 
    
         
            +
                  return "Item %d, column %d" % [item,col]
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
                
         
     | 
| 
      
 77 
     | 
    
         
            +
                def on_get_item_column_image(item, col)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  if item % 4 == 0
         
     | 
| 
      
 79 
     | 
    
         
            +
                    return @idx1
         
     | 
| 
      
 80 
     | 
    
         
            +
                  else
         
     | 
| 
      
 81 
     | 
    
         
            +
                    return -1
         
     | 
| 
      
 82 
     | 
    
         
            +
                  end
         
     | 
| 
      
 83 
     | 
    
         
            +
                end
         
     | 
| 
      
 84 
     | 
    
         
            +
                
         
     | 
| 
      
 85 
     | 
    
         
            +
                def on_get_item_attr(item)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  if item % 3 == 1
         
     | 
| 
      
 87 
     | 
    
         
            +
                    return @attr1
         
     | 
| 
      
 88 
     | 
    
         
            +
                  elsif item % 3 == 2
         
     | 
| 
      
 89 
     | 
    
         
            +
                    return @attr2
         
     | 
| 
      
 90 
     | 
    
         
            +
                  else 
         
     | 
| 
      
 91 
     | 
    
         
            +
                    return nil
         
     | 
| 
      
 92 
     | 
    
         
            +
                  end
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
      
 94 
     | 
    
         
            +
            end
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 97 
     | 
    
         
            +
                def Demo.run(frame, nb, log)
         
     | 
| 
      
 98 
     | 
    
         
            +
                    win = TestVirtualList.new(nb,log)
         
     | 
| 
      
 99 
     | 
    
         
            +
                    return win
         
     | 
| 
      
 100 
     | 
    
         
            +
                end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                def Demo.overview
         
     | 
| 
      
 103 
     | 
    
         
            +
                    return "A special case of report view quite different from the other modes of the list control is a virtual control in which the items data (including text, images and attributes) is managed by the main program and is requested by the control itself only when needed which allows to have controls with millions of items without consuming much memory. To use virtual list control you must use SetItemCount first and overload at least OnGetItemText (and optionally OnGetItemImage and OnGetItemAttr) to return the information about the items when the control requests it."
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
            end
         
     | 
| 
      
 106 
     | 
    
         
            +
                
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 109 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 110 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 111 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 112 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            class TestPanel < Wx::Panel
         
     | 
| 
      
 13 
     | 
    
         
            +
                def initialize(parent, log)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @log = log
         
     | 
| 
      
 15 
     | 
    
         
            +
                    super(parent, -1)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    
         
     | 
| 
      
 17 
     | 
    
         
            +
                    b1 = Wx::Button.new(self, -1, "MDI demo")
         
     | 
| 
      
 18 
     | 
    
         
            +
                    evt_button(b1.get_id()) {|event| show_mdi_demo(event)}
         
     | 
| 
      
 19 
     | 
    
         
            +
                    
         
     | 
| 
      
 20 
     | 
    
         
            +
                    box = Wx::BoxSizer.new(Wx::VERTICAL)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    box.add(20,30)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    box.add(b1, 0, Wx::ALIGN_CENTER | Wx::ALL, 15)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    set_sizer(box)
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                
         
     | 
| 
      
 26 
     | 
    
         
            +
                def show_mdi_demo(event)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    mdi_demo_file = File.join( File.dirname(__FILE__), "MDIDemo.rbw")
         
     | 
| 
      
 28 
     | 
    
         
            +
                    load mdi_demo_file
         
     | 
| 
      
 29 
     | 
    
         
            +
                    frame = Demo::MyParentFrame.new()
         
     | 
| 
      
 30 
     | 
    
         
            +
                    frame.show()
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 35 
     | 
    
         
            +
                def Demo.run(frame,nb,log)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    win = TestPanel.new(nb, log)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    return win
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
                
         
     | 
| 
      
 40 
     | 
    
         
            +
                def Demo.overview
         
     | 
| 
      
 41 
     | 
    
         
            +
                    "An MDI (Multiple Document Interface) parent frame is a window which can contain MDI child frames in its own 'desktop'. It is a convenient way to avoid window clutter, and is used in many popular Windows applications, such as Microsoft Word(TM)."
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 47 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 48 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 49 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,236 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            class MyFrame < Wx::Frame
         
     | 
| 
      
 13 
     | 
    
         
            +
                def initialize(parent, id, log)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    super(parent, id, "Playing with menus", Wx::DEFAULT_POSITION, Wx::Size.new(400,200))
         
     | 
| 
      
 15 
     | 
    
         
            +
                    @log = log
         
     | 
| 
      
 16 
     | 
    
         
            +
                    center_on_screen(Wx::BOTH)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    
         
     | 
| 
      
 18 
     | 
    
         
            +
                    create_status_bar()
         
     | 
| 
      
 19 
     | 
    
         
            +
                    set_status_text("This is the statusbar")
         
     | 
| 
      
 20 
     | 
    
         
            +
                    
         
     | 
| 
      
 21 
     | 
    
         
            +
                    text = "A bunch of bogus menus have been created for this frame.  You can play around with them to see how they behave and then check the source for this sample to see how to implement them."
         
     | 
| 
      
 22 
     | 
    
         
            +
                    tc = Wx::TextCtrl.new(self, -1, text, Wx::DEFAULT_POSITION, 
         
     | 
| 
      
 23 
     | 
    
         
            +
                                            Wx::DEFAULT_SIZE, Wx::TE_READONLY | Wx::TE_MULTILINE)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    
         
     | 
| 
      
 25 
     | 
    
         
            +
                    # Prepare the menu bar
         
     | 
| 
      
 26 
     | 
    
         
            +
                    menuBar = Wx::MenuBar.new()
         
     | 
| 
      
 27 
     | 
    
         
            +
                    
         
     | 
| 
      
 28 
     | 
    
         
            +
                    # 1st menu from the left
         
     | 
| 
      
 29 
     | 
    
         
            +
                    menu1 = Wx::Menu.new()
         
     | 
| 
      
 30 
     | 
    
         
            +
                    menu1.append(101, "&Mercury", "This the text in the Statusbar")
         
     | 
| 
      
 31 
     | 
    
         
            +
                    menu1.append(102, "&Venus", "")
         
     | 
| 
      
 32 
     | 
    
         
            +
                    menu1.append(103, "&Earth", "You may select Earth too")
         
     | 
| 
      
 33 
     | 
    
         
            +
                    menu1.append_separator()
         
     | 
| 
      
 34 
     | 
    
         
            +
                    menu1.append(104, "&Close", "Close this frame")
         
     | 
| 
      
 35 
     | 
    
         
            +
                    # Add menu to the menu bar
         
     | 
| 
      
 36 
     | 
    
         
            +
                    menuBar.append(menu1, "&Planets")
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    # 2nd menu from left
         
     | 
| 
      
 39 
     | 
    
         
            +
                    menu2 = Wx::Menu.new()
         
     | 
| 
      
 40 
     | 
    
         
            +
                    menu2.append(201, "Hydrogen")
         
     | 
| 
      
 41 
     | 
    
         
            +
                    menu2.append(202, "Helium")
         
     | 
| 
      
 42 
     | 
    
         
            +
                    # a submenu in the 2nd menu
         
     | 
| 
      
 43 
     | 
    
         
            +
                    submenu = Wx::Menu.new()
         
     | 
| 
      
 44 
     | 
    
         
            +
                    submenu.append(2031,"Lanthanium")
         
     | 
| 
      
 45 
     | 
    
         
            +
                    submenu.append(2032,"Cerium")
         
     | 
| 
      
 46 
     | 
    
         
            +
                    submenu.append(2033,"Praseodymium")
         
     | 
| 
      
 47 
     | 
    
         
            +
                    item = Wx::MenuItem.new(menu2, 203, "Lanthanides", "", Wx::ITEM_NORMAL, submenu) 
         
     | 
| 
      
 48 
     | 
    
         
            +
                    menu2.append_item(item)
         
     | 
| 
      
 49 
     | 
    
         
            +
                    # append 2nd menu
         
     | 
| 
      
 50 
     | 
    
         
            +
                    menuBar.append(menu2, "&Elements")
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                    menu3 = Wx::Menu.new()
         
     | 
| 
      
 53 
     | 
    
         
            +
                    menu3.append_item(Wx::MenuItem.new(menu3, 301, "IRB", "a Python shell using tcl/tk as GUI", Wx::ITEM_RADIO))
         
     | 
| 
      
 54 
     | 
    
         
            +
                    menu3.append_item(Wx::MenuItem.new(menu3, 302, "PyCrust", "a Python shell using wxPython as GUI", Wx::ITEM_RADIO))
         
     | 
| 
      
 55 
     | 
    
         
            +
                    menu3.append_item(Wx::MenuItem.new(menu3, 303, "psi", "a simple Python shell using wxPython as GUI", Wx::ITEM_RADIO))
         
     | 
| 
      
 56 
     | 
    
         
            +
                    menu3.append_separator()
         
     | 
| 
      
 57 
     | 
    
         
            +
                    menu3.append_item(Wx::MenuItem.new(menu3, 304, "project1", "", Wx::ITEM_NORMAL))
         
     | 
| 
      
 58 
     | 
    
         
            +
                    menu3.append_item(Wx::MenuItem.new(menu3, 305, "project2", "", Wx::ITEM_NORMAL))
         
     | 
| 
      
 59 
     | 
    
         
            +
                    menuBar.append(menu3, "&Shells")
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                    menu4 = Wx::Menu.new()
         
     | 
| 
      
 62 
     | 
    
         
            +
                    menu4.append_item(Wx::MenuItem.new(menu4, 401, "letters", "abcde...", Wx::ITEM_CHECK))
         
     | 
| 
      
 63 
     | 
    
         
            +
                    menu4.append_item(Wx::MenuItem.new(menu4, 402, "digits", "123...", Wx::ITEM_CHECK))
         
     | 
| 
      
 64 
     | 
    
         
            +
                    menu4.append_item(Wx::MenuItem.new(menu4, 403, "letters and digits", "abcd... + 123...", Wx::ITEM_CHECK))
         
     | 
| 
      
 65 
     | 
    
         
            +
                    menuBar.append(menu4, "Chec&k")
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                    menu5 = Wx::Menu.new()
         
     | 
| 
      
 68 
     | 
    
         
            +
                    # Show how to put an icon in the menu
         
     | 
| 
      
 69 
     | 
    
         
            +
                    item = Wx::MenuItem.new(menu5, 500, "&Smile!\tCtrl+S", 
         
     | 
| 
      
 70 
     | 
    
         
            +
                                            "This one has an icon")
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                    # set_bitmap is only available on Windows and GTK
         
     | 
| 
      
 73 
     | 
    
         
            +
                    if item.respond_to?(:set_bitmap)
         
     | 
| 
      
 74 
     | 
    
         
            +
                      bmp_file = File.join( File.dirname(__FILE__), 
         
     | 
| 
      
 75 
     | 
    
         
            +
                                            'icons', 'wxwin16x16.xpm')
         
     | 
| 
      
 76 
     | 
    
         
            +
                      item.set_bitmap( Wx::Bitmap.new(bmp_file) )
         
     | 
| 
      
 77 
     | 
    
         
            +
                    end
         
     | 
| 
      
 78 
     | 
    
         
            +
                    menu5.append_item(item)
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                    menu5.append(501, "Interesting thing\tCtrl+A", "Note the shortcut!")
         
     | 
| 
      
 81 
     | 
    
         
            +
                    menu5.append_separator()
         
     | 
| 
      
 82 
     | 
    
         
            +
                    menu5.append(502, "Hello\tShift+H")
         
     | 
| 
      
 83 
     | 
    
         
            +
                    menu5.append_separator()
         
     | 
| 
      
 84 
     | 
    
         
            +
                    menu5.append(503, "remove the submenu")
         
     | 
| 
      
 85 
     | 
    
         
            +
                    menu6 = Wx::Menu.new()
         
     | 
| 
      
 86 
     | 
    
         
            +
                    menu6.append(601, "Submenu Item")
         
     | 
| 
      
 87 
     | 
    
         
            +
                    item = Wx::MenuItem.new(menu5, 504, "submenu", "", Wx::ITEM_NORMAL, menu6)
         
     | 
| 
      
 88 
     | 
    
         
            +
                    menu5.append_item(item)
         
     | 
| 
      
 89 
     | 
    
         
            +
                    menu5.append(505, "remove this menu")
         
     | 
| 
      
 90 
     | 
    
         
            +
                    menu5.append(506, "this is updated")
         
     | 
| 
      
 91 
     | 
    
         
            +
                    menu5.append(507, "insert after this...")
         
     | 
| 
      
 92 
     | 
    
         
            +
                    menu5.append(508, "...and before this")
         
     | 
| 
      
 93 
     | 
    
         
            +
                    menuBar.append(menu5, "&Fun")
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                    set_menu_bar(menuBar)
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
                    # Menu events
         
     | 
| 
      
 98 
     | 
    
         
            +
                    evt_menu_highlight_all {|event| on_menu_highlight(event)}
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                    evt_menu(101) {|event| menu_101(event)}
         
     | 
| 
      
 101 
     | 
    
         
            +
                    evt_menu(102) {|event| menu_102(event)}
         
     | 
| 
      
 102 
     | 
    
         
            +
                    evt_menu(103) {|event| menu_103(event)}
         
     | 
| 
      
 103 
     | 
    
         
            +
                    evt_menu(104) {|event| close_window(event)}
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                    evt_menu(201) {|event| menu_201(event)}
         
     | 
| 
      
 106 
     | 
    
         
            +
                    evt_menu(202) {|event| menu_202(event)}
         
     | 
| 
      
 107 
     | 
    
         
            +
                    evt_menu(2031) {|event| menu_2031(event)}
         
     | 
| 
      
 108 
     | 
    
         
            +
                    evt_menu(2032) {|event| menu_2032(event)}
         
     | 
| 
      
 109 
     | 
    
         
            +
                    evt_menu(2033) {|event| menu_2033(event)}
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
                    evt_menu(301) {|event| menu_301_to_303(event)}
         
     | 
| 
      
 112 
     | 
    
         
            +
                    evt_menu(302) {|event| menu_301_to_303(event)}
         
     | 
| 
      
 113 
     | 
    
         
            +
                    evt_menu(303) {|event| menu_301_to_303(event)}
         
     | 
| 
      
 114 
     | 
    
         
            +
                    evt_menu(304) {|event| menu_304(event)}
         
     | 
| 
      
 115 
     | 
    
         
            +
                    evt_menu(305) {|event| menu_305(event)}
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
                    evt_menu_range(401,403) {|event| menu_401_to_403(event)}
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                    evt_menu(500) {|event| menu_500(event)}
         
     | 
| 
      
 120 
     | 
    
         
            +
                    evt_menu(501) {|event| menu_501(event)}
         
     | 
| 
      
 121 
     | 
    
         
            +
                    evt_menu(502) {|event| menu_502(event)}
         
     | 
| 
      
 122 
     | 
    
         
            +
                    evt_menu(503) {|event| test_remove(event)}
         
     | 
| 
      
 123 
     | 
    
         
            +
                    evt_menu(505) {|event| test_remove2(event)}
         
     | 
| 
      
 124 
     | 
    
         
            +
                    evt_menu(507) {|event| test_insert(event)}
         
     | 
| 
      
 125 
     | 
    
         
            +
                    evt_menu(508) {|event| test_insert(event)}
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
                    evt_update_ui(506) {|event| test_update_ui(event)}
         
     | 
| 
      
 128 
     | 
    
         
            +
                end
         
     | 
| 
      
 129 
     | 
    
         
            +
                
         
     | 
| 
      
 130 
     | 
    
         
            +
                # Methods
         
     | 
| 
      
 131 
     | 
    
         
            +
                
         
     | 
| 
      
 132 
     | 
    
         
            +
                def on_menu_highlight(event)
         
     | 
| 
      
 133 
     | 
    
         
            +
                    event.skip()
         
     | 
| 
      
 134 
     | 
    
         
            +
                end
         
     | 
| 
      
 135 
     | 
    
         
            +
                
         
     | 
| 
      
 136 
     | 
    
         
            +
                def menu_101(event)
         
     | 
| 
      
 137 
     | 
    
         
            +
                    @log.write_text("Welcome to Mercury")
         
     | 
| 
      
 138 
     | 
    
         
            +
                end
         
     | 
| 
      
 139 
     | 
    
         
            +
                
         
     | 
| 
      
 140 
     | 
    
         
            +
                def menu_102(event)
         
     | 
| 
      
 141 
     | 
    
         
            +
                    @log.write_text("Welcome to Venus")
         
     | 
| 
      
 142 
     | 
    
         
            +
                end
         
     | 
| 
      
 143 
     | 
    
         
            +
                
         
     | 
| 
      
 144 
     | 
    
         
            +
                def menu_103(event)
         
     | 
| 
      
 145 
     | 
    
         
            +
                    @log.write_text("Welcome to Earth")
         
     | 
| 
      
 146 
     | 
    
         
            +
                end
         
     | 
| 
      
 147 
     | 
    
         
            +
                
         
     | 
| 
      
 148 
     | 
    
         
            +
                def close_window(event)
         
     | 
| 
      
 149 
     | 
    
         
            +
                    event.skip()
         
     | 
| 
      
 150 
     | 
    
         
            +
                end
         
     | 
| 
      
 151 
     | 
    
         
            +
                
         
     | 
| 
      
 152 
     | 
    
         
            +
                def menu_201(event)
         
     | 
| 
      
 153 
     | 
    
         
            +
                    @log.write_text("Chemical element number 1")
         
     | 
| 
      
 154 
     | 
    
         
            +
                end
         
     | 
| 
      
 155 
     | 
    
         
            +
                
         
     | 
| 
      
 156 
     | 
    
         
            +
                def menu_202(event)
         
     | 
| 
      
 157 
     | 
    
         
            +
                    @log.write_text("Chemical element number 2")
         
     | 
| 
      
 158 
     | 
    
         
            +
                end
         
     | 
| 
      
 159 
     | 
    
         
            +
                
         
     | 
| 
      
 160 
     | 
    
         
            +
                def menu_2031(event)
         
     | 
| 
      
 161 
     | 
    
         
            +
                    @log.write_text("Element number 57")
         
     | 
| 
      
 162 
     | 
    
         
            +
                end
         
     | 
| 
      
 163 
     | 
    
         
            +
                
         
     | 
| 
      
 164 
     | 
    
         
            +
                def menu_2032(event)
         
     | 
| 
      
 165 
     | 
    
         
            +
                    @log.write_text("Element number 58")
         
     | 
| 
      
 166 
     | 
    
         
            +
                end
         
     | 
| 
      
 167 
     | 
    
         
            +
                
         
     | 
| 
      
 168 
     | 
    
         
            +
                def menu_2033(event)
         
     | 
| 
      
 169 
     | 
    
         
            +
                    @log.write_text("Element number 59")
         
     | 
| 
      
 170 
     | 
    
         
            +
                end
         
     | 
| 
      
 171 
     | 
    
         
            +
                
         
     | 
| 
      
 172 
     | 
    
         
            +
                def menu_301_to_303(event)
         
     | 
| 
      
 173 
     | 
    
         
            +
                    id = event.get_id()
         
     | 
| 
      
 174 
     | 
    
         
            +
                    @log.write_text("Event id: %d" % id)
         
     | 
| 
      
 175 
     | 
    
         
            +
                end
         
     | 
| 
      
 176 
     | 
    
         
            +
                
         
     | 
| 
      
 177 
     | 
    
         
            +
                def menu_304(event)
         
     | 
| 
      
 178 
     | 
    
         
            +
                    @log.write_text("Not yet available")
         
     | 
| 
      
 179 
     | 
    
         
            +
                end
         
     | 
| 
      
 180 
     | 
    
         
            +
                
         
     | 
| 
      
 181 
     | 
    
         
            +
                def menu_305(event)
         
     | 
| 
      
 182 
     | 
    
         
            +
                    @log.write_text("Still vapor")
         
     | 
| 
      
 183 
     | 
    
         
            +
                end
         
     | 
| 
      
 184 
     | 
    
         
            +
                
         
     | 
| 
      
 185 
     | 
    
         
            +
                def menu_401_to_403(event)
         
     | 
| 
      
 186 
     | 
    
         
            +
                    @log.write_text("From an evt_menu_range event")
         
     | 
| 
      
 187 
     | 
    
         
            +
                end
         
     | 
| 
      
 188 
     | 
    
         
            +
                
         
     | 
| 
      
 189 
     | 
    
         
            +
                def menu_500(event)
         
     | 
| 
      
 190 
     | 
    
         
            +
                    @log.write_text("Have a happy day!")
         
     | 
| 
      
 191 
     | 
    
         
            +
                end
         
     | 
| 
      
 192 
     | 
    
         
            +
                
         
     | 
| 
      
 193 
     | 
    
         
            +
                def menu_501(event)
         
     | 
| 
      
 194 
     | 
    
         
            +
                    @log.write_text("Look in the code to see how the shortcut has been realized")
         
     | 
| 
      
 195 
     | 
    
         
            +
                end
         
     | 
| 
      
 196 
     | 
    
         
            +
                
         
     | 
| 
      
 197 
     | 
    
         
            +
                def menu_502(event)
         
     | 
| 
      
 198 
     | 
    
         
            +
                    @log.write_text("Hello from Robert Carlin!")
         
     | 
| 
      
 199 
     | 
    
         
            +
                end
         
     | 
| 
      
 200 
     | 
    
         
            +
                
         
     | 
| 
      
 201 
     | 
    
         
            +
                # These methods haven't been implemented yet....Waiting for Wx::MenuBar.get_menu_bar() to be implemented
         
     | 
| 
      
 202 
     | 
    
         
            +
                def test_remove(event)
         
     | 
| 
      
 203 
     | 
    
         
            +
                    
         
     | 
| 
      
 204 
     | 
    
         
            +
                end
         
     | 
| 
      
 205 
     | 
    
         
            +
                
         
     | 
| 
      
 206 
     | 
    
         
            +
                def test_remove2(event)
         
     | 
| 
      
 207 
     | 
    
         
            +
                
         
     | 
| 
      
 208 
     | 
    
         
            +
                end
         
     | 
| 
      
 209 
     | 
    
         
            +
                
         
     | 
| 
      
 210 
     | 
    
         
            +
                def test_insert(event)
         
     | 
| 
      
 211 
     | 
    
         
            +
                
         
     | 
| 
      
 212 
     | 
    
         
            +
                end
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
                def test_update_ui(event)
         
     | 
| 
      
 215 
     | 
    
         
            +
                    event.skip()
         
     | 
| 
      
 216 
     | 
    
         
            +
                end
         
     | 
| 
      
 217 
     | 
    
         
            +
            end
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 220 
     | 
    
         
            +
                def Demo.run(frame, nb, log)
         
     | 
| 
      
 221 
     | 
    
         
            +
                    win = MyFrame.new(frame, -1, log)
         
     | 
| 
      
 222 
     | 
    
         
            +
                    frame.otherWin = win
         
     | 
| 
      
 223 
     | 
    
         
            +
                    win.show()
         
     | 
| 
      
 224 
     | 
    
         
            +
                end
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
                def Demo.overview
         
     | 
| 
      
 227 
     | 
    
         
            +
                    return "A demo of using Wx::MenuBar and Wx::Menu in various ways."
         
     | 
| 
      
 228 
     | 
    
         
            +
                end
         
     | 
| 
      
 229 
     | 
    
         
            +
            end
         
     | 
| 
      
 230 
     | 
    
         
            +
                
         
     | 
| 
      
 231 
     | 
    
         
            +
             
     | 
| 
      
 232 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 233 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 234 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 235 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 236 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 13 
     | 
    
         
            +
                def Demo.run(frame, nb, log)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    dlg = Wx::MessageDialog.new(frame, "Hello from Ruby and wxRuby!", "A Message Box", Wx::OK | Wx::ICON_INFORMATION)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    dlg.show_modal()
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
                
         
     | 
| 
      
 18 
     | 
    
         
            +
                def Demo.overview
         
     | 
| 
      
 19 
     | 
    
         
            +
                    return "Show a message to the user in a dialog"
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 24 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 25 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 26 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            include Wx
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            class MyMiniFrame < MiniFrame
         
     | 
| 
      
 14 
     | 
    
         
            +
              def initialize(parent, log)
         
     | 
| 
      
 15 
     | 
    
         
            +
                @log = log
         
     | 
| 
      
 16 
     | 
    
         
            +
                super(parent, -1, "Wx::MiniFrame demonstration", 
         
     | 
| 
      
 17 
     | 
    
         
            +
                      DEFAULT_POSITION, Size.new(350,200), DEFAULT_FRAME_STYLE)
         
     | 
| 
      
 18 
     | 
    
         
            +
                panel = Panel.new(self, -1)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    
         
     | 
| 
      
 20 
     | 
    
         
            +
                button = Button.new(panel, -1, "Close me", Point.new(15,15))
         
     | 
| 
      
 21 
     | 
    
         
            +
                evt_button( button.get_id ) { on_close_me }
         
     | 
| 
      
 22 
     | 
    
         
            +
                # evt_close { | e | on_close_window(e) }
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
                
         
     | 
| 
      
 25 
     | 
    
         
            +
              def on_close_me
         
     | 
| 
      
 26 
     | 
    
         
            +
                close(true)
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
                
         
     | 
| 
      
 29 
     | 
    
         
            +
              def on_close_window(event)
         
     | 
| 
      
 30 
     | 
    
         
            +
                @log.write_text("MiniFrame closed.")
         
     | 
| 
      
 31 
     | 
    
         
            +
                event.skip
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
                
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            class TestPanel < Wx::Panel
         
     | 
| 
      
 37 
     | 
    
         
            +
              def initialize(parent, log)
         
     | 
| 
      
 38 
     | 
    
         
            +
                super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
         
     | 
| 
      
 39 
     | 
    
         
            +
                @log = log
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                b = Button.new(self, -1, 'Create and Show a MiniFrame', Wx::Point.new(50,50))
         
     | 
| 
      
 42 
     | 
    
         
            +
                evt_button(b.get_id) { on_button }
         
     | 
| 
      
 43 
     | 
    
         
            +
              end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              def on_button
         
     | 
| 
      
 46 
     | 
    
         
            +
                win = MyMiniFrame.new(self, @log)
         
     | 
| 
      
 47 
     | 
    
         
            +
                win.set_size(Wx::Size.new(200, 200))
         
     | 
| 
      
 48 
     | 
    
         
            +
                win.center_on_parent(Wx::BOTH)
         
     | 
| 
      
 49 
     | 
    
         
            +
                win.show(true)
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
            end
         
     | 
| 
      
 52 
     | 
    
         
            +
                    
         
     | 
| 
      
 53 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 54 
     | 
    
         
            +
              def Demo.run(frame, nb, log)
         
     | 
| 
      
 55 
     | 
    
         
            +
                TestPanel.new(nb, log)
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
      
 57 
     | 
    
         
            +
                
         
     | 
| 
      
 58 
     | 
    
         
            +
              def Demo.overview
         
     | 
| 
      
 59 
     | 
    
         
            +
                return "A MiniFrame is a Frame with a small title bar. It is suitable for floating\n" +
         
     | 
| 
      
 60 
     | 
    
         
            +
                       "toolbars that must not take up too much screen area. In other respects, it's the\n" +
         
     | 
| 
      
 61 
     | 
    
         
            +
                       "same as a Wx::Frame."
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
            end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 67 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 68 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 69 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 70 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 13 
     | 
    
         
            +
                def Demo.run(frame, nb, log)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    lst = %w(apple pear banana coconut orange etc etc.. etc...)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    choices = Wx::get_multiple_choices("Pick some from\n this list\nblah blah...", "m.s.d.", lst)
         
     | 
| 
      
 16 
     | 
    
         
            +
                    if choices
         
     | 
| 
      
 17 
     | 
    
         
            +
                        log.write_text("You selected " + choices.length().to_s() + " items:")
         
     | 
| 
      
 18 
     | 
    
         
            +
                        choices.each_index {|i| log.write_text("\t" + choices[i].to_s() + " => " + lst[choices[i]])}
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                def Demo.overview
         
     | 
| 
      
 23 
     | 
    
         
            +
                    return ""
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
      
 26 
     | 
    
         
            +
                
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 29 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 30 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 31 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,136 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Freely reusable code: see SAMPLES-LICENSE.TXT for details
         
     | 
| 
      
 4 
     | 
    
         
            +
            begin
         
     | 
| 
      
 5 
     | 
    
         
            +
              require 'rubygems' 
         
     | 
| 
      
 6 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'wx'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            # added this class so that the panel in each NB tab can respond to size events and properly size each nb page - otherwise 
         
     | 
| 
      
 13 
     | 
    
         
            +
            # NB pages that contain the colored windows won't properly size themseleves
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            class NBPanel < Wx::Panel
         
     | 
| 
      
 16 
     | 
    
         
            +
                attr_accessor :win
         
     | 
| 
      
 17 
     | 
    
         
            +
                def initialize(parent)
         
     | 
| 
      
 18 
     | 
    
         
            +
                    super(parent, -1)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    evt_size {|event| on_size(event)}
         
     | 
| 
      
 20 
     | 
    
         
            +
                    @win
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
                
         
     | 
| 
      
 23 
     | 
    
         
            +
                def on_size(event)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    win.set_size(event.get_size())
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            class TestNB < Wx::Notebook
         
     | 
| 
      
 29 
     | 
    
         
            +
                def demo_file(base_name)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  File.join( File.dirname(__FILE__), base_name )
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                def initialize(parent, id, log)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    super(parent, id, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NB_BOTTOM)
         
     | 
| 
      
 35 
     | 
    
         
            +
                    @log = log
         
     | 
| 
      
 36 
     | 
    
         
            +
                    File
         
     | 
| 
      
 37 
     | 
    
         
            +
                    load demo_file("ColorPanel.rbw")
         
     | 
| 
      
 38 
     | 
    
         
            +
                    load demo_file("wxScrolledWindow.rbw")
         
     | 
| 
      
 39 
     | 
    
         
            +
                    load demo_file("GridSimple.rbw")
         
     | 
| 
      
 40 
     | 
    
         
            +
                    #load "wxListCtrl.rbw"
         
     | 
| 
      
 41 
     | 
    
         
            +
                    
         
     | 
| 
      
 42 
     | 
    
         
            +
                    # Show how to put an image on one of the notebook tabs,
         
     | 
| 
      
 43 
     | 
    
         
            +
                    # first make the image list:
         
     | 
| 
      
 44 
     | 
    
         
            +
                    il = Wx::ImageList.new(16,16)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    ic_file = File.join(File.dirname(__FILE__),'icons','wxwin16x16.xpm')
         
     | 
| 
      
 46 
     | 
    
         
            +
                    il.add_icon( Wx::Icon.new(ic_file) )
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                    set_image_list(il)
         
     | 
| 
      
 49 
     | 
    
         
            +
                    
         
     | 
| 
      
 50 
     | 
    
         
            +
                    win = make_color_panel(Wx::BLUE)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    add_page(win, "Blue", true, 0)
         
     | 
| 
      
 52 
     | 
    
         
            +
                    st = Wx::StaticText.new(win, -1, "You can put nearly any type of window here,\n" +
         
     | 
| 
      
 53 
     | 
    
         
            +
                                      "and if the platform supports it then the\n" +
         
     | 
| 
      
 54 
     | 
    
         
            +
                                      "tabs can be on any side of the notebook.", Wx::Point.new(10,10))
         
     | 
| 
      
 55 
     | 
    
         
            +
                    st.set_foreground_colour(Wx::WHITE)
         
     | 
| 
      
 56 
     | 
    
         
            +
                    st.set_background_colour(Wx::BLUE)
         
     | 
| 
      
 57 
     | 
    
         
            +
                    
         
     | 
| 
      
 58 
     | 
    
         
            +
                    win = make_color_panel(Wx::RED)
         
     | 
| 
      
 59 
     | 
    
         
            +
                    add_page(win, "Red")
         
     | 
| 
      
 60 
     | 
    
         
            +
                    
         
     | 
| 
      
 61 
     | 
    
         
            +
                    win = MyCanvas.new(self)
         
     | 
| 
      
 62 
     | 
    
         
            +
                    add_page(win, "ScrolledWindow")
         
     | 
| 
      
 63 
     | 
    
         
            +
                    
         
     | 
| 
      
 64 
     | 
    
         
            +
                    win = make_color_panel(Wx::GREEN)
         
     | 
| 
      
 65 
     | 
    
         
            +
                    add_page(win, "Green")
         
     | 
| 
      
 66 
     | 
    
         
            +
                    
         
     | 
| 
      
 67 
     | 
    
         
            +
                    win = SimpleGrid.new(self, log)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    add_page(win, "Grid")
         
     | 
| 
      
 69 
     | 
    
         
            +
                    
         
     | 
| 
      
 70 
     | 
    
         
            +
                    #win = TestListCtrlPanel(self, log)
         
     | 
| 
      
 71 
     | 
    
         
            +
                    #add_page(win, "List")
         
     | 
| 
      
 72 
     | 
    
         
            +
                    
         
     | 
| 
      
 73 
     | 
    
         
            +
                    win = make_color_panel(Wx::CYAN)
         
     | 
| 
      
 74 
     | 
    
         
            +
                    add_page(win, "Cyan")
         
     | 
| 
      
 75 
     | 
    
         
            +
                    
         
     | 
| 
      
 76 
     | 
    
         
            +
                    win = make_color_panel(Wx::LIGHT_GREY)
         
     | 
| 
      
 77 
     | 
    
         
            +
                    add_page(win, "Light Grey")
         
     | 
| 
      
 78 
     | 
    
         
            +
                    
         
     | 
| 
      
 79 
     | 
    
         
            +
                    win = make_color_panel(Wx::BLACK)
         
     | 
| 
      
 80 
     | 
    
         
            +
                    add_page(win, "Black")
         
     | 
| 
      
 81 
     | 
    
         
            +
                    
         
     | 
| 
      
 82 
     | 
    
         
            +
                    win = make_color_panel(Wx::Colour.new("MEDIUM ORCHID"))
         
     | 
| 
      
 83 
     | 
    
         
            +
                    add_page(win, "MEDIUM ORCHID")
         
     | 
| 
      
 84 
     | 
    
         
            +
                    
         
     | 
| 
      
 85 
     | 
    
         
            +
                    win = make_color_panel(Wx::Colour.new("MIDNIGHT BLUE"))
         
     | 
| 
      
 86 
     | 
    
         
            +
                    add_page(win, "MIDNIGHT BLUE")
         
     | 
| 
      
 87 
     | 
    
         
            +
                    
         
     | 
| 
      
 88 
     | 
    
         
            +
                    win = make_color_panel(Wx::Colour.new("INDIAN RED"))
         
     | 
| 
      
 89 
     | 
    
         
            +
                    add_page(win, "INDIAN RED")
         
     | 
| 
      
 90 
     | 
    
         
            +
                    
         
     | 
| 
      
 91 
     | 
    
         
            +
                    
         
     | 
| 
      
 92 
     | 
    
         
            +
                    evt_notebook_page_changed(self.get_id()) {|event| on_page_changed(event)}
         
     | 
| 
      
 93 
     | 
    
         
            +
                    evt_notebook_page_changing(self.get_id()) {|event| on_page_changing(event)}
         
     | 
| 
      
 94 
     | 
    
         
            +
                end
         
     | 
| 
      
 95 
     | 
    
         
            +
                
         
     | 
| 
      
 96 
     | 
    
         
            +
                def make_color_panel(color)
         
     | 
| 
      
 97 
     | 
    
         
            +
                    p = NBPanel.new(self)
         
     | 
| 
      
 98 
     | 
    
         
            +
                    win = ColoredPanel.new(p, color)
         
     | 
| 
      
 99 
     | 
    
         
            +
                    p.win = win
         
     | 
| 
      
 100 
     | 
    
         
            +
                    return p
         
     | 
| 
      
 101 
     | 
    
         
            +
                end
         
     | 
| 
      
 102 
     | 
    
         
            +
                
         
     | 
| 
      
 103 
     | 
    
         
            +
                def on_page_changed(event)
         
     | 
| 
      
 104 
     | 
    
         
            +
                    old = event.get_old_selection()
         
     | 
| 
      
 105 
     | 
    
         
            +
                    new = event.get_selection()
         
     | 
| 
      
 106 
     | 
    
         
            +
                    sel = get_selection()
         
     | 
| 
      
 107 
     | 
    
         
            +
                    @log.write_text("on_page_changed, old:" + old.to_s() + ", new:" + new.to_s() + ", sel:" + sel.to_s())
         
     | 
| 
      
 108 
     | 
    
         
            +
                    event.skip()
         
     | 
| 
      
 109 
     | 
    
         
            +
                end
         
     | 
| 
      
 110 
     | 
    
         
            +
                
         
     | 
| 
      
 111 
     | 
    
         
            +
                def on_page_changing(event)
         
     | 
| 
      
 112 
     | 
    
         
            +
                    old = event.get_old_selection()
         
     | 
| 
      
 113 
     | 
    
         
            +
                    new = event.get_selection()
         
     | 
| 
      
 114 
     | 
    
         
            +
                    sel = get_selection()
         
     | 
| 
      
 115 
     | 
    
         
            +
                    @log.write_text("on_page_changing, old:" + old.to_s() + ", new:" + new.to_s() + ", sel:" + sel.to_s())
         
     | 
| 
      
 116 
     | 
    
         
            +
                    event.skip()
         
     | 
| 
      
 117 
     | 
    
         
            +
                end
         
     | 
| 
      
 118 
     | 
    
         
            +
            end
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
            module Demo
         
     | 
| 
      
 121 
     | 
    
         
            +
                def Demo.run(frame, nb, log)
         
     | 
| 
      
 122 
     | 
    
         
            +
                    win = TestNB.new(nb, -1, log)
         
     | 
| 
      
 123 
     | 
    
         
            +
                    return win
         
     | 
| 
      
 124 
     | 
    
         
            +
                end
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
                def Demo.overview
         
     | 
| 
      
 127 
     | 
    
         
            +
                    return "This class represents a notebook control, which manages multiple windows with associated tabs.  To use the class, create a wxNotebook object and call AddPage or InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook."
         
     | 
| 
      
 128 
     | 
    
         
            +
                end
         
     | 
| 
      
 129 
     | 
    
         
            +
            end
         
     | 
| 
      
 130 
     | 
    
         
            +
                
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
            if __FILE__ == $0
         
     | 
| 
      
 133 
     | 
    
         
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         
     | 
| 
      
 134 
     | 
    
         
            +
              load run_solo_lib
         
     | 
| 
      
 135 
     | 
    
         
            +
              run File.basename($0)
         
     | 
| 
      
 136 
     | 
    
         
            +
            end
         
     |