diff options
| -rw-r--r-- | lib/efl/evas.rb | 6 | ||||
| -rw-r--r-- | spec/evas_spec.rb | 85 | 
2 files changed, 91 insertions, 0 deletions
| diff --git a/lib/efl/evas.rb b/lib/efl/evas.rb index 641bf46..6e75fb6 100644 --- a/lib/efl/evas.rb +++ b/lib/efl/evas.rb @@ -128,6 +128,12 @@ module Efl                  Efl::FFI.evas_object_del @ptr                  @ptr=nil              end +            def === o +                @ptr === o.ptr +            end +            def address +                @ptr.address +            end              def geometry_get                  x = ::FFI::MemoryPointer.new :int                  y = ::FFI::MemoryPointer.new :int diff --git a/spec/evas_spec.rb b/spec/evas_spec.rb index 15c8c5e..6ef3cdb 100644 --- a/spec/evas_spec.rb +++ b/spec/evas_spec.rb @@ -262,5 +262,90 @@ describe Efl::Evas do              end          end      end +    describe Efl::Evas::EvasObject do +        # +        before(:all) do +            Evas.init +            @pixels = FFI::MemoryPointer.new :int, 100*100 +            @e = Evas::Evas.new +            @e.output_method_set Evas::render_method_lookup("buffer") +            @e.output_viewport_set 0, 0, 100, 100 +            @e.output_size_set 100, 100 +            einfo = Efl::FFI::EvasEngineInfoBuffer.new @e.engine_info_get +            einfo[:info][:depth_type] = Efl::FFI::EVAS_ENGINE_BUFFER_DEPTH_ARGB32 +            einfo[:info][:dest_buffer] = @pixels +            einfo[:info][:dest_buffer_row_bytes] = 100 * FFI::type_size(:int); +            einfo[:info][:use_color_key] = 0; +            einfo[:info][:alpha_threshold] = 0; +            einfo[:info][:func][:new_update_region] = nil #FFI::Pointer::NULL; +            einfo[:info][:func][:free_update_region] = nil #FFI::Pointer::NULL; +            @e.engine_info_set einfo +            @o = @e.object_add :rectangle +            @o.color = 200,200,200,200 +            @o.move 0, 0 +            @o.resize 100, 100 +            @o.show +        end +        after(:all) do +            @e.free +            @o.free +            @pixels.free +            Evas.shutdown +        end +        # +        it "clipper should work" do +            clipper = @e.object_add :rectangle +            clipper.color = 255,255,255,255 +            clipper.move 25, 25 +            clipper.resize 50, 50 +            @o.clip = clipper.ptr +            clipper.show +            @o.clip_get.address.should eql clipper.address +            Efl::Eina::EinaList.new(clipper.clipees_get).to_ary[0].address.should eql @o.address +            @o.clip_unset +            @o.clip_get.address.should eql 0 + +        end +        # +        it "focus functions should work" do +            @o.focus_get.should be_false +            @o.focus_set true +            @o.focus_get.should be_true +            @o.focus = false +            @o.focus_get.should be_false +        end +        # +        it "layer functions should work" do +            @o.layer_get.should eql 0 +            @o.layer_set 2 +            @o.layer_get.should eql 2 +            @o.layer = 0 +            @o.layer_get.should eql 0 +        end +        # +        it "name functions should work" do +            @o.name_set "My name" +            @o.name_get.should eql "My name" +        end +        # +        it "geometry functions should work" do +            # FIXME +#            @o.geometry_get.should eql [0,0,100,100] +#            @o.resize 50,50 +#            @o.geometry_get.should eql [0,0,50,50] +#            @o.move 10, 10 +#            @o.geometry_get.should eql [10,10,50,50] +        end +        # +        it "show hide visible should work" do +            @o.show +            @o.visible?.should be_true +            @o.hide +            @o.visible_get.should be_false +            @o.show +            @o.visible?.should be_true +        end +        # line 2829 +    end      #  end | 
