<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--
wxFormBuilder - A Visual Dialog Editor for wxWidgets.
Copyright (C) 2005 José Antonio Hurtado

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Written by
  José Antonio Hurtado - joseantonio.hurtado@gmail.com
  Juan Antonio Ortega  - jortegalalmolda@gmail.com
-->
<codegen language="C++">

  <templates class="wxTreeCtrl">
    <template name="declaration">#class* $name;</template>
    <template name="construction">$name = new #class( #wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @} #ifnotnull $window_name @{, wxDefaultValidator, $window_name @} );</template>
    <template name="include">@#include &lt;wx/treectrl.h&gt;</template>
	<template name="evt_entry_OnTreeGetInfo">EVT_TREE_GET_INFO( $id, #handler )</template>
	<template name="evt_connect_OnTreeGetInfo">$name->Connect( wxEVT_COMMAND_TREE_GET_INFO, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreeSetInfo">EVT_TREE_SET_INFO( $id, #handler )</template>
	<template name="evt_connect_OnTreeSetInfo">$name->Connect( wxEVT_COMMAND_TREE_SET_INFO, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreeItemGetTooltip">EVT_TREE_ITEM_GETTOOLTIP( $id, #handler )</template>
	<template name="evt_connect_OnTreeItemGetTooltip">$name->Connect( wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreeStateImageClick">EVT_TREE_STATE_IMAGE_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnTreeStateImageClick">$name->Connect( wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK, #handler, NULL, this );</template>
  </templates>

  <templates class="wxDataViewCtrl">
	<template name="declaration">#class* $name;</template>
	<template name="include">@#include &lt;wx/dataview.h&gt;</template>
	<template name="construction">
		$name = new #class( #wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @} );
	</template>
	<template name="generated_event_handlers"></template>
	<template name="evt_entry_OnDataViewCtrlSelectionChanged">EVT_DATAVIEW_SELECTION_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlSelectionChanged">$name->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemActivated">EVT_DATAVIEW_ITEM_ACTIVATED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemActivated">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemStartEditing">EVT_DATAVIEW_ITEM_START_EDITING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemStartEditing">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemEditingStarted">EVT_DATAVIEW_ITEM_EDITING_STARTED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemEditingStarted">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemEditingDone">EVT_DATAVIEW_ITEM_EDITING_DONE( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemEditingDone">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemCollapsing">EVT_DATAVIEW_ITEM_COLLAPSING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemCollapsing">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemCollapsed">EVT_DATAVIEW_ITEM_COLLAPSED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemCollapsed">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemExpanding">EVT_DATAVIEW_ITEM_EXPANDING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemExpanding">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemExpanded">EVT_DATAVIEW_ITEM_EXPANDED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemExpanded">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemValueChanged">EVT_DATAVIEW_ITEM_VALUE_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemValueChanged">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemContextMenu">EVT_DATAVIEW_ITEM_CONTEXT_MENU( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemContextMenu">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlColumnHeaderClick">EVT_DATAVIEW_COLUMN_HEADER_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlColumnHeaderClick">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlColumnHeaderRightClick">EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlColumnHeaderRightClick">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlColumnSorted">EVT_DATAVIEW_COLUMN_SORTED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlColumnSorted">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlColumnReordered">EVT_DATAVIEW_COLUMN_REORDERED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlColumnReordered">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemBeginDrag">EVT_DATAVIEW_ITEM_BEGIN_DRAG( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemBeginDrag">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemDropPossible">EVT_DATAVIEW_ITEM_DROP_POSSIBLE( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemDropPossible">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewCtrlItemDrop">EVT_DATAVIEW_ITEM_DROP( $id, #handler )</template>
	<template name="evt_connect_OnDataViewCtrlItemDrop">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, #handler, NULL, this );</template>
  </templates>

  <templates class="wxDataViewTreeCtrl">
	<template name="declaration">#class* $name;</template>
	<template name="include">@#include &lt;wx/dataview.h&gt;</template>
	<template name="construction">
		$name = new #class( #wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @} );
	</template>
	<template name="generated_event_handlers"></template>
	<template name="evt_entry_OnDataViewTreeCtrlSelectionChanged">EVT_DATAVIEW_SELECTION_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlSelectionChanged">$name->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemActivated">EVT_DATAVIEW_ITEM_ACTIVATED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemActivated">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemStartEditing">EVT_DATAVIEW_ITEM_START_EDITING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemStartEditing">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemEditingStarted">EVT_DATAVIEW_ITEM_EDITING_STARTED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemEditingStarted">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemEditingDone">EVT_DATAVIEW_ITEM_EDITING_DONE( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemEditingDone">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemCollapsing">EVT_DATAVIEW_ITEM_COLLAPSING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemCollapsing">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemCollapsed">EVT_DATAVIEW_ITEM_COLLAPSED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemCollapsed">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemExpanding">EVT_DATAVIEW_ITEM_EXPANDING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemExpanding">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemExpanded">EVT_DATAVIEW_ITEM_EXPANDED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemExpanded">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemValueChanged">EVT_DATAVIEW_ITEM_VALUE_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemValueChanged">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemContextMenu">EVT_DATAVIEW_ITEM_CONTEXT_MENU( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemContextMenu">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlColumnHeaderClick">EVT_DATAVIEW_COLUMN_HEADER_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlColumnHeaderClick">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlColumnHeaderRightClick">EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlColumnHeaderRightClick">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlColumnSorted">EVT_DATAVIEW_COLUMN_SORTED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlColumnSorted">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlColumnReordered">EVT_DATAVIEW_COLUMN_REORDERED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlColumnReordered">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemBeginDrag">EVT_DATAVIEW_ITEM_BEGIN_DRAG( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemBeginDrag">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemDropPossible">EVT_DATAVIEW_ITEM_DROP_POSSIBLE( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemDropPossible">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewTreeCtrlItemDrop">EVT_DATAVIEW_ITEM_DROP( $id, #handler )</template>
	<template name="evt_connect_OnDataViewTreeCtrlItemDrop">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, #handler, NULL, this );</template>
  </templates>

  <templates class="wxDataViewListCtrl">
	<template name="declaration">#class* $name;</template>
	<template name="include">@#include &lt;wx/dataview.h&gt;</template>
	<template name="construction">
		$name = new #class( #wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @} );
	</template>
	<template name="generated_event_handlers"></template>
	<template name="evt_entry_OnDataViewListCtrlSelectionChanged">EVT_DATAVIEW_SELECTION_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlSelectionChanged">$name->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemActivated">EVT_DATAVIEW_ITEM_ACTIVATED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemActivated">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemStartEditing">EVT_DATAVIEW_ITEM_START_EDITING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemStartEditing">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemEditingStarted">EVT_DATAVIEW_ITEM_EDITING_STARTED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemEditingStarted">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemEditingDone">EVT_DATAVIEW_ITEM_EDITING_DONE( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemEditingDone">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemCollapsing">EVT_DATAVIEW_ITEM_COLLAPSING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemCollapsing">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemCollapsed">EVT_DATAVIEW_ITEM_COLLAPSED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemCollapsed">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemExpanding">EVT_DATAVIEW_ITEM_EXPANDING( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemExpanding">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemExpanded">EVT_DATAVIEW_ITEM_EXPANDED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemExpanded">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemValueChanged">EVT_DATAVIEW_ITEM_VALUE_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemValueChanged">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemContextMenu">EVT_DATAVIEW_ITEM_CONTEXT_MENU( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemContextMenu">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlColumnHeaderClick">EVT_DATAVIEW_COLUMN_HEADER_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlColumnHeaderClick">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlColumnHeaderRightClick">EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlColumnHeaderRightClick">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlColumnSorted">EVT_DATAVIEW_COLUMN_SORTED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlColumnSorted">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlColumnReordered">EVT_DATAVIEW_COLUMN_REORDERED( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlColumnReordered">$name->Connect( wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemBeginDrag">EVT_DATAVIEW_ITEM_BEGIN_DRAG( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemBeginDrag">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemDropPossible">EVT_DATAVIEW_ITEM_DROP_POSSIBLE( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemDropPossible">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE, #handler, NULL, this );</template>
	<template name="evt_entry_OnDataViewListCtrlItemDrop">EVT_DATAVIEW_ITEM_DROP( $id, #handler )</template>
	<template name="evt_connect_OnDataViewListCtrlItemDrop">$name->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_DROP, #handler, NULL, this );</template>
  </templates>

  <templates class="dataViewListColumn">
	<template name="declaration">wxDataViewColumn* $name;</template>
	<template name="construction">
		$name = #parent $name->Append${type}Column( $label, $mode, $width, static_cast&lt;wxAlignment&gt;($align), $flags );
			#ifnotnull $ellipsize
			@{ #nl $name->GetRenderer()->EnableEllipsize( $ellipsize ); @}
	</template>
  </templates>

  <templates class="dataViewColumn">
	<template name="declaration">wxDataViewColumn* $name;</template>
	<template name="construction">
		$name = #parent $name->Append${type}Column( $label, $model_column, $mode, $width, static_cast&lt;wxAlignment&gt;($align), $flags );
			#ifnotnull $ellipsize
			@{ #nl $name->GetRenderer()->EnableEllipsize( $ellipsize ); @}
	</template>
  </templates>

  <templates class="wxTreeListCtrl">
	<template name="declaration">#class* $name;</template>
	<template name="include">@#include &lt;wx/treelist.h&gt;</template>
	<template name="construction">$name = new #class( #wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @} #ifnotnull $window_name @{, wxDefaultValidator, $window_name @} );</template>
	<template name="evt_entry_OnTreelistSelectionChanged">EVT_TREELIST_SELECTION_CHANGED( $id, #handler )</template>
	<template name="evt_connect_OnTreelistSelectionChanged">$name->Connect( wxEVT_TREELIST_SELECTION_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreelistItemExpanding">EVT_TREELIST_ITEM_EXPANDING( $id, #handler )</template>
	<template name="evt_connect_OnTreelistItemExpanding">$name->Connect( wxEVT_TREELIST_ITEM_EXPANDING, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreelistItemExpanded">EVT_TREELIST_ITEM_EXPANDED( $id, #handler )</template>
	<template name="evt_connect_OnTreelistItemExpanded">$name->Connect( wxEVT_TREELIST_ITEM_EXPANDED, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreelistItemChecked">EVT_TREELIST_ITEM_CHECKED( $id, #handler )</template>
	<template name="evt_connect_OnTreelistItemChecked">$name->Connect( wxEVT_TREELIST_ITEM_CHECKED, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreelistItemActivated">EVT_TREELIST_ITEM_ACTIVATED( $id, #handler )</template>
	<template name="evt_connect_OnTreelistItemActivated">$name->Connect( wxEVT_TREELIST_ITEM_ACTIVATED, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreelistItemContextMenu">EVT_TREELIST_ITEM_CONTEXT_MENU( $id, #handler )</template>
	<template name="evt_connect_OnTreelistItemContextMenu">$name->Connect( wxEVT_TREELIST_ITEM_CONTEXT_MENU, #handler, NULL, this );</template>
	<template name="evt_entry_OnTreelistColumnSorted">EVT_TREELIST_COLUMN_SORTED( $id, #handler )</template>
	<template name="evt_connect_OnTreelistColumnSorted">$name->Connect( wxEVT_TREELIST_COLUMN_SORTED, #handler, NULL, this );</template>
  </templates>

  <templates class="wxTreeListCtrlColumn">
	<template name="column_add">#parent $name->AppendColumn( $name, $width, $alignment, $flag );</template>
  </templates>

  <templates class="wxCheckListBox">
    <template name="declaration">#class* $name;</template>
    <template name="construction">
		#ifnotnull $choices
		@{
			wxString $name #append Choices[] = { $choices }; #nl
			int $name #append NChoices = sizeof( $name #append Choices ) / sizeof( wxString ); #nl
			$name = new #class( #wxparent $name, $id, $pos, $size, $name #append NChoices, $name #append Choices, $style #ifnotnull $window_style @{ |$window_style @} #ifnotnull $window_name @{, wxDefaultValidator, $window_name @} );
		@}
		#ifnull $choices
		@{
			wxArrayString $name #append Choices; #nl
			$name = new #class( #wxparent $name, $id, $pos, $size, $name #append Choices, $style #ifnotnull $window_style @{ |$window_style @} #ifnotnull $window_name @{, wxDefaultValidator, $window_name @} );
		@}
    </template>
    <template name="include">@#include &lt;wx/checklst.h&gt;</template>
	<template name="evt_entry_OnCheckListBoxToggled">EVT_CHECKLISTBOX( $id, #handler )</template>
	<template name="evt_connect_OnCheckListBoxToggled">$name->Connect( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, #handler, NULL, this );</template>
	<template name="evt_entry_OnCheckListBox">EVT_LISTBOX( $id, #handler )</template>
	<template name="evt_connect_OnCheckListBox">$name->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, #handler, NULL, this );</template>
	<template name="evt_entry_OnCheckListBoxDClick">EVT_LISTBOX_DCLICK( $id, #handler )</template>
	<template name="evt_connect_OnCheckListBoxDClick">$name->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, #handler, NULL, this );</template>
  </templates>

  <templates class="wxGrid">
    <template name="declaration">#class* $name;</template>
    <template name="construction">$name = new #class( #wxparent $name, $id, $pos, $size, $window_style #ifnotnull $window_name @{, $window_name @} );</template>
    <template name="include">@#include &lt;wx/grid.h&gt;</template>
    <template name="settings">
    	#nl // Grid
    	#nl $name->CreateGrid( $rows, $cols );
		#nl $name->EnableEditing( $editing );
		#nl $name->EnableGridLines( $grid_lines );
		#ifnotnull $grid_line_color
		@{
			#nl $name->SetGridLineColour( $grid_line_color );
		@}
		#nl $name->EnableDragGridSize( $drag_grid_size );
		#nl $name->SetMargins( $margin_width, $margin_height );
		#nl
		#nl // Columns
		#foreach $column_sizes
		@{ $name->SetColSize( #npred, #pred ); @}
		#ifnotequal $autosize_cols "0"
		@{
			#nl $name->AutoSizeColumns();
		@}
    	#nl $name->EnableDragColMove( $drag_col_move );
		#nl $name->EnableDragColSize( $drag_col_size );
		#nl $name->SetColLabelSize( $col_label_size );
		#foreach $col_label_values
		@{ $name->SetColLabelValue( #npred, #pred ); @}
		#nl $name->SetColLabelAlignment( $col_label_horiz_alignment, $col_label_vert_alignment );
		#nl
		#nl // Rows
		#foreach $row_sizes
		@{ $name->SetRowSize( #npred, #pred ); @}
		#ifnotequal $autosize_rows "0"
		@{
			#nl $name->AutoSizeRows();
		@}
		#nl $name->EnableDragRowSize( $drag_row_size );
		#nl $name->SetRowLabelSize( $row_label_size );
		#foreach $row_label_values
		@{ $name->SetRowLabelValue( #npred, #pred ); @}
		#nl $name->SetRowLabelAlignment( $row_label_horiz_alignment, $row_label_vert_alignment );
		#nl
		#nl // Label Appearance
		#ifnotnull $label_bg
		@{
			#nl $name->SetLabelBackgroundColour( $label_bg );
		@}
		#ifnotnull $label_font
		@{
			#nl $name->SetLabelFont( $label_font );
		@}
		#ifnotnull $label_text
		@{
			#nl $name->SetLabelTextColour( $label_text );
		@}
		#nl
		#nl // Cell Defaults
		#ifnotnull $cell_bg
		@{
			#nl $name->SetDefaultCellBackgroundColour( $cell_bg );
		@}
		#ifnotnull $cell_text
		@{
			#nl $name->SetDefaultCellTextColour( $cell_text );
		@}
		#ifnotnull $cell_font
		@{
			#nl $name->SetDefaultCellFont( $cell_font );
		@}
		#nl $name->SetDefaultCellAlignment( $cell_horiz_alignment, $cell_vert_alignment );
    </template>
	<template name="evt_entry_OnGridCellLeftClick">EVT_GRID_CELL_LEFT_CLICK( #handler )</template>
	<template name="evt_connect_OnGridCellLeftClick">$name->Connect( wxEVT_GRID_CELL_LEFT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCellRightClick">EVT_GRID_CELL_RIGHT_CLICK( #handler )</template>
	<template name="evt_connect_OnGridCellRightClick">$name->Connect( wxEVT_GRID_CELL_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCellLeftDClick">EVT_GRID_CELL_LEFT_DCLICK( #handler )</template>
	<template name="evt_connect_OnGridCellLeftDClick">$name->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCellRightDClick">EVT_GRID_CELL_RIGHT_DCLICK( #handler )</template>
	<template name="evt_connect_OnGridCellRightDClick">$name->Connect( wxEVT_GRID_CELL_RIGHT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridLabelLeftClick">EVT_GRID_LABEL_LEFT_CLICK( #handler )</template>
	<template name="evt_connect_OnGridLabelLeftClick">$name->Connect( wxEVT_GRID_LABEL_LEFT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridLabelRightClick">EVT_GRID_LABEL_RIGHT_CLICK( #handler )</template>
	<template name="evt_connect_OnGridLabelRightClick">$name->Connect( wxEVT_GRID_LABEL_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridLabelLeftDClick">EVT_GRID_LABEL_LEFT_DCLICK( #handler )</template>
	<template name="evt_connect_OnGridLabelLeftDClick">$name->Connect( wxEVT_GRID_LABEL_LEFT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridLabelRightDClick">EVT_GRID_LABEL_RIGHT_DCLICK( #handler )</template>
	<template name="evt_connect_OnGridLabelRightDClick">$name->Connect( wxEVT_GRID_LABEL_RIGHT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCellChange">EVT_GRID_CELL_CHANGED( #handler )</template>
	<template name="evt_connect_OnGridCellChange">$name->Connect( wxEVT_GRID_CELL_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridSelectCell">EVT_GRID_SELECT_CELL( #handler )</template>
	<template name="evt_connect_OnGridSelectCell">$name->Connect( wxEVT_GRID_SELECT_CELL, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridEditorHidden">EVT_GRID_EDITOR_HIDDEN( #handler )</template>
	<template name="evt_connect_OnGridEditorHidden">$name->Connect( wxEVT_GRID_EDITOR_HIDDEN, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridEditorShown">EVT_GRID_EDITOR_SHOWN( #handler )</template>
	<template name="evt_connect_OnGridEditorShown">$name->Connect( wxEVT_GRID_EDITOR_SHOWN, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdCellLeftClick">EVT_GRID_CMD_CELL_LEFT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdCellLeftClick">$name->Connect( wxEVT_GRID_CELL_LEFT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdCellRightClick">EVT_GRID_CMD_CELL_RIGHT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdCellRightClick">$name->Connect( wxEVT_GRID_CELL_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdCellLeftDClick">EVT_GRID_CMD_CELL_LEFT_DCLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdCellLeftDClick">$name->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdCellRightDClick">EVT_GRID_CMD_CELL_RIGHT_DCLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdCellRightDClick">$name->Connect( wxEVT_GRID_CELL_RIGHT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdLabelLeftClick">EVT_GRID_CMD_LABEL_LEFT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdLabelLeftClick">$name->Connect( wxEVT_GRID_LABEL_LEFT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdLabelRightClick">EVT_GRID_CMD_LABEL_RIGHT_CLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdLabelRightClick">$name->Connect( wxEVT_GRID_LABEL_RIGHT_CLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdLabelLeftDClick">EVT_GRID_CMD_LABEL_LEFT_DCLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdLabelLeftDClick">$name->Connect( wxEVT_GRID_LABEL_LEFT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdLabelRightDClick">EVT_GRID_CMD_LABEL_RIGHT_DCLICK( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdLabelRightDClick">$name->Connect( wxEVT_GRID_LABEL_RIGHT_DCLICK, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdCellChange">EVT_GRID_CMD_CELL_CHANGE( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdCellChange">$name->Connect( wxEVT_GRID_CELL_CHANGED, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdSelectCell">EVT_GRID_CMD_SELECT_CELL( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdSelectCell">$name->Connect( wxEVT_GRID_SELECT_CELL, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdEditorHidden">EVT_GRID_CMD_EDITOR_HIDDEN( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdEditorHidden">$name->Connect( wxEVT_GRID_EDITOR_HIDDEN, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdEditorShown">EVT_GRID_CMD_EDITOR_SHOWN( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdEditorShown">$name->Connect( wxEVT_GRID_EDITOR_SHOWN, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridColSize">EVT_GRID_COL_SIZE( #handler )</template>
	<template name="evt_connect_OnGridColSize">$name->Connect( wxEVT_GRID_COL_SIZE, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridRowSize">EVT_GRID_ROW_SIZE( #handler )</template>
	<template name="evt_connect_OnGridRowSize">$name->Connect( wxEVT_GRID_ROW_SIZE, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdColSize">EVT_GRID_CMD_COL_SIZE( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdColSize">$name->Connect( wxEVT_GRID_COL_SIZE, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdRowSize">EVT_GRID_CMD_ROW_SIZE( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdRowSize">$name->Connect( wxEVT_GRID_ROW_SIZE, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridRangeSelect">EVT_GRID_RANGE_SELECT( #handler )</template>
	<template name="evt_connect_OnGridRangeSelect">$name->Connect( wxEVT_GRID_RANGE_SELECT, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdRangeSelect">EVT_GRID_CMD_RANGE_SELECT( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdRangeSelect">$name->Connect( wxEVT_GRID_RANGE_SELECT, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridEditorCreated">EVT_GRID_EDITOR_CREATED( #handler )</template>
	<template name="evt_connect_OnGridEditorCreated">$name->Connect( wxEVT_GRID_EDITOR_CREATED, #handler, NULL, this );</template>
	<template name="evt_entry_OnGridCmdEditorCreated">EVT_GRID_CMD_EDITOR_CREATED( $id, #handler )</template>
	<template name="evt_connect_OnGridCmdEditorCreated">$name->Connect( wxEVT_GRID_EDITOR_CREATED, #handler, NULL, this );</template>
  </templates>

	<templates class="wxPropertyGrid">
		<template name="declaration">#class* $name;</template>
		<template name="construction">$name = new #class(#wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @});</template>
		<template name="include">
			@#include &lt;wx/propgrid/propgrid.h&gt;
			#ifequal $include_advanced "1"
				@{ #nl @#include &lt;wx/propgrid/advprops.h&gt; @}
		</template>
		<template name="settings">
		    #ifnotnull $extra_style
		    @{ $name->SetExtraStyle( $extra_style ); @}
		</template>
		<template name="evt_entry_OnPropertyGridChanging">EVT_PG_CHANGING( $id, #handler )</template>
		<template name="evt_connect_OnPropertyGridChanging">$name->Connect( wxEVT_PG_CHANGING, #handler, NULL, this );</template>
		<template name="evt_entry_OnPropertyGridChanged">EVT_PG_CHANGED( $id, #handler )</template>
		<template name="evt_connect_OnPropertyGridChanged">$name->Connect( wxEVT_PG_CHANGED, #handler, NULL, this );</template>
	</templates>

	<templates class="wxPropertyGridManager">
		<template name="declaration">#class* $name;</template>
		<template name="construction">$name = new #class(#wxparent $name, $id, $pos, $size, $style #ifnotnull $window_style @{ |$window_style @});</template>
		<template name="include">
			@#include &lt;wx/propgrid/propgrid.h&gt; #nl
			@#include &lt;wx/propgrid/manager.h&gt;
			#ifequal $include_advanced "1"
				@{ #nl @#include &lt;wx/propgrid/advprops.h&gt; @}
		</template>
		<template name="settings">
		    #ifnotnull $extra_style
		    @{ $name->SetExtraStyle( $extra_style ); @}
		</template>
		<template name="evt_entry_OnPropertyGridChanging">EVT_PG_CHANGING( $id, #handler )</template>
		<template name="evt_connect_OnPropertyGridChanging">$name->Connect( wxEVT_PG_CHANGING, #handler, NULL, this );</template>
		<template name="evt_entry_OnPropertyGridChanged">EVT_PG_CHANGED( $id, #handler )</template>
		<template name="evt_connect_OnPropertyGridChanged">$name->Connect( wxEVT_PG_CHANGED, #handler, NULL, this );</template>
	</templates>

	<templates class="propGridItem">
		<template name="declaration">wxPGProperty* $name;</template>
		<template name="construction">
			#ifequal $type "Category"
			@{ $name = #parent $name->Append( new wxPropertyCategory( $label, $label ) ); @}
			#ifnotequal $type "Category"
			@{
				$name = #parent $name->Append( new wx${type}Property( $label, $label ) );
				#ifnotnull $help
				@{ #nl #parent $name->SetPropertyHelpString( $name, $help ); @}
			@}
		</template>
	</templates>

	<templates class="propGridPage">
		<template name="declaration">wxPropertyGridPage* $name;</template>
		<template name="construction">
			#nl $name = #parent $name->AddPage( $label, $bitmap );
		</template>
	</templates>
</codegen>
