+ void GetTextExtent(const wxString& string,
+ int* w, int* h,
+ int* descent = NULL,
+ int* externalLeading = NULL,
+ const wxFont* font = NULL) const;
+
+ /**
+ Gets the dimensions of the string as it would be drawn on the
+ window with the currently selected font.
+ */
+ wxSize GetTextExtent(const wxString& string) const;
+
+ /**
+ Returns the region specifying which parts of the window have been damaged.
+ Should only be called within an wxPaintEvent handler.
+
+ @see wxRegion, wxRegionIterator
+ */
+ const wxRegion& GetUpdateRegion() const;
+
+ /**
+ Returns @true if this window background is transparent (as, for example,
+ for wxStaticText) and should show the parent window background.
+
+ This method is mostly used internally by the library itself and you normally
+ shouldn't have to call it. You may, however, have to override it in your
+ wxWindow-derived class to ensure that background is painted correctly.
+ */
+ virtual bool HasTransparentBackground();
+
+ /**
+ Causes this window, and all of its children recursively (except under wxGTK1
+ where this is not implemented), to be repainted. Note that repainting doesn't
+ happen immediately but only during the next event loop iteration, if you need
+ to update the window immediately you should use Update() instead.
+
+ @param eraseBackground
+ If @true, the background will be erased.
+ @param rect
+ If non-@NULL, only the given rectangle will be treated as damaged.
+
+ @see RefreshRect()
+ */
+ virtual void Refresh(bool eraseBackground = true,
+ const wxRect* rect = NULL);
+
+ /**
+ Redraws the contents of the given rectangle: only the area inside it will be
+ repainted.
+
+ This is the same as Refresh() but has a nicer syntax as it can be called
+ with a temporary wxRect object as argument like this @c RefreshRect(wxRect(x, y, w, h)).
+ */
+ void RefreshRect(const wxRect& rect, bool eraseBackground = true);
+
+ /**
+ Calling this method immediately repaints the invalidated area of the window and
+ all of its children recursively while this would usually only happen when the
+ flow of control returns to the event loop.
+
+ Notice that this function doesn't invalidate any area of the window so
+ nothing happens if nothing has been invalidated (i.e. marked as requiring
+ a redraw). Use Refresh() first if you want to immediately redraw the
+ window unconditionally.
+ */
+ virtual void Update();
+
+ /**
+ Sets the background colour of the window.
+ Please see InheritAttributes() for explanation of the difference between
+ this method and SetOwnBackgroundColour().
+
+ @param colour
+ The colour to be used as the background colour, pass
+ wxNullColour to reset to the default colour.
+
+ @remarks The background colour is usually painted by the default
+ wxEraseEvent event handler function under Windows and
+ automatically under GTK.
+ Note that setting the background colour does not cause an
+ immediate refresh, so you may wish to call wxWindow::ClearBackground
+ or wxWindow::Refresh after calling this function.
+ Using this function will disable attempts to use themes for
+ this window, if the system supports them. Use with care since
+ usually the themes represent the appearance chosen by the user
+ to be used for all applications on the system.