// headers
// ---------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "window.h"
-#endif
-
// [at least] some version of Windows send extra mouse move messages after
// a mouse click or a key press - to temporarily fix this problem, set the
// define below to 1
void AssociateHandle(WXWidget handle);
void DissociateHandle();
+ // does this window have deferred position and/or size?
+ bool IsSizeDeferred() const;
+
// implementation from now on
// ==========================
// has the window been frozen by Freeze()?
bool IsFrozen() const { return m_frozenness > 0; }
+ // this simply moves/resizes the given HWND which is supposed to be our
+ // sibling (this is useful for controls which are composite at MSW level
+ // and for which DoMoveWindow() is not enough)
+ //
+ // returns true if the window move was deferred, false if it was moved
+ // immediately (no error return)
+ bool DoMoveSibling(WXHWND hwnd, int x, int y, int width, int height);
+
// move the window to the specified location and resize it: this is called
// from both DoSetSize() and DoSetClientSize() and would usually just call
// ::MoveWindow() except for composite controls which will want to arrange
// the background, false otherwise (i.e. the system should erase it)
bool DoEraseBackground(WXHDC hDC);
+ // generate WM_UPDATEUISTATE if it's needed for the OS we're running under
+ //
+ // the parameter should be one of UIS_XXX constants
+ void MSWUpdateUIState(int action);
+
private:
// common part of all ctors
void Init();