Sha256: 496f83b15efcb444a8173a88f09dfb8f88de356c2efd2ebfb85b3ad3855f9e61

Contents?: true

Size: 1.54 KB

Versions: 14

Compression:

Stored size: 1.54 KB

Contents

# -*- coding: utf-8 -*-


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

14 entries across 14 versions & 1 rubygems

Version Path
reflexion-0.1.35 lib/reflex/helper.rb
reflexion-0.1.34 lib/reflex/helper.rb
reflexion-0.1.33 lib/reflex/helper.rb
reflexion-0.1.32 lib/reflex/helper.rb
reflexion-0.1.31 lib/reflex/helper.rb
reflexion-0.1.30 lib/reflex/helper.rb
reflexion-0.1.29 lib/reflex/helper.rb
reflexion-0.1.28 lib/reflex/helper.rb
reflexion-0.1.27 lib/reflex/helper.rb
reflexion-0.1.26 lib/reflex/helper.rb
reflexion-0.1.25 lib/reflex/helper.rb
reflexion-0.1.24 lib/reflex/helper.rb
reflexion-0.1.23 lib/reflex/helper.rb
reflexion-0.1.22 lib/reflex/helper.rb