class Fzeet::Control
Constants
- Font
Attributes
id[R]
parent[R]
Public Class Methods
crackNotification(args)
click to toggle source
# File lib/fzeet/windows/user/Control/Common.rb, line 27 def self.crackNotification(args) end
new(className, parent, id, opts = {})
click to toggle source
# File lib/fzeet/windows/user/Control/Common.rb, line 29 def initialize(className, parent, id, opts = {}) @parent = parent @id = Command[id] handlers = {} opts.delete_if { |k, v| next false unless v.kind_of?(Proc) handlers[k] = v; true } _opts = { xstyle: [], caption: id.capitalize, style: [], x: 0, y: 0, width: 0, height: 0, position: [], anchor: nil } badopts = opts.keys - _opts.keys; raise "Bad option(s): #{badopts.join(', ')}." unless badopts.empty? _opts.merge!(opts) _opts[:xstyle] = Fzeet.flags(_opts[:xstyle], *self.class::Prefix[:xstyle]) _opts[:caption] = _opts[:caption].to_s _opts[:style] = Fzeet.flags([:child, :visible, :tabstop], :ws_) | Fzeet.flags(_opts[:style], *self.class::Prefix[:style]) _opts[:x], _opts[:y], _opts[:width], _opts[:height] = _opts[:position] unless _opts[:position].empty? @handle = Windows.DetonateLastError(FFI::Pointer::NULL, :CreateWindowEx, _opts[:xstyle], className, _opts[:caption], _opts[:style], _opts[:x], _opts[:y], _opts[:width], _opts[:height], @parent.handle, FFI::Pointer.new(@id), Windows.GetModuleHandle(nil), nil ) attach sendmsg(:setfont, Font.handle, 1) handlers.each { |k, v| on(k, &v) } case _opts[:anchor] when :ltr @parent.on(:size) { |args| self.position = @parent.rect.tap { |r| r[:bottom] = _opts[:height] }.to_a args[:result] = nil if @parent.class == MDIChild } when :lrb @parent.on(:size) { |args| self.position = @parent.rect.tap { |r| r[:top] = r[:bottom] - _opts[:height]; r[:bottom] = _opts[:height] }.to_a args[:result] = nil if @parent.class == MDIChild } when :ltrb @parent.on(:size) { |args| self.position = @parent.rect.to_a args[:result] = nil if @parent.class == MDIChild } else raise ArgumentError, "Bad anchor spec: #{_opts[:anchor]}." end if _opts[:anchor] end
Public Instance Methods
dispose()
click to toggle source
# File lib/fzeet/windows/user/Control/Common.rb, line 97 def dispose; detach end