public virtual void Update(GameTime gameTime) { mMouseState = Mouse.GetState(); mMousePos.X = mMouseState.X; mMousePos.Y = mMouseState.Y; if (Visible && (Form.TopForm == this || Form.TopForm == null || Form.TopForm.CanLostFocus == true)) { if (!Form.InUse) { CheckFocus(); } if (BtnClose != null) { BtnClose.Update(gameTime); } if (BtnMini != null) { BtnMini.Update(gameTime); } if (BtnMaxi != null) { BtnMaxi.Update(gameTime); } if (BtnRestore != null) { BtnRestore.Update(gameTime); } if (Controls.Count > 0) { Controls.Update(gameTime, FormPos, FormSize); } if (CanDrag) { if (mMouseState.LeftButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { if (!mDragging && !Form.InUse) { CheckDrag(); } else if (mDragging) { if (mFormAlpha > 0.5f) { mFormAlpha -= 0.02f; } Drag(); } } else if (mDragging) { StopDrag(); mFormAlpha = 1f; } } if (mCanResize) { CheckResize(); } if (Controls.Count > 0) { Controls.Update(gameTime, FormPos, FormSize); } if (FormState == EFormState.Maximizing) { Maximize(); } else if (FormState == EFormState.Minimizing) { Minimize(); } else if (FormState == EFormState.Restoring) { Restore(); } if (Form.TopForm == this) { CheckKeyboardState(); } UpdateVisibility(); } }