GG
EveLayout.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /* GG is a GUI for SDL and OpenGL.
3  Copyright (C) 2003-2008 T. Zachary Laine
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public License
7  as published by the Free Software Foundation; either version 2.1
8  of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free
17  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18  02111-1307 USA
19 
20  If you do not wish to comply with the terms of the LGPL please
21  contact the author as other terms are available for a fee.
22 
23  Zach Laine
24  whatwasthataddress@gmail.com */
25 
28 #ifndef _EveLayout_h_
29 #define _EveLayout_h_
30 
31 #include <GG/adobe/eve_parser.hpp>
32 #include <GG/adobe/dictionary_fwd.hpp>
33 
34 #include <iosfwd>
35 
36 
37 namespace adobe {
38  class sheet_t;
39 }
40 
41 namespace boost {
42  class any;
43 }
44 
45 namespace GG {
46 
47 class Wnd;
48 
49 class EveLayout
50 {
51 public:
52  EveLayout(adobe::sheet_t& sheet);
53  ~EveLayout();
54 
55  adobe::dictionary_t Contributing() const;
56 
57  void Print(std::ostream& os) const;
58 
59  adobe::eve_callback_suite_t BindCallbacks();
60 
61  void AddCell(adobe::eve_callback_suite_t::cell_type_t type,
62  adobe::name_t name,
63  const adobe::line_position_t& position,
64  const adobe::array_t& initializer,
65  const std::string& brief,
66  const std::string& detailed);
67 
68  boost::any AddView(const boost::any& parent,
69  const adobe::line_position_t& position,
70  adobe::name_t name,
71  const adobe::array_t& parameters,
72  const std::string& brief,
73  const std::string& detailed);
74 
75  Wnd& Finish();
76 
77 private:
78  class Impl;
79  Impl* m_impl;
80 };
81 
82 }
83 
84 #endif