Class: Glimmer::DSL::Wx::ControlExpression

Inherits:
Expression
  • Object
show all
Includes:
ParentExpression
Defined in:
lib/glimmer/dsl/wx/control_expression.rb

Instance Method Summary collapse

Instance Method Details

#add_content(parent, keyword, *args, &block) ⇒ Object



52
53
54
55
56
57
# File 'lib/glimmer/dsl/wx/control_expression.rb', line 52

def add_content(parent, keyword, *args, &block)
  options = args.last.is_a?(Hash) ? args.last : {post_add_content: true}
  options[:post_add_content] = true if options[:post_add_content].nil?
  super
  parent&.post_add_content if options[:post_add_content]
end

#around(parent, keyword, args, block, &interpret_and_add_content) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/glimmer/dsl/wx/control_expression.rb', line 39

def around(parent, keyword, args, block, &interpret_and_add_content)
  # TODO refactor/extract this logic to a FrameExpression
  if keyword == 'frame'
    ::Wx::App.run do
      frame_proxy = interpret_and_add_content.call
      app_name = frame_proxy.app_name || frame_proxy.title
      self.app_name = app_name unless app_name.nil?
    end
  else
    interpret_and_add_content.call
  end
end

#can_interpret?(parent, keyword, *args, &block) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/glimmer/dsl/wx/control_expression.rb', line 31

def can_interpret?(parent, keyword, *args, &block)
  Glimmer::Wx::ControlProxy.exists?(keyword)
end

#interpret(parent, keyword, *args, &block) ⇒ Object



35
36
37
# File 'lib/glimmer/dsl/wx/control_expression.rb', line 35

def interpret(parent, keyword, *args, &block)
  Glimmer::Wx::ControlProxy.create(keyword, parent, args, &block)
end