X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..67cff9dc2faf0458bae1057361d1f5839dd8a937:/include/wx/gtk1/control.h

diff --git a/include/wx/gtk1/control.h b/include/wx/gtk1/control.h
index 7dfa143621..3fdfa9b8db 100644
--- a/include/wx/gtk1/control.h
+++ b/include/wx/gtk1/control.h
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        control.h
+// Name:        wx/gtk1/control.h
 // Purpose:
 // Author:      Robert Roebling
 // Id:          $Id$
@@ -10,10 +10,6 @@
 #ifndef __GTKCONTROLH__
 #define __GTKCONTROLH__
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
 #include "wx/defs.h"
 #include "wx/object.h"
 #include "wx/list.h"
@@ -23,13 +19,23 @@
 // classes
 //-----------------------------------------------------------------------------
 
-class wxControl;
+class WXDLLIMPEXP_CORE wxControl;
+
+typedef struct _GtkLabel GtkLabel;
+typedef struct _GtkFrame GtkFrame;
 
 //-----------------------------------------------------------------------------
 // wxControl
 //-----------------------------------------------------------------------------
 
-class wxControl : public wxControlBase
+// C-linkage function pointer types for GetDefaultAttributesFromGTKWidget
+extern "C" {
+    typedef GtkWidget* (*wxGtkWidgetNew_t)(void);
+    typedef GtkWidget* (*wxGtkWidgetNewFromStr_t)(const gchar*);
+    typedef GtkWidget* (*wxGtkWidgetNewFromAdj_t)(GtkAdjustment*);
+}
+
+class WXDLLIMPEXP_CORE wxControl : public wxControlBase
 {
 public:
     wxControl();
@@ -48,16 +54,49 @@ public:
             const wxValidator& validator = wxDefaultValidator,
             const wxString& name = wxControlNameStr);
 
-    // this function will filter out '&' characters and will put the accelerator
-    // char (the one immediately after '&') into m_chAccel (TODO not yet)
     virtual void SetLabel( const wxString &label );
     virtual wxString GetLabel() const;
 
+    virtual wxVisualAttributes GetDefaultAttributes() const;
+
 protected:
     virtual wxSize DoGetBestSize() const;
+    void PostCreation(const wxSize& size);
+
+    // sets the label to the given string and also sets it for the given widget
+    void GTKSetLabelForLabel(GtkLabel *w, const wxString& label);
+
+    // as GTKSetLabelForLabel() but for a GtkFrame widget
+    void GTKSetLabelForFrame(GtkFrame *w, const wxString& label);
+
+    // remove mnemonics ("&"s) from the label
+    static wxString GTKRemoveMnemonics(const wxString& label);
+
+    // These are used by GetDefaultAttributes
+    static wxVisualAttributes
+        GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
+                                          bool useBase = false,
+                                          int state = -1);
+    static wxVisualAttributes
+        GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t,
+                                          bool useBase = false,
+                                          int state = -1);
+    static wxVisualAttributes
+        GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t,
+                                          bool useBase = false,
+                                          int state = -1);
+
+    static wxVisualAttributes
+        GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t,
+                                          bool useBase = false,
+                                          int state = -1);
+
+    // Widgets that use the style->base colour for the BG colour should
+    // override this and return true.
+    virtual bool UseGTKStyleBase() const { return false; }
 
-    wxString   m_label;
-    char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
+    // this field contains the label in wx format, i.e. with "&" mnemonics
+    wxString m_label;
 
 private:
     DECLARE_DYNAMIC_CLASS(wxControl)