00001 /*************************************************************************** 00002 LibUFO - UI For OpenGL 00003 copyright : (C) 2001-2005 by Johannes Schmidt 00004 email : schmidtjf at users.sourceforge.net 00005 ------------------- 00006 00007 file : include/ufo/xml/uxul.hpp 00008 begin : Sat Feb 27 2005 00009 $ $ 00010 ***************************************************************************/ 00011 00012 /*************************************************************************** 00013 * This library is free software; you can redistribute it and/or * 00014 * modify it under the terms of the GNU Lesser General Public * 00015 * License as published by the Free Software Foundation; either * 00016 * version 2.1 of the License, or (at your option) any later version. * 00017 * * 00018 * This library is distributed in the hope that it will be useful, * 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00021 * Lesser General Public License for more details. * 00022 * * 00023 * You should have received a copy of the GNU Lesser General Public * 00024 * License along with this library; if not, write to the Free Software * 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 00026 ***************************************************************************/ 00027 00028 #ifndef UXUL_HPP 00029 #define UXUL_HPP 00030 00031 #include "../uobject.hpp" 00032 00033 #include "../util/urectangle.hpp" 00034 #include "../signals/ufo_signals.hpp" 00035 00036 #include <map> 00037 00038 class TiXmlDocument; 00039 class TiXmlElement; 00040 00041 namespace ufo { 00042 00043 class UXFrame; 00044 class URootPane; 00045 class UWidget; 00046 00058 class UFO_EXPORT UXul : public UObject { 00059 UFO_DECLARE_DYNAMIC_CLASS(UXul) 00060 public: 00061 UXul(); 00062 UXul(const std::string & guiFile); 00063 UXul(const std::string & guiFile, std::map<std::string, UActionSlot> map); 00064 virtual ~UXul(); 00065 void load(const std::string & guiFile); 00066 void setActionMap(std::map<std::string, UActionSlot> map); 00070 URootPane * createRootPane(); 00074 UXFrame * createFrame(); 00076 UWidget * get(const std::string & id); 00077 00078 private: // Private attributes 00079 TiXmlDocument * m_doc; 00080 URootPane * m_root; 00081 std::string m_title; 00082 std::map<std::string, UWidget*> m_map; 00083 std::map<std::string, UActionSlot> m_actionMap; 00084 }; 00085 00086 } // namespace ufo 00087 00088 #endif // UXUL_HPP