public virtual void StateChanged(bool redraw)
{
if(this.Disposed == true)
{
throw new ObjectDisposedException(this.GetType().Name);
}
UpdateVariables();
if((_expressionRegisters.Count > 0) && (_ops.Count > 0))
{
EvaluateRegisters();
}
foreach(DrawWindow drawWindow in _drawWindows)
{
if(drawWindow.Window != null)
{
drawWindow.Window.StateChanged(redraw);
}
else
{
drawWindow.Simple.StateChanged(redraw);
}
}
if(redraw == true)
{
if((this.Flags & WindowFlags.Desktop) == WindowFlags.Desktop)
{
Draw(0, 0);
}
// TODO: cinematic
/*if ( background && background->CinematicLength() ) {
background->UpdateCinematic( gui->GetTime() );
}*/
}
}