40 #ifndef _uiquadrenderable_cpp
41 #define _uiquadrenderable_cpp
43 #include "UI/quadrenderable.h"
45 #include "UI/multilinetextlayer.h"
46 #include "UI/singlelinetextlayer.h"
47 #include "UI/layoutstrategy.h"
48 #include "UI/widget.h"
49 #include "UI/screen.h"
51 #include "UI/imagelayer.h"
52 #include "UI/multilinetextlayer.h"
53 #include "UI/singlelinetextlayer.h"
55 #include "stringtool.h"
86 { (*It).second->NotifyActive(); }
92 { (*It).second->NotifyInactive(); }
102 if( (*It).first > ZOrder ) {
134 if( (*It).second == RL ) {
166 {
return "RenderLayerGroup"; }
178 Priority(UI::RP_Medium),
179 MousePassthrough(false),
180 ManualTransformUpdates(false),
181 AllLayersDirty(false)
193 Priority(UI::RP_Medium),
194 MousePassthrough(false),
195 ManualTransformUpdates(false),
196 AllLayersDirty(false)
208 Priority(UI::RP_Medium),
209 MousePassthrough(false),
210 ManualTransformUpdates(false),
211 AllLayersDirty(false)
250 (*It).second->_AppendVertices(Vertices);
271 while( Pow2 < NewSize )
299 if( LayerType == RenderLayer::RLT_MultiLineText || LayerType == RenderLayer::RLT_SingleLineText ) {
301 if( LayerHeight > Ret )
354 (*ChildIt)->SetRenderPriorityCascading(RP);
624 (*It).second->RemoveLayer(ToBeDestroyed);
639 delete ToBeDestroyed;
646 (*It).second->RemoveAllLayers();
717 for( GroupOrderEntryVector::const_iterator It = Entrys.begin() ; It != Entrys.end() ; ++It )
727 (*It).second->RemoveLayer(Layer);
735 (*It).second->RemoveLayer(Layer);
745 this->
RenderLayerGroups.insert( std::pair<String,RenderLayerGroup*>(Name,NewGroup) );
760 else return this->CreateRenderLayerGroup(Name);
818 if( (*It)->GetZOrder() > Zorder ) {
842 if( Zorder == (*ChildIt)->GetZOrder() )
852 if( RendName == (*ChildIt)->GetName() )
867 if( Child == (*It) ) {
880 (*It)->ParentQuad = NULL;
958 if(
this == (*ChildIt) ) {
959 if( ParentEnd != (++ChildIt) )
return (*ChildIt);
960 else return ( Wrap ? (*ParentBegin) :
this );
974 if(
this == (*ChildIt) ) {
975 if( ParentBegin != (--ChildIt) )
return (*ChildIt);
976 else return ( Wrap ? (*ParentEnd) :
this );
1049 SerializeError(
"Create XML Version Attribute",
"RenderLayers",
true);
1054 (*LayerIt)->ProtoSerialize(SelfRoot);
1062 SerializeError(
"Create XML Version Attribute",
"RenderLayerGroups",
true);
1092 (*ChildIt)->ProtoSerialize(ChildrenNode);
1114 if( !PropertiesNode.
Empty() ) {
1117 CurrAttrib = PropertiesNode.
GetAttribute(
"MousePassthrough");
1118 if( !CurrAttrib.
Empty() )
1121 CurrAttrib = PropertiesNode.
GetAttribute(
"ManualTransformUpdates");
1122 if( !CurrAttrib.
Empty() )
1126 if( !CurrAttrib.
Empty() )
1129 CurrAttrib = PropertiesNode.
GetAttribute(
"VertexCache");
1130 if( !CurrAttrib.
Empty() )
1134 if( !ActiveRenderGroup.empty() )
1139 if( !DimsNode.
Empty() )
1143 if( !PositioningNode.
Empty() )
1147 if( !SizingNode.
Empty() )
1164 if( !LayersNode.
Empty() ) {
1170 if( (*LayerNodeIt).Name() ==
String(
"ImageLayer") ) {
1175 }
else if( (*LayerNodeIt).Name() ==
String(
"SingleLineTextLayer") ) {
1180 }
else if( (*LayerNodeIt).Name() ==
String(
"MultiLineTextLayer") ) {
1201 if( !GroupsNode.
Empty() ) {
1207 CurrAttrib = (*GroupNodeIt).GetAttribute(
"Name");
1208 if( !CurrAttrib.
Empty() )
1212 for(
XML::NodeIterator LayerNodeIt = (*GroupNodeIt).begin() ; LayerNodeIt != (*GroupNodeIt).end() ; ++LayerNodeIt )
1214 XML::Attribute IndexAttrib = (*LayerNodeIt).GetAttribute(
"Index");
1215 XML::Attribute ZOrderAttrib = (*LayerNodeIt).GetAttribute(
"ZOrder");
1217 if( IndexAttrib && ZOrderAttrib ) {
1234 if( !ChildrenNode.
Empty() ) {
1253 return "QuadRenderable";
1283 (*It)->_MarkDirty();
1284 (*It)->_MarkAllChildrenDirty();
1319 if( (*ChildIt)->_HasAvailableRenderData() ) {
1320 (*ChildIt)->_AppendRenderDataCascading(*
VertexCache);
1329 if( (*It)->_HasAvailableRenderData() ) {
1330 (*It)->_AppendRenderDataCascading(RenderData);