1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/gtk1/control.h 3// Purpose: 4// Author: Robert Roebling 5// Id: $Id: control.h 37341 2006-02-05 22:58:41Z VZ $ 6// Copyright: (c) 1998 Robert Roebling, Julian Smart 7// Licence: wxWindows licence 8///////////////////////////////////////////////////////////////////////////// 9 10#ifndef __GTKCONTROLH__ 11#define __GTKCONTROLH__ 12 13#include "wx/defs.h" 14#include "wx/object.h" 15#include "wx/list.h" 16#include "wx/window.h" 17 18//----------------------------------------------------------------------------- 19// classes 20//----------------------------------------------------------------------------- 21 22class WXDLLIMPEXP_CORE wxControl; 23 24typedef struct _GtkLabel GtkLabel; 25typedef struct _GtkFrame GtkFrame; 26 27//----------------------------------------------------------------------------- 28// wxControl 29//----------------------------------------------------------------------------- 30 31// C-linkage function pointer types for GetDefaultAttributesFromGTKWidget 32extern "C" { 33 typedef GtkWidget* (*wxGtkWidgetNew_t)(void); 34 typedef GtkWidget* (*wxGtkWidgetNewFromStr_t)(const gchar*); 35 typedef GtkWidget* (*wxGtkWidgetNewFromAdj_t)(GtkAdjustment*); 36} 37 38class WXDLLIMPEXP_CORE wxControl : public wxControlBase 39{ 40public: 41 wxControl(); 42 wxControl(wxWindow *parent, wxWindowID id, 43 const wxPoint& pos = wxDefaultPosition, 44 const wxSize& size = wxDefaultSize, long style = 0, 45 const wxValidator& validator = wxDefaultValidator, 46 const wxString& name = wxControlNameStr) 47 { 48 Create(parent, id, pos, size, style, validator, name); 49 } 50 51 bool Create(wxWindow *parent, wxWindowID id, 52 const wxPoint& pos = wxDefaultPosition, 53 const wxSize& size = wxDefaultSize, long style = 0, 54 const wxValidator& validator = wxDefaultValidator, 55 const wxString& name = wxControlNameStr); 56 57 virtual void SetLabel( const wxString &label ); 58 virtual wxString GetLabel() const; 59 60 virtual wxVisualAttributes GetDefaultAttributes() const; 61 62protected: 63 virtual wxSize DoGetBestSize() const; 64 void PostCreation(const wxSize& size); 65 66 // sets the label to the given string and also sets it for the given widget 67 void GTKSetLabelForLabel(GtkLabel *w, const wxString& label); 68 69 // as GTKSetLabelForLabel() but for a GtkFrame widget 70 void GTKSetLabelForFrame(GtkFrame *w, const wxString& label); 71 72 // remove mnemonics ("&"s) from the label 73 static wxString GTKRemoveMnemonics(const wxString& label); 74 75 // These are used by GetDefaultAttributes 76 static wxVisualAttributes 77 GetDefaultAttributesFromGTKWidget(GtkWidget* widget, 78 bool useBase = false, 79 int state = -1); 80 static wxVisualAttributes 81 GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t, 82 bool useBase = false, 83 int state = -1); 84 static wxVisualAttributes 85 GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t, 86 bool useBase = false, 87 int state = -1); 88 89 static wxVisualAttributes 90 GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t, 91 bool useBase = false, 92 int state = -1); 93 94 // Widgets that use the style->base colour for the BG colour should 95 // override this and return true. 96 virtual bool UseGTKStyleBase() const { return false; } 97 98 // this field contains the label in wx format, i.e. with "&" mnemonics 99 wxString m_label; 100 101private: 102 DECLARE_DYNAMIC_CLASS(wxControl) 103}; 104 105#endif // __GTKCONTROLH__ 106