class wxColour: public wxGDIObject
{
- DECLARE_DYNAMIC_CLASS(wxColour)
-
public:
- wxColour(void);
+ wxColour();
wxColour( char red, char green, char blue );
- wxColour( const wxString &colourName );
+ wxColour( const wxString &colourName ) { InitFromName(colourName); }
+ wxColour( const char *colourName ) { InitFromName(colourName); }
wxColour( const wxColour& col );
wxColour( const wxColour* col );
- ~wxColour(void);
+ ~wxColour();
wxColour& operator = ( const wxColour& col );
wxColour& operator = ( const wxString& colourName );
bool operator == ( const wxColour& col );
bool operator != ( const wxColour& col );
void Set( const unsigned char red, const unsigned char green, const unsigned char blue );
- unsigned char Red(void) const;
- unsigned char Green(void) const;
- unsigned char Blue(void) const;
- bool Ok(void) const;
+ unsigned char Red() const;
+ unsigned char Green() const;
+ unsigned char Blue() const;
+ bool Ok() const;
private:
public:
friend wxWindow;
void CalcPixel( GdkColormap *cmap );
- int GetPixel(void);
- GdkColor *GetColor(void);
+ int GetPixel() const;
+ GdkColor *GetColor() const;
- // no data :-)
+protected:
+ // helper functions
+ void InitFromName(const wxString& colourName);
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxColour)
};
#endif // __GTKCOLOURH__
void SetFont( const wxFont &font );
void SetDropTarget( wxDropTarget *dropTarget );
+ virtual void SetBackgroundColour(const wxColour &colour);
// implementation
wxTextCtrl& operator<<(const char c);
void SetFont( const wxFont &font );
-
+ virtual void SetBackgroundColour(const wxColour &colour);
+
// implementation
GtkWidget* GetConnectWidget(void);
virtual void GetClientSizeConstraint(int *w, int *h) const ;
virtual void GetPositionConstraint(int *x, int *y) const ;
+protected:
+ // set background colour for arbitrary window (useful because some windows
+ // don't work with m_wxwindow, e.g. wxTextCtrl)
+ void SetBackgroundColourHelper( const wxColour &colour, GdkWindow *window );
+
+private:
DECLARE_EVENT_TABLE()
};
class wxColour: public wxGDIObject
{
- DECLARE_DYNAMIC_CLASS(wxColour)
-
public:
- wxColour(void);
+ wxColour();
wxColour( char red, char green, char blue );
- wxColour( const wxString &colourName );
+ wxColour( const wxString &colourName ) { InitFromName(colourName); }
+ wxColour( const char *colourName ) { InitFromName(colourName); }
wxColour( const wxColour& col );
wxColour( const wxColour* col );
- ~wxColour(void);
+ ~wxColour();
wxColour& operator = ( const wxColour& col );
wxColour& operator = ( const wxString& colourName );
bool operator == ( const wxColour& col );
bool operator != ( const wxColour& col );
void Set( const unsigned char red, const unsigned char green, const unsigned char blue );
- unsigned char Red(void) const;
- unsigned char Green(void) const;
- unsigned char Blue(void) const;
- bool Ok(void) const;
+ unsigned char Red() const;
+ unsigned char Green() const;
+ unsigned char Blue() const;
+ bool Ok() const;
private:
public:
friend wxWindow;
void CalcPixel( GdkColormap *cmap );
- int GetPixel(void);
- GdkColor *GetColor(void);
+ int GetPixel() const;
+ GdkColor *GetColor() const;
- // no data :-)
+protected:
+ // helper functions
+ void InitFromName(const wxString& colourName);
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxColour)
};
#endif // __GTKCOLOURH__
void SetFont( const wxFont &font );
void SetDropTarget( wxDropTarget *dropTarget );
+ virtual void SetBackgroundColour(const wxColour &colour);
// implementation
wxTextCtrl& operator<<(const char c);
void SetFont( const wxFont &font );
-
+ virtual void SetBackgroundColour(const wxColour &colour);
+
// implementation
GtkWidget* GetConnectWidget(void);
virtual void GetClientSizeConstraint(int *w, int *h) const ;
virtual void GetPositionConstraint(int *x, int *y) const ;
+protected:
+ // set background colour for arbitrary window (useful because some windows
+ // don't work with m_wxwindow, e.g. wxTextCtrl)
+ void SetBackgroundColourHelper( const wxColour &colour, GdkWindow *window );
+
+private:
DECLARE_EVENT_TABLE()
};
// Colour
class WXDLLEXPORT wxColour: public wxObject
{
- DECLARE_DYNAMIC_CLASS(wxColour)
public:
- wxColour(void);
+ wxColour();
wxColour(const unsigned char r, const unsigned char g, const unsigned char b);
wxColour(unsigned long colRGB) { Set(colRGB); }
wxColour(const wxColour& col);
- wxColour(const wxString& col);
- ~wxColour(void) ;
+ wxColour(const wxString& col) { InitFromName(col); }
+ wxColour(const char *col) { InitFromName(col); }
+ ~wxColour();
+
wxColour& operator =(const wxColour& src) ;
wxColour& operator =(const wxString& src) ;
- inline int Ok(void) const { return (m_isInit) ; }
+ inline int Ok() const { return (m_isInit) ; }
void Set(unsigned char r, unsigned char g, unsigned char b);
void Set(unsigned long colRGB)
void Get(unsigned char *r, unsigned char *g, unsigned char *b) const;
#endif
- inline unsigned char Red(void) const { return m_red; }
- inline unsigned char Green(void) const { return m_green; }
- inline unsigned char Blue(void) const { return m_blue; }
+ inline unsigned char Red() const { return m_red; }
+ inline unsigned char Green() const { return m_green; }
+ inline unsigned char Blue() const { return m_blue; }
inline bool operator == (const wxColour& colour) { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); }
inline bool operator != (const wxColour& colour) { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); }
- WXCOLORREF GetPixel(void) const { return m_pixel; };
+ WXCOLORREF GetPixel() const { return m_pixel; };
- private:
+private:
bool m_isInit;
unsigned char m_red;
unsigned char m_blue;
unsigned char m_green;
- public:
+
+ // helper func
+ void InitFromName(const wxString& colourName);
+
+public:
WXCOLORREF m_pixel ;
+
+private:
+ DECLARE_DYNAMIC_CLASS(wxColour)
};
#define wxColor wxColour
wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) )
{
m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE );
+ m_text->SetBackgroundColour("yellow");
m_notebook = new wxNotebook( this, ID_NOTEBOOK, wxPoint(0,0), wxSize(200,150) );
wxASSERT( WXSIZEOF(aIconNames) == Image_Max ); // keep in sync
- // fill the image list
-#ifdef __WXMSW__
- wxString strIconDir = "icons/";
-#else
- wxString strIconDir = "../icons/";
-#endif
+ // TODO should find the dir from path to program
+ wxString strIconDir = "icons/";
+ // fill the image list
wxImageList *imagelist = new wxImageList(32, 32);
for ( size_t n = 0; n < Image_Max; n++ )
{
wxPanel *panel = new wxPanel(m_notebook);
m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 4, choices );
+ m_listbox->SetBackgroundColour("red");
(void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
(void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+ wxButton *btn = new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+ btn->SetBackgroundColour("green");
(void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
(void)new wxButton( panel, ID_LISTBOX_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
(void)new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
{
public:
- wxColourRefData(void);
- ~wxColourRefData(void);
- void FreeColour(void);
+ wxColourRefData();
+ ~wxColourRefData();
+ void FreeColour();
GdkColor m_color;
GdkColormap *m_colormap;
friend wxColour;
};
-wxColourRefData::wxColourRefData(void)
+wxColourRefData::wxColourRefData()
{
m_color.red = 0;
m_color.green = 0;
m_hasPixel = FALSE;
}
-wxColourRefData::~wxColourRefData(void)
+wxColourRefData::~wxColourRefData()
{
FreeColour();
}
-void wxColourRefData::FreeColour(void)
+void wxColourRefData::FreeColour()
{
// if (m_hasPixel) gdk_colors_free( m_colormap, &m_color, 1, 0 );
}
IMPLEMENT_DYNAMIC_CLASS(wxColour,wxGDIObject)
-wxColour::wxColour(void)
+wxColour::wxColour()
{
}
M_COLDATA->m_color.pixel = 0;
}
-wxColour::wxColour( const wxString &colourName )
+void wxColour::InitFromName( const wxString &colourName )
{
wxNode *node = (wxNode *) NULL;
if ( (wxTheColourDatabase) && (node = wxTheColourDatabase->Find(colourName)) )
if (col) Ref( *col );
}
-wxColour::~wxColour(void)
+wxColour::~wxColour()
{
}
M_COLDATA->m_color.pixel = 0;
}
-unsigned char wxColour::Red(void) const
+unsigned char wxColour::Red() const
{
if (!Ok())
{
return (unsigned char)(M_COLDATA->m_color.red >> SHIFT);
}
-unsigned char wxColour::Green(void) const
+unsigned char wxColour::Green() const
{
if (!Ok())
{
return (unsigned char)(M_COLDATA->m_color.green >> SHIFT);
}
-unsigned char wxColour::Blue(void) const
+unsigned char wxColour::Blue() const
{
if (!Ok())
{
return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT);
}
-bool wxColour::Ok(void) const
+bool wxColour::Ok() const
{
return (m_refData != NULL);
}
M_COLDATA->m_colormap = cmap;
}
-int wxColour::GetPixel(void)
+int wxColour::GetPixel() const
{
if (!Ok()) return 0;
return M_COLDATA->m_color.pixel;
}
-GdkColor *wxColour::GetColor(void)
+GdkColor *wxColour::GetColor() const
{
if (!Ok()) return (GdkColor *) NULL;
return FALSE;
}
+void wxListBox::SetBackgroundColour(const wxColour &colour)
+{
+ wxCHECK_RET( m_list != NULL, "invalid list ctrl" );
+
+ SetBackgroundColourHelper( colour, GTK_WIDGET(m_list)->window );
+}
m_widget = gtk_handle_box_new();
- m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS ) );
+ m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL,
+ GTK_TOOLBAR_ICONS ) );
gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL,
"wxToolBar::Add needs a wxBitmap" );
- GtkWidget *tool_pixmap = (GtkWidget *) NULL;
+ GtkWidget *tool_pixmap = (GtkWidget *)NULL;
if (TRUE) // FIXME huh?
{
GdkPixmap *pixmap = bitmap.GetPixmap();
- GdkBitmap *mask = (GdkBitmap *) NULL;
- if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
+ GdkBitmap *mask = (GdkBitmap *)NULL;
+ if ( bitmap.GetMask() )
+ mask = bitmap.GetMask()->GetBitmap();
tool_pixmap = gtk_pixmap_new( pixmap, mask );
}
gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
-#if 0
GtkToolbarChildType ctype = toggle ? GTK_TOOLBAR_CHILD_TOGGLEBUTTON
: GTK_TOOLBAR_CHILD_BUTTON;
- tool->m_item = gtk_toolbar_append_element
- (
- GTK_TOOLBAR(m_toolbar),
- ctype,
- (GtkWidget *)NULL,
- (const char *)NULL,
- helpString1,
- "",
- tool_pixmap,
- (GtkSignalFunc)gtk_toolbar_callback,
- (gpointer)tool
- );
+ GtkWidget *item = gtk_toolbar_append_element
+ (
+ GTK_TOOLBAR(m_toolbar),
+ ctype,
+ (GtkWidget *)NULL,
+ (const char *)NULL,
+ helpString1,
+ "",
+ tool_pixmap,
+ (GtkSignalFunc)gtk_toolbar_callback,
+ (gpointer)tool
+ );
+
+ // VZ: we don't want GDK_NO_EXPOSE events because for some reason our
+ // toolbar buttons get them (it doesn't happen in a standalone GTK+ program
+ // for unknown reasons) and it prevents tooltips from appearing.
+ gtk_widget_set_events( GTK_WIDGET(item),
+ gtk_widget_get_events( GTK_WIDGET(item) ) &
+ ~GDK_EXPOSURE_MASK);
+ tool->m_item = item;
gtk_signal_connect( GTK_OBJECT(tool->m_item),
"enter_notify_event",
GTK_SIGNAL_FUNC(gtk_toolbar_enter_callback),
(gpointer)tool );
-#else
- tool->m_item = gtk_toolbar_append_item
- (
- GTK_TOOLBAR(m_toolbar),
- (const char *)NULL,
- helpString1,
- "",
- tool_pixmap,
- (GtkSignalFunc)gtk_toolbar_callback,
- (gpointer)tool
- );
-#endif
m_tools.Append( tool );
gtk_widget_set_style( m_text, style );
}
+// as our GTK widget is m_text and not m_widget, we have to override
+// SetBackgroundColour() to make it work
+void wxTextCtrl::SetBackgroundColour( const wxColour &colour )
+{
+ wxCHECK_RET( m_text != NULL, "invalid text ctrl" );
+ // NB: the GtkEntry and GtkText classes have text_area at the same offset
+ SetBackgroundColourHelper( colour, GTK_TEXT(m_text)->text_area );
+}
return TRUE;
}
-wxWindow::~wxWindow(void)
+wxWindow::~wxWindow()
{
m_hasVMT = FALSE;
m_hasOwnStyle = FALSE;
}
-void wxWindow::PostCreation(void)
+void wxWindow::PostCreation()
{
if (m_parent) m_parent->AddChild( this );
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
}
-bool wxWindow::HasVMT(void)
+bool wxWindow::HasVMT()
{
return m_hasVMT;
}
return GetEventHandler()->ProcessEvent(event);
}
-bool wxWindow::Destroy(void)
+bool wxWindow::Destroy()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return TRUE;
}
-bool wxWindow::DestroyChildren(void)
+bool wxWindow::DestroyChildren()
{
if (GetChildren())
{
// are we to set fonts here ?
}
-void wxWindow::ImplementSetSize(void)
+void wxWindow::ImplementSetSize()
{
if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth;
if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight;
gtk_widget_set_usize( m_widget, m_width, m_height );
}
-void wxWindow::ImplementSetPosition(void)
+void wxWindow::ImplementSetPosition()
{
if (IS_KIND_OF(this,wxFrame) || IS_KIND_OF(this,wxDialog))
{
}
}
-void wxWindow::Fit(void)
+void wxWindow::Fit()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_wxwindow) gtk_widget_set_sensitive( m_wxwindow, enable );
}
-int wxWindow::GetCharHeight(void) const
+int wxWindow::GetCharHeight() const
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return font->ascent + font->descent;
}
-int wxWindow::GetCharWidth(void) const
+int wxWindow::GetCharWidth() const
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
}
}
-void wxWindow::SetFocus(void)
+void wxWindow::SetFocus()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
}
}
-bool wxWindow::OnClose(void)
+bool wxWindow::OnClose()
{
return TRUE;
}
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
-wxList *wxWindow::GetChildren(void)
+wxList *wxWindow::GetChildren()
{
return (&m_children);
}
m_retCode = retCode;
}
-int wxWindow::GetReturnCode(void)
+int wxWindow::GetReturnCode()
{
return m_retCode;
}
-void wxWindow::Raise(void)
+void wxWindow::Raise()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_widget) gdk_window_raise( m_widget->window );
}
-void wxWindow::Lower(void)
+void wxWindow::Lower()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_widget) gdk_window_lower( m_widget->window );
}
-wxEvtHandler *wxWindow::GetEventHandler(void)
+wxEvtHandler *wxWindow::GetEventHandler()
{
return m_eventHandler;
}
return (wxEvtHandler *) NULL;
}
-wxValidator *wxWindow::GetValidator(void)
+wxValidator *wxWindow::GetValidator()
{
return m_windowValidator;
}
if (m_windowValidator) m_windowValidator->SetWindow(this);
}
-bool wxWindow::IsBeingDeleted(void)
+bool wxWindow::IsBeingDeleted()
{
return FALSE;
}
m_windowId = id;
}
-wxWindowID wxWindow::GetId(void)
+wxWindowID wxWindow::GetId()
{
return m_windowId;
}
return (m_updateRegion.Contains( rect.x, rect.y, rect.width, rect.height ) != wxOutRegion );
}
-void wxWindow::Clear(void)
+void wxWindow::Clear()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_wxwindow && m_wxwindow->window) gdk_window_clear( m_wxwindow->window );
}
-wxColour wxWindow::GetBackgroundColour(void) const
+wxColour wxWindow::GetBackgroundColour() const
{
return m_backgroundColour;
}
+void wxWindow::SetBackgroundColourHelper(const wxColour& colour,
+ GdkWindow *window)
+{
+ m_backgroundColour = colour;
+ m_backgroundColour.CalcPixel( gdk_window_get_colormap(window) );
+ gdk_window_set_background( window, m_backgroundColour.GetColor() );
+ gdk_window_clear( window );
+}
+
void wxWindow::SetBackgroundColour( const wxColour &colour )
{
- wxASSERT_MSG( (m_widget != NULL), "invalid window" );
+ wxASSERT_MSG( m_widget != NULL, "invalid window" );
- m_backgroundColour = colour;
- if (m_wxwindow)
- {
- m_backgroundColour.CalcPixel( m_wxwindow->style->colormap );
- gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() );
- gdk_window_clear( m_wxwindow->window );
- }
- // do something ?
+ GtkWidget *widget = m_wxwindow == NULL ? m_widget : m_wxwindow;
+ SetBackgroundColourHelper( colour, widget->window );
}
-wxColour wxWindow::GetForegroundColour(void) const
+wxColour wxWindow::GetForegroundColour() const
{
return m_foregroundColour;
}
m_foregroundColour = colour;
}
-bool wxWindow::Validate(void)
+bool wxWindow::Validate()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return TRUE;
}
-bool wxWindow::TransferDataToWindow(void)
+bool wxWindow::TransferDataToWindow()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return TRUE;
}
-bool wxWindow::TransferDataFromWindow(void)
+bool wxWindow::TransferDataFromWindow()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
TransferDataToWindow();
}
-void wxWindow::InitDialog(void)
+void wxWindow::InitDialog()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
m_pDropTarget->UnregisterWidget( widget );
}
-GtkWidget* wxWindow::GetConnectWidget(void)
+GtkWidget* wxWindow::GetConnectWidget()
{
GtkWidget *connect_widget = m_widget;
if (m_wxwindow) connect_widget = m_wxwindow;
gtk_widget_set_style( m_widget, style );
}
-wxFont *wxWindow::GetFont(void)
+wxFont *wxWindow::GetFont()
{
return &m_font;
}
m_windowStyle = flag;
}
-long wxWindow::GetWindowStyleFlag(void) const
+long wxWindow::GetWindowStyleFlag() const
{
return m_windowStyle;
}
-void wxWindow::CaptureMouse(void)
+void wxWindow::CaptureMouse()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
g_capturing = TRUE;
}
-void wxWindow::ReleaseMouse(void)
+void wxWindow::ReleaseMouse()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
{
}
-wxString wxWindow::GetTitle(void) const
+wxString wxWindow::GetTitle() const
{
return (wxString&)m_windowName;
}
-wxString wxWindow::GetLabel(void) const
+wxString wxWindow::GetLabel() const
{
return GetTitle();
}
m_windowName = name;
}
-wxString wxWindow::GetName(void) const
+wxString wxWindow::GetName() const
{
return (wxString&)m_windowName;
}
-bool wxWindow::IsShown(void) const
+bool wxWindow::IsShown() const
{
return m_isShown;
}
-bool wxWindow::IsRetained(void)
+bool wxWindow::IsRetained()
{
return FALSE;
}
// Layout
//-------------------------------------------------------------------------------------
-wxLayoutConstraints *wxWindow::GetConstraints(void) const
+wxLayoutConstraints *wxWindow::GetConstraints() const
{
return m_constraints;
}
m_autoLayout = autoLayout;
}
-bool wxWindow::GetAutoLayout(void) const
+bool wxWindow::GetAutoLayout() const
{
return m_autoLayout;
}
-wxSizer *wxWindow::GetSizer(void) const
+wxSizer *wxWindow::GetSizer() const
{
return m_windowSizer;
}
m_sizerParent = win;
}
-wxWindow *wxWindow::GetSizerParent(void) const
+wxWindow *wxWindow::GetSizerParent() const
{
return m_sizerParent;
}
}
// Reset any constraints that mention this window
-void wxWindow::DeleteRelatedConstraints(void)
+void wxWindow::DeleteRelatedConstraints()
{
if (m_constraintsInvolvedIn)
{
* New version
*/
-bool wxWindow::Layout(void)
+bool wxWindow::Layout()
{
if (GetConstraints())
{
return TRUE;
}
-void wxWindow::ResetConstraints(void)
+void wxWindow::ResetConstraints()
{
wxLayoutConstraints *constr = GetConstraints();
if (constr)
{
public:
- wxColourRefData(void);
- ~wxColourRefData(void);
- void FreeColour(void);
+ wxColourRefData();
+ ~wxColourRefData();
+ void FreeColour();
GdkColor m_color;
GdkColormap *m_colormap;
friend wxColour;
};
-wxColourRefData::wxColourRefData(void)
+wxColourRefData::wxColourRefData()
{
m_color.red = 0;
m_color.green = 0;
m_hasPixel = FALSE;
}
-wxColourRefData::~wxColourRefData(void)
+wxColourRefData::~wxColourRefData()
{
FreeColour();
}
-void wxColourRefData::FreeColour(void)
+void wxColourRefData::FreeColour()
{
// if (m_hasPixel) gdk_colors_free( m_colormap, &m_color, 1, 0 );
}
IMPLEMENT_DYNAMIC_CLASS(wxColour,wxGDIObject)
-wxColour::wxColour(void)
+wxColour::wxColour()
{
}
M_COLDATA->m_color.pixel = 0;
}
-wxColour::wxColour( const wxString &colourName )
+void wxColour::InitFromName( const wxString &colourName )
{
wxNode *node = (wxNode *) NULL;
if ( (wxTheColourDatabase) && (node = wxTheColourDatabase->Find(colourName)) )
if (col) Ref( *col );
}
-wxColour::~wxColour(void)
+wxColour::~wxColour()
{
}
M_COLDATA->m_color.pixel = 0;
}
-unsigned char wxColour::Red(void) const
+unsigned char wxColour::Red() const
{
if (!Ok())
{
return (unsigned char)(M_COLDATA->m_color.red >> SHIFT);
}
-unsigned char wxColour::Green(void) const
+unsigned char wxColour::Green() const
{
if (!Ok())
{
return (unsigned char)(M_COLDATA->m_color.green >> SHIFT);
}
-unsigned char wxColour::Blue(void) const
+unsigned char wxColour::Blue() const
{
if (!Ok())
{
return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT);
}
-bool wxColour::Ok(void) const
+bool wxColour::Ok() const
{
return (m_refData != NULL);
}
M_COLDATA->m_colormap = cmap;
}
-int wxColour::GetPixel(void)
+int wxColour::GetPixel() const
{
if (!Ok()) return 0;
return M_COLDATA->m_color.pixel;
}
-GdkColor *wxColour::GetColor(void)
+GdkColor *wxColour::GetColor() const
{
if (!Ok()) return (GdkColor *) NULL;
return FALSE;
}
+void wxListBox::SetBackgroundColour(const wxColour &colour)
+{
+ wxCHECK_RET( m_list != NULL, "invalid list ctrl" );
+
+ SetBackgroundColourHelper( colour, GTK_WIDGET(m_list)->window );
+}
m_widget = gtk_handle_box_new();
- m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS ) );
+ m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL,
+ GTK_TOOLBAR_ICONS ) );
gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL,
"wxToolBar::Add needs a wxBitmap" );
- GtkWidget *tool_pixmap = (GtkWidget *) NULL;
+ GtkWidget *tool_pixmap = (GtkWidget *)NULL;
if (TRUE) // FIXME huh?
{
GdkPixmap *pixmap = bitmap.GetPixmap();
- GdkBitmap *mask = (GdkBitmap *) NULL;
- if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
+ GdkBitmap *mask = (GdkBitmap *)NULL;
+ if ( bitmap.GetMask() )
+ mask = bitmap.GetMask()->GetBitmap();
tool_pixmap = gtk_pixmap_new( pixmap, mask );
}
gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
-#if 0
GtkToolbarChildType ctype = toggle ? GTK_TOOLBAR_CHILD_TOGGLEBUTTON
: GTK_TOOLBAR_CHILD_BUTTON;
- tool->m_item = gtk_toolbar_append_element
- (
- GTK_TOOLBAR(m_toolbar),
- ctype,
- (GtkWidget *)NULL,
- (const char *)NULL,
- helpString1,
- "",
- tool_pixmap,
- (GtkSignalFunc)gtk_toolbar_callback,
- (gpointer)tool
- );
+ GtkWidget *item = gtk_toolbar_append_element
+ (
+ GTK_TOOLBAR(m_toolbar),
+ ctype,
+ (GtkWidget *)NULL,
+ (const char *)NULL,
+ helpString1,
+ "",
+ tool_pixmap,
+ (GtkSignalFunc)gtk_toolbar_callback,
+ (gpointer)tool
+ );
+
+ // VZ: we don't want GDK_NO_EXPOSE events because for some reason our
+ // toolbar buttons get them (it doesn't happen in a standalone GTK+ program
+ // for unknown reasons) and it prevents tooltips from appearing.
+ gtk_widget_set_events( GTK_WIDGET(item),
+ gtk_widget_get_events( GTK_WIDGET(item) ) &
+ ~GDK_EXPOSURE_MASK);
+ tool->m_item = item;
gtk_signal_connect( GTK_OBJECT(tool->m_item),
"enter_notify_event",
GTK_SIGNAL_FUNC(gtk_toolbar_enter_callback),
(gpointer)tool );
-#else
- tool->m_item = gtk_toolbar_append_item
- (
- GTK_TOOLBAR(m_toolbar),
- (const char *)NULL,
- helpString1,
- "",
- tool_pixmap,
- (GtkSignalFunc)gtk_toolbar_callback,
- (gpointer)tool
- );
-#endif
m_tools.Append( tool );
gtk_widget_set_style( m_text, style );
}
+// as our GTK widget is m_text and not m_widget, we have to override
+// SetBackgroundColour() to make it work
+void wxTextCtrl::SetBackgroundColour( const wxColour &colour )
+{
+ wxCHECK_RET( m_text != NULL, "invalid text ctrl" );
+ // NB: the GtkEntry and GtkText classes have text_area at the same offset
+ SetBackgroundColourHelper( colour, GTK_TEXT(m_text)->text_area );
+}
return TRUE;
}
-wxWindow::~wxWindow(void)
+wxWindow::~wxWindow()
{
m_hasVMT = FALSE;
m_hasOwnStyle = FALSE;
}
-void wxWindow::PostCreation(void)
+void wxWindow::PostCreation()
{
if (m_parent) m_parent->AddChild( this );
GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
}
-bool wxWindow::HasVMT(void)
+bool wxWindow::HasVMT()
{
return m_hasVMT;
}
return GetEventHandler()->ProcessEvent(event);
}
-bool wxWindow::Destroy(void)
+bool wxWindow::Destroy()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return TRUE;
}
-bool wxWindow::DestroyChildren(void)
+bool wxWindow::DestroyChildren()
{
if (GetChildren())
{
// are we to set fonts here ?
}
-void wxWindow::ImplementSetSize(void)
+void wxWindow::ImplementSetSize()
{
if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth;
if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight;
gtk_widget_set_usize( m_widget, m_width, m_height );
}
-void wxWindow::ImplementSetPosition(void)
+void wxWindow::ImplementSetPosition()
{
if (IS_KIND_OF(this,wxFrame) || IS_KIND_OF(this,wxDialog))
{
}
}
-void wxWindow::Fit(void)
+void wxWindow::Fit()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_wxwindow) gtk_widget_set_sensitive( m_wxwindow, enable );
}
-int wxWindow::GetCharHeight(void) const
+int wxWindow::GetCharHeight() const
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return font->ascent + font->descent;
}
-int wxWindow::GetCharWidth(void) const
+int wxWindow::GetCharWidth() const
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
}
}
-void wxWindow::SetFocus(void)
+void wxWindow::SetFocus()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
}
}
-bool wxWindow::OnClose(void)
+bool wxWindow::OnClose()
{
return TRUE;
}
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
-wxList *wxWindow::GetChildren(void)
+wxList *wxWindow::GetChildren()
{
return (&m_children);
}
m_retCode = retCode;
}
-int wxWindow::GetReturnCode(void)
+int wxWindow::GetReturnCode()
{
return m_retCode;
}
-void wxWindow::Raise(void)
+void wxWindow::Raise()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_widget) gdk_window_raise( m_widget->window );
}
-void wxWindow::Lower(void)
+void wxWindow::Lower()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_widget) gdk_window_lower( m_widget->window );
}
-wxEvtHandler *wxWindow::GetEventHandler(void)
+wxEvtHandler *wxWindow::GetEventHandler()
{
return m_eventHandler;
}
return (wxEvtHandler *) NULL;
}
-wxValidator *wxWindow::GetValidator(void)
+wxValidator *wxWindow::GetValidator()
{
return m_windowValidator;
}
if (m_windowValidator) m_windowValidator->SetWindow(this);
}
-bool wxWindow::IsBeingDeleted(void)
+bool wxWindow::IsBeingDeleted()
{
return FALSE;
}
m_windowId = id;
}
-wxWindowID wxWindow::GetId(void)
+wxWindowID wxWindow::GetId()
{
return m_windowId;
}
return (m_updateRegion.Contains( rect.x, rect.y, rect.width, rect.height ) != wxOutRegion );
}
-void wxWindow::Clear(void)
+void wxWindow::Clear()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
if (m_wxwindow && m_wxwindow->window) gdk_window_clear( m_wxwindow->window );
}
-wxColour wxWindow::GetBackgroundColour(void) const
+wxColour wxWindow::GetBackgroundColour() const
{
return m_backgroundColour;
}
+void wxWindow::SetBackgroundColourHelper(const wxColour& colour,
+ GdkWindow *window)
+{
+ m_backgroundColour = colour;
+ m_backgroundColour.CalcPixel( gdk_window_get_colormap(window) );
+ gdk_window_set_background( window, m_backgroundColour.GetColor() );
+ gdk_window_clear( window );
+}
+
void wxWindow::SetBackgroundColour( const wxColour &colour )
{
- wxASSERT_MSG( (m_widget != NULL), "invalid window" );
+ wxASSERT_MSG( m_widget != NULL, "invalid window" );
- m_backgroundColour = colour;
- if (m_wxwindow)
- {
- m_backgroundColour.CalcPixel( m_wxwindow->style->colormap );
- gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() );
- gdk_window_clear( m_wxwindow->window );
- }
- // do something ?
+ GtkWidget *widget = m_wxwindow == NULL ? m_widget : m_wxwindow;
+ SetBackgroundColourHelper( colour, widget->window );
}
-wxColour wxWindow::GetForegroundColour(void) const
+wxColour wxWindow::GetForegroundColour() const
{
return m_foregroundColour;
}
m_foregroundColour = colour;
}
-bool wxWindow::Validate(void)
+bool wxWindow::Validate()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return TRUE;
}
-bool wxWindow::TransferDataToWindow(void)
+bool wxWindow::TransferDataToWindow()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
return TRUE;
}
-bool wxWindow::TransferDataFromWindow(void)
+bool wxWindow::TransferDataFromWindow()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
TransferDataToWindow();
}
-void wxWindow::InitDialog(void)
+void wxWindow::InitDialog()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
m_pDropTarget->UnregisterWidget( widget );
}
-GtkWidget* wxWindow::GetConnectWidget(void)
+GtkWidget* wxWindow::GetConnectWidget()
{
GtkWidget *connect_widget = m_widget;
if (m_wxwindow) connect_widget = m_wxwindow;
gtk_widget_set_style( m_widget, style );
}
-wxFont *wxWindow::GetFont(void)
+wxFont *wxWindow::GetFont()
{
return &m_font;
}
m_windowStyle = flag;
}
-long wxWindow::GetWindowStyleFlag(void) const
+long wxWindow::GetWindowStyleFlag() const
{
return m_windowStyle;
}
-void wxWindow::CaptureMouse(void)
+void wxWindow::CaptureMouse()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
g_capturing = TRUE;
}
-void wxWindow::ReleaseMouse(void)
+void wxWindow::ReleaseMouse()
{
wxASSERT_MSG( (m_widget != NULL), "invalid window" );
{
}
-wxString wxWindow::GetTitle(void) const
+wxString wxWindow::GetTitle() const
{
return (wxString&)m_windowName;
}
-wxString wxWindow::GetLabel(void) const
+wxString wxWindow::GetLabel() const
{
return GetTitle();
}
m_windowName = name;
}
-wxString wxWindow::GetName(void) const
+wxString wxWindow::GetName() const
{
return (wxString&)m_windowName;
}
-bool wxWindow::IsShown(void) const
+bool wxWindow::IsShown() const
{
return m_isShown;
}
-bool wxWindow::IsRetained(void)
+bool wxWindow::IsRetained()
{
return FALSE;
}
// Layout
//-------------------------------------------------------------------------------------
-wxLayoutConstraints *wxWindow::GetConstraints(void) const
+wxLayoutConstraints *wxWindow::GetConstraints() const
{
return m_constraints;
}
m_autoLayout = autoLayout;
}
-bool wxWindow::GetAutoLayout(void) const
+bool wxWindow::GetAutoLayout() const
{
return m_autoLayout;
}
-wxSizer *wxWindow::GetSizer(void) const
+wxSizer *wxWindow::GetSizer() const
{
return m_windowSizer;
}
m_sizerParent = win;
}
-wxWindow *wxWindow::GetSizerParent(void) const
+wxWindow *wxWindow::GetSizerParent() const
{
return m_sizerParent;
}
}
// Reset any constraints that mention this window
-void wxWindow::DeleteRelatedConstraints(void)
+void wxWindow::DeleteRelatedConstraints()
{
if (m_constraintsInvolvedIn)
{
* New version
*/
-bool wxWindow::Layout(void)
+bool wxWindow::Layout()
{
if (GetConstraints())
{
return TRUE;
}
-void wxWindow::ResetConstraints(void)
+void wxWindow::ResetConstraints()
{
wxLayoutConstraints *constr = GetConstraints();
if (constr)
// Colour
-wxColour::wxColour (void)
+wxColour::wxColour ()
{
m_isInit = FALSE;
m_pixel = 0;
return *this;
}
-wxColour::wxColour (const wxString& col)
+void wxColour::InitFromName(const wxString& col)
{
wxColour *the_colour = wxTheColourDatabase->FindColour (col);
if (the_colour)
m_pixel = PALETTERGB (m_red, m_green, m_blue);
}
-wxColour::~wxColour (void)
+wxColour::~wxColour()
{
}