Sha256: 5c606623f51d1c766a3caad41ce5639c6aa2152fe41a2a8490f11beff89a08a7

Contents?: true

Size: 1.52 KB

Versions: 28

Compression:

Stored size: 1.52 KB

Contents

require 'xot/hookable'
require 'xot/universal_accessor'
require 'reflex/point'
require 'reflex/bounds'


module Reflex


  module Hookable

    include Xot::Hookable

    def hook(name, &block)
      super "on_#{name}".intern, &block
    end

  end# Hookable


  module HasFrame

    def move_to(*args)
      self.frame = frame.move_to(*args)
      self
    end

    def move_by(*args)
      self.frame = frame.move_by(*args)
      self
    end

    def resize_to(*args)
      self.frame = frame.resize_to(*args)
      self
    end

    def resize_by(*args)
      self.frame = frame.resize_by(*args)
      self
    end

    def inset_by(*args)
      self.frame = frame.inset_by(*args)
      self
    end

    %w[
      x y z w h d width height depth
      left top back right bottom front
      left_top right_top left_bottom right_bottom
      lt rt lb rb
      position pos size center
    ].each do |name|
      class_eval <<-END
        def #{name}()
          frame.#{name}
        end
        def #{name}=(*args)
          self.frame = frame.tap {|b| b.send :#{name}=, *args}
          #{name}
        end
      END

      universal_accessor name
    end

  end# HasFrame


  module HasTags

    def tag=(*tags)
      clear_tags
      tag(*tags.flatten)
    end

    alias tags= tag=

    def tag(*tags)
      tags.each {|tag| add_tag tag}
    end

    def untag(*tags)
      tags.each {|tag| remove_tag tag}
    end

    def tags()
      to_enum :each_tag
    end

    def clear_tags()
      untag(*tags.to_a)
    end

  end# HasTags


end# Reflex

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
reflexion-0.3.3 lib/reflex/helper.rb
reflexion-0.3.2 lib/reflex/helper.rb
reflexion-0.3.1 lib/reflex/helper.rb
reflexion-0.3 lib/reflex/helper.rb
reflexion-0.2.1 lib/reflex/helper.rb
reflexion-0.2 lib/reflex/helper.rb
reflexion-0.1.57 lib/reflex/helper.rb
reflexion-0.1.56 lib/reflex/helper.rb
reflexion-0.1.55 lib/reflex/helper.rb
reflexion-0.1.54 lib/reflex/helper.rb
reflexion-0.1.53 lib/reflex/helper.rb
reflexion-0.1.52 lib/reflex/helper.rb
reflexion-0.1.51 lib/reflex/helper.rb
reflexion-0.1.50 lib/reflex/helper.rb
reflexion-0.1.49 lib/reflex/helper.rb
reflexion-0.1.48 lib/reflex/helper.rb
reflexion-0.1.47 lib/reflex/helper.rb
reflexion-0.1.46 lib/reflex/helper.rb
reflexion-0.1.45 lib/reflex/helper.rb
reflexion-0.1.44 lib/reflex/helper.rb