- Timestamp:
- 06/19/14 20:22:54 (11 years ago)
- Location:
- trunk/src/gui
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gui/gui_environment.cc
r267 r268 42 42 element* result = new element( r ); 43 43 if ( parent == nullptr ) parent = m_screen; 44 parent->add_child(result );44 add_child( parent, result ); 45 45 return result; 46 46 } … … 49 49 { 50 50 destroy_children( e ); 51 e->detach(); 51 if ( e->m_parent ) 52 { 53 remove_child( e->m_parent, e ); 54 } 52 55 delete e; 53 56 } … … 56 59 { 57 60 // e->on_update( elapsed ); 58 if ( e-> is_visible())59 { 60 for ( object* i : *e)61 { 62 update( ((element*)i), elapsed );63 } 64 } 65 if ( e-> is_dirty()|| e->m_render_data == nullptr )61 if ( e->m_visible ) 62 { 63 for ( element* i : e->m_children ) 64 { 65 update( i, elapsed ); 66 } 67 } 68 if ( e->m_dirty || e->m_render_data == nullptr ) 66 69 { 67 70 m_renderer->redraw( e, elapsed ); 68 e-> set_dirty( false );71 e->m_dirty = false; 69 72 } 70 73 } … … 72 75 void nv::gui::environment::draw( element* e ) 73 76 { 74 if ( e-> is_visible())77 if ( e->m_visible ) 75 78 { 76 79 // e->on_draw(); 77 80 m_renderer->draw( e ); 78 for ( object* i : *e)79 { 80 draw( (element*)i);81 for ( element* i : e->m_children ) 82 { 83 draw(i); 81 84 } 82 85 } … … 96 99 void nv::gui::environment::add_child( element* child ) 97 100 { 98 m_screen->add_child( child ); 101 add_child( m_screen, child ); 102 } 103 104 void nv::gui::environment::add_child( element* parent, element* child ) 105 { 106 if ( child ) 107 { 108 if ( child->m_parent ) 109 { 110 remove_child( child->m_parent, child ); 111 } 112 child->m_parent = parent; 113 parent->m_children.push_back( child ); 114 parent->m_child_count++; 115 } 99 116 } 100 117 … … 103 120 while ( !e->m_children.empty() ) 104 121 { 105 destroy_element( (element*)e->m_children.front() );122 destroy_element( e->m_children.front() ); 106 123 } 107 124 } … … 121 138 bool nv::gui::environment::process_io_event( element* e, const io_event& ev ) 122 139 { 123 return e->m_parent ? process_io_event( (element*)e->m_parent, ev ) : false;140 return e->m_parent ? process_io_event( e->m_parent, ev ) : false; 124 141 } 125 142 … … 131 148 nv::gui::element* nv::gui::environment::get_deepest_child( element* e, const position& p ) 132 149 { 133 if ( !e-> is_visible()) return nullptr;150 if ( !e->m_visible ) return nullptr; 134 151 135 152 element* result = nullptr; … … 138 155 while ( it != e->m_children.rend() ) 139 156 { 140 result = get_deepest_child( (element*)(*it), p );157 result = get_deepest_child( *it, p ); 141 158 if ( result ) return result; 142 159 ++it; 143 160 } 144 161 145 if ( e-> contains( p) ) return e;162 if ( e->m_absolute.contains(p) ) return e; 146 163 return nullptr; 147 164 } … … 149 166 void nv::gui::environment::move_to_top( element* child ) 150 167 { 151 element* parent = (element*)child->m_parent;168 element* parent = child->m_parent; 152 169 if ( parent ) 153 170 { 154 auto it = std::find( parent->m_children.begin(), parent->m_children.end(), (object*)child );171 auto it = std::find( parent->m_children.begin(), parent->m_children.end(), child ); 155 172 if ( it != parent->m_children.end() ) 156 173 { … … 164 181 void nv::gui::environment::move_to_bottom( element* child ) 165 182 { 166 element* parent = (element*)child->m_parent;183 element* parent = child->m_parent; 167 184 if ( parent ) 168 185 { 169 auto it = std::find( parent->m_children.begin(), parent->m_children.end(), (object*)child );186 auto it = std::find( parent->m_children.begin(), parent->m_children.end(), child ); 170 187 if ( it != parent->m_children.end() ) 171 188 { … … 195 212 if ( e->m_parent ) 196 213 { 197 pabsolute = ((element*)(e->m_parent))->m_absolute;214 pabsolute = e->m_parent->m_absolute; 198 215 } 199 216 200 217 e->m_absolute = e->m_relative + pabsolute.ul; 201 218 202 for ( object* o : e->m_children ) 203 { 204 recalculate_absolute( ((element*)o) ); 205 } 206 } 207 219 for ( element* o : e->m_children ) 220 { 221 recalculate_absolute( o ); 222 } 223 } 224 225 void nv::gui::environment::set_class( element* e, const string& text ) 226 { 227 e->m_class = text; 228 e->m_dirty = true; 229 } 230 231 void nv::gui::environment::set_text( element* e, const string& text ) 232 { 233 e->m_text = text; 234 e->m_dirty = true; 235 } 236 237 void nv::gui::environment::remove_child( element* parent, element* child ) 238 { 239 if ( child->m_parent != parent ) 240 { 241 return; // signal error? 242 } 243 auto it = std::find( parent->m_children.begin(), parent->m_children.end(), child ); 244 if ( it != parent->m_children.end() ) 245 { 246 (*it)->m_parent = nullptr; 247 parent->m_children.erase(it); 248 } 249 250 } 251 -
trunk/src/gui/gui_renderer.cc
r267 r268 198 198 199 199 qvec.clear(); 200 rectangle abs = e-> get_absolute();201 if ( e-> get_absolute()!= m_area )200 rectangle abs = e->m_absolute; 201 if ( e->m_absolute != m_area ) 202 202 { 203 203 int border; … … 220 220 } 221 221 222 text = e-> get_text();222 text = e->m_text; 223 223 if ( !text.empty() ) 224 224 { -
trunk/src/gui/gui_style.cc
r204 r268 67 67 { 68 68 const char* centry = entry.c_str(); 69 const char* cid = e-> get_id().c_str();70 const char* cclass = e-> get_class().c_str();69 const char* cid = e->m_id.c_str(); 70 const char* cclass = e->m_class.c_str(); 71 71 lua_getglobal( m_lua, "default" ); 72 72 int global = lua_gettop( m_lua );
Note: See TracChangeset
for help on using the changeset viewer.