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
+ void MSWUpdateUIState();
+
private:
// common part of all ctors
void Init();