/////// Property sets //////

prop_set = {
	name = "pos"
	glued_with = ","

	props = { 
		x = { NUMBER "-1" }
		y = { NUMBER "-1" }
	}
}

prop_set = {
	name = "size"
	glued_with = ","

	props = {
		width  = { NUMBER "200" }
		height = { NUMBER "100" }
	}
}

prop_set = {
	name = "font"
	
	props = {
		fontPoints = { NUMBER "9" }
		fontFamily = { FLAG { wxSWISS wxMODERN wxDECORATIVE wxROMAN wxSCRIPT } wxSWISS }
		fontStyle  = { FLAG { wxNORMAL wxITALIC wxSLANT } wxNORMAL }
		fontWeight = { FLAG { wxNORMAL wxBOLD wxLIGHT } wxNORMAL }
		fontUnderlined = { BOOLEAN false }
		enabled = { BOOLEAN true }
		hidden = { BOOLEAN false }
		focused = { BOOLEAN false }
		fg = { COLOR "" "fgColor" }
		bg = { COLOR "" "bgColor" }
	}
}

prop_set = {

	name = "common_properties"

	props = 
	{
		name = { STRING "" "Name" }
		
		pos

		size

		border_style = { FLAG 
				 { wxNO_BORDER    wxSIMPLE_BORDER 
			     	   wxRISED_BORDER wxSUNKEN_BORDER 
			   	 } 
			   	 wxNO_BORDER "border" _VISIBLE_ONLY_
			       }

		font
	}
}

///////////////////////////////////////////
/////////////// Widgets ///////////////////
///////////////////////////////////////////

unknown_widget = {

	tag = "unknown"
	widget_class = "wx__Unknown__Widget"
	display_name_expr = "name + \" (Unknown!)\""

	props = {
		name = { STRING "" "Name" }
		
		pos

		size

		UNKNOWN_TITLE = { STRING "" }
	}

    toolbar_icon = {
        colors = "FF0000 000001"
        pixels = "
        0000000000000000
        0000000000000001
        0000000011000001
        0000000011000001
        0000000011000001
        0011110011111001
        0110011011001101
        0001111011001101
        0011011011001101
        0110011011001101
        0110011011001101
        0011111011111001
        0000000000000001
        0000000000000000
        0000000000000000
        0000000000000000
        "
	}
}

widget = {

	tag = "button"
	widget_class = "wxButton"
	display_name_expr = "name + \" (wxButton)\""

	props = {
		common_properties
		label = { STRING "button" }
		default = { BOOLEAN false }
		style = border_style
	}
    
    group = "Common Widgets"  

    toolbar_icon = {
        colors = "C6C3C6 000001 FFFFFF 848284 FF0000"
        pixels = "
        4444444444444444
        4444444444444444
        4444444444444444
        4444444444444444
        4411111111111444
        4122222222203144
        4120000000003144
        4120000000003144
        4120000000003144
        4120000000003144
        4120000000003144
        4133333333333144
        4411111111111444
        4444444444444444
        4444444444444444
        4444444444444444
        "
	}
}

widget = {
	tag = "textctrl"
	widget_class = "wxTextCtrl"
	display_name_expr = "name + \" (wxTextCtrl)\""

	props = {
		common_properties

		multiline = { BOOLEAN_FLAG { true false } { wxTE_MULTILINE "" }
					"false" "multiline" _VISIBLE_ONLY_ }

		style = "border_style|multiline"

		value = { STRING "" }
	}

    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "FF0000 000001"
        pixels = "
        0000000000000000
        0000000000000001
        0000000011000001
        0000000011000001
        0000000011000001
        0011110011111001
        0110011011001101
        0001111011001101
        0011011011001101
        0110011011001101
        0110011011001101
        0011111011111001
        0000000000000001
        0000000000000000
        0000000000000000
        0000000000000000
        "
	}
}

widget = {
	tag = "statictext"
	widget_class = "wxStaticText"
	display_name_expr = "name + \" (wxStaticText)\""

	props = {
		common_properties

		style = "border_style|multiline"

		label = { STRING "" }
	}

    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "FF0000 848284 000001"
        pixels = "
        0000000000000000
        0000000000000000
        0000000000000000
        0000000010000000
        0000000120000000
        0000001220000000
        0000002220000000
        0000020220002202
        0000200220022022
        0001222220120021
        0012000220210220
        0120000220212020
        2222002222220122
        0000000000000000
        0000000000000000
        0000000000000000
        "
	}
}

widget = {
	tag = "tree"
	widget_class = "wxTreeCtrl"
	display_name_expr = "name + \" (wxTreCtrl)\""

	props = {
		common_properties
		style = border_style

		value = { STRING "" }
	}
}

widget = { 
	tag = "checkbox"
	widget_class = "wxCheckBox"
	display_name_expr = "name + \" (wxCheckBox)\""
	
	props = {
		common_properties
		style = border_style
		label = { STRING "check" }

		checked = { BOOLEAN false }
	}

    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "FF0000 848284 000001 FFFFFF"
        pixels = "
        0000000000000000
        0011111111111000
        0122222222220300
        0123333333330300
        0123223332230300
        0123222322230300
        0123322222330300
        0123332223330300
        0123322222330300
        0123222322230300
        0123223332230300
        0123333333330300
        0120000000000300
        0033333333333000
        0000000000000000
        "
    }
  
}

widget = {
	tag = "choice"
	widget_class = "wxChoice"
	display_name_expr = "name + \" (wxChoice)\""

	props = {
		common_properties
		style = border_style

		item = { STRING_LIST "" "values" }
		selection = { NUMBER "-1" "selectedIndex" }
	}


    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "C6C3C6 000001 FF0000"
        pixels = "
        222222222222222
        222222222222222
        222111111111111
        222100000000110
        222100000000111
        222111111111111
        222210000000100
        222210000000100
        222210111000101
        222210000000100
        222210111110111
        222210000000100
        222210111100101
        222210000000100
        222210000000100
        "
	}
}

widget = {
	tag = "combobox"
	widget_class = "wxComboBox"
	display_name_expr = "name + \" (wxComboBox)\""

	props = {
		common_properties
		style = border_style

		item = { STRING_LIST "" "values" }
		selection = { NUMBER "-1" "selectedIndex" }
		label = { STRING "" }
	}
}

widget = {

	tag = "radiobutton"
	widget_class = "wxRadioButton"
	display_name_expr = "name + \" (wxRadioButton)\""

	props = {
		common_properties

		value = { FLAG { true false } true }
		radiobutton_style = { FLAG { true false } { wxRB_GROUP "" }
					"" "group" _VISIBLE_ONLY_ }

		style = "border_style|radiobutton_style"
	}

    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "FF0000 848284 000001 FFFFFF"
        pixels = "
        00000000000000000
        00000011110000000
        00001222222100000
        00012133333113000
        00021331113310000
        00123322222331300
        00123122222131300
        00123122222131300
        00123122222131300
        00023322222331300
        00011331113313000
        00001133333103000
        00003011111330000
        00000033333000000
        00000000000000000
        00000000000000000
        "
	}
}

///// higher-level widgets (allowed to have children) /////

widget = {
	tag = "dialog"
	widget_class = "wxDialog"
	display_name_expr = "name + \" (wxDialog)\""
	can_have_children = true

	props = {
		common_properties

		style = "border_style"
		
		title = { STRING "dialog-title" }
	}

	toolbar_icon = {
		colors = "FF0000 000084 000001 FFFFFF"
		pixels = "
		0000000000000000
		0111111111111100
		0111111111111100
		0233333333333200
		0232222333223200
		0232332333333200
		0232222333223200
		0233333333333200
		0232222222333200
		0233333333333200
		0232222222333200
		0233333333333200
		0222222222222200
		0000000000000000
		0000000000000000
		0000000000000000
		"
	}
}

widget = {
	tag = "menubar"
	widget_class = "wxMenuBar"
	display_name_expr = "name + \" (wxMenuBar)\""
	can_have_children = true

	props = {
		common_properties
	}

	toolbar_icon = {
		colors = "FF0000 000001 0000FF FFFFFF C6C3C6"
		pixels = "
		0000000000000000
		1111111100000000
		1233222100000000
		1111111111000000
		1444444441000000
		1222222221000000
		1233222221000000
		1444444441000000
		1411111441000000
		1444444441000000
		1411114441000000
		1444444441000000
		1411111141000000
		1444444441000000
		1444444441000000
		1111111111000000
		"
	}
}

widget = {
	tag = "panel"
	widget_class = "wxPanel"
	display_name_expr = "name + \" (wxPanel)\""
	can_have_children = true

	props = {
		common_properties

		style = "border_style"
	}

    
	toolbar_icon = {
		colors = "C6C3C6 FFFFFF 000001 DEDFDE 848284 FF0000"
		pixels = "
		5555555555555555
		5111111111111112
		5133333333333342
		5130000000000042
		5130000000000042
		5130000000000042
		5130000000000042
		5130000000000042
		5130000000000042
		5130000000000042
		5130000000000042
		5130000000000042
		5144444444444442
		5222222222222222
		5555555555555555
		5555555555555555
		"
	}
}

widget = {
	tag = "frame"
	widget_class = "wxFrame"
	display_name_expr = "name + \" (wxFrame)\""
	can_have_children = true

	props = {
		common_properties

		style = "border_style"
		
		title = { STRING "Frame-title" }
	}

	toolbar_icon = {
		colors = "390000 7B0000 7B7D7B 393C39 FF0000 FFFFFF 000039 00007B 0000FF 7B7D00 002C00 005D00 FFFF00 00BE00"
		pixels = "
		0110222222222223
		1441555555555552
		1441555555555552
		1441555555555552
		3223222222222676
		2552555555555787
		2552555555555787
		2552555555555323
		2552555555555252
		2552555555555252
		2552555555555252
		2552555555555252
		2552999999:;;252
		2552<<<<<<;==252
		2552<<<<<<;==252
		3223999999:;;323
		"
	}
}

widget = {
	tag = "notebook"
	widget_class = "wxNotebook"
	display_name_expr = "name + \" (wxNotebook)\""
	can_have_children = true

	node_class = "NotebookNode"
	previewer_class = "NotebookGlyph"

	props = {
		common_properties

		style = "border_style"
	}

	extra_props_tag_name = "page"
	extra_props_name = "Page"
	
	extra_props = 
	{
		label = { STRING "tabTitle" "" }
		image = { STRING "" "" }
	}

	toolbar_icon = {
		colors = "FF0000 000001 C0C0C0"
		pixels = "
		0000000000000000
		0111101110111000
		1222212221222100
		1222212221222100
		1222211111111111
		1222222222222221
		1211111111111121
		1210000000000121
		1210000000000121
		1210000000000121
		1210000000000121
		1211111111111121
		1222222222222221
		1111111111111111
		0000000000000000
		0000000000000000
		"
	}
}

widget = {
	tag = "staticbox"
	widget_class = "wxStaticBox"
	display_name_expr = "name + \" (wxStaticBox)\""
	can_have_children = false

	props = {
		common_properties
		
		label = { STRING "static-box" "" }

		style = "border_style"
	}

    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "FF0000 000001"
        pixels = "
        0000000000000000
        0001010101011100
        0000100101001000
        1100100010010011
        1001010010011101
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1000000000000001
        1111111111111111
        "
	}
}

////////////// sizers (described as widgets) //////////////

widget = {
	tag = "boxsizer"
	widget_class = "wxBoxSizer"

	node_class = "BoxSizerNode"
	previewer_class = "BoxSizerGlyph"

	display_name_expr = "name + \" (wxBoxSizer)\""
	can_have_children = true

	props = {
		name = { STRING "" "Name" }
		
		pos

		size
		
		orient  = { FLAG { wxVERTICAL wxHORIZONTAL } wxHORIZONTAL }
	}

	// properties which will be assigned to each widget 
	// which becomes a child of this pseudo-widget

	extra_props_tag_name = "sizeritem"
	extra_props_name = "Layout"
	
	extra_props = 
	{
		align = { FLAG { wxALIGN_CENTER wxALIGN_LEFT wxALIGN_RIGHT wxALIGN_BOTTOM wxALIGN_TOP }
		          wxALIGN_CENTER "align" _VISIBLE_ONLY_ }

		isStrechable  = { BOOLEAN_FLAG { true false } { 1 "" }
					     "false" "isStrechable" _VISIBLE_ONLY_ }

		isExpandable  = { BOOLEAN_FLAG { true false } { wxEXPAND "" }
					     "false" "isExpandable" _VISIBLE_ONLY_ }

		border		  = { NUMBER "0" }
					     
		hasFullBorder = { BOOLEAN_FLAG { true false } { wxALL "" }
					     "false" "hasFullBorder" _VISIBLE_ONLY_ }

		hasLeftBorder = { BOOLEAN_FLAG { true false } { wxLEFT "" }
					     "false" "hasLeftBorder" _VISIBLE_ONLY_ }

		hasRightBorder = { BOOLEAN_FLAG { true false } { wxRIGHT "" }
					     "false" "hasRightBorder" _VISIBLE_ONLY_ }

		hasTopBorder = { BOOLEAN_FLAG { true false } { wxTOP "" }
					     "false" "hasTopBorder" _VISIBLE_ONLY_ }

		hasBottomBorder = { BOOLEAN_FLAG { true false } { wxBOTTOM "" }
					     "false" "hasBottomBorder" _VISIBLE_ONLY_ }

		// invisible (combined) properties
		

		flag = "align|isExpandable|hasLeftBorder|hasRightBorder|hasTopBorder|hasBottomBorder|hasFullBorder"
		
		option = "isStrechable"
	}
	

    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "FF0000 3F3F3F FF0000 0000FF FF0000"
        pixels = "
        44444444444444444
        40000000200000004
        40000100220100004
        40000102220100004
        40111110201111104
        40000100200100004
        40030100200103004
        40330100200103304
        43333133333133334
        40330100200103304
        40030100200103004
        40000100200100004
        40111110201111104
        40000102220100004
        40000100220100004
        40000000200000004
        44444444444444444
        "
	}

}

widget = {
	tag = "gridsizer"
	widget_class = "wxGridSizer"

	node_class = "GridSizerNode"
	previewer_class = "BoxSizerGlyph"

	display_name_expr = "name + \" (wxBoxSizer)\""
	can_have_children = true

	props = {
		name = { STRING "" "Name" }
		
		pos

		size
		
		cols  = { NUMBER "-1" }
		rows = { NUMBER "-1" }
		hgap = { NUMBER "-1" }
		vgap = { NUMBER "-1" }
	}

	// properties which will be assigned to each widget 
	// which becomes a child of this pseudo-widget

	extra_props_tag_name = "item"
	extra_props_name = "Layout"
	
	extra_props = 
	{
		align = { FLAG { wxALIGN_CENTER wxALIGN_LEFT wxALIGN_RIGHT wxALIGN_BOTTOM wxALIGN_TOP }
		          wxALIGN_CENTER "align" _VISIBLE_ONLY_ }

		border		  = { NUMBER "0" }
					     
		hasFullBorder = { BOOLEAN_FLAG { true false } { wxALL "" }
					     "false" "hasFullBorder" _VISIBLE_ONLY_ }

		hasLeftBorder = { BOOLEAN_FLAG { true false } { wxLEFT "" }
					     "false" "hasLeftBorder" _VISIBLE_ONLY_ }

		hasRightBorder = { BOOLEAN_FLAG { true false } { wxRIGHT "" }
					     "false" "hasRightBorder" _VISIBLE_ONLY_ }

		hasTopBorder = { BOOLEAN_FLAG { true false } { wxTOP "" }
					     "false" "hasTopBorder" _VISIBLE_ONLY_ }

		hasBottomBorder = { BOOLEAN_FLAG { true false } { wxBOTTOM "" }
					     "false" "hasBottomBorder" _VISIBLE_ONLY_ }

		// invisible (combined) properties
		
		flag = "align|isExpandable|hasLeftBorder|hasRightBorder|hasTopBorder|hasBottomBorder|hasFullBorder"
	}
	
    group = "Common Widgets"
    
    toolbar_icon = {
        colors = "D5D5D5 3F3F3F FF0000 0000FF"
        pixels = "
        11111111111111111
        10000000200000001
        10000100220100001
        10000102220100001
        10111110201111101
        10000100200100001
        10030100200103001
        10330100200103301
        13333133333133331
        10330100200103301
        10030100200103001
        10000100200100001
        10111110201111101
        10000102220100001
        10000100220100001
        10000000200000001
        11111111111111111
        "
	}
}

////////////// spacers (described as widgets) //////////////

widget = {
	tag = "spacer"
	widget_class = "wxSpacer"

	node_class = "SpacerNode"
	previewer_class = "SpacerGlyph"

	display_name_expr = "name + \" (wxSpacer)\""
	can_have_children = false

	props = {
		name = { STRING "" "Name" }
		
		pos

		size

		horiz_space = { NUMBER "20" }
		vert_space = { NUMBER "20" }
	}

    group = "Common Widgets"
}
    
