2 using System.Collections.Generic;
9 public partial class GameObject
11 private ILayout _layout = null;
15 private Vector _preferredSize =
new Vector( 50, 50 );
16 private bool _sizeByLayout =
true;
17 private bool _layoutNeedsRefreshing =
false;
29 return _horizontalSizing;
33 _horizontalSizing = value;
48 return _verticalSizing;
52 _verticalSizing = value;
67 return _preferredSize;
71 _preferredSize = value;
78 get {
return _sizeByLayout; }
79 set { _sizeByLayout = value; }
90 _layoutNeedsRefreshing =
true;
103 get {
return _layout; }
106 if ( _layout != null )
115 _layout.Parent =
this;
145 _childObjects.UpdateChanges();
156 if ( newSize.
X > maxSize.
X )
157 newSize.
X = maxSize.
X;
158 if ( newSize.
Y > maxSize.
Y )
159 newSize.
Y = maxSize.
Y;
166 UpdateLayout( _size );
174 private void UpdateSizeHints()
176 if ( _childObjects == null )
return;
178 foreach ( var child
in _childObjects )
180 child.UpdateSizeHints();
194 private void UpdateLayout(
Vector maximumSize )
199 if ( _childObjects != null )
201 foreach ( var child
in _childObjects )
203 child.UpdateLayout( child.Size );
216 return new Vector(
double.PositiveInfinity,
double.PositiveInfinity );
void InitLayout(double width, double height, ILayout layout)
void UpdateSizeHints(IList< GameObject > objects)
GameObject(double width, double height)
Alustaa uuden peliolion.
Rajapinta asettelijalle. Asettelija asettelee widgetin lapsioliot siten, että ne mahtuvat widgetin si...
virtual Vector PreferredSize
Koko, jota oliolla tulisi olla asettelijan sisällä. Todellinen koko voi olla pienempi, jos tilaa ei ole tarpeeksi.
void InitLayout(double width, double height)
Sizing
Olion koon asettaminen asettelijan sisällä.
virtual void InitChildren()
ILayout Layout
Asettelija lapsiolioille. Asettaa lapsiolioiden koon sekä paikan.
IEnumerable< IGameObject > Objects
Olion lapsioliot. Ei voi muokata.
virtual Sizing VerticalSizing
Koon asettaminen pystysuunnassa, kun olio on asettelijan sisällä.
virtual Sizing HorizontalSizing
Koon asettaminen vaakasuunnassa, kun olio on asettelijan sisällä.
virtual Vector GetMaximumSize()
Antaa widgetin maksimikoon siinä tapauksessa, että kokoa ei ole annettu rakentajassa (tai tarkemmin s...
void NotifyParentAboutChangedSizingAttributes()
Should be called whenever properties that might affect layouts are changed.
IGameObject Parent
Olio, jonka lapsiolio tämä olio on. Jos null, olio ei ole minkään olion lapsiolio.
void Update(IList< GameObject > objects, Vector maximumSize)
bool autoResizeChildObjects
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
void RefreshLayout()
Päivittää lapsiolioiden paikat ja koot, jos widgetille on asetettu asettelija. Tätä metodia EI yleens...