wxruby 1.9.9-x86-mingw32 → 1.9.10-x86-mingw32
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 -53
- data/README +297 -297
- data/lib/wx.rb +53 -53
- data/lib/wx/classes/bitmap.rb +29 -1
- data/lib/wx/classes/clipboard.rb +19 -3
- data/lib/wx/classes/colour.rb +6 -4
- 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/evthandler.rb +31 -4
- data/lib/wx/classes/genericdirctrl.rb +36 -0
- data/lib/wx/classes/grid.rb +8 -0
- data/lib/wx/classes/hboxsizer.rb +6 -0
- data/lib/wx/classes/icon.rb +12 -1
- data/lib/wx/classes/image.rb +13 -1
- data/lib/wx/classes/listctrl.rb +12 -0
- data/lib/wx/classes/point.rb +8 -0
- data/lib/wx/classes/rect.rb +10 -1
- data/lib/wx/classes/richtextctrl.rb +22 -0
- data/lib/wx/classes/size.rb +9 -0
- data/lib/wx/classes/sizer.rb +18 -3
- data/lib/wx/classes/toolbar.rb +4 -6
- data/lib/wx/classes/vboxsizer.rb +6 -0
- data/lib/wx/classes/window.rb +7 -0
- data/lib/wx/classes/xmlresource.rb +17 -0
- data/lib/wx/helpers.rb +16 -1
- data/lib/wx/keyword_ctors.rb +3 -2
- data/lib/wx/keyword_defs.rb +27 -5
- data/lib/wx/version.rb +1 -1
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +17 -17
- data/samples/bigdemo/About.rbw +39 -39
- data/samples/bigdemo/ColorPanel.rbw +23 -23
- data/samples/bigdemo/GridSimple.rbw +78 -78
- data/samples/bigdemo/MDIDemo.rbw +57 -57
- data/samples/bigdemo/PopupMenu.rbw +149 -149
- data/samples/bigdemo/Sizers.rbw +543 -543
- data/samples/bigdemo/bigdemo.rb +823 -823
- data/samples/bigdemo/demoTemplate.rbw +33 -33
- data/samples/bigdemo/icons/choice.xpm +27 -27
- data/samples/bigdemo/icons/combo.xpm +27 -27
- data/samples/bigdemo/icons/copy.xpm +25 -25
- data/samples/bigdemo/icons/cut.xpm +24 -24
- data/samples/bigdemo/icons/gauge.xpm +27 -27
- data/samples/bigdemo/icons/help.xpm +25 -25
- data/samples/bigdemo/icons/list.xpm +27 -27
- data/samples/bigdemo/icons/mondrian.xpm +44 -44
- data/samples/bigdemo/icons/new.xpm +24 -24
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -45
- data/samples/bigdemo/icons/open.xpm +26 -26
- data/samples/bigdemo/icons/paste.xpm +38 -38
- data/samples/bigdemo/icons/preview.xpm +26 -26
- data/samples/bigdemo/icons/print.xpm +26 -26
- data/samples/bigdemo/icons/radio.xpm +27 -27
- data/samples/bigdemo/icons/robert.xpm +415 -415
- data/samples/bigdemo/icons/save.xpm +25 -25
- data/samples/bigdemo/icons/smiles.xpm +39 -39
- data/samples/bigdemo/icons/smiley.xpm +42 -42
- data/samples/bigdemo/icons/stattext.xpm +24 -24
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -79
- data/samples/bigdemo/icons/text.xpm +27 -27
- data/samples/bigdemo/icons/tog1.xpm +38 -38
- data/samples/bigdemo/icons/tog2.xpm +38 -38
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
- data/samples/bigdemo/tips.txt +7 -7
- data/samples/bigdemo/utils.rb +11 -11
- data/samples/bigdemo/wxButton.rbw +64 -64
- data/samples/bigdemo/wxCalendarCtrl.rbw +60 -60
- data/samples/bigdemo/wxCheckBox.rbw +50 -50
- data/samples/bigdemo/wxCheckListBox.rbw +65 -75
- data/samples/bigdemo/wxChoice.rbw +47 -47
- data/samples/bigdemo/wxColourDialog.rbw +31 -31
- data/samples/bigdemo/wxComboBox.rbw +77 -77
- data/samples/bigdemo/wxDialog.rbw +74 -74
- data/samples/bigdemo/wxDirDialog.rbw +29 -29
- data/samples/bigdemo/wxFileDialog.rbw +37 -37
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -35
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -82
- data/samples/bigdemo/wxFontDialog.rbw +173 -173
- data/samples/bigdemo/wxFrame.rbw +53 -53
- data/samples/bigdemo/wxGauge.rbw +71 -71
- data/samples/bigdemo/wxGrid.rbw +66 -66
- data/samples/bigdemo/wxListBox.rbw +140 -140
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -107
- data/samples/bigdemo/wxMDIWindows.rbw +50 -50
- data/samples/bigdemo/wxMenu.rbw +236 -236
- data/samples/bigdemo/wxMessageDialog.rbw +27 -27
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -32
- data/samples/bigdemo/wxNotebook.rbw +136 -136
- data/samples/bigdemo/wxProgressDialog.rbw +43 -43
- data/samples/bigdemo/wxRadioBox.rbw +72 -72
- data/samples/bigdemo/wxRadioButton.rbw +125 -125
- data/samples/bigdemo/wxSashWindow.rbw +2 -2
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -57
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -199
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -33
- data/samples/bigdemo/wxSlider.rbw +42 -42
- data/samples/bigdemo/wxSpinButton.rbw +50 -50
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -51
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -63
- data/samples/bigdemo/wxStaticBitmap.rbw +51 -51
- data/samples/bigdemo/wxStaticText.rbw +55 -55
- data/samples/bigdemo/wxStatusBar.rbw +126 -126
- data/samples/bigdemo/wxTextCtrl.rbw +149 -149
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -31
- data/samples/bigdemo/wxToggleButton.rbw +49 -49
- data/samples/bigdemo/wxToolBar.rbw +131 -131
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -190
- data/samples/calendar/calendar.rb +256 -271
- data/samples/caret/caret.rb +282 -282
- data/samples/caret/mondrian.xpm +44 -44
- data/samples/controls/controls.rb +1136 -1136
- data/samples/controls/get_item_sample.rb +87 -87
- data/samples/controls/icons/choice.xpm +27 -27
- data/samples/controls/icons/combo.xpm +27 -27
- data/samples/controls/icons/gauge.xpm +27 -27
- data/samples/controls/icons/list.xpm +27 -27
- data/samples/controls/icons/radio.xpm +27 -27
- data/samples/controls/icons/stattext.xpm +24 -24
- data/samples/controls/icons/text.xpm +27 -27
- data/samples/controls/mondrian.xpm +44 -44
- data/samples/dialogs/dialogs.rb +797 -723
- data/samples/dialogs/tips.txt +18 -18
- data/samples/drawing/images.rb +37 -37
- data/samples/etc/activation.rb +102 -102
- data/samples/etc/choice.rb +67 -67
- data/samples/etc/miniframe.rb +79 -79
- data/samples/etc/sash.rb +130 -130
- data/samples/etc/scrollwin.rb +110 -110
- data/samples/etc/system_settings.rb +252 -252
- data/samples/etc/toolbar_sizer_additem.rb +55 -0
- data/samples/etc/wizard.rb +74 -74
- data/samples/event/update_ui_event.rb +70 -0
- data/samples/grid/gridtablebase.rb +43 -29
- data/samples/listbook/listbook.rb +174 -174
- data/samples/listbook/listbook.xrc +370 -370
- data/samples/mdi/mdi.rb +85 -77
- data/samples/minimal/minimal.rb +77 -77
- data/samples/minimal/nothing.rb +16 -16
- 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/rich_textctrl.rb +98 -0
- data/samples/text/textctrl.rb +111 -113
- data/samples/text/unicode.rb +242 -242
- data/samples/text/utf8.txt +14 -14
- data/samples/treectrl/treectrl.rb +1166 -1174
- data/samples/xrc/samples.xrc +46 -46
- data/samples/xrc/xrc_sample.rb +76 -96
- metadata +15 -3
    
        data/samples/bigdemo/wxGauge.rbw
    CHANGED
    
    | @@ -1,71 +1,71 @@ | |
| 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 | 
            -
                super(parent, -1)
         | 
| 15 | 
            -
                @log = log
         | 
| 16 | 
            -
                @count = 0
         | 
| 17 | 
            -
                
         | 
| 18 | 
            -
                Wx::StaticText.new( self, -1, "This example shows the wxGauge control.", 
         | 
| 19 | 
            -
                                    Wx::Point.new(45,15))
         | 
| 20 | 
            -
                
         | 
| 21 | 
            -
                @g1 = Wx::Gauge.new( self, -1, 50, 
         | 
| 22 | 
            -
                                     Wx::Point.new(110,50), Wx::Size.new(250,25))
         | 
| 23 | 
            -
                @g1.set_bezel_face(3)
         | 
| 24 | 
            -
                @g1.set_shadow_width(3)
         | 
| 25 | 
            -
                
         | 
| 26 | 
            -
                @g2 = Wx::Gauge.new( self, -1, 50, 
         | 
| 27 | 
            -
                                     Wx::Point.new(110,95), Wx::Size.new(250,25), 
         | 
| 28 | 
            -
                                     Wx::GA_HORIZONTAL|Wx::GA_SMOOTH)
         | 
| 29 | 
            -
                @g2.set_bezel_face(5)
         | 
| 30 | 
            -
                @g2.set_shadow_width(5)
         | 
| 31 | 
            -
                
         | 
| 32 | 
            -
                @g3 = Wx::Gauge.new( self, -1, 50, 
         | 
| 33 | 
            -
                                     Wx::Point.new(110, 140), Wx::Size.new(25,250), 
         | 
| 34 | 
            -
                                     Wx::GA_VERTICAL)
         | 
| 35 | 
            -
                @g3.set_bezel_face(3)
         | 
| 36 | 
            -
                @g3.set_shadow_width(3)
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                # start a timer to move the gauges forward every 1/4 s
         | 
| 39 | 
            -
                timer = Wx::Timer.new(self, 5001)
         | 
| 40 | 
            -
                evt_timer(5001) { move_gauges }
         | 
| 41 | 
            -
                timer.start(250)
         | 
| 42 | 
            -
              end
         | 
| 43 | 
            -
              
         | 
| 44 | 
            -
              # advance the gauges
         | 
| 45 | 
            -
              def move_gauges
         | 
| 46 | 
            -
                @count +=1 
         | 
| 47 | 
            -
                if @count > 50 
         | 
| 48 | 
            -
                  @count = 0
         | 
| 49 | 
            -
                end
         | 
| 50 | 
            -
                @g1.set_value(@count)
         | 
| 51 | 
            -
                @g2.set_value(@count)
         | 
| 52 | 
            -
                @g3.set_value(@count)
         | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
            end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
            module Demo
         | 
| 57 | 
            -
              def Demo.run(frame, nb, log)
         | 
| 58 | 
            -
                win = TestPanel.new(nb, log)
         | 
| 59 | 
            -
                return win
         | 
| 60 | 
            -
              end
         | 
| 61 | 
            -
              
         | 
| 62 | 
            -
              def Demo.overview
         | 
| 63 | 
            -
                return "A gauge is a horizontal or vertical bar which shows a quantity (often time). "
         | 
| 64 | 
            -
              end
         | 
| 65 | 
            -
            end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
            if __FILE__ == $0
         | 
| 68 | 
            -
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         | 
| 69 | 
            -
              load run_solo_lib
         | 
| 70 | 
            -
              run File.basename($0)
         | 
| 71 | 
            -
            end
         | 
| 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 | 
            +
                super(parent, -1)
         | 
| 15 | 
            +
                @log = log
         | 
| 16 | 
            +
                @count = 0
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                Wx::StaticText.new( self, -1, "This example shows the wxGauge control.", 
         | 
| 19 | 
            +
                                    Wx::Point.new(45,15))
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
                @g1 = Wx::Gauge.new( self, -1, 50, 
         | 
| 22 | 
            +
                                     Wx::Point.new(110,50), Wx::Size.new(250,25))
         | 
| 23 | 
            +
                @g1.set_bezel_face(3)
         | 
| 24 | 
            +
                @g1.set_shadow_width(3)
         | 
| 25 | 
            +
                
         | 
| 26 | 
            +
                @g2 = Wx::Gauge.new( self, -1, 50, 
         | 
| 27 | 
            +
                                     Wx::Point.new(110,95), Wx::Size.new(250,25), 
         | 
| 28 | 
            +
                                     Wx::GA_HORIZONTAL|Wx::GA_SMOOTH)
         | 
| 29 | 
            +
                @g2.set_bezel_face(5)
         | 
| 30 | 
            +
                @g2.set_shadow_width(5)
         | 
| 31 | 
            +
                
         | 
| 32 | 
            +
                @g3 = Wx::Gauge.new( self, -1, 50, 
         | 
| 33 | 
            +
                                     Wx::Point.new(110, 140), Wx::Size.new(25,250), 
         | 
| 34 | 
            +
                                     Wx::GA_VERTICAL)
         | 
| 35 | 
            +
                @g3.set_bezel_face(3)
         | 
| 36 | 
            +
                @g3.set_shadow_width(3)
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                # start a timer to move the gauges forward every 1/4 s
         | 
| 39 | 
            +
                timer = Wx::Timer.new(self, 5001)
         | 
| 40 | 
            +
                evt_timer(5001) { move_gauges }
         | 
| 41 | 
            +
                timer.start(250)
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
              
         | 
| 44 | 
            +
              # advance the gauges
         | 
| 45 | 
            +
              def move_gauges
         | 
| 46 | 
            +
                @count +=1 
         | 
| 47 | 
            +
                if @count > 50 
         | 
| 48 | 
            +
                  @count = 0
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
                @g1.set_value(@count)
         | 
| 51 | 
            +
                @g2.set_value(@count)
         | 
| 52 | 
            +
                @g3.set_value(@count)
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
            end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            module Demo
         | 
| 57 | 
            +
              def Demo.run(frame, nb, log)
         | 
| 58 | 
            +
                win = TestPanel.new(nb, log)
         | 
| 59 | 
            +
                return win
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
              
         | 
| 62 | 
            +
              def Demo.overview
         | 
| 63 | 
            +
                return "A gauge is a horizontal or vertical bar which shows a quantity (often time). "
         | 
| 64 | 
            +
              end
         | 
| 65 | 
            +
            end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            if __FILE__ == $0
         | 
| 68 | 
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         | 
| 69 | 
            +
              load run_solo_lib
         | 
| 70 | 
            +
              run File.basename($0)
         | 
| 71 | 
            +
            end
         | 
    
        data/samples/bigdemo/wxGrid.rbw
    CHANGED
    
    | @@ -1,66 +1,66 @@ | |
| 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 | 
            -
            $buttonDefs = {
         | 
| 13 | 
            -
                814 => ['GridSimple',      ' Simple wxGrid'] # , catching all events '] ,
         | 
| 14 | 
            -
                # 815 => ['GridStdEdRend',   ' wxGrid showing Editors and Renderers '],
         | 
| 15 | 
            -
                # 818 => ['GridHugeTable',   ' A wxGrid with a HUGE table [100 MILLION cells!] '],
         | 
| 16 | 
            -
                # 817 => ['GridCustTable',   ' wxGrid using a custom Table, with non-string data '],
         | 
| 17 | 
            -
                # 819 => ['GridEnterHandler',' Remapping keys to behave differently '],
         | 
| 18 | 
            -
                # 820 => ['GridCustEditor',  ' Shows how to create a custom Cell Editor '],
         | 
| 19 | 
            -
                # 821 => ['GridDragable',    ' A wxGrid with dragable rows and columns '],
         | 
| 20 | 
            -
                # 822 => ['GridDragAndDrop', 'Shows how to make a grid a drop target for files'],
         | 
| 21 | 
            -
                }
         | 
| 22 | 
            -
             | 
| 23 | 
            -
            class ButtonPanel < Wx::Panel
         | 
| 24 | 
            -
                def initialize(parent, log)
         | 
| 25 | 
            -
                    super(parent, -1)
         | 
| 26 | 
            -
                    @log = log
         | 
| 27 | 
            -
                    
         | 
| 28 | 
            -
                    box = Wx::BoxSizer.new(Wx::VERTICAL)
         | 
| 29 | 
            -
                    box.add(20,30)
         | 
| 30 | 
            -
                    keys = $buttonDefs.keys().sort()
         | 
| 31 | 
            -
                    keys.each do |key| 
         | 
| 32 | 
            -
                        text = $buttonDefs[key][1]
         | 
| 33 | 
            -
                        btn = Wx::Button.new(self, key, text)
         | 
| 34 | 
            -
                        box.add(btn, 0, Wx::ALIGN_CENTER | Wx::ALL, 10)
         | 
| 35 | 
            -
                        evt_button(key) {|event| on_button(event)}
         | 
| 36 | 
            -
                    end
         | 
| 37 | 
            -
                    set_sizer(box)
         | 
| 38 | 
            -
                end
         | 
| 39 | 
            -
                
         | 
| 40 | 
            -
                def on_button(event)
         | 
| 41 | 
            -
                    modName = $buttonDefs[event.get_id()][0]
         | 
| 42 | 
            -
                    mod_file = File.join(File.dirname(__FILE__), modName + ".rbw")
         | 
| 43 | 
            -
                    load mod_file
         | 
| 44 | 
            -
                    
         | 
| 45 | 
            -
                    frame = GridDemo::TestFrame.new(nil, @log)
         | 
| 46 | 
            -
                    frame.show()
         | 
| 47 | 
            -
                end
         | 
| 48 | 
            -
            end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
            module Demo
         | 
| 51 | 
            -
                def Demo.run(frame,nb,log)
         | 
| 52 | 
            -
                    win = ButtonPanel.new(nb, log)
         | 
| 53 | 
            -
                    return win
         | 
| 54 | 
            -
                end
         | 
| 55 | 
            -
                
         | 
| 56 | 
            -
                def Demo.overview
         | 
| 57 | 
            -
                    "A simple grid."
         | 
| 58 | 
            -
                end
         | 
| 59 | 
            -
            end
         | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
            if __FILE__ == $0
         | 
| 63 | 
            -
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         | 
| 64 | 
            -
              load run_solo_lib
         | 
| 65 | 
            -
              run File.basename($0)
         | 
| 66 | 
            -
            end
         | 
| 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 | 
            +
            $buttonDefs = {
         | 
| 13 | 
            +
                814 => ['GridSimple',      ' Simple wxGrid'] # , catching all events '] ,
         | 
| 14 | 
            +
                # 815 => ['GridStdEdRend',   ' wxGrid showing Editors and Renderers '],
         | 
| 15 | 
            +
                # 818 => ['GridHugeTable',   ' A wxGrid with a HUGE table [100 MILLION cells!] '],
         | 
| 16 | 
            +
                # 817 => ['GridCustTable',   ' wxGrid using a custom Table, with non-string data '],
         | 
| 17 | 
            +
                # 819 => ['GridEnterHandler',' Remapping keys to behave differently '],
         | 
| 18 | 
            +
                # 820 => ['GridCustEditor',  ' Shows how to create a custom Cell Editor '],
         | 
| 19 | 
            +
                # 821 => ['GridDragable',    ' A wxGrid with dragable rows and columns '],
         | 
| 20 | 
            +
                # 822 => ['GridDragAndDrop', 'Shows how to make a grid a drop target for files'],
         | 
| 21 | 
            +
                }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            class ButtonPanel < Wx::Panel
         | 
| 24 | 
            +
                def initialize(parent, log)
         | 
| 25 | 
            +
                    super(parent, -1)
         | 
| 26 | 
            +
                    @log = log
         | 
| 27 | 
            +
                    
         | 
| 28 | 
            +
                    box = Wx::BoxSizer.new(Wx::VERTICAL)
         | 
| 29 | 
            +
                    box.add(20,30)
         | 
| 30 | 
            +
                    keys = $buttonDefs.keys().sort()
         | 
| 31 | 
            +
                    keys.each do |key| 
         | 
| 32 | 
            +
                        text = $buttonDefs[key][1]
         | 
| 33 | 
            +
                        btn = Wx::Button.new(self, key, text)
         | 
| 34 | 
            +
                        box.add(btn, 0, Wx::ALIGN_CENTER | Wx::ALL, 10)
         | 
| 35 | 
            +
                        evt_button(key) {|event| on_button(event)}
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
                    set_sizer(box)
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                def on_button(event)
         | 
| 41 | 
            +
                    modName = $buttonDefs[event.get_id()][0]
         | 
| 42 | 
            +
                    mod_file = File.join(File.dirname(__FILE__), modName + ".rbw")
         | 
| 43 | 
            +
                    load mod_file
         | 
| 44 | 
            +
                    
         | 
| 45 | 
            +
                    frame = GridDemo::TestFrame.new(nil, @log)
         | 
| 46 | 
            +
                    frame.show()
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
            end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            module Demo
         | 
| 51 | 
            +
                def Demo.run(frame,nb,log)
         | 
| 52 | 
            +
                    win = ButtonPanel.new(nb, log)
         | 
| 53 | 
            +
                    return win
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
                
         | 
| 56 | 
            +
                def Demo.overview
         | 
| 57 | 
            +
                    "A simple grid."
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
            end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
             | 
| 62 | 
            +
            if __FILE__ == $0
         | 
| 63 | 
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         | 
| 64 | 
            +
              load run_solo_lib
         | 
| 65 | 
            +
              run File.basename($0)
         | 
| 66 | 
            +
            end
         | 
| @@ -1,140 +1,140 @@ | |
| 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 FindPrefixListBox < Wx::ListBox
         | 
| 13 | 
            -
                def initialize(parent, id, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, choices=[], style=0)
         | 
| 14 | 
            -
                    super(parent, id, pos, size, choices, style)
         | 
| 15 | 
            -
                    @typedText = ""
         | 
| 16 | 
            -
                    @log = parent.log
         | 
| 17 | 
            -
                    evt_key_down {|event| on_key(event)}
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
                
         | 
| 20 | 
            -
                def find_prefix(prefix)
         | 
| 21 | 
            -
                    @log.write_text("Looking for prefix: " + prefix.to_s)
         | 
| 22 | 
            -
                    if prefix
         | 
| 23 | 
            -
                        prefix.downcase!
         | 
| 24 | 
            -
                        length = prefix.length
         | 
| 25 | 
            -
                        0.upto(get_count) do |x|
         | 
| 26 | 
            -
                            text = get_string(x).to_s.downcase
         | 
| 27 | 
            -
                            if text[0,length] == prefix
         | 
| 28 | 
            -
                                @log.write_text("Prefix " + prefix + " is found.")
         | 
| 29 | 
            -
                                return x
         | 
| 30 | 
            -
                            end
         | 
| 31 | 
            -
                        end
         | 
| 32 | 
            -
                    end
         | 
| 33 | 
            -
                    @log.write_text("Prefix " + prefix + " is not found.")
         | 
| 34 | 
            -
                    return -1
         | 
| 35 | 
            -
                end
         | 
| 36 | 
            -
                
         | 
| 37 | 
            -
                def on_key(event)
         | 
| 38 | 
            -
                    key = event.get_key_code
         | 
| 39 | 
            -
                    if key >= 32 and key <= 127
         | 
| 40 | 
            -
                        @typedText += key.chr
         | 
| 41 | 
            -
                        item = find_prefix(@typedText)
         | 
| 42 | 
            -
                        if item != -1
         | 
| 43 | 
            -
                            set_selection(item)
         | 
| 44 | 
            -
                        end
         | 
| 45 | 
            -
                    elsif key == Wx::K_BACK # backspace removes one character and backs up
         | 
| 46 | 
            -
                        @typedText = @typedText[0..-2]
         | 
| 47 | 
            -
                        if not @typedText
         | 
| 48 | 
            -
                            set_selection(0)
         | 
| 49 | 
            -
                        else
         | 
| 50 | 
            -
                            item = find_prefix(@typedText)
         | 
| 51 | 
            -
                            if item != -1
         | 
| 52 | 
            -
                                set_selection(item)
         | 
| 53 | 
            -
                            end
         | 
| 54 | 
            -
                        end
         | 
| 55 | 
            -
                        
         | 
| 56 | 
            -
                    else
         | 
| 57 | 
            -
                        @typedText = ""
         | 
| 58 | 
            -
                        event.skip
         | 
| 59 | 
            -
                    end
         | 
| 60 | 
            -
                end
         | 
| 61 | 
            -
                
         | 
| 62 | 
            -
                def on_key_down(event)
         | 
| 63 | 
            -
                    
         | 
| 64 | 
            -
                end
         | 
| 65 | 
            -
            end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
            class TestListBox < Wx::Panel
         | 
| 68 | 
            -
                attr_reader :log
         | 
| 69 | 
            -
                def initialize(parent, log)
         | 
| 70 | 
            -
                    @log = log
         | 
| 71 | 
            -
                    super(parent, -1)
         | 
| 72 | 
            -
                    
         | 
| 73 | 
            -
                    sampleList = %w(zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen)
         | 
| 74 | 
            -
                    
         | 
| 75 | 
            -
                    Wx::StaticText.new(self, -1, "This example uses the wxListBox control.", Wx::Point.new(45,10))
         | 
| 76 | 
            -
                    
         | 
| 77 | 
            -
                    Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50), Wx::Size.new(65,18))
         | 
| 78 | 
            -
                    @lb1 = Wx::ListBox.new(self, 60, Wx::Point.new(80,50), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
         | 
| 79 | 
            -
                    evt_listbox(@lb1.get_id) {|event| on_evt_listbox(event)}
         | 
| 80 | 
            -
                    evt_listbox_dclick(@lb1.get_id) {|event| on_evt_listbox_dclick(event)}
         | 
| 81 | 
            -
                    @lb1.set_selection(3)
         | 
| 82 | 
            -
                    @lb1.append("with data", "This one has data")
         | 
| 83 | 
            -
                    @lb1.set_client_data(2, "This one has data")
         | 
| 84 | 
            -
                    
         | 
| 85 | 
            -
                    Wx::StaticText.new(self, -1, "Select many:", Wx::Point.new(200,50), Wx::Size.new(65,18))
         | 
| 86 | 
            -
                    @lb2 = Wx::ListBox.new(self, 70, Wx::Point.new(280,50), Wx::Size.new(80,120), sampleList, Wx::LB_EXTENDED)
         | 
| 87 | 
            -
                    evt_listbox(@lb2.get_id) {|event| on_evt_multi_listbox(event)}
         | 
| 88 | 
            -
                    @lb2.evt_right_up {|event| on_evt_right_button(event)}
         | 
| 89 | 
            -
                    @lb2.set_selection(0)
         | 
| 90 | 
            -
                    
         | 
| 91 | 
            -
                    sampleList += ["test a", "test aa", "test aab", "test ab", "test abc", "test abcc", "test abcd"]
         | 
| 92 | 
            -
                    sampleList.sort!
         | 
| 93 | 
            -
                    Wx::StaticText.new(self, -1, "Find typed prefix:", Wx::Point.new(15,250))
         | 
| 94 | 
            -
                    fp = FindPrefixListBox.new(self, -1, Wx::Point.new(110,250), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
         | 
| 95 | 
            -
                    fp.set_selection(0)
         | 
| 96 | 
            -
                end
         | 
| 97 | 
            -
                
         | 
| 98 | 
            -
                def on_evt_listbox(event)
         | 
| 99 | 
            -
                    @log.write_text("evt_listbox: #{event.get_string}, #{event.is_selection}, #{event.get_selection}, #{event.get_client_data}")
         | 
| 100 | 
            -
                end
         | 
| 101 | 
            -
                
         | 
| 102 | 
            -
                def on_evt_listbox_dclick(event)
         | 
| 103 | 
            -
                    @log.write_text("evt_listbox_dclick: " + @lb1.get_selection.to_s)
         | 
| 104 | 
            -
                    @lb1.delete(@lb1.get_selection)
         | 
| 105 | 
            -
                end
         | 
| 106 | 
            -
                
         | 
| 107 | 
            -
                def on_evt_multi_listbox(event)
         | 
| 108 | 
            -
                    @log.write_text("evt_multi_listbox: (" + 
         | 
| 109 | 
            -
                                     @lb2.get_selections.join(',') + ")")
         | 
| 110 | 
            -
                end
         | 
| 111 | 
            -
                
         | 
| 112 | 
            -
                def on_evt_right_button(event)
         | 
| 113 | 
            -
                    @log.write_text("evt_right_button: " + event.get_position.to_s)
         | 
| 114 | 
            -
                    if event.get_event_object.get_id == 70
         | 
| 115 | 
            -
                        selections = @lb2.get_selections
         | 
| 116 | 
            -
                        selections.reverse!
         | 
| 117 | 
            -
                        selections.each do |index|
         | 
| 118 | 
            -
                            @lb2.delete(index)
         | 
| 119 | 
            -
                        end
         | 
| 120 | 
            -
                    end
         | 
| 121 | 
            -
                end
         | 
| 122 | 
            -
            end
         | 
| 123 | 
            -
             | 
| 124 | 
            -
            module Demo
         | 
| 125 | 
            -
                def Demo.run(frame,nb,log)
         | 
| 126 | 
            -
                    win = TestListBox.new(nb, log)
         | 
| 127 | 
            -
                    return win
         | 
| 128 | 
            -
                end
         | 
| 129 | 
            -
                
         | 
| 130 | 
            -
                def Demo.overview
         | 
| 131 | 
            -
                    "A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections)."
         | 
| 132 | 
            -
                end
         | 
| 133 | 
            -
            end
         | 
| 134 | 
            -
             | 
| 135 | 
            -
             | 
| 136 | 
            -
            if __FILE__ == $0
         | 
| 137 | 
            -
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         | 
| 138 | 
            -
              load run_solo_lib
         | 
| 139 | 
            -
              run File.basename($0)
         | 
| 140 | 
            -
            end
         | 
| 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 FindPrefixListBox < Wx::ListBox
         | 
| 13 | 
            +
                def initialize(parent, id, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, choices=[], style=0)
         | 
| 14 | 
            +
                    super(parent, id, pos, size, choices, style)
         | 
| 15 | 
            +
                    @typedText = ""
         | 
| 16 | 
            +
                    @log = parent.log
         | 
| 17 | 
            +
                    evt_key_down {|event| on_key(event)}
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                def find_prefix(prefix)
         | 
| 21 | 
            +
                    @log.write_text("Looking for prefix: " + prefix.to_s)
         | 
| 22 | 
            +
                    if prefix
         | 
| 23 | 
            +
                        prefix.downcase!
         | 
| 24 | 
            +
                        length = prefix.length
         | 
| 25 | 
            +
                        0.upto(get_count) do |x|
         | 
| 26 | 
            +
                            text = get_string(x).to_s.downcase
         | 
| 27 | 
            +
                            if text[0,length] == prefix
         | 
| 28 | 
            +
                                @log.write_text("Prefix " + prefix + " is found.")
         | 
| 29 | 
            +
                                return x
         | 
| 30 | 
            +
                            end
         | 
| 31 | 
            +
                        end
         | 
| 32 | 
            +
                    end
         | 
| 33 | 
            +
                    @log.write_text("Prefix " + prefix + " is not found.")
         | 
| 34 | 
            +
                    return -1
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
                
         | 
| 37 | 
            +
                def on_key(event)
         | 
| 38 | 
            +
                    key = event.get_key_code
         | 
| 39 | 
            +
                    if key >= 32 and key <= 127
         | 
| 40 | 
            +
                        @typedText += key.chr
         | 
| 41 | 
            +
                        item = find_prefix(@typedText)
         | 
| 42 | 
            +
                        if item != -1
         | 
| 43 | 
            +
                            set_selection(item)
         | 
| 44 | 
            +
                        end
         | 
| 45 | 
            +
                    elsif key == Wx::K_BACK # backspace removes one character and backs up
         | 
| 46 | 
            +
                        @typedText = @typedText[0..-2]
         | 
| 47 | 
            +
                        if not @typedText
         | 
| 48 | 
            +
                            set_selection(0)
         | 
| 49 | 
            +
                        else
         | 
| 50 | 
            +
                            item = find_prefix(@typedText)
         | 
| 51 | 
            +
                            if item != -1
         | 
| 52 | 
            +
                                set_selection(item)
         | 
| 53 | 
            +
                            end
         | 
| 54 | 
            +
                        end
         | 
| 55 | 
            +
                        
         | 
| 56 | 
            +
                    else
         | 
| 57 | 
            +
                        @typedText = ""
         | 
| 58 | 
            +
                        event.skip
         | 
| 59 | 
            +
                    end
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
                
         | 
| 62 | 
            +
                def on_key_down(event)
         | 
| 63 | 
            +
                    
         | 
| 64 | 
            +
                end
         | 
| 65 | 
            +
            end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            class TestListBox < Wx::Panel
         | 
| 68 | 
            +
                attr_reader :log
         | 
| 69 | 
            +
                def initialize(parent, log)
         | 
| 70 | 
            +
                    @log = log
         | 
| 71 | 
            +
                    super(parent, -1)
         | 
| 72 | 
            +
                    
         | 
| 73 | 
            +
                    sampleList = %w(zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen)
         | 
| 74 | 
            +
                    
         | 
| 75 | 
            +
                    Wx::StaticText.new(self, -1, "This example uses the wxListBox control.", Wx::Point.new(45,10))
         | 
| 76 | 
            +
                    
         | 
| 77 | 
            +
                    Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50), Wx::Size.new(65,18))
         | 
| 78 | 
            +
                    @lb1 = Wx::ListBox.new(self, 60, Wx::Point.new(80,50), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
         | 
| 79 | 
            +
                    evt_listbox(@lb1.get_id) {|event| on_evt_listbox(event)}
         | 
| 80 | 
            +
                    evt_listbox_dclick(@lb1.get_id) {|event| on_evt_listbox_dclick(event)}
         | 
| 81 | 
            +
                    @lb1.set_selection(3)
         | 
| 82 | 
            +
                    @lb1.append("with data", "This one has data")
         | 
| 83 | 
            +
                    @lb1.set_client_data(2, "This one has data")
         | 
| 84 | 
            +
                    
         | 
| 85 | 
            +
                    Wx::StaticText.new(self, -1, "Select many:", Wx::Point.new(200,50), Wx::Size.new(65,18))
         | 
| 86 | 
            +
                    @lb2 = Wx::ListBox.new(self, 70, Wx::Point.new(280,50), Wx::Size.new(80,120), sampleList, Wx::LB_EXTENDED)
         | 
| 87 | 
            +
                    evt_listbox(@lb2.get_id) {|event| on_evt_multi_listbox(event)}
         | 
| 88 | 
            +
                    @lb2.evt_right_up {|event| on_evt_right_button(event)}
         | 
| 89 | 
            +
                    @lb2.set_selection(0)
         | 
| 90 | 
            +
                    
         | 
| 91 | 
            +
                    sampleList += ["test a", "test aa", "test aab", "test ab", "test abc", "test abcc", "test abcd"]
         | 
| 92 | 
            +
                    sampleList.sort!
         | 
| 93 | 
            +
                    Wx::StaticText.new(self, -1, "Find typed prefix:", Wx::Point.new(15,250))
         | 
| 94 | 
            +
                    fp = FindPrefixListBox.new(self, -1, Wx::Point.new(110,250), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
         | 
| 95 | 
            +
                    fp.set_selection(0)
         | 
| 96 | 
            +
                end
         | 
| 97 | 
            +
                
         | 
| 98 | 
            +
                def on_evt_listbox(event)
         | 
| 99 | 
            +
                    @log.write_text("evt_listbox: #{event.get_string}, #{event.is_selection}, #{event.get_selection}, #{event.get_client_data}")
         | 
| 100 | 
            +
                end
         | 
| 101 | 
            +
                
         | 
| 102 | 
            +
                def on_evt_listbox_dclick(event)
         | 
| 103 | 
            +
                    @log.write_text("evt_listbox_dclick: " + @lb1.get_selection.to_s)
         | 
| 104 | 
            +
                    @lb1.delete(@lb1.get_selection)
         | 
| 105 | 
            +
                end
         | 
| 106 | 
            +
                
         | 
| 107 | 
            +
                def on_evt_multi_listbox(event)
         | 
| 108 | 
            +
                    @log.write_text("evt_multi_listbox: (" + 
         | 
| 109 | 
            +
                                     @lb2.get_selections.join(',') + ")")
         | 
| 110 | 
            +
                end
         | 
| 111 | 
            +
                
         | 
| 112 | 
            +
                def on_evt_right_button(event)
         | 
| 113 | 
            +
                    @log.write_text("evt_right_button: " + event.get_position.to_s)
         | 
| 114 | 
            +
                    if event.get_event_object.get_id == 70
         | 
| 115 | 
            +
                        selections = @lb2.get_selections
         | 
| 116 | 
            +
                        selections.reverse!
         | 
| 117 | 
            +
                        selections.each do |index|
         | 
| 118 | 
            +
                            @lb2.delete(index)
         | 
| 119 | 
            +
                        end
         | 
| 120 | 
            +
                    end
         | 
| 121 | 
            +
                end
         | 
| 122 | 
            +
            end
         | 
| 123 | 
            +
             | 
| 124 | 
            +
            module Demo
         | 
| 125 | 
            +
                def Demo.run(frame,nb,log)
         | 
| 126 | 
            +
                    win = TestListBox.new(nb, log)
         | 
| 127 | 
            +
                    return win
         | 
| 128 | 
            +
                end
         | 
| 129 | 
            +
                
         | 
| 130 | 
            +
                def Demo.overview
         | 
| 131 | 
            +
                    "A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections)."
         | 
| 132 | 
            +
                end
         | 
| 133 | 
            +
            end
         | 
| 134 | 
            +
             | 
| 135 | 
            +
             | 
| 136 | 
            +
            if __FILE__ == $0
         | 
| 137 | 
            +
              run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
         | 
| 138 | 
            +
              load run_solo_lib
         | 
| 139 | 
            +
              run File.basename($0)
         | 
| 140 | 
            +
            end
         |