source: trunk/nv/gui/gui_element.hh @ 319

Last change on this file since 319 was 319, checked in by epyon, 11 years ago
  • created core module and moved all free source files there
  • took the opportunity to update all copyright lines and minor cleanup
  • minor fixes
  • not all examples are up to date
File size: 1.5 KB
Line 
1// Copyright (C) 2012-2014 ChaosForge Ltd
2// http://chaosforge.org/
3//
4// This file is part of NV Libraries.
5// For conditions of distribution and use, see copyright notice in nv.hh
6
7/**
8 * @file gui_element.hh
9 * @author Kornel Kisielewicz
10 * @brief GUI Element
11 */
12
13#ifndef NV_GUI_ELEMENT_HH
14#define NV_GUI_ELEMENT_HH
15
16#include <nv/core/common.hh>
17#include <nv/core/position.hh>
18#include <nv/core/io_event.hh>
19#include <nv/core/string.hh>
20#include <nv/gui/gui_common.hh>
21#include <list>
22
23namespace nv
24{
25        namespace gui
26        {
27
28                class element
29                {
30                public:
31                        /// List type
32                        typedef std::list<handle> list;
33
34
35                        element()
36                                : m_id( "" )
37                                , m_child_count(0)
38                                , m_class("")
39                                , m_enabled( true )
40                                , m_visible( true )
41                                , m_dirty( true )
42                                , m_render_data( nullptr ) {}
43
44                        string    m_id;              ///< id type of the object
45                        handle    m_parent;          ///< pointer to parent
46                        list      m_children;        ///< children objects
47                        size_t    m_child_count;     ///< number of children
48                        string    m_class; ///< Class name.
49                        string    m_text; ///< Displayed label or text.
50                        rectangle m_relative; ///< Position relative to parent.
51                        rectangle m_absolute; ///< Position relative to window/screen.
52                        bool m_enabled; ///< Whether the element accepts events.
53                        bool m_visible; ///< Whether the element is drawn.
54                        bool m_dirty; ///< Whether the element needs updating.
55                        render_data* m_render_data; ///<   -?-
56                };
57
58        } // namespace gui
59
60} // namespace nv
61
62#endif // NV_GUI_ELEMENT_HH
Note: See TracBrowser for help on using the repository browser.