- else
- {
- wxItemKind kind = wxITEM_NORMAL;
- if (GetBool(wxT("radio")))
- kind = wxITEM_RADIO;
- if (GetBool(wxT("toggle")))
+
+ wxItemKind kind = wxITEM_NORMAL;
+ if (GetBool(wxT("radio")))
+ kind = wxITEM_RADIO;
+
+ if (GetBool(wxT("toggle")))
+ {
+ if ( kind != wxITEM_NORMAL )
+ {
+ ReportParamError
+ (
+ "toggle",
+ "tool can't have both <radio> and <toggle> properties"
+ );
+ }
+
+ kind = wxITEM_CHECK;
+ }
+#if wxUSE_MENUS
+ // check whether we have dropdown tag inside
+ wxMenu *menu = NULL; // menu for drop down items
+ wxXmlNode * const nodeDropdown = GetParamNode("dropdown");
+ if ( nodeDropdown )
+ {
+ if ( kind != wxITEM_NORMAL )
+ {
+ ReportParamError
+ (
+ "dropdown",
+ "drop-down tool can't have neither <radio> nor <toggle> properties"
+ );
+ }
+
+ kind = wxITEM_DROPDOWN;
+
+ // also check for the menu specified inside dropdown (it is
+ // optional and may be absent for e.g. dynamically-created
+ // menus)
+ wxXmlNode * const nodeMenu = nodeDropdown->GetChildren();
+ if ( nodeMenu )