예제 #1
0
파일: menu.cpp 프로젝트: Arnaud474/Warmux
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;
}