예제 #1
0
/*
  <ButtonPic x="250px" y="50px"
             width="120px" height="110px"
             action="localGame"
             picture="menu/i_play.png"
             text="Play" />
*/
bool ButtonPic::LoadXMLConfiguration(void)
{
  if (NULL == profile || NULL == widgetNode) {
    //TODO error ... xml attributs not initialized !
    return false;
  }
  XmlReader * xmlFile = profile->GetXMLDocument();

  ParseXMLGeometry();
  ParseXMLMisc();
  ParseXMLBorder();
  ParseXMLBackground();

  std::string picture("menu/pic_not_found.png");
  if (!xmlFile->ReadStringAttr(widgetNode, "picture", picture)) {
    //TODO error
    return false;
  }

  picture = profile->relative_path + picture;
  Surface surface(picture.c_str());
  m_img_normal = surface;

  std::string labelText("No Text");
  xmlFile->ReadStringAttr(widgetNode, "text", labelText);
  txt_label = new Text(_(labelText.c_str()), dark_gray_color, Font::FONT_SMALL, Font::FONT_BOLD, false);
  //txt_label->SetMaxWidth(size.x);

  return true;
}
예제 #2
0
bool PictureTextCBox::LoadXMLConfiguration()
{
  if (NULL == profile || NULL == widgetNode) {
    return false;
  }

  XmlReader * xmlFile = profile->GetXMLDocument();

  ParseXMLGeometry();
  ParseXMLBorder();
  ParseXMLBackground();

  Text::LoadXMLConfiguration(xmlFile, widgetNode);

  std::string file;
  Surface tmp;

  xmlFile->ReadStringAttr(widgetNode, "pictureEnabled", file);
  file = profile->relative_path + file;
  if (!tmp.ImgLoad(file)) {
    file = profile->relative_path + "menu/enabled.png";
    if (!tmp.ImgLoad(file)) {
      Error("XML Loading -> PictureTextCBox: can't load " + file);
    }
  }
  m_enabled = tmp.DisplayFormatAlpha();

  xmlFile->ReadStringAttr(widgetNode, "picture", file);
  file = profile->relative_path + file;
  if (!tmp.ImgLoad(file)) {
    Error("XML Loading -> PictureTextCBox: Node 'picture': can't load the file : " + file);
  }
  m_image = tmp.DisplayFormatAlpha();

  xmlFile->ReadStringAttr(widgetNode, "pictureDisabledFront", file);
  file = profile->relative_path + file;
  if (!tmp.ImgLoad(file)) {
    file = profile->relative_path + "menu/disabled_front.png";
    if (!tmp.ImgLoad(file)) {
      Error("XML Loading -> PictureTextCBox: can't load " + file);
    }
  }
  m_disabled_front = tmp.DisplayFormatAlpha();

  xmlFile->ReadStringAttr(widgetNode, "pictureDisabledBack", file);
  file = profile->relative_path + file;
  if (!tmp.ImgLoad(file)) {
    file = profile->relative_path + "menu/disabled_back.png";
    if (!tmp.ImgLoad(file)) {
      Error("XML Loading -> PictureTextCBox: can't load " + file);
    }
  }
  m_disabled_back = tmp.DisplayFormatAlpha();

  return true;
}
예제 #3
0
bool SpinButton::LoadXMLConfiguration(void)
{
  if (NULL == profile || NULL == widgetNode) {
    return false;
  }

  ParseXMLGeometry();
  ParseXMLBorder();
  ParseXMLBackground();

  XmlReader * xmlFile = profile->GetXMLDocument();

  const xmlNode * labelNode = xmlFile->GetFirstNamedChild(widgetNode, "Label");
  if (NULL != labelNode) {
    txtLabel = new Label(profile, labelNode);
    txtLabel->LoadXMLConfiguration();
  } else {
    txtLabel = new Label("n/a", 100);
  }
  txtLabel->Pack();
  txtLabel->SetPosition(position.x,
                        position.y + (size.y / 2) - (txtLabel->GetSizeY() / 2));

  const xmlNode * valueNode = xmlFile->GetFirstNamedChild(widgetNode, "Value");
  if (NULL != valueNode) {
    txtValue = new Label(profile, valueNode);
    txtValue->LoadXMLConfiguration();
  } else {
    txtValue = new Label("0", 100);
  }
  txtValue->Pack();
  txtValue->SetPosition(position.x + size.x - txtValue->GetWidth(),
                        position.y + (size.y / 2) - (txtValue->GetSizeY() / 2));

  AbstractSpinButton::LoadXMLConfiguration();
  ValueHasChanged();

  const xmlNode * buttonMinusNode = xmlFile->GetFirstNamedChild(widgetNode, "ButtonMinus");
  if (NULL != buttonMinusNode) {
    m_minus = new Button(profile, buttonMinusNode);
    m_minus->LoadXMLConfiguration();
    m_minus->SetPosition(position.x + size.x - m_minus->GetSizeX(),
                         position.y);
  }

  const xmlNode * buttonPlusNode = xmlFile->GetFirstNamedChild(widgetNode, "ButtonPlus");
  if (NULL != buttonPlusNode) {
    m_plus = new Button(profile, buttonPlusNode);
    m_plus->LoadXMLConfiguration();
    m_plus->SetPosition(position.x + size.x - m_plus->GetSizeX(),
                        position.y + size.y - m_plus->GetSizeY());
  }

  return true;
}
예제 #4
0
파일: label.cpp 프로젝트: yeKcim/warmux
bool Label::LoadXMLConfiguration()
{
  if (NULL == profile || NULL == widgetNode) {
    return false;
  }

  ParseXMLGeometry();
  ParseXMLBorder();
  ParseXMLBackground();

  Text::LoadXMLConfiguration(profile->GetXMLDocument(),
                             widgetNode);

  return true;
}