]> Creatis software - bbtk.git/blobdiff - doc/bouml/bbtkk/128770
.
[bbtk.git] / doc / bouml / bbtkk / 128770
diff --git a/doc/bouml/bbtkk/128770 b/doc/bouml/bbtkk/128770
new file mode 100644 (file)
index 0000000..7ef7643
--- /dev/null
@@ -0,0 +1,4523 @@
+format 66
+"treemultictrl" // bbtk::kernel::src::ThirdParty::wx::treemultictrl
+  revision 1
+  modified_by 2 "davila"
+  // class settings
+  //class diagram settings
+  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_infonote default shadow default show_stereotype_properties default
+  //use case diagram settings
+  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
+  //sequence diagram settings
+  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+  //collaboration diagram settings
+  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
+  //object diagram settings
+   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
+  //component diagram settings
+  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
+  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+  //deployment diagram settings
+  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
+  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+  //state diagram settings
+  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
+  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
+  //activity diagram settings
+  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
+  show_infonote default drawing_language default show_stereotype_properties default
+  
+  classview 128258 "treemultictrl"
+    //class diagram settings
+    draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_infonote default shadow default show_stereotype_properties default
+    //collaboration diagram settings
+    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
+    //object diagram settings
+     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
+    //sequence diagram settings
+    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
+    //state diagram settings
+    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
+    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
+    //class settings
+    //activity diagram settings
+    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
+    show_infonote default drawing_language default show_stereotype_properties default
+    class 139778 "TreeMultiItemBase"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      operation 161026 "TreeMultiItemBase"
+       preserve_cpp_body_indent protected explicit_return_type ""
+       nparams 1
+         param inout name "parent" type class_ref 139906 // TreeMultiItemNode
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}${)}${volatile}${throw};
+"
+       cpp_def "//* TreeMultiItemBase
+
+//  * This class is the node of the whole tree. All the other classes in the
+
+//  * tree descend from this node. It contains the type of the class without
+//  * using RTTI. NOTE: this class cannot be constructed directly
+//  
+
+${comment}${inline}${class}::${name}${(}${t0} * ${p0}${)}
+       : _excluded(false)
+
+       , _x(0)
+       , _y(0)
+        , _width(0)
+
+        , _height(0)
+
+        , _parent(parent)
+
+        , m_Selected(false)
+
+#if(CHECKBOXVIEW)
+
+        , _checkbox(false)
+
+        , _checkboxState(0)
+
+#endif
+${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      attribute 139778 "_name"
+       protected explicit_type "wxString"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 139906 "_excluded"
+       protected explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 140034 "_type"
+       protected explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 140162 "_checkbox"
+       protected explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 140290 "_checkboxState"
+       protected explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      operation 161154 "~TreeMultiItemBase"
+       preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
+"
+       cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 161282 "GetType"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return _type; };
+"
+       
+       
+       
+       
+       comment " type of tree item"
+      end
+
+      operation 161410 "GetParent"
+       const cpp_inline public return_type class_ref 139906 // TreeMultiItemNode
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return _parent; };
+"
+       
+       
+       
+       
+      end
+
+      operation 161538 "GetName"
+       const cpp_inline public explicit_return_type "wxString"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+                return _name;
+        };
+"
+       
+       
+       
+       
+       comment "* Get name of this node "
+      end
+
+      operation 161666 "SetName"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "NewName" explicit_type "wxString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    this->_name = NewName;
+  };
+"
+       
+       
+       
+       
+       comment "* Set name of the item "
+      end
+
+      operation 161794 "IsTreeMultiItemRoot"
+       const cpp_virtual cpp_inline public return_type class_ref 140034 // TreeMultiItemRoot
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return 0;
+       };
+"
+       
+       
+       
+       
+       comment "* returns the instance pointer if the current node is
+        a TreeMultiItemRoot, and NULL when it's not.
+       "
+      end
+
+      operation 161922 "IsTreeMultiItemWindow"
+       const cpp_virtual cpp_inline public return_type class_ref 140162 // TreeMultiItemWindow
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return 0;
+       };
+"
+       
+       
+       
+       
+       comment "* returns the instance pointer if the current node is
+        a TreeMultiItemWindow, and NULL when it's not.
+       "
+      end
+
+      operation 162050 "IsTreeMultiItemNode"
+       const cpp_virtual cpp_inline public return_type class_ref 139906 // TreeMultiItemNode
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return 0;
+       };
+"
+       
+       
+       
+       
+       comment "* returns the instance pointer if the current node is
+        a TreeMultiItemNode, and NULL when it's not.
+       "
+      end
+
+      operation 162178 "SetExcluded"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "excluded" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               _excluded = excluded;
+       };
+"
+       
+       
+       
+       
+       comment "* Sets or resets the excluded flag. When excluded node is not visible "
+      end
+
+      operation 162306 "SetX"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "x" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               _x = x;
+       };
+"
+       
+       
+       
+       
+       comment "* Get / Set routine for X "
+      end
+
+      operation 162434 "GetX"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _x;
+       };
+"
+       
+       
+       
+       
+      end
+
+      operation 162562 "SetY"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "y" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               _y = y;
+       };
+"
+       
+       
+       
+       
+       comment "* Get / Set routine for Y "
+      end
+
+      operation 162690 "GetY"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _y;
+       };
+"
+       
+       
+       
+       
+      end
+
+      operation 162818 "SetHeight"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "height" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               _height = height;
+       };
+"
+       
+       
+       
+       
+       comment "* Get / Set routine for height "
+      end
+
+      operation 162946 "GetHeight"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _height;
+       };
+"
+       
+       
+       
+       
+      end
+
+      operation 163074 "SetWidth"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "width" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               _width = width;
+       };
+"
+       
+       
+       
+       
+       comment "* Get / Set routine for width "
+      end
+
+      operation 163202 "GetWidth"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _width;
+       };
+"
+       
+       
+       
+       
+      end
+
+      operation 163330 "IsVisible"
+       preserve_cpp_body_indent public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns true when this item is drawn somewhere in the
+           tree. Whenever a parent of this node is collapsed, it
+           is not visible and it is not necessary to perform i.e.
+           redraw actions. 
+               
+               It also returns false when this node is excluded from the
+               tree. 
+               
+               \\sa wxTreeMultiCtrl::Exclude(), wxTreeMultiCtrl::Include())
+       "
+      end
+
+      operation 163458 "IsExcluded"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+                return _excluded;
+        };
+"
+       
+       
+       
+       
+       comment " Returns if this node is excluded from the tree. If this item
+          is a Node, then all kids are excluded as well "
+      end
+
+      operation 163586 "IsSelected"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    return this->m_Selected;
+  };
+"
+       
+       
+       
+       
+       comment " item selection status handling
+* checks if the item is selected "
+      end
+
+      operation 163714 "Select"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    this->m_Selected = true;
+  };
+"
+       
+       
+       
+       
+       comment "* mark the current item as selected "
+      end
+
+      operation 163842 "ToggleSelection"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    this->m_Selected = !(this->m_Selected);
+  };
+"
+       
+       
+       
+       
+       comment "* toggle the selection status "
+      end
+
+      operation 163970 "Unselect"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    this->m_Selected = false;
+  };
+"
+       
+       
+       
+       
+       comment "* unmark the item "
+      end
+
+      operation 164098 "SetCheckbox"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "value" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               _checkbox = value;
+       };
+"
+       
+       
+       
+       
+       comment "* Sets checkbox or not. This does not influence the state of the checkbox "
+      end
+
+      operation 164226 "GetCheckbox"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _checkbox;
+       };
+"
+       
+       
+       
+       
+       comment "* Returns current state of the checkbox view "
+      end
+
+      operation 164354 "SetCheckboxState"
+       cpp_virtual cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "state" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               wxCHECK2(state < 3 && state >= 0, return);
+               _checkboxState = state;
+       };
+"
+       
+       
+       
+       
+       comment "* Sets checkbox state. If 0 it's unchecked, 1 = checked and 2 = tristate "
+      end
+
+      operation 164482 "GetCheckboxState"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _checkboxState;
+       };
+"
+       
+       
+       
+       
+       comment "* Returns current state of checkbox "
+      end
+
+      classrelation 135170 // _parent (<unidirectional association>)
+       relation 135170 --->
+         a role_name "_parent" private
+           cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+           classrelation_ref 135170 // _parent (<unidirectional association>)
+         b parent class_ref 139906 // TreeMultiItemNode
+      end
+
+      attribute 140418 "m_Selected"
+       private explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+    end
+
+    class 139906 "TreeMultiItemNode"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 135298 // <generalisation>
+       relation 135298 ---|>
+         a public
+           cpp default "${type}"
+           classrelation_ref 135298 // <generalisation>
+         b parent class_ref 139778 // TreeMultiItemBase
+      end
+
+      attribute 140546 "_items"
+       private explicit_type "TreeMultiItemBaseArray"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 140674 "_caption"
+       private explicit_type "wxString"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 140802 "_nodeExpanded"
+       private explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 140930 "m_Attributes"
+       private explicit_type "wxTreeItemAttr"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      operation 164610 "TreeMultiItemNode"
+       preserve_cpp_body_indent public explicit_return_type ""
+       nparams 3
+         param inout name "parent" type class_ref 139906 // TreeMultiItemNode
+         param in name "caption" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${volatile}${throw};
+"
+       cpp_def "//* TreeMultiItemNode
+//  * This class is a container holder for multiple TreeMultiItemBase classes.
+//  * Since both a TreeMultiItemNode and a TreeMultiItemWindow are a descendant
+//  * from a TreeMultiItemBase class, it can hold multiple of these.
+//  * In the case of a directory tree structure, it can hold multiple
+//  * directories, and leafs (files).
+//  
+// default constructor for container composite
+
+${comment}${inline}${class}::${name}${(}${t0} * ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}${)}
+       : TreeMultiItemBase(parent)
+       , _caption(caption)
+       , _nodeExpanded(true)
+
+${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 164738 "~TreeMultiItemNode"
+       preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${class}::${name}${(}${)}${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 164866 "IsTreeMultiItemNode"
+       const cpp_virtual cpp_inline public return_type class_ref 139906 // TreeMultiItemNode
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return (TreeMultiItemNode *)this;
+       };
+"
+       
+       
+       
+       
+       comment " isClass method"
+      end
+
+      operation 164994 "AddNode"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param inout name "node" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment " add methods
+"
+      end
+
+      operation 165122 "InsertNode"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param inout name "NodePtr" type class_ref 139778 // TreeMultiItemBase
+         param in name "Position" explicit_type "size_t"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 165250 "Clear"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment " delete methods
+"
+      end
+
+      operation 165378 "DeleteNode"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param inout name "node" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 165506 "DeleteNode"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "index" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 165634 "RemoveNode"
+       preserve_cpp_body_indent public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 1
+         param inout name "node" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} * ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 165762 "RemoveNode"
+       preserve_cpp_body_indent public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 1
+         param in name "index" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} * ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 165890 "GetNodeCount"
+       preserve_cpp_body_indent const public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment " get methods"
+      end
+
+      operation 166018 "GetNode"
+       preserve_cpp_body_indent const public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 1
+         param in name "index" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} * ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 166146 "Index"
+       preserve_cpp_body_indent const public explicit_return_type "int"
+       nparams 2
+         param inout name "node" type class_ref 139778 // TreeMultiItemBase
+         param in name "searchFromEnd" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 166274 "GetNodeNext"
+       preserve_cpp_body_indent const public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 1
+         param inout name "cookie" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+${comment}${inline}${type} * ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 166402 "First"
+       preserve_cpp_body_indent const public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "//------------------------------------------------------------
+
+
+${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 166530 "Last"
+       preserve_cpp_body_indent const public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// TreeMultiItemNode::First() const 
+
+${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 166658 "Fold"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "expand" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+               if(_nodeExpanded != expand)
+                       _nodeExpanded = expand;
+       };
+"
+       
+       
+       
+       
+       comment "* Fold function sets or clears the expanded flag. Note when excluded from drawing, this
+
+           will have no effect on redraw "
+      end
+
+      operation 166786 "GetCaption"
+       const cpp_inline public explicit_return_type "wxString"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _caption;
+       };
+"
+       
+       
+       
+       
+       comment "* Return caption "
+      end
+
+      operation 166914 "IsExpanded"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+               return _nodeExpanded;
+       };
+"
+       
+       
+       
+       
+       comment "* Returns true if the node is expanded. Subnodes can still be collapsed though "
+      end
+    end
+
+    class 140034 "TreeMultiItemRoot"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "* This class is the root class. It can hold many of the TreeMultiItemWindow and
+
+ * TreeMultiItemNode classes.
+
+ "
+      classrelation 135426 // <generalisation>
+       relation 135426 ---|>
+         a public
+           cpp default "${type}"
+           classrelation_ref 135426 // <generalisation>
+         b parent class_ref 139906 // TreeMultiItemNode
+      end
+
+      operation 167042 "TreeMultiItemRoot"
+       preserve_cpp_body_indent public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
+"
+       cpp_def "//* TreeMultiItemRoot
+
+// * This class is the class you use to create a tree. It contains all the
+
+// * public methods from a TreeMultiItemNode, but you can add more to it 
+
+// * because it is the root. A typical addition is the load entry for a 
+
+// * directory, or other type of enumeration. You could store the base path
+
+// * of a relative tree in this class.
+
+// 
+
+${comment}${inline}${class}::${name}${(}${)}
+
+       : TreeMultiItemNode(0, _T(\"\"), _T(\"\"))
+
+${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 167170 "~TreeMultiItemRoot"
+       preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
+"
+       cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 167298 "IsTreeMultiItemRoot"
+       const cpp_virtual cpp_inline public return_type class_ref 140034 // TreeMultiItemRoot
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+               return (TreeMultiItemRoot *)this;
+
+       };
+"
+       
+       
+       
+       
+       comment " IsClass method
+"
+      end
+    end
+
+    class 140162 "TreeMultiItemWindow"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      classrelation 135554 // <generalisation>
+       relation 135554 ---|>
+         a public
+           cpp default "${type}"
+           classrelation_ref 135554 // <generalisation>
+         b parent class_ref 139778 // TreeMultiItemBase
+      end
+
+      classrelation 135682 // _window (<unidirectional association>)
+       relation 135682 --->
+         a role_name "_window" private
+           cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+           classrelation_ref 135682 // _window (<unidirectional association>)
+         b parent class_ref 136322 // wxWindow
+      end
+
+      attribute 141058 "_span"
+       private explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      operation 167426 "TreeMultiItemWindow"
+       preserve_cpp_body_indent public explicit_return_type ""
+       nparams 2
+         param inout name "parent" type class_ref 139906 // TreeMultiItemNode
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${volatile}${throw};
+"
+       cpp_def "//* TreeMultiItemWindow
+
+//  *  This class is a possible end node for the tree. If you want multiple
+
+//  *  types of end-nodes you should copy this file and adjust it with a 
+
+//  *  different class name.
+
+//  
+
+${comment}${inline}${class}::${name}${(}${t0} * ${p0}, const ${t1} & ${p1}${)}
+
+       :  TreeMultiItemBase(parent)
+
+       , _window(0)
+
+       , _topSpacing(0)
+
+       , _frontSpacing(0)
+
+       , _span(false)
+
+${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 167554 "~TreeMultiItemWindow"
+       preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
+"
+       cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
+${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 167682 "IsTreeMultiItemWindow"
+       const cpp_virtual cpp_inline public return_type class_ref 140162 // TreeMultiItemWindow
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+               return (TreeMultiItemWindow *)this;
+
+       };
+"
+       
+       
+       
+       
+       comment " IsClass method
+"
+      end
+
+      operation 167810 "AssignWindow"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param inout name "wnd" type class_ref 136322 // wxWindow
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Assigns the given window to this TreeMultiItemWindow, and also destroys the 
+
+               present window. If the assigned window is 0, this item is not drawn
+
+               and removed from the tree visually "
+      end
+
+      operation 167938 "GetWindow"
+       cpp_inline public return_type class_ref 136322 // wxWindow
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+               return _window;
+
+       };
+"
+       
+       
+       
+       
+       comment "* Get window method "
+      end
+
+      operation 168066 "SetFrontSpacing"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "frontSpacing" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+
+               _frontSpacing = frontSpacing;
+
+       };
+"
+       
+       
+       
+       
+       comment " Sets front spacing "
+      end
+
+      operation 168194 "GetFrontSpacing"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+               return _frontSpacing;
+
+       };
+"
+       
+       
+       
+       
+       comment " Gets front spacing "
+      end
+
+      operation 168322 "SetTopSpacing"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "topSpacing" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+
+               _topSpacing = topSpacing;
+
+       };
+"
+       
+       
+       
+       
+       comment " Sets top spacing "
+      end
+
+      operation 168450 "GetTopSpacing"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+               return _topSpacing;
+
+       };
+"
+       
+       
+       
+       
+       comment " Gets top spacing "
+      end
+
+      operation 168578 "SetHorizontalSpan"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "span" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+
+               _span = span;
+
+       };
+"
+       
+       
+       
+       
+       comment " Sets horizontal span, meaning when this is set the window
+
+          attached may be resized horizontally when the window is resized "
+      end
+
+      operation 168706 "GetHorizontalSpan"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+               return _span;
+
+       };
+"
+       
+       
+       
+       
+       comment " Sets horizontal span, meaning when this is set the window
+
+          attached may be resized horizontally when the window is resized "
+      end
+
+      operation 168834 "SetCheckboxState"
+       preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
+       nparams 1
+         param in name "state" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Inherited from base, to enable or disable window "
+      end
+    end
+
+    class 140290 "anonymous1"
+      visibility package stereotype "enum"
+      cpp_decl "${comment}enum  {
+${items}
+};
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "* \\defgroup hitflags wxTreeMultiCtrl HitTest flags
+    @{
+"
+      attribute 141186 "wxTMC_HITTEST_GUTTER"
+       public type class_ref 140290 // anonymous1
+       init_value "= 1"
+       cpp_decl "  ${name}${value},${comment}"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 141314 "wxTMC_HITTEST_WINDOW"
+       public type class_ref 140290 // anonymous1
+       cpp_decl "  ${name}${value},${comment}"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 141442 "wxTMC_HITTEST_CAPTION"
+       public type class_ref 140290 // anonymous1
+       cpp_decl "  ${name}${value},${comment}"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 141570 "wxTMC_HITTEST_CHECKBOX"
+       public type class_ref 140290 // anonymous1
+       cpp_decl "  ${name}${value},${comment}"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+    end
+
+    class 140418 "wxTreeMultiItem"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "/ wxCoord was found in the gutter of the node (in front of the [+])
+/ wxCoord was found inside a window, or behind it, on a Window node
+/ wxCoord was found on a caption of a Node or Root item
+/ wxCoord was found on a checkbox (only when item really has a checkbox)
+* @}
+
+* @defgroup classes wxTreeMultiCtrl Classes
+    These classes are all the available classes in the wxTreeMultiCtrl you should know about.
+    @{
+
+    @}
+
+* \\class wxTreeMultiItem
+    \\ingroup classes
+    \\brief An intermediate class which is used to return as 'item' value for the wxTreeMultiCtrl. This class
+    is comparable with wxTreeItemId.
+
+    The wxTreeMultiItem is used to pass information to the user about the tree node in question. It can also be used point out where the
+    subnodes should be added.
+
+    For example:
+    \\code
+
+        wxTreeMultiItem item = MyMultiTreeCtrl->AddRoot(\"This is the first root\");
+
+        // now add a node to the root
+        if(item.IsOk())
+            MyMultiTreeCtrl->AppendWindow(item, new wxStaticText(MyMultiTreeCtrl, -1, \"This is a static text\");
+
+
+    \\endcode
+
+    The wxTreeMultiItem comes in three internal types which are used in the wxTreeMultiCtrl. For functions such as
+    wxTreeMultiCtrl::AddRoot, a Root item is returned. For functions such as wxTreeMultiCtrl::AppendWindow, a
+    Window node is returned. For functions such as wxTreeMultiCtrl::AppendNode, a Node item is returned.
+
+    \\li A Root item represents a top level item. Special operations on this item is adding multiple nodes to it from a
+    top level.
+
+    \\li A Node item represents a container item which has multiple sub items which can both be Window items, or Node items.
+    A root item is a special type of Node item, so all operations which are only for Node items, are also for Root items.
+
+    \\li A Window node represents an end node, which points to a wxWindow which represents the visual contents of this node.
+    This type of node can hold any wxWindow derived class.
+
+"
+      classrelation 135810 // _item (<unidirectional association>)
+       relation 135810 --->
+         a role_name "_item" private
+           cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+           classrelation_ref 135810 // _item (<unidirectional association>)
+         b parent class_ref 139778 // TreeMultiItemBase
+      end
+
+      operation 168962 "wxTreeMultiItem"
+       cpp_inline public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} {
+        _item = 0;
+    };
+"
+       
+       
+       
+       
+       comment "* Default declaration constructor, and should be used when declaring an item which gets assigned a new
+        value by e.g. wxTreeMultiCtrl::AppendNode. "
+      end
+
+      operation 169090 "wxTreeMultiItem"
+       cpp_inline public explicit_return_type ""
+       nparams 1
+         param inout name "ptr" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}${)}${volatile}${throw} {
+        _item = ptr;
+    };
+"
+       
+       
+       
+       
+      end
+
+      operation 169218 "GetItem"
+       const cpp_inline public return_type class_ref 139778 // TreeMultiItemBase
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+        return _item;
+
+    };
+"
+       
+       
+       
+       
+       comment " Returns the TreeMultiItemBase class. This shoult *NOT* be
+
+ used if you don't know what you are doing! This means never use it. */
+"
+      end
+
+      operation 169346 "operator ="
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        _item = item._item;
+
+    };
+"
+       
+       
+       
+       
+       comment "* The copy operator. Used in assigning one wxTreeMultiItem to another, usually in returning wxTreeMultiItem
+        classes from the wxTreeMultiCtrl.
+    "
+      end
+
+      operation 169474 "operator =="
+       const cpp_inline public explicit_return_type "bool"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return (this->GetItem() == item.GetItem());};
+"
+       
+       
+       
+       
+       comment "* Equality operator. It returns true if the items are identical or if both items are invalid. "
+      end
+
+      operation 169602 "operator !="
+       const cpp_inline public explicit_return_type "bool"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return (this->GetItem() != item.GetItem());};
+"
+       
+       
+       
+       
+       comment "* Inequality operator. It returns true if the items are different or one of them is invalid. "
+      end
+
+      operation 169730 "GetParent"
+       const cpp_inline public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+
+                wxCHECK(IsOk(), wxTreeMultiItem(0));
+
+                return wxTreeMultiItem(_item->GetParent());
+
+        };
+"
+       
+       
+       
+       
+       comment "* Returns the parent of the current wxTreeMultiItem. This means the wxTreeMultiNode is returned. It can
+
+            be useful to check or clear the checkbox at this level. "
+      end
+
+      operation 169858 "IsOk"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _item != 0;
+    };
+"
+       
+       
+       
+       
+       comment "* Validates if the wxTreeMultiItem is a valid instance to use in the wxTreeMultiCtrl. Returns TRUE when there
+        is a member value is associated with it, or FALSE when not. This value can also be checked when this class is returned from a wxTreeMultiCtrl operation. For example:
+
+        \\code
+
+            wxTreeMultiItem item = MyTreeMultiCtrl->FindNode(\"NAME\");
+            if(item.IsOk())
+            {
+                // Found the node, now do something with it
+            }
+            else
+            {
+                // Sorry, not found
+            }
+
+        \\endcode
+
+    "
+      end
+
+      operation 169986 "IsWindowItem"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        if(_item && _item->IsTreeMultiItemWindow())
+            return true;
+        return false;
+    };
+"
+       
+       
+       
+       
+       comment "* Returns TRUE when the wxTreeMultiItem is a Window item. This means the item is both valid, and points to a
+        window node. This means it can be used in functions that expect a Window node. If the item is invalid or a Window
+        item, FALSE is returned
+        \\sa wxTreeMultiCtrl::AppendWindow
+    "
+      end
+
+      operation 170114 "IsNodeItem"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        if(_item && (_item->IsTreeMultiItemNode() || _item->IsTreeMultiItemRoot()))
+            return true;
+        return false;
+    };
+"
+       
+       
+       
+       
+       comment "* Returns TRUE when the wxTreeMultiItem is a Node item. This means the item is both valid, and points to a
+        node element (i.e. setting the caption, counting node children, etc). If the item is invalid or not a Node
+        item, FALSE is returned.
+        When the item is actually a root item (specialised node type), this also returns TRUE.
+        \\sa wxTreeMultiCtrl::AppendNode wxTreeMultiCtrl::AddRoot
+    "
+      end
+
+      operation 170242 "IsRootItem"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        if(_item && _item->IsTreeMultiItemRoot())
+            return true;
+        return false;
+    };
+"
+       
+       
+       
+       
+       comment "* Returns True when the wxTreeMultiItem is a Root (top node) item. This means the item is both valid,
+        and points to a root element (this item is always shown as first node in the tree). A root node is
+        always visible, but can contain other collapsed children. If the item is invalid or not a Root node,
+        FALSE is returned.
+    "
+      end
+
+      operation 170370 "IsExpanded"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        wxCHECK(_item, false);
+        TreeMultiItemNode *n = _item->IsTreeMultiItemNode();
+        wxCHECK(n, false);
+
+        return n->IsExpanded();
+    };
+"
+       
+       
+       
+       
+       comment "* Returns TRUE if the node is expanded, else FALSE if it is collapsed. If the item is not a Root or Node
+        item, an assertion failure is generated (in debug mode) or FALSE is returned (in release mode).
+
+        \\sa wxTreeMultiCtrl::Expand, wxTreeMultiCtrl::Collapse, wxTreeMultiCtrl::CollapseAndReset
+    "
+      end
+
+      operation 170498 "IsExcluded"
+       cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        wxCHECK(_item, false);
+        return _item->IsExcluded();
+
+    };
+"
+       
+       
+       
+       
+       comment "* Returns true if this node is excluded from drawing. Please note that when this node is not visible
+        due to a higher excluded parent node but not literally excluded itself, it will return false (not excluded).
+        Use wxTreeMultiCtrl::GetExcludedParent() to get the node that hides this one. "
+      end
+
+      operation 170626 "IsSelected"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+
+      wxCHECK(this->GetItem(),false);
+
+      return this->GetItem()->IsSelected();
+
+    };
+"
+       
+       
+       
+       
+       comment "* Returns true if the item is selected.
+
+       Please note that currently only nodes can be selected.
+
+   "
+      end
+
+      operation 170754 "IsVisible"
+       cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        wxCHECK(_item, false);
+        return _item->IsVisible();
+    };
+"
+       
+       
+       
+       
+       comment "* Returns true if this node is visible. Please note that when this node is a child node of a collapsed
+
+        node, it is not visible. Also if this node is a child node of an excluded node, it is also not visible.
+
+        It does <b>NOT</b> return false when it's drawn somewhere outside of the visible area. "
+      end
+    end
+
+    class 140546 "wxTreeMultiWindowInfo"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "* \\class wxTreeMultiWindowInfo
+
+    \\ingroup classes
+
+    \\brief This class contains information for every Window node to be added.
+
+
+    This class can be used to modify the behaviour of the Window node to be added, and can be reused to pass along
+    upon every wxTreeMultiCtrl::AppendWindow call. For example:
+
+    \\code
+
+        wxTreeMultiWindowInfo wndinfo;
+
+        MyTreeMultiCtrl->AppendWindow(item, new wxStaticText(MyTreeMultiCtrl,
+                                      -1, \"Press this button\"), \"\", wndinfo));
+
+        // now adjust the spacing of our next window to add, by indenting
+        // 4 times the indent size
+
+        wndinfo.Indent(4);
+        MyTreeMultiCtrl->AppendWindow(item, new wxButton(MyTreeMultiCtrl,
+                                      -1, \"Apply\"), \"\", wndinfo);
+
+    \\endcode
+
+    The class is created to prevent long parameter lists in the functions. Other ways to manipulate a newly added
+    Window node are;
+
+    \\li Change top spacing of the Window node to be added
+    \\li Change front spacing (indent) of the Window node
+    \\li Set extra flags for this Window node
+
+-------------------------------------------------------------------------------------------------------------------"
+      attribute 141698 "_flags"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 141826 "_topSpacing"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 141954 "_checkState"
+       private explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      operation 170882 "wxTreeMultiWindowInfo"
+       cpp_inline public explicit_return_type ""
+       nparams 4
+         param in name "flags" explicit_type "int"
+         param in name "frontSpacing" explicit_type "int"
+         param in name "topSpacing" explicit_type "int"
+         param in name "checkState" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} ${p3}${v3}${)}${volatile}${throw} : _flags(flags)
+
+        , _frontSpacing(frontSpacing)
+
+        , _frontSpacingOrg(frontSpacing)
+
+        , _topSpacing(topSpacing)
+
+        , _checkState(checkState)
+
+#else
+
+    wxTreeMultiWindowInfo(int flags, int frontSpacing, int topSpacing)
+
+        : _flags(flags)
+
+        , _frontSpacing(frontSpacing)
+
+        , _frontSpacingOrg(frontSpacing)
+
+        , _topSpacing(topSpacing)
+
+#endif
+
+    {
+
+        // constructor
+
+    };
+"
+       
+       
+       
+       
+      end
+
+      operation 171010 "Indent"
+       cpp_inline public explicit_return_type "int"
+       nparams 1
+         param in name "num" explicit_type "int"
+           defaultvalue "1"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        if(num > 0)
+            _frontSpacing += (_frontSpacingOrg * num);
+        return _frontSpacing;
+    };
+"
+       
+       
+       
+       
+       comment "* Adds indent to original front spacing and increments it with that value (quick extra indent).
+        The original value of FrontSpacing (see SetFrontSpacing() gets indented by multiplying
+        the 'num' factor (default = 1) times the indent value. So if the FrontSpacing was set to 10,
+        and Indent(2) is called, the new indent will be 30. (10 + 2 * 10). The original FrontSpacing
+        value is remembered, so calling Outdent(2) will bring it back to 10 (30 - (2*10). Calling
+        SetFrontSpacing with a new value, deletes the old indent.
+
+        \\sa Outdent, SetFrontSpacing
+    "
+      end
+
+      operation 171138 "Outdent"
+       cpp_inline public explicit_return_type "int"
+       nparams 1
+         param in name "num" explicit_type "int"
+           defaultvalue "1"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        _frontSpacing -= (_frontSpacingOrg * num);
+        if(_frontSpacing < 0)
+            _frontSpacing = 0;
+        return _frontSpacing;
+    };
+"
+       
+       
+       
+       
+       comment "* Reduces indent a number of times, by subtracting 'num' times the original FrontSpacing value from
+        the current FrontSpacing value (quick extra indent). Thus if the original FrontSpacing was set to
+        10, and the current indent value is 40, Outdent(2) will do 40 - (2 * 10) = 20
+
+        \\sa Indent, SetFrontSpacing
+    "
+      end
+
+      operation 171266 "SetFrontSpacing"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "frontSpacing" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        _frontSpacing = frontSpacing;
+        _frontSpacingOrg = frontSpacing;
+    };
+"
+       
+       
+       
+       
+       comment "* Sets FrontSpacing value. This also resets the current indent level.  "
+      end
+
+      operation 171394 "GetFrontSpacing"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _frontSpacing;
+    };
+"
+       
+       
+       
+       
+       comment "* Gets front spacing. This will return the current indent level set. If Indent or Outdent is used,
+        this level represents the current Indent level."
+      end
+
+      operation 171522 "SetTopSpacing"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "topSpacing" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        _topSpacing = topSpacing;
+        if(_topSpacing < 0)
+            _topSpacing = 0;
+    };
+"
+       
+       
+       
+       
+       comment "* Sets top spacing. This means the number of pixels spacing between the last node and the next one to
+        be added.
+    "
+      end
+
+      operation 171650 "GetTopSpacing"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _topSpacing;
+    };
+"
+       
+       
+       
+       
+       comment " Gets top spacing currently set. "
+      end
+
+      operation 171778 "SetFlags"
+       cpp_inline public explicit_return_type "int"
+       nparams 1
+         param in name "flags" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        int tmp = _flags;
+        _flags = flags;
+        return tmp;
+    };
+"
+       
+       
+       
+       
+       comment "* Sets the current flags set, and returns previous flags state.
+        \\sa @link wndflags wxTreeMultiWindowInfo flags@endlink
+    "
+      end
+
+      operation 171906 "GetFlags"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _flags;
+    };
+"
+       
+       
+       
+       
+       comment "* Gets the current flags set.
+        \\sa @link wndflags wxTreeMultiWindowInfo flags@endlink
+    "
+      end
+
+      operation 172034 "AddFlag"
+       cpp_inline public explicit_return_type "int"
+       nparams 1
+         param in name "flag_mask" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        int tmp = _flags;
+        _flags |= flag_mask;
+        return tmp;
+    };
+"
+       
+       
+       
+       
+       comment "* Or's the given flag with the current flagset, and adds it. The
+        old flag set is returned before the OR is applied.
+        \\sa @link wndflags wxTreeMultiWindowInfo flags@endlink
+    "
+      end
+
+      operation 172162 "RemoveFlag"
+       cpp_inline public explicit_return_type "int"
+       nparams 1
+         param in name "flag_mask" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        int tmp = _flags;
+        _flags &= ~(flag_mask);
+        return tmp;
+    };
+"
+       
+       
+       
+       
+       comment "* And's the given flag in a negated manner and removes this flag set from
+        the current flags.  The old flag set is returned.
+        \\sa @link wndflags wxTreeMultiWindowInfo flags@endlink
+    "
+      end
+
+      operation 172290 "SetDefaultCheckState"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "checkState" explicit_type "bool"
+           defaultvalue "true"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        _checkState = checkState;
+    };
+"
+       
+       
+       
+       
+       comment "* Sets the default checkstate if checkboxes if SetCheckboxView is chosen. For all the
+        items to be added (even captions) this checkstate is chosen. The default checkstate
+        is false. <b>This needs USE_CHECKBOXVIEW set to YES, or CHECKBOXVIEW=1 during compile</b> "
+      end
+
+      operation 172418 "GetDefaultCheckState"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _checkState;
+    };
+"
+       
+       
+       
+       
+       comment "* Gets the default checkstate of the item. <b>This needs USE_CHECKBOXVIEW set to YES, or CHECKBOXVIEW=1 during compile</b>
+        \\sa SetDefaultCheckState "
+      end
+    end
+
+    class 140674 "wxTreeMultiCtrl"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "* \\class wxTreeMultiCtrl
+    \\ingroup classes
+    \\brief This is the visual control, which will contain all the logic for the tree mechanism.
+
+    The wxTreeMultiCtrl is the container class which can be filled in to get the tree shaped structure in
+    which the controls are displayed. The user can add / delete new nodes at runtime, expand or collapse
+    nodes, perform get or set actions on the controls inside, and iterate over the items.
+
+    A typical usage of the wxTreeCtrl is;
+
+    \\code
+    wxTreeMultiCtrl *tmc = new wxTreeMultiCtrl(this, -1);
+
+    // add root
+    wxTreeMultiItem item = tmc->AddRoot(\"This is the first root\");
+
+    // create a wxTreeMultiWindowInfo object for indenting etc
+    wxTreeMultiWindowInfo wndinfo;
+
+    // add subitem to root
+    tmc->AppendWindow(item, new wxButton(tmc, -1, \"Press this\"), \"\", wndinfo);
+
+    // indent a few
+    wndinfo.Indent(4);
+
+    // add a new one
+    tmc->AddWindow(item, new wxCheckBox(tmc, ID_MYCHECK, \"Check this!\"), \"\", wndinfo);
+
+    // now check the value of the checkbox
+    tmc->SetBooleanValue(ID_MYCHECK, true);
+
+    \\endcode
+
+    <b>IMPORTANT:</b> Every control added to the wxTreeMultiCtrl has to be child of the wxTreeMultiCtrl.
+
+"
+      classrelation 135938 // <generalisation>
+       relation 135938 ---|>
+         a public
+           cpp default "${type}"
+           classrelation_ref 135938 // <generalisation>
+         b parent class_ref 140802 // typedef23
+      end
+
+      attribute 142082 "_style"
+       private explicit_type "long"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142210 "_captionHeight"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142338 "_gutterWidth"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142466 "_iconWidth"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142594 "_iconHeight"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142722 "_maxHeight"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142850 "_spacingY"
+       private explicit_type "int"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 142978 "_create_called"
+       private explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 143106 "_checkboxView"
+       private explicit_type "bool"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 143234 "m_HilightBrush"
+       private explicit_type "wxBrush"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 143362 "_captionFont"
+       private explicit_type "wxFont"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      attribute 143490 "m_SelectedItems"
+       private explicit_type "wxArrayTreeMultiItem"
+       cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
+"
+       java_decl ""
+       php_decl ""
+       python_decl ""
+       idl_decl ""
+      end
+
+      operation 172546 "DoFold"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 3
+         param inout name "item" type class_ref 139778 // TreeMultiItemBase
+         param in name "expand" explicit_type "bool"
+         param in name "recursive" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::Unselect(wxTreeMultiItem const&) 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Does the actual collapsing / expanding. So that Expand and Collapse aren't using the same code twice "
+      end
+
+      operation 172674 "RedrawFromNode"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "n" type class_ref 139906 // TreeMultiItemNode
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Redraws and recalculates the nodes from the current node. It will also clear all 'dirty' flags when
+        they are recalculated "
+      end
+
+      operation 172802 "RedrawFromParentNode"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "n" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::InsertWindow(TreeMultiItemNode*, size_t, wxWindow*, wxString const&, wxTreeMultiWindowInfo const&, int) 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Redraws from parent node of this node "
+      end
+
+      operation 172930 "DrawCheckbox"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 3
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+         param inout name "dc" explicit_type "wxDC"
+         param in name "convertScrolled" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} & ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Draws checkbox belonging to this node, in the given state "
+      end
+
+      operation 173058 "RecalculateNodePositions"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Recalculate the space needed based on every node. It goes as follows.
+        - A foldable node (TreeMultiItemNode) is as high as the 'Jg' y-size. This type only has a caption plus a
+          picture which explains the state ([+] or [-]), the width will be the caption length
+        - A window node will be as high as the y size of the window. The X size is the total length of the
+          window.
+        - For every child node an indent will be added to the x size.
+
+        Only visible nodes will be recalculated. Non visible (collapsed) children will be skipped  "
+      end
+
+      operation 173186 "CalculateNodeDimensions"
+       preserve_cpp_body_indent private explicit_return_type "int"
+       nparams 3
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+         param in name "currentY" explicit_type "int"
+         param in name "level" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Recurses into the whole tree and provides every node with the proper x and y values. All non visible items
+        are skipped (so when it encounters a collapsed node, it's children are not calculated). Returns the last Y "
+      end
+
+      operation 173314 "DrawNode"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 2
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+         param inout name "dc" explicit_type "wxDC"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 173442 "SetWindowBackgroundColour"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 3
+         param inout name "wnd" type class_ref 136322 // wxWindow
+         param in name "col" explicit_type "wxColour"
+         param in name "flags" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, const ${t1} & ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Sets background colour of all the windows and subwindows in this wxWindow. This is very handy
+        for wxPanel derived classes which need to be made equal to the background colour of the wxTreeMultiCtrl "
+      end
+
+      operation 173570 "ShowTreeMultiWindow"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 2
+         param inout name "window" type class_ref 140162 // TreeMultiItemWindow
+         param in name "show" explicit_type "bool"
+           defaultvalue "true"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Shows or hides the assigned window (if there is any) "
+      end
+
+      operation 173698 "UpdateAllWindowVisibility"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Goes down the tree, and if a window is not visible (thus all it's children aren't too) it will hide
+        the window so it is not shown on the control "
+      end
+
+      operation 173826 "UpdateTreeMultiWindowVisibility"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 2
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+         param in name "show" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Hides tree multi window. It this is a TreeMultiItemNode, hide all subwindows as well. "
+      end
+
+      operation 173954 "RecalculateVirtualSize"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Recalculates totally needed virtual size of the wxTreeMultiCtrl. It will scan for
+        the largest window, with the biggest size, and report that back "
+      end
+
+      extra_member 128258 "using"
+       
+       cpp "  using wxScrolledWindow::AdjustScrollbars;" ""
+       java ""
+       php ""
+       python ""
+       idl ""
+      end
+
+      operation 174082 "AdjustScrollbars"
+       preserve_cpp_body_indent cpp_virtual private explicit_return_type "void"
+       nparams 2
+         param in name "x" explicit_type "int"
+         param in name "y" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 174210 "RecalculateVirtualSizeFromNode"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 3
+         param in name "node" type class_ref 139906 // TreeMultiItemNode
+         param inout name "x" explicit_type "int"
+         param inout name "y" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}, ${t1} & ${p1}${v1}, ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} * ${p0}, ${t1} & ${p1}, ${t2} & ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Recalculates and accumulates largest x and y "
+      end
+
+      operation 174338 "FindNodeByPoint"
+       preserve_cpp_body_indent private return_type class_ref 139778 // TreeMultiItemBase
+       nparams 3
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+         param in name "pt" explicit_type "wxPoint"
+         param inout name "area" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${t0} * ${p0}, const ${t1} & ${p1}, ${t2} & ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Scans for TreeMultiItemBase node that contains x,y and in area returns a hittest constant to
+
+        indicate what matched "
+      end
+
+      operation 174466 "FindWindowNode"
+       preserve_cpp_body_indent private return_type class_ref 140418 // wxTreeMultiItem
+       nparams 2
+         param inout name "wnd" type class_ref 136322 // wxWindow
+         param inout name "n" type class_ref 139906 // TreeMultiItemNode
+           defaultvalue "0"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} * ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Scans for TreeMultiItemWindow that holds the wxWindow pointer. Does not scan in panels or does
+
+        a deep search. Reason, this function is used to advance to next TreeMultiItemWindow for focus
+
+        on this wxScrolledWindow. If a sub window is found, it will skip other windows on that same level "
+      end
+
+      operation 174594 "FindNextVisibleWindowItem"
+       preserve_cpp_body_indent private return_type class_ref 140162 // TreeMultiItemWindow
+       nparams 2
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+         param in name "index" explicit_type "int"
+           defaultvalue "-1"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Finds next visible window item in chain. If not found use FindFirstVisibleItem to start from the
+        beginning "
+      end
+
+      operation 174722 "AdjustIconsDeltaY"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adjust the centering of the bitmap icons (collapse / expand) when the caption font changes. They need to
+
+        be centered in the middle of the font, so a bit of deltaY adjustment is needed "
+      end
+
+      operation 174850 "CalculateNodeSpanning"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Calculate the spanning of the individual nodes "
+      end
+
+      operation 174978 "SetRecursiveCheckState"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 2
+         param inout name "n" type class_ref 139906 // TreeMultiItemNode
+         param in name "check" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Recurse to all the children and set the checkbox state (even when there is no checkbox) "
+      end
+
+      operation 175106 "ScanTristateCheckstates"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "b" type class_ref 139778 // TreeMultiItemBase
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* From current checked node, all children will be scanned and the parent node of this node
+        will get tristate if the checked items are scattered (some are some aren't). If all nodes in this
+        node are checked, the parent node gets checked all the way up to the last one that matches
+        criteria. If all are cleared, parent node gets cleared "
+      end
+
+      operation 175234 "InsertNode"
+       preserve_cpp_body_indent private return_type class_ref 140418 // wxTreeMultiItem
+       nparams 4
+         param inout name "ParentPtr" type class_ref 139906 // TreeMultiItemNode
+         param in name "Position" explicit_type "size_t"
+         param in name "Caption" explicit_type "wxString"
+         param in name "Name" explicit_type "wxString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* \\name Private add and delete methods
+
+       @{
+
+   
+* Inserts a node into the parent's node at the specified position.
+
+       As this is a private method error checking is limited. Therefore, it has to be guaranteed that this method
+
+       is only called with a valid parent node pointer.
+
+       The position is zero based. In case the position is equal or larger than the current number of
+
+       parent's elements the new node is appended.
+
+       The newly inserted node is being returned.
+
+   "
+      end
+
+      operation 175362 "InsertWindow"
+       preserve_cpp_body_indent private return_type class_ref 140418 // wxTreeMultiItem
+       nparams 6
+         param inout name "ParentPtr" type class_ref 139906 // TreeMultiItemNode
+         param in name "Position" explicit_type "size_t"
+         param inout name "WindowPtr" type class_ref 136322 // wxWindow
+         param in name "Name" explicit_type "wxString"
+         param in name "Info" type class_ref 140546 // wxTreeMultiWindowInfo
+         param in name "Flags" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} * ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, ${t5} ${p5}${v5}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::InsertNode(TreeMultiItemNode*, size_t, wxString const&, wxString const&) 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}, ${t2} * ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}, ${t5} ${p5}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Inserts a window into the parent's node at the specified position.
+
+       As this is a private method error checking is limited. Therefore, it has to be guaranteed that this method
+
+       is only called with a valid parent node and window pointer.
+
+       The position is zero based. In case the position is equal or larger than the current number of
+
+       parent's elements the new node is appended.
+
+       The newly inserted window is being returned.
+
+   "
+      end
+
+      operation 175490 "Init"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @}
+
+   "
+      end
+
+      operation 175618 "OnPaint"
+       private explicit_return_type "void"
+       nparams 1
+         param inout name "event" explicit_type "wxPaintEvent"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment " handlers
+---------
+virtual void OnDraw(wxDC& dc);
+"
+      end
+
+      operation 175746 "OnMouseClick"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "event" explicit_type "wxMouseEvent"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 175874 "OnRightMouseClick"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "Event" explicit_type "wxMouseEvent"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 176002 "OnKey"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 1
+         param inout name "event" explicit_type "wxKeyEvent"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 176130 "OnSize"
+       private explicit_return_type "void"
+       nparams 1
+         param inout name "event" explicit_type "wxSizeEvent"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+      end
+
+      operation 176258 "RecalculateSpanSizes"
+       preserve_cpp_body_indent private explicit_return_type "void"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Recalculates the spanning controls "
+      end
+
+      operation 176386 "wxTreeMultiCtrl"
+       cpp_inline public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : _create_called(false)
+    {
+
+        Init();
+    };
+"
+       
+       
+       
+       
+       comment "* Two step constructor. Call Create when this constructor is called to build up the
+        wxTreeMultiCtrl
+    "
+      end
+
+      operation 176514 "wxTreeMultiCtrl"
+       cpp_inline public explicit_return_type ""
+       nparams 7
+         param inout name "parent" type class_ref 136322 // wxWindow
+         param in name "id" explicit_type "wxWindowID"
+           defaultvalue "-1"
+         param in name "pos" explicit_type "wxPoint"
+           defaultvalue "wxDefaultPosition"
+         param in name "size" explicit_type "wxSize"
+           defaultvalue "wxDefaultSize"
+         param in name "style" explicit_type "long"
+           defaultvalue "wxTMC_DEFAULT_STYLE"
+         param in name "validator" explicit_type "wxValidator"
+           defaultvalue "wxDefaultValidator"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxTreeMultiCtrlNameStr"
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, ${t4} ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}${)}${volatile}${throw} : _style(style | wxTAB_TRAVERSAL)
+        , _create_called(false)
+    {
+        Create(parent, id, pos, size, style, validator, name);
+    };
+"
+       
+       
+       
+       
+       comment "* The default constructor. The style wxTAB_TRAVERSAL is enforced to make sure that the
+        focus handling is being done correctly. The styles to be used are styles valid for
+        the wxWindow and wxScrolledWindow
+    "
+      end
+
+      operation 176642 "~wxTreeMultiCtrl"
+       preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
+       nparams 0
+       cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
+"
+       cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
+${body}}
+"
+       
+       
+       
+       
+       comment "* Destructor "
+      end
+
+      operation 176770 "Create"
+       public explicit_return_type "bool"
+       nparams 7
+         param inout name "parent" type class_ref 136322 // wxWindow
+         param in name "id" explicit_type "wxWindowID"
+           defaultvalue "-1"
+         param in name "pos" explicit_type "wxPoint"
+           defaultvalue "wxDefaultPosition"
+         param in name "size" explicit_type "wxSize"
+           defaultvalue "wxDefaultSize"
+         param in name "style" explicit_type "long"
+           defaultvalue "wxTMC_DEFAULT_STYLE"
+         param in name "validator" explicit_type "wxValidator"
+           defaultvalue "wxDefaultValidator"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxTreeMultiCtrlNameStr"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, ${t4} ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, ${t1} ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, ${t4} ${p4}, const ${t5} & ${p5}, const ${t6} & ${p6}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Two step creation. Whenever the control is created without any parameters, use Create to actually
+        create it. Don't access the control's public methods before this is called
+
+        \\sa wxTreeMultiCtrl()
+    "
+      end
+
+      operation 176898 "AddRoot"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 2
+         param in name "caption" explicit_type "wxString"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment " accessors
+----------
+* @name Add and delete methods
+        To add and delete node items like a Root item, Window item or Node item. This allows the user to
+        manipulate the tree, and build it up.
+        @{
+    
+* Adds a root node to the wxTreeMultiItem. There can be many root nodes. Use this wxTreeMultiNode pointer to add
+        more subnodes to it. "
+      end
+
+      operation 177026 "AppendWindow"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 5
+         param in name "ParentItem" type class_ref 140418 // wxTreeMultiItem
+         param inout name "window" type class_ref 136322 // wxWindow
+           defaultvalue "NULL"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+         param in name "info" type class_ref 140546 // wxTreeMultiWindowInfo
+           defaultvalue "wxTreeMultiWindowInfoDefault"
+         param in name "flags" explicit_type "int"
+           defaultvalue "0"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} * ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, ${t4} ${p4}${v4}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} * ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, ${t4} ${p4}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adds a window to the tree control. Use this wxTreeMultiItem method to add a window class to the
+
+        current wxTreeMultiItem. The wxTreeMultiItem must point to a Node class. If this is not the case
+
+        an empty wxTreeMultiItem is returned. The mask is used to override the mask settings of the
+
+        wxTreeMultiWindowInfo class. This can be handy to set or clear extra flags only needed for certain
+
+        situations "
+      end
+
+      operation 177154 "InsertWindow"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 6
+         param in name "ParentItem" type class_ref 140418 // wxTreeMultiItem
+         param in name "Position" explicit_type "size_t"
+         param inout name "window" type class_ref 136322 // wxWindow
+           defaultvalue "NULL"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+         param in name "info" type class_ref 140546 // wxTreeMultiWindowInfo
+           defaultvalue "wxTreeMultiWindowInfoDefault"
+         param in name "flags" explicit_type "int"
+           defaultvalue "0"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} * ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, ${t5} ${p5}${v5}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}, ${t2} * ${p2}, const ${t3} & ${p3}, const ${t4} & ${p4}, ${t5} ${p5}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adds a window to the tree control. Use this method to add a window class at the specified position
+
+       of the parent's wxTreeMultiItem. In case the position is smaller than the current number of children all elements
+
+       are shifted upwards, otherwise the new window is appended to the parent's wxTreeMultiItem.
+
+       The parent wxTreeMultiItem must point to a Node class. If this is not the case an
+
+       empty wxTreeMultiItem is returned.
+
+   "
+      end
+
+      operation 177282 "PrependWindow"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 5
+         param in name "ParentItem" type class_ref 140418 // wxTreeMultiItem
+         param inout name "window" type class_ref 136322 // wxWindow
+           defaultvalue "NULL"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+         param in name "info" type class_ref 140546 // wxTreeMultiWindowInfo
+           defaultvalue "wxTreeMultiWindowInfoDefault"
+         param in name "flags" explicit_type "int"
+           defaultvalue "0"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} * ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, ${t4} ${p4}${v4}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::InsertWindow(wxTreeMultiItem const&, size_t, wxWindow*, wxString const&, wxTreeMultiWindowInfo const&, int) 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} * ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}, ${t4} ${p4}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adds a window to the tree control. Use this method to add a window class as the first element
+
+       of the parent's wxTreeMultiItem. The parent wxTreeMultiItem must point to a Node class. If this is not the case an
+
+       empty wxTreeMultiItem is returned.
+
+   "
+      end
+
+      operation 177410 "AppendNode"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 3
+         param in name "ParentItem" type class_ref 140418 // wxTreeMultiItem
+         param in name "caption" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::PrependWindow(wxTreeMultiItem const&, wxWindow*, const wxString &, wxTreeMultiWindowInfo const&, int) 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adds a node to the tree control. Use this wxTreeMultiItem method to add a recursive subnode class as the last element
+
+        of the parent's wxTreeMultiItem. The parent wxTreeMultiItem must point to a Node class. If this is not the case
+
+        an empty wxTreeMultiItem is returned. A node can contain multiple nodes or window classes "
+      end
+
+      operation 177538 "InsertNode"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 4
+         param in name "ParentItem" type class_ref 140418 // wxTreeMultiItem
+         param in name "Position" explicit_type "size_t"
+         param in name "caption" explicit_type "wxString"
+         param in name "name" explicit_type "wxString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::AppendNode(wxTreeMultiItem const&, const wxString &, const wxString&) 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}, const ${t2} & ${p2}, const ${t3} & ${p3}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adds a node to the tree control. Use this method to add a recursive subnode class at the specified position
+
+       of the parent's wxTreeMultiItem. In case the position is smaller than the current number of nodes all elements
+
+       are shifted upwards, otherwise the new node is appended to the parent's wxTreeMultiItem.
+
+       The parent wxTreeMultiItem must point to a Node class. If this is not the case an
+
+       empty wxTreeMultiItem is returned. A node can contain multiple nodes or window classes.
+
+   "
+      end
+
+      operation 177666 "PrependNode"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 3
+         param in name "ParentItem" type class_ref 140418 // wxTreeMultiItem
+         param in name "caption" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+         param in name "name" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::InsertNode(wxTreeMultiItem const&, size_t, wxString const&, wxString const&) 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Adds a node to the tree control. Use this method to add a recursive subnode class as the first element
+
+       of the parent's wxTreeMultiItem. The parent wxTreeMultiItem must point to a Node class. If this is not the case an
+
+       empty wxTreeMultiItem is returned. A node can contain multiple nodes or window classes.
+
+   "
+      end
+
+      operation 177794 "Delete"
+       preserve_cpp_body_indent public explicit_return_type "bool"
+       nparams 1
+         param inout name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::PrependNode(wxTreeMultiItem const&, wxString const&, wxString const&) 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Delete item from the tree control. Whenever it is present, delete it. If not, return false. After
+
+        deletion the wxTreeMultiItem is 0, thus IsOk will return false "
+      end
+
+      operation 177922 "DeleteAllItems"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+
+      this->_root.Clear();
+
+      this->m_SelectedItems.Clear();
+
+      Refresh();
+
+    };
+"
+       
+       
+       
+       
+       comment "* Deletes all the items from the wxTreeMultiCtrl. "
+      end
+
+      operation 178050 "DeleteChildren"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Deletes all children of the current node. The wxTreeMultiItem needs to be of type Node to
+        do this. Call GetParentNode to get the parent wxTreeMultiItem which is always a node. "
+      end
+
+      operation 178178 "ExpandNodes"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "recursive" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @}
+    
+* @name Expand and collapse methods
+         These methods are all for items of type Node.
+        @{
+    
+* Expand all nodes and subnodes. Recursive = true means all subnodes are also expanded. "
+      end
+
+      operation 178306 "CollapseNodes"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "recursive" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Collapses all nodes and subnodes. Recursive = true means all subnodes are also expanded. "
+      end
+
+      operation 178434 "Expand"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param in name "recursive" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Expands given node, and with recursive, also the subnodes "
+      end
+
+      operation 178562 "Collapse"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param in name "recursive" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Collapses given node, and with recursive, also the subnodes. If this item is not a node, but a window.
+        the parent is resolved and that node is collapsed "
+      end
+
+      operation 178690 "CollapseAndReset"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Collapses this node and removes all children from it. This is only applicable on
+        wxTreeMultiItems which are of type Node / Root. "
+      end
+
+      operation 178818 "Fold"
+       cpp_inline public explicit_return_type "void"
+       nparams 2
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param in name "expand" explicit_type "bool"
+           defaultvalue "true"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
+        if(expand)
+            Expand(item, false);
+        else
+            Collapse(item, false);
+    };
+"
+       
+       
+       
+       
+       comment "* Folds the given node. The same as Expand and Collapse, but the state can be
+        given through a parameter "
+      end
+
+      operation 178946 "GetSelectedItemCount"
+       const cpp_inline public explicit_return_type "size_t"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return this->m_SelectedItems.GetCount();};
+"
+       
+       
+       
+       
+       comment "* @}
+
+    
+* @name Selection manipulation
+
+         These methods allow you to select, unselect or test wxTreeMultiItems on selection.
+
+         Currently only items of type Node can be manipulated.
+
+        @{
+
+    
+* Returns the number of selected items. "
+      end
+
+      operation 179074 "GetFirstSelectedItem"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// Selection manipulation
+
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the first selected item.
+
+       If there is no selected item an invalid tree multi item is returned.
+
+   "
+      end
+
+      operation 179202 "GetLastSelectedItem"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetFirstSelectedItem(void) const 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the last selected item.
+
+       If there is no selected item an invalid tree multi item is returned.
+
+   "
+      end
+
+      operation 179330 "GetSelectedItem"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "Index" explicit_type "size_t"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetLastSelectedItem(void) const 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns a selected item with the specified index.
+
+       If there is no selected item with the passed index an invalide tree multi item is returned.
+
+   "
+      end
+
+      operation 179458 "GetSelectedItemIndex"
+       preserve_cpp_body_indent const public explicit_return_type "size_t"
+       nparams 1
+         param in name "Item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetSelectedItem(size_t Index) const 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the index of the selected item.
+
+       In case the item is not selected \"GetSelectedItemCount()\" - which is an invalid index - is returned.
+
+   "
+      end
+
+      operation 179586 "SelectItem"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 3
+         param in name "Item" type class_ref 140418 // wxTreeMultiItem
+         param in name "UnselectOthers" explicit_type "bool"
+           defaultvalue "true"
+         param in name "ExpandSelection" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetSelectedItemIndex(wxTreeMultiItem const&) const 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Selects the specified item AND in case
+
+        - UnselectOthers is set all other selected items are going to be unselected;
+
+        - ExpandSelection is set all items between the last selected item and the passed item
+
+          are selected, too (in case there this is the first selection all items between the first root
+
+          and the passed item are selected).
+
+       If the passed item is already selected the other parameters are ignored.
+
+       Please not that currently only nodes can be selected, therefore, if any other item is passed nothing will happen.
+
+   "
+      end
+
+      operation 179714 "UnselectAll"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::SelectItem(wxTreeMultiItem const&, bool, bool) 
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Unselect all selected items. "
+      end
+
+      operation 179842 "Unselect"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "Item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::UnselectAll(void) 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Unselect specified item "
+      end
+
+      operation 179970 "Exclude"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @}
+
+    
+* \\name Visibility manipulation
+
+        These methods allow you to manipulate a certain wxTreeMultiItem to temporarily exclude or to include
+
+        the node from drawing. Whenever it is excluded, all operations can still be performed, however
+
+        the node may not be visible.
+        @{
+    
+* Excludes this node from drawing. When excluded, the node will dissapear from the control but is still
+        physically present in the tree itself. If this node is a composite node with children, they will all be
+        hidden from the control. "
+      end
+
+      operation 180098 "Include"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Includes an excluded node. If the node was already present on the drawing, nothing happens. If the
+        node is included after exclusion it will become visible. If the parent node is still excluded or
+        collapsed (not visible) this will not show, until the parent node shows "
+      end
+
+      operation 180226 "GetExcludedParent"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the parent that is responsible for excluding this node. If there is no excluded node as parent,
+        the wxTreeMultiItem is zero. "
+      end
+
+      operation 180354 "HitTest"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 2
+         param in name "pt" explicit_type "wxPoint"
+         param inout name "flags" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::OnRightMouseClick(wxMouseEvent&) 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @}
+    
+* Checks if the point is under one of the given areas. The returned areas can be
+        \\li wxTMC_HITTEST_GUTTER If the front part of the item is clicked (where the node is)
+        \\li wxTMC_HITTEST_WINDOW If located in the window area
+        \\li wxTMC_HITTEST_CAPTION If located on the caption of the MultiTreeItemNode
+
+
+        Returned is the item which is located under the mouse, or none (IsOk = false) if
+
+        no item under the mouse "
+      end
+
+      operation 180482 "FindItem"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 4
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param in name "name" explicit_type "wxString"
+         param in name "ignoreCase" explicit_type "bool"
+           defaultvalue "false"
+         param in name "skipFirst" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} ${p3}${v3}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} ${p2}, ${t3} ${p3}${)}${const}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @name Find methods
+
+         These methods are used for finding a node in the wxTreeMultiCtrl.
+
+        @{
+    
+* Searches for the given name from the given level and lower. It will return a wxTreeMultiItem which needs
+        to be checked with IsOk() to see if it is a correct item. IsRootItem, IsNodeItem and IsWindowItem can be
+        used to determine the type of item. If the search returned an item which doesn't satisfy the query, you can
+        restart the search from here, with skip = true to skip the passed item. "
+      end
+
+      operation 180610 "FindItem"
+       cpp_inline public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 2
+         param in name "name" explicit_type "wxString"
+         param in name "ignoreCase" explicit_type "bool"
+           defaultvalue "false"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
+        return FindItem(wxTreeMultiItem(&_root), name, ignoreCase, false);
+    };
+"
+       
+       
+       
+       
+       comment "* Searches all nodes for the given name and returns the one found. This is a specialised method for FindItem "
+      end
+
+      operation 180738 "GetChildrenCount"
+       cpp_inline public explicit_return_type "int"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        if(item.IsNodeItem())
+        {
+            TreeMultiItemNode *n = (TreeMultiItemNode *)item.GetItem();
+            return n->GetNodeCount();
+        }
+
+        return -1;
+    };
+"
+       
+       
+       
+       
+       comment "* @}
+    
+* Returns the number of children in this node. If this node is not of type Node, count returns -1. "
+      end
+
+      operation 180866 "GetFocus"
+       preserve_cpp_body_indent public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This method finds the current focused window, and returns the wxTreeMultiItem that has this window as pointer.
+        If the wxTreeMultiItem is not ok, the focused window is on a sub-panel, or not on this control. If the focus is
+        on a sub-panel, this panel will handle the focusing. If you are still interested in this window, try
+        wxWindow::FindFocus which will always return with a pointer if a wxWindow has focus "
+      end
+
+      operation 180994 "GetBooleanValue"
+       preserve_cpp_body_indent public explicit_return_type "bool"
+       nparams 1
+         param in name "wndId" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @name Smart window Get/Set methods
+         These methods are used for quickly getting or setting primitive values, like boolean, string, or selections into
+         primitive wxWindow controls like a wxRadioButton, wxCheckBox, wxTextCtrl, etc.
+         The methods allow you to quickly set e.g. a boolean value by using the wxWindow ID of the control. A type
+         check is performed before the value is actually set with the appropiate method for it. If it fails, an assertion
+         will follow in debug mode. If you want to get values back similar get methods are present to return values.
+         This allows the user to quickly retrieve or set values by ID, without the fuss of remembering the pointer or
+         node ID of the wxTreeMultiCtrl.
+        @{
+    
+* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxCheckBox</b> and <b>wxRadioButton</b>. Whenever
+        it finds a proper type it will return true or false. Whenever no proper type is found, it will return with false.
+        In debug mode it will cause an assertion failure as well, to notify the developer something is wrong.
+
+        \\sa SetBooleanValue
+    "
+      end
+
+      operation 181122 "GetTextValue"
+       preserve_cpp_body_indent public explicit_return_type "wxString"
+       nparams 1
+         param in name "wndId" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxTextCtrl</b>, <b>wxChoice</b> and <b>wxComboBox</b>.
+        Whenever it finds a proper type it will return the (selected) text in the control. Whenever no proper type is found,
+        it will return with an empty string. In debug mode it will cause an exception error as well if the cast fails, to notify
+        the developer something is wrong.
+
+        \\sa SetTextValue
+    "
+      end
+
+      operation 181250 "SetBooleanValue"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param in name "wndId" explicit_type "int"
+         param in name "value" explicit_type "bool"
+           defaultvalue "true"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxCheckBox</b> and <b>wxRadioButton</b>. Whenever
+        it finds a proper type it set the control's value to the given boolean parameter. Nothing happens when no proper type
+        is found, however debug mode it will cause an assertion failure.
+
+        \\sa GetBooleanValue
+    "
+      end
+
+      operation 181378 "SetTextValue"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param in name "wndId" explicit_type "int"
+         param in name "value" explicit_type "wxString"
+           defaultvalue "wxEmptyString"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxTextCtrl</b>. If the control is not found or
+        of the wrong type, an asserion failure (in debug mode) follows. <br><i><b>NOTE: </b></i> this method
+        does not typecast to wxChoice or wxComboBox and the likes. If a selection in one of those needs to be set, use the
+        SetSelectionValue / GetSelectionValue combination.
+        \\sa GetTextValue, GetSelectionValue, SetSelectionValue
+    "
+      end
+
+      operation 181506 "GetWindow"
+       cpp_inline public return_type class_ref 136322 // wxWindow
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        if(item.IsWindowItem())
+            return ((TreeMultiItemWindow *)item.GetItem())->GetWindow();
+        return 0;
+    };
+"
+       
+       
+       
+       
+       comment "* Retrieves the wxWindow * associated with the wxTreeMultiItem. This only works for Window typed wxTreeMultiItem
+        classes. If this type does not match or no window is associated, 0 is returned. "
+      end
+
+      operation 181634 "SetSelectionValue"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param in name "wndId" explicit_type "int"
+         param in name "sel" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxListBox, wxChoice, wxComboBox</b>.
+        If the control is not found or of the wrong type, an asserion failure (in debug mode) follows. If it is found
+        the selection is set in the control.
+    "
+      end
+
+      operation 181762 "GetSelectionValue"
+       preserve_cpp_body_indent public explicit_return_type "int"
+       nparams 1
+         param in name "wndId" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxListBox, wxChoice, wxComboBox</b>.
+        If the control is not found or of the wrong type, an asserion failure (in debug mode) follows. In release mode -1 is
+        returned. If it is found the selection index is returned.
+    "
+      end
+
+      operation 181890 "GetSelectionValues"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 2
+         param in name "wndId" explicit_type "int"
+         param inout name "sels" explicit_type "wxArrayInt"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* This function calls FindWindow on the wxTreeMultiCtrl to find the window with the given ID (which is added with
+        AppendWindow). When it is found, it is type casted towards a <b>wxListBox</b>. If the control is not found or
+        of the wrong type, an asserion failure (in debug mode) follows. In release mode an empty wxArrayInt is returned.
+        If it is found the selections are stored in the wxArrayInt. This is only valid for wxListBox classes with multiple
+        selection flag set.
+    "
+      end
+
+      operation 182018 "GetCheckboxState"
+       public explicit_return_type "int"
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Gets the checkbox state of the wxTreeMultiItem pointed out by \"item\". If the item does not have a checkbox
+        associated (or the item is not ok), it will return -1. If the checkbox is checked it will return 1,
+
+        unchecked is 0, and tri-state (usually only for caption nodes) it will return 2. <b>This needs USE_CHECKBOXVIEW
+
+        set to YES, or CHECKBOXVIEW=1 during compile</b>"
+      end
+
+      operation 182146 "SetCheckboxState"
+       cpp_inline public explicit_return_type "void"
+       nparams 2
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param in name "state" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
+               wxCHECK2( item.IsOk(), return );
+               TreeMultiItemBase *b = item.GetItem();
+               if( b->GetCheckbox() )
+                       b->SetCheckboxState( state );
+               RedrawFromNode( item.GetItem()->GetParent() );
+       };
+"
+       
+       
+       
+       
+       comment "* Sets the checkbox state of the wxTreeMultiItem pointed out by \"item\". If the item does not have a checkbox
+        associated (or the item is not ok), it will simply ignore this. <b>This needs USE_CHECKBOXVIEW
+        set to YES, or CHECKBOXVIEW=1 during compile</b>. Contributed by Thomas Enickl."
+      end
+
+      operation 182274 "SetSpacingY"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "spacingY" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        if(spacingY >= 0)
+        {
+            _spacingY = spacingY;
+            RedrawFromNode(0);
+        }
+    };
+"
+       
+       
+       
+       
+       comment "* @}
+    
+* @name Extended visibility and manipulation methods
+        These methods alter the wxTreeMultiCtrl appearance, or add more functionality like checkboxes before each node.
+        @{
+    
+* Sets the Y spacing of the wxTreeMultiCtrl to a new size. This can be used to give the controls some more
+        spacing in between "
+      end
+
+      operation 182402 "GetSpacingY"
+       const cpp_inline public explicit_return_type "int"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _spacingY;
+    };
+"
+       
+       
+       
+       
+       comment "* Gets the Y spacing of the wxTreeMultiCtrl. "
+      end
+
+      operation 182530 "SetCheckboxView"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "value" explicit_type "bool"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+        _checkboxView = value;
+    };
+"
+       
+       
+       
+       
+       comment "* This method toggles the checkbox view mode. Whenever set to true, the next window item, or caption node item
+        will get a checkbox. <b>This needs USE_CHECKBOXVIEW set to YES, or CHECKBOXVIEW=1 during compile</b>
+        \\sa GetCheckboxView, wxTreeMultiWindowInfo::SetDefaultCheckState
+    "
+      end
+
+      operation 182658 "GetCheckboxView"
+       const cpp_inline public explicit_return_type "bool"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _checkboxView;
+    };
+"
+       
+       
+       
+       
+       comment "* This method returns the checkbox state currently used. <b>This needs USE_CHECKBOXVIEW set to YES, or
+        CHECKBOXVIEW=1 during compile</b>
+        \\sa SetCheckboxView, wxTreeMultiWindowInfo::SetDefaultCheckState, wxTreeMultiWindowInfo::GetDefaultCheckState
+    "
+      end
+
+      operation 182786 "GetFirstRoot"
+       const cpp_inline public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return wxTreeMultiItem(this->_root.First());};
+"
+       
+       
+       
+       
+       comment "* @}
+    
+* @name Iteration methods
+
+        Allows the user to iterate through a wxTreeMultiCtrl node, and get all the children or siblings.
+
+        To start an iteration from the lowest level the functions GetFirstRoot and GetLastRoot are provided.
+
+        @{
+
+    
+* Returns the first root. "
+      end
+
+      operation 182914 "GetLastRoot"
+       const cpp_inline public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return wxTreeMultiItem(this->_root.Last());};
+"
+       
+       
+       
+       
+       comment "* Returns the last root. "
+      end
+
+      operation 183042 "GetParent"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the items parent. "
+      end
+
+      operation 183170 "GetFirstChild"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 2
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param inout name "cookie" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetParent(wxTreeMultiItem const& item) const 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the first child of this node. The type of wxTreeMultiItem needs to be of Node. Whenever not succesful,
+
+        the item returned is not ok (IsOk = false). Upon success, a valid child is returned. The cookie variable doesn't
+
+        need to be initialized "
+      end
+
+      operation 183298 "GetNextChild"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 2
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+         param inout name "cookie" explicit_type "int"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the next child in the iteration on the level of 'item'. Make sure you called GetFirstChild first
+        before calling this one "
+      end
+
+      operation 183426 "GetLastChild"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the last child of this node. The type of 'item' needs to be of Node. Whenever not succesful,
+        the item returned is not ok (IsOk = false). Upon success, a valid last child is returned. "
+      end
+
+      operation 183554 "GetNextSibling"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the next sibling of the passed item. "
+      end
+
+      operation 183682 "GetPrevSibling"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetNextSibling(wxTreeMultiItem const&) const 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the previous sibling of the passed item. "
+      end
+
+      operation 183810 "GetNext"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetPrevSibling(wxTreeMultiItem const&) const 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the next item. \"Next\" is defined by the following order:
+
+        - in case the current item has a child it is the first child of the current item;
+
+        - in case the current item has a next sibling as the next sibling;
+
+        - as the parent's (or one of its ancestor's) next sibling.
+
+   "
+      end
+
+      operation 183938 "GetPrevious"
+       preserve_cpp_body_indent const public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "item" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetNextSibling(wxTreeMultiItem const&) const 
+
+${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Returns the previous item. \"Previous\" is defined by the following order:
+
+        - in case the current item has a child it is the last child of the current item;
+
+        - in case the current item has a previous sibling it is the previous sibling;
+
+        - as the parent's (or one of its ancestor's) previous sibling.
+
+   "
+      end
+
+      operation 184066 "GetCaptionFont"
+       const cpp_inline public explicit_return_type "wxFont"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
+        return _captionFont;
+    };
+"
+       
+       
+       
+       
+       comment "* @}
+
+    
+* @name Get and set methods
+        These methods allow you to set or get certain properties of the wxTreeMultiCtrl.
+        @{
+    
+* Get the currently used font for the caption headers in the wxTreeMultiCtrl. If you want to alter this
+        font, simply obtain it and copy it to a local font. After that, set this font back using SetCaptionFont()
+    "
+      end
+
+      operation 184194 "SetCaptionFont"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param in name "font" explicit_type "wxFont"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* Sets the font to be used for the text caption headers. This triggers a complete redraw because x,y sizes can
+        differ, and ofcourse all nodes need to be updated. You can call this method at any time not only at the
+        beginning. "
+      end
+
+      operation 184322 "OnDraw"
+       preserve_cpp_body_indent public explicit_return_type "void"
+       nparams 1
+         param inout name "dc" explicit_type "wxDC"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
+"
+       cpp_def "// wxTreeMultiCtrl::GetPrevious(wxTreeMultiItem const&) const 
+// WDR: handler implementations for wxTreeMultiCtrl
+
+
+${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
+  ${body}}
+"
+       
+       
+       
+       
+       comment "* @}
+
+    "
+      end
+    end
+
+    class 140802 "typedef23"
+      visibility package stereotype "typedef" explicit_base_type "wxScrolledWindow"
+      cpp_decl "${comment}typedef ${type} ${name};
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+
+    class 140930 "wxTreeMultiEvent"
+      visibility package 
+      cpp_decl "${comment}${template}class ${name}${inherit} {
+${members}};
+${inlines}
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+      comment "*
+   \\section treemultievent Event handlers for wxTreeMultiCtrl
+   
+   Event handlers for wxTreeMultiCtrl are similar to wxTreeEvents. But they are
+   optimized for the wxTreeMultiCtrl class.
+"
+      classrelation 136066 // <generalisation>
+       relation 136066 ---|>
+         a public
+           cpp default "${type}"
+           classrelation_ref 136066 // <generalisation>
+         b parent class_ref 141058 // typedef24
+      end
+
+      operation 184450 "wxTreeMultiEvent"
+       preserve_cpp_body_indent public explicit_return_type ""
+       nparams 2
+         param in name "InitEventType" explicit_type "wxEventType"
+           defaultvalue "wxEVT_NULL"
+         param in name "InitItem" type class_ref 140418 // wxTreeMultiItem
+           defaultvalue "wxTreeMultiItem()"
+       cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${volatile}${throw};
+"
+       cpp_def "// constructors / destructor:
+
+${comment}${inline}${class}::${name}${(}${t0} ${p0}, const ${t1} & ${p1}${)}
+                 :wxNotifyEvent(InitEventType), m_Item(InitItem)
+${throw}{
+${body}}
+"
+       
+       
+       
+       
+       comment "WXDLLEXPORT
+/
+/ The default constructor
+/"
+      end
+
+      operation 184578 "Clone"
+       const cpp_virtual cpp_inline public explicit_return_type "wxEvent"
+       nparams 0
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {return new wxTreeMultiEvent(*this);};
+"
+       
+       
+       
+       
+       comment " inherited functions:
+ wxEvent:
+ cloning:"
+      end
+
+      operation 184706 "GetItem"
+       const cpp_inline public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    return this->m_Item;
+  };
+"
+       
+       
+       
+       
+       comment " item handling:"
+      end
+
+      operation 184834 "SetItem"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "NewItem" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    this->m_Item = NewItem;
+  };
+"
+       
+       
+       
+       
+      end
+
+      operation 184962 "GetOldItem"
+       const cpp_inline public return_type class_ref 140418 // wxTreeMultiItem
+       nparams 1
+         param in name "" explicit_type "void"
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    return this->m_OldItem;
+  };
+"
+       
+       
+       
+       
+       comment " old item handling:"
+      end
+
+      operation 185090 "SetOldItem"
+       cpp_inline public explicit_return_type "void"
+       nparams 1
+         param in name "NewItem" type class_ref 140418 // wxTreeMultiItem
+       cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
+    this->m_OldItem = NewItem;
+  };
+"
+       
+       
+       
+       
+      end
+    end
+
+    class 141058 "typedef24"
+      visibility package stereotype "typedef" explicit_base_type "wxNotifyEvent"
+      cpp_decl "${comment}typedef ${type} ${name};
+"
+      java_decl ""
+      php_decl ""
+      python_2_2 python_decl ""
+      idl_decl ""
+      explicit_switch_type ""
+      
+    end
+  end
+
+  deploymentview 128258 "treemultictrl"
+    //deployment diagram settings
+    package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
+    draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
+    artifact 131458 "TreeMultiItemBase"
+      stereotype "source"
+      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+      cpp_src "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+      associated_classes
+       class_ref 139778 // TreeMultiItemBase
+      end
+    end
+
+    artifact 131586 "TreeMultiItemNode"
+      stereotype "source"
+      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+      cpp_src "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+      associated_classes
+       class_ref 139906 // TreeMultiItemNode
+      end
+    end
+
+    artifact 131714 "TreeMultiItemRoot"
+      stereotype "source"
+      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+      cpp_src "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+      associated_classes
+       class_ref 140034 // TreeMultiItemRoot
+      end
+    end
+
+    artifact 131842 "TreeMultiItemWindow"
+      stereotype "source"
+      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+      cpp_src "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+      associated_classes
+       class_ref 140162 // TreeMultiItemWindow
+      end
+    end
+
+    artifact 131970 "wxTreeMultiCtrl"
+      stereotype "source"
+      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+      cpp_src "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+      associated_classes
+       class_ref 140290 // anonymous1
+       class_ref 140418 // wxTreeMultiItem
+       class_ref 140546 // wxTreeMultiWindowInfo
+       class_ref 140802 // typedef23
+       class_ref 140674 // wxTreeMultiCtrl
+      end
+    end
+
+    artifact 132098 "wxTreeMultiEvent"
+      stereotype "source"
+      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
+#define ${NAMESPACE}_${NAME}_H
+
+${comment}
+${includes}
+${declarations}
+${namespace_start}
+${definition}
+${namespace_end}
+#endif
+"
+      cpp_src "${comment}
+${includes}
+${namespace_start}
+${members}
+${namespace_end}"
+      associated_classes
+       class_ref 141058 // typedef24
+       class_ref 140930 // wxTreeMultiEvent
+      end
+    end
+  end
+end