sweet 0.0.2 → 0.0.3
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/README.rdoc +9 -5
 - data/bin/sweet +3 -1
 - data/examples/fox/hello_world.rb +12 -0
 - data/examples/gtk2/hello_world.rb +14 -0
 - data/examples/swing/hello_world.rb +12 -0
 - data/examples/swt/components.rb +112 -0
 - data/examples/swt/components/buttons.rb +35 -0
 - data/examples/{hello_world.rb → swt/hello_world.rb} +2 -2
 - data/examples/{snippet108.rb → swt/snippet108.rb} +2 -2
 - data/examples/{snippet128.rb → swt/snippet128.rb} +7 -8
 - data/examples/{snippet169.rb → swt/snippet169.rb} +2 -2
 - data/examples/{snippet82.rb → swt/snippet82.rb} +2 -2
 - data/examples/wx/hello_world.rb +12 -0
 - data/lib/sweet.rb +22 -1
 - data/lib/sweet/base.rb +151 -177
 - data/lib/sweet/fox.rb +47 -0
 - data/lib/sweet/fox/application.rb +9 -0
 - data/lib/sweet/fox/object.rb +19 -0
 - data/lib/sweet/gtk2.rb +56 -0
 - data/lib/sweet/gtk2/application.rb +11 -0
 - data/lib/sweet/gtk2/widget.rb +5 -0
 - data/lib/sweet/hacks.rb +0 -17
 - data/lib/sweet/swing.rb +97 -0
 - data/lib/sweet/swing/application.rb +9 -0
 - data/lib/sweet/swing/component.rb +23 -0
 - data/lib/sweet/swing/frame.rb +13 -0
 - data/lib/sweet/swt.rb +193 -0
 - data/lib/sweet/swt/application.rb +17 -0
 - data/lib/sweet/{composite.rb → swt/composite.rb} +5 -2
 - data/lib/sweet/{dialog.rb → swt/dialog.rb} +0 -0
 - data/lib/sweet/{downloader.rb → swt/downloader.rb} +1 -1
 - data/lib/sweet/swt/shell.rb +22 -0
 - data/lib/sweet/swt/src.zip +0 -0
 - data/lib/sweet/swt/swt.jar +0 -0
 - data/lib/sweet/swt/widget.rb +89 -0
 - data/lib/sweet/wx.rb +57 -0
 - data/lib/sweet/wx/application.rb +9 -0
 - data/lib/sweet/wx/object.rb +19 -0
 - data/spec/api_spec.rb +15 -0
 - data/spec/downloader_spec.rb +28 -26
 - data/spec/fox_spec.rb +15 -0
 - data/spec/gtk2_spec.rb +15 -0
 - data/spec/sweet_spec.rb +15 -0
 - data/spec/swing_spec.rb +15 -0
 - data/spec/swt_spec.rb +15 -0
 - data/spec/wx_spec.rb +15 -0
 - metadata +44 -17
 - data/lib/sweet/shell.rb +0 -53
 - data/lib/sweet/widget.rb +0 -151
 
    
        data/lib/sweet/shell.rb
    DELETED
    
    | 
         @@ -1,53 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # TODO pack into WIDGETS
         
     | 
| 
       2 
     | 
    
         
            -
            class Java::OrgEclipseSwtWidgets::Shell
         
     | 
| 
       3 
     | 
    
         
            -
              attr_reader :display
         
     | 
| 
       4 
     | 
    
         
            -
              alias_property :title => :text
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              def sweeten(display, name, opts = {}, &block)
         
     | 
| 
       7 
     | 
    
         
            -
                @display = display
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                self.text = opts.delete(:title) || name
         
     | 
| 
       10 
     | 
    
         
            -
                w, h = opts.delete(:width), opts.delete(:height)
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                super(self, opts, &block)
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                pack
         
     | 
| 
       15 
     | 
    
         
            -
                size = (w || width), (h || height)
         
     | 
| 
       16 
     | 
    
         
            -
              end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              def sweet_containers
         
     | 
| 
       19 
     | 
    
         
            -
                @sweet_containers ||= [self]
         
     | 
| 
       20 
     | 
    
         
            -
              end
         
     | 
| 
       21 
     | 
    
         
            -
              
         
     | 
| 
       22 
     | 
    
         
            -
              def perform(&block)
         
     | 
| 
       23 
     | 
    
         
            -
                display.syncExec block
         
     | 
| 
       24 
     | 
    
         
            -
              end
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
              def busy(&block)
         
     | 
| 
       27 
     | 
    
         
            -
                Thread.new do
         
     | 
| 
       28 
     | 
    
         
            -
                  perform do
         
     | 
| 
       29 
     | 
    
         
            -
                    custom::BusyIndicator.showWhile(display) do
         
     | 
| 
       30 
     | 
    
         
            -
                      block.call
         
     | 
| 
       31 
     | 
    
         
            -
                    end
         
     | 
| 
       32 
     | 
    
         
            -
                  end
         
     | 
| 
       33 
     | 
    
         
            -
                end
         
     | 
| 
       34 
     | 
    
         
            -
              end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
              def menubar(&block)
         
     | 
| 
       37 
     | 
    
         
            -
                self.menu_bar = make_menu(:menubar, &block)
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
              def popup(&block)
         
     | 
| 
       41 
     | 
    
         
            -
                self.menu = make_menu(:popup, &block)
         
     | 
| 
       42 
     | 
    
         
            -
              end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
              def method_missing(name, *args, &block)
         
     | 
| 
       45 
     | 
    
         
            -
                Sweet.create_widget(sweet_containers.last, name, *args, &block) || super
         
     | 
| 
       46 
     | 
    
         
            -
              end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
              private
         
     | 
| 
       49 
     | 
    
         
            -
              def make_menu(type, &block)
         
     | 
| 
       50 
     | 
    
         
            -
                Sweet.create_widget(sweet_containers.last, type, &block)
         
     | 
| 
       51 
     | 
    
         
            -
              end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/sweet/widget.rb
    DELETED
    
    | 
         @@ -1,151 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'forwardable'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class Java::OrgEclipseSwtWidgets::Widget
         
     | 
| 
       4 
     | 
    
         
            -
              extend Forwardable
         
     | 
| 
       5 
     | 
    
         
            -
              attr_reader :app
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              def sweeten(app, opts, &block)
         
     | 
| 
       8 
     | 
    
         
            -
                @app = app
         
     | 
| 
       9 
     | 
    
         
            -
                self.options = opts
         
     | 
| 
       10 
     | 
    
         
            -
                
         
     | 
| 
       11 
     | 
    
         
            -
                if block
         
     | 
| 
       12 
     | 
    
         
            -
                  case handler = @block_handler
         
     | 
| 
       13 
     | 
    
         
            -
                  when nil
         
     | 
| 
       14 
     | 
    
         
            -
                    handle_container &block
         
     | 
| 
       15 
     | 
    
         
            -
                  when Symbol
         
     | 
| 
       16 
     | 
    
         
            -
                    send handler, &block
         
     | 
| 
       17 
     | 
    
         
            -
                  when Numeric
         
     | 
| 
       18 
     | 
    
         
            -
                    addListener handler, &block
         
     | 
| 
       19 
     | 
    
         
            -
                  when Proc
         
     | 
| 
       20 
     | 
    
         
            -
                    instance_eval do
         
     | 
| 
       21 
     | 
    
         
            -
                      handler.call self, opts, block
         
     | 
| 
       22 
     | 
    
         
            -
                    end
         
     | 
| 
       23 
     | 
    
         
            -
                  else
         
     | 
| 
       24 
     | 
    
         
            -
                    raise "Invalid :block_handler ",handler
         
     | 
| 
       25 
     | 
    
         
            -
                  end
         
     | 
| 
       26 
     | 
    
         
            -
                end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                puts "Unknown properties for class #{self.class}: #{opts.keys.inspect}" unless opts.empty?
         
     | 
| 
       29 
     | 
    
         
            -
              end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
              def app(&block)
         
     | 
| 
       32 
     | 
    
         
            -
                block ? @app.instance_eval(&block) : @app
         
     | 
| 
       33 
     | 
    
         
            -
              end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
              def append(&block)
         
     | 
| 
       36 
     | 
    
         
            -
                raise "Append called without block" unless block
         
     | 
| 
       37 
     | 
    
         
            -
                handle_container &block
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
              def meta(&block)
         
     | 
| 
       41 
     | 
    
         
            -
                @meta ||= class << self
         
     | 
| 
       42 
     | 
    
         
            -
                  self
         
     | 
| 
       43 
     | 
    
         
            -
                end
         
     | 
| 
       44 
     | 
    
         
            -
                block ? @meta.class_eval(&block) : @meta
         
     | 
| 
       45 
     | 
    
         
            -
              end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
              def self.alias_property(aliases = {})
         
     | 
| 
       48 
     | 
    
         
            -
                aliases.each do |from, to|
         
     | 
| 
       49 
     | 
    
         
            -
                  alias_method from, to unless "to"
         
     | 
| 
       50 
     | 
    
         
            -
                  alias_method "#{from}=", "#{to}=" unless "#{to}="
         
     | 
| 
       51 
     | 
    
         
            -
                end
         
     | 
| 
       52 
     | 
    
         
            -
              end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
              def options=(opts)
         
     | 
| 
       55 
     | 
    
         
            -
                # TODO reader method
         
     | 
| 
       56 
     | 
    
         
            -
                opts.each_pair do |k, v|
         
     | 
| 
       57 
     | 
    
         
            -
                  case k
         
     | 
| 
       58 
     | 
    
         
            -
                  when :hidden
         
     | 
| 
       59 
     | 
    
         
            -
                    setVisible !v
         
     | 
| 
       60 
     | 
    
         
            -
                  else
         
     | 
| 
       61 
     | 
    
         
            -
                    name = k.to_s + "="
         
     | 
| 
       62 
     | 
    
         
            -
                    if respond_to?(name)
         
     | 
| 
       63 
     | 
    
         
            -
                      if v
         
     | 
| 
       64 
     | 
    
         
            -
                        Sweet.debug "#{self.java_class.simple_name}.#{k} = #{v.inspect}"
         
     | 
| 
       65 
     | 
    
         
            -
                        send name, *v
         
     | 
| 
       66 
     | 
    
         
            -
                      end
         
     | 
| 
       67 
     | 
    
         
            -
                      opts.delete(k)
         
     | 
| 
       68 
     | 
    
         
            -
                    end
         
     | 
| 
       69 
     | 
    
         
            -
                  end
         
     | 
| 
       70 
     | 
    
         
            -
                end
         
     | 
| 
       71 
     | 
    
         
            -
              end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
              # TODO unify this layout mess somehow
         
     | 
| 
       75 
     | 
    
         
            -
              # TODO hierarchical hash for nicer client code
         
     | 
| 
       76 
     | 
    
         
            -
              def grid_data=(*opts)
         
     | 
| 
       77 
     | 
    
         
            -
                opts = Hash[opts]
         
     | 
| 
       78 
     | 
    
         
            -
                ax, ay = opts[:align]
         
     | 
| 
       79 
     | 
    
         
            -
                gx, gy = opts[:grab]
         
     | 
| 
       80 
     | 
    
         
            -
                sx, sy = opts[:span]
         
     | 
| 
       81 
     | 
    
         
            -
                args = [ax || swt::BEGINNING, ay || swt::CENTER,
         
     | 
| 
       82 
     | 
    
         
            -
                  gx || false, gy || false, sx || 1, sy || 1]
         
     | 
| 
       83 
     | 
    
         
            -
                args.map!{|v| v.is_a?(Symbol) ? v.swt_const : v}
         
     | 
| 
       84 
     | 
    
         
            -
                Sweet.debug args.inspect
         
     | 
| 
       85 
     | 
    
         
            -
                l = layouts::GridData.new(*args)
         
     | 
| 
       86 
     | 
    
         
            -
                self.layout_data = l
         
     | 
| 
       87 
     | 
    
         
            -
              end
         
     | 
| 
       88 
     | 
    
         
            -
              def row_data=(x, y = nil)
         
     | 
| 
       89 
     | 
    
         
            -
                self.layout_data = layouts::RowData.new(x || swt::DEFAULT, y || swt::DEFAULT)
         
     | 
| 
       90 
     | 
    
         
            -
              end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
              def perform(&block)
         
     | 
| 
       93 
     | 
    
         
            -
                app.perform &block
         
     | 
| 
       94 
     | 
    
         
            -
              end
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
              def hide
         
     | 
| 
       97 
     | 
    
         
            -
                self.visible = false
         
     | 
| 
       98 
     | 
    
         
            -
              end
         
     | 
| 
       99 
     | 
    
         
            -
              def show
         
     | 
| 
       100 
     | 
    
         
            -
                self.visible = true
         
     | 
| 
       101 
     | 
    
         
            -
              end
         
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
              def width
         
     | 
| 
       104 
     | 
    
         
            -
                size.x
         
     | 
| 
       105 
     | 
    
         
            -
              end
         
     | 
| 
       106 
     | 
    
         
            -
              def width=(value)
         
     | 
| 
       107 
     | 
    
         
            -
                self.size = value, nil
         
     | 
| 
       108 
     | 
    
         
            -
              end
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
              def height
         
     | 
| 
       111 
     | 
    
         
            -
                size.y
         
     | 
| 
       112 
     | 
    
         
            -
              end
         
     | 
| 
       113 
     | 
    
         
            -
              def height=(value)
         
     | 
| 
       114 
     | 
    
         
            -
                self.size = nil, value
         
     | 
| 
       115 
     | 
    
         
            -
              end
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
              def size=(*s)
         
     | 
| 
       118 
     | 
    
         
            -
                nw, nh = s.flatten
         
     | 
| 
       119 
     | 
    
         
            -
                nw ||= width
         
     | 
| 
       120 
     | 
    
         
            -
                nh ||= height
         
     | 
| 
       121 
     | 
    
         
            -
                setSize(nw, nh)
         
     | 
| 
       122 
     | 
    
         
            -
              end
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
              # TODO replace via import?
         
     | 
| 
       125 
     | 
    
         
            -
              def swt
         
     | 
| 
       126 
     | 
    
         
            -
                org.eclipse.swt.SWT
         
     | 
| 
       127 
     | 
    
         
            -
              end
         
     | 
| 
       128 
     | 
    
         
            -
              def widgets
         
     | 
| 
       129 
     | 
    
         
            -
                org.eclipse.swt.widgets
         
     | 
| 
       130 
     | 
    
         
            -
              end
         
     | 
| 
       131 
     | 
    
         
            -
              def layouts
         
     | 
| 
       132 
     | 
    
         
            -
                org.eclipse.swt.layout
         
     | 
| 
       133 
     | 
    
         
            -
              end
         
     | 
| 
       134 
     | 
    
         
            -
              def custom
         
     | 
| 
       135 
     | 
    
         
            -
                org.eclipse.swt.custom
         
     | 
| 
       136 
     | 
    
         
            -
              end
         
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
              def method_missing(name, *args, &block)
         
     | 
| 
       139 
     | 
    
         
            -
                handle_container(&block) rescue super
         
     | 
| 
       140 
     | 
    
         
            -
              end
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
              private
         
     | 
| 
       143 
     | 
    
         
            -
              def handle_container(&block)
         
     | 
| 
       144 
     | 
    
         
            -
                app.sweet_containers.push self
         
     | 
| 
       145 
     | 
    
         
            -
                app &block
         
     | 
| 
       146 
     | 
    
         
            -
              ensure
         
     | 
| 
       147 
     | 
    
         
            -
                app.sweet_containers.pop
         
     | 
| 
       148 
     | 
    
         
            -
              end
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
            end
         
     | 
| 
       151 
     | 
    
         
            -
             
     |