]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/private/textmeasure.h
fix wxBitmapComboBox Gtk-CRITICAL assertion `GTK_IS_ENTRY (entry)' failed
[wxWidgets.git] / include / wx / private / textmeasure.h
index a5432143668db509feffe98e5829376fc65710fe..4788c992eda29c2ca3a55bb7356065538519396e 100644 (file)
@@ -23,7 +23,8 @@ class wxTextMeasureBase
 {
 public:
     // The first ctor argument must be non-NULL, i.e. each object of this class
 {
 public:
     // The first ctor argument must be non-NULL, i.e. each object of this class
-    // is associated with either a valid wxDC or a valid wxWindow.
+    // is associated with either a valid wxDC or a valid wxWindow. The font can
+    // be NULL to use the current DC/window font or can be specified explicitly.
     wxTextMeasureBase(const wxDC *dc, const wxFont *theFont);
     wxTextMeasureBase(const wxWindow *win, const wxFont *theFont);
 
     wxTextMeasureBase(const wxDC *dc, const wxFont *theFont);
     wxTextMeasureBase(const wxWindow *win, const wxFont *theFont);
 
@@ -61,18 +62,20 @@ public:
                                wxArrayInt& widths,
                                double scaleX);
 
                                wxArrayInt& widths,
                                double scaleX);
 
-protected:
+
     // These functions are called by our public methods before and after each
     // call to DoGetTextExtent(). Derived classes may override them to prepare
     // for -- possibly several -- subsequent calls to DoGetTextExtent().
     //
     // As these calls must be always paired, they're never called directly but
     // only by our friend MeasuringGuard class.
     // These functions are called by our public methods before and after each
     // call to DoGetTextExtent(). Derived classes may override them to prepare
     // for -- possibly several -- subsequent calls to DoGetTextExtent().
     //
     // As these calls must be always paired, they're never called directly but
     // only by our friend MeasuringGuard class.
+    //
+    // NB: They're public only to allow VC6 to compile this code, there doesn't
+    //     seem to be any way to give MeasuringGuard access to them (FIXME-VC6)
     virtual void BeginMeasuring() { }
     virtual void EndMeasuring() { }
 
     virtual void BeginMeasuring() { }
     virtual void EndMeasuring() { }
 
-    friend class MeasuringGuard;
-
+protected:
     // RAII wrapper for the two methods above.
     class MeasuringGuard
     {
     // RAII wrapper for the two methods above.
     class MeasuringGuard
     {
@@ -121,6 +124,10 @@ protected:
                            wxCoord *descent = NULL,
                            wxCoord *externalLeading = NULL);
 
                            wxCoord *descent = NULL,
                            wxCoord *externalLeading = NULL);
 
+    // Return a valid font: if one was given to us in the ctor, use this one,
+    // otherwise use the current font of the associated wxDC or wxWindow.
+    wxFont GetFont() const;
+
 
     // Exactly one of m_dc and m_win is non-NULL for any given object of this
     // class.
 
     // Exactly one of m_dc and m_win is non-NULL for any given object of this
     // class.