Widget * Menu::CreateWidget(Profile * profile, const xmlNode * widgetNode, std::string & widgetName) { Widget * widget = NULL; if ("Picture" == widgetName) { widget = new PictureWidget(profile, widgetNode); } else if ("GridBox" == widgetName) { widget = new GridBox(profile, widgetNode); } else if ("ButtonPic" == widgetName) { widget = new ButtonPic(profile, widgetNode); } else if ("Label" == widgetName) { widget = new Label(profile, widgetNode); } else if ("CheckBox" == widgetName) { widget = new CheckBox(profile, widgetNode); } else if ("PicTxtCheckBox" == widgetName ) { widget = new PictureTextCBox(profile, widgetNode); } else if ("VerticalBox" == widgetName) { widget = new VBox(profile, widgetNode); } else if ("HorizontalBox" == widgetName) { widget = new HBox(profile, widgetNode); } else if ("SpinButton" == widgetName) { widget = new SpinButton(profile, widgetNode); } else if ("PasswordBox" == widgetName) { widget = new PasswordBox(profile, widgetNode); } else if ("TextBox" == widgetName) { widget = new TextBox(profile, widgetNode); } else if ("Button" == widgetName) { widget = new Button(profile, widgetNode); } if (widget) { return widget->LoadXMLConfiguration() ? widget : NULL; } return NULL; }