Class: XRCClass
- Inherits:
-
Object
- Object
- XRCClass
- Defined in:
- lib/wx_sugar/xrc/xml_class.rb
Overview
Representation of a single GUI class defined in XRC. wxRuby permits subclasses of Frames, Dialog and Panels to be loaded from XRC.
Defined Under Namespace
Classes: Control
Constant Summary collapse
- VALID_CLASSES =
Only these classes may be subclassed in Ruby
%|wxFrame wxDialog wxPanel wxWizard|
Instance Attribute Summary collapse
-
#base_id ⇒ Object
readonly
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded.
-
#controls ⇒ Object
readonly
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded.
-
#file_name ⇒ Object
readonly
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded.
-
#sub_class ⇒ Object
readonly
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded.
-
#wx_class ⇒ Object
readonly
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded.
Class Method Summary collapse
-
.extract(xml_elem, xrc_file) ⇒ Object
Checks to see if a valid class can be created from
xml_elem
, and returns one if it can, or nil if it can’t.
Instance Method Summary collapse
-
#initialize(xml_elem, xrc_file) ⇒ XRCClass
constructor
Create a new class from
xml_elem
. - #load_func ⇒ Object
- #superclass ⇒ Object
Constructor Details
#initialize(xml_elem, xrc_file) ⇒ XRCClass
Create a new class from xml_elem
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 37 def initialize(xml_elem, xrc_file) @xml_src = xml_elem @file_name = xrc_file @base_id = xml_elem.attributes['name'] @wx_class = xml_elem.attributes['class'] @sub_class = xml_elem.attributes['subclass'] @controls = [] read_controls end |
Instance Attribute Details
#base_id ⇒ Object (readonly)
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded
15 16 17 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 15 def base_id @base_id end |
#controls ⇒ Object (readonly)
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded
15 16 17 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 15 def controls @controls end |
#file_name ⇒ Object (readonly)
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded
15 16 17 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 15 def file_name @file_name end |
#sub_class ⇒ Object (readonly)
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded
15 16 17 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 15 def sub_class @sub_class end |
#wx_class ⇒ Object (readonly)
base_id : the Wx identifier of the main window wx_class : the Wx class which this window inherits from sub_class : the ruby class name of this window class controls : an array of identified controls within this window file_name : the XRC file from which this class can be loaded
15 16 17 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 15 def wx_class @wx_class end |
Class Method Details
.extract(xml_elem, xrc_file) ⇒ Object
Checks to see if a valid class can be created from xml_elem
, and returns one if it can, or nil if it can’t. To be a valid class, the window must inherit from Frame, Dialog or Window, and must define a subclass name.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 21 def self.extract(xml_elem, xrc_file) p_class = xml_elem.attributes['class'] if not VALID_CLASSES.include?(p_class) warn "Cannot create wrapper for subclass of #{p_class}" return end if not xml_elem.attributes['subclass'] warn "Cannot create wrapper for class without 'subclass' attribute" return end new(xml_elem, xrc_file) end |
Instance Method Details
#load_func ⇒ Object
52 53 54 55 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 52 def load_func unadorned = wx_class.sub(/^wx/, '').downcase "load_#{unadorned}_subclass" end |
#superclass ⇒ Object
48 49 50 |
# File 'lib/wx_sugar/xrc/xml_class.rb', line 48 def superclass wx_class.sub(/^wx/, "Wx::") end |