GG

EveLayout.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /* GG is a GUI for SDL and OpenGL.
00003    Copyright (C) 2003-2008 T. Zachary Laine
00004 
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public License
00007    as published by the Free Software Foundation; either version 2.1
00008    of the License, or (at your option) any later version.
00009    
00010    This library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014     
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA
00019 
00020    If you do not wish to comply with the terms of the LGPL please
00021    contact the author as other terms are available for a fee.
00022     
00023    Zach Laine
00024    whatwasthataddress@gmail.com */
00025    
00028 #ifndef _EveLayout_h_
00029 #define _EveLayout_h_
00030 
00031 #include <GG/adobe/eve_parser.hpp>
00032 #include <GG/adobe/dictionary_fwd.hpp>
00033 
00034 #include <iosfwd>
00035 
00036 
00037 namespace adobe {
00038     class sheet_t;
00039 }
00040 
00041 namespace boost {
00042     class any;
00043 }
00044 
00045 namespace GG {
00046 
00047 class Wnd;
00048 
00049 class EveLayout
00050 {
00051 public:
00052     EveLayout(adobe::sheet_t& sheet);
00053     ~EveLayout();
00054 
00055     adobe::dictionary_t Contributing() const;
00056 
00057     void Print(std::ostream& os) const;
00058 
00059     adobe::eve_callback_suite_t BindCallbacks();
00060 
00061     void AddCell(adobe::eve_callback_suite_t::cell_type_t type,
00062                  adobe::name_t name,
00063                  const adobe::line_position_t& position,
00064                  const adobe::array_t& initializer,
00065                  const std::string& brief,
00066                  const std::string& detailed);
00067 
00068     boost::any AddView(const boost::any& parent,
00069                        const adobe::line_position_t& position,
00070                        adobe::name_t name,
00071                        const adobe::array_t& parameters,
00072                        const std::string& brief,
00073                        const std::string& detailed);
00074 
00075     Wnd& Finish();
00076 
00077 private:
00078     class Impl;
00079     Impl* m_impl;
00080 };
00081 
00082 }
00083 
00084 #endif