コード例 #1
0
ファイル: GUIManager.cpp プロジェクト: hmkey/Game_3
void GUIManager::addButtons(TiXmlNode* buttons_node, float* values, MyGUI::Window* w)
{
   for(TiXmlNode* button_node = buttons_node->FirstChild("button"); button_node; button_node = button_node->NextSibling())
   {  
      std::string name_text = GameManager::textFromChildNode(button_node, "name");
      std::string caption_text = GameManager::textFromChildNode(button_node, "caption");
      std::string skin_text = GameManager::textFromChildNode(button_node, "skin");
      std::string position_text = GameManager::textFromChildNode(button_node, "position");
      GameManager::parseFloats(position_text, values);
      uint32 left = (uint32) values[0];
      uint32 top = (uint32) values[1];
      std::string size_text = GameManager::textFromChildNode(button_node, "size");
      GameManager::parseFloats(size_text, values);
      uint32 width = (uint32) values[0];
      uint32 height = (uint32) values[1];

      std::string file_name_text = GameManager::textFromChildNode(button_node, "file_name");
      std::string script_name_text = GameManager::textFromChildNode(button_node, "script_name");

      std::string font_size_text = GameManager::textFromChildNode(button_node, "font");
      uint32 font_size = (uint32) GameManager::parseFloat(font_size_text);

      MyGUI::Button* b = w->createWidget<MyGUI::Button>(skin_text, left, top, width, height, MyGUI::Align::Default, name_text);
      b->setCaption(caption_text);
      b->setFontHeight(font_size);
      b->setTextColour(MyGUI::Colour(0,0,0));
      b->eventMouseButtonPressed += newDelegate(this, &GUIManager::buttonGUIDelegate);

      GUIWidgetScript* widget_script = new GUIWidgetScript(b, name_text);
      widget_script->setFileName(file_name_text);
      widget_script->setScriptName(script_name_text);

      all_widgets->tableInsert(widget_script);
   }
}