1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/gtk1/control.h 
   4 // Author:      Robert Roebling 
   6 // Copyright:   (c) 1998 Robert Roebling, Julian Smart 
   7 // Licence:     wxWindows licence 
   8 ///////////////////////////////////////////////////////////////////////////// 
  10 #ifndef __GTKCONTROLH__ 
  11 #define __GTKCONTROLH__ 
  14 #include "wx/object.h" 
  16 #include "wx/window.h" 
  18 //----------------------------------------------------------------------------- 
  20 //----------------------------------------------------------------------------- 
  22 class WXDLLIMPEXP_CORE wxControl
; 
  24 typedef struct _GtkLabel GtkLabel
; 
  25 typedef struct _GtkFrame GtkFrame
; 
  27 //----------------------------------------------------------------------------- 
  29 //----------------------------------------------------------------------------- 
  31 // C-linkage function pointer types for GetDefaultAttributesFromGTKWidget 
  33     typedef GtkWidget
* (*wxGtkWidgetNew_t
)(void); 
  34     typedef GtkWidget
* (*wxGtkWidgetNewFromStr_t
)(const gchar
*); 
  35     typedef GtkWidget
* (*wxGtkWidgetNewFromAdj_t
)(GtkAdjustment
*); 
  38 class WXDLLIMPEXP_CORE wxControl 
: public wxControlBase
 
  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
) 
  48         Create(parent
, id
, pos
, size
, style
, validator
, name
); 
  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
); 
  57     virtual void SetLabel( const wxString 
&label 
); 
  58     virtual wxString 
GetLabel() const; 
  60     virtual wxVisualAttributes 
GetDefaultAttributes() const; 
  63     virtual wxSize 
DoGetBestSize() const; 
  64     void PostCreation(const wxSize
& size
); 
  66     // sets the label to the given string and also sets it for the given widget 
  67     void GTKSetLabelForLabel(GtkLabel 
*w
, const wxString
& label
); 
  69     // as GTKSetLabelForLabel() but for a GtkFrame widget 
  70     void GTKSetLabelForFrame(GtkFrame 
*w
, const wxString
& label
); 
  72     // remove mnemonics ("&"s) from the label 
  73     static wxString 
GTKRemoveMnemonics(const wxString
& label
); 
  75     // These are used by GetDefaultAttributes 
  76     static wxVisualAttributes
 
  77         GetDefaultAttributesFromGTKWidget(GtkWidget
* widget
, 
  80     static wxVisualAttributes
 
  81         GetDefaultAttributesFromGTKWidget(wxGtkWidgetNew_t
, 
  84     static wxVisualAttributes
 
  85         GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromStr_t
, 
  89     static wxVisualAttributes
 
  90         GetDefaultAttributesFromGTKWidget(wxGtkWidgetNewFromAdj_t
, 
  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; } 
  98     // this field contains the label in wx format, i.e. with "&" mnemonics 
 102     DECLARE_DYNAMIC_CLASS(wxControl
) 
 105 #endif // __GTKCONTROLH__