fixes for stock items not known to some GTK+ versions

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2004-08-15 19:08:22 +00:00
parent a650b927da
commit c20889abf8
3 changed files with 42 additions and 11 deletions

View File

@@ -109,10 +109,21 @@ wxString wxGetStockItemLabel(wxStockItemID item)
const char *wxStockItemToGTK(wxStockItemID item)
{
#define STOCKITEM(stockid) \
case wx##stockid: \
return GTK_##stockid; \
#define STOCKITEM(stockid) \
case wx##stockid: \
return GTK_##stockid; \
break;
#define STOCKITEM_MISSING(stockid) \
case wx##stockid: \
return wxEmptyString; \
break;
#if GTK_CHECK_VERSION(2,4,0)
#define STOCKITEM_24(stockid) STOCKITEM(stockid)
#else
#define STOCKITEM_24(stockid) STOCKITEM_MISSING(stockid)
#endif
switch (item)
{
@@ -133,7 +144,7 @@ const char *wxStockItemToGTK(wxStockItemID item)
STOCKITEM(STOCK_GO_UP)
STOCKITEM(STOCK_HELP)
STOCKITEM(STOCK_HOME)
STOCKITEM(STOCK_INDENT)
STOCKITEM_24(STOCK_INDENT)
STOCKITEM(STOCK_INDEX)
STOCKITEM(STOCK_ITALIC)
STOCKITEM(STOCK_JUSTIFY_CENTER)
@@ -160,7 +171,7 @@ const char *wxStockItemToGTK(wxStockItemID item)
STOCKITEM(STOCK_UNDELETE)
STOCKITEM(STOCK_UNDERLINE)
STOCKITEM(STOCK_UNDO)
STOCKITEM(STOCK_UNINDENT)
STOCKITEM_24(STOCK_UNINDENT)
STOCKITEM(STOCK_YES)
STOCKITEM(STOCK_ZOOM_100)
STOCKITEM(STOCK_ZOOM_FIT)

View File

@@ -157,9 +157,19 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, wxStockItemID stock,
const wxValidator& validator, const wxString& name)
{
#ifdef __WXGTK20__
m_widget = gtk_button_new_from_stock(wxStockItemToGTK(stock));
return Create(parent, id, wxEmptyString,
pos, wxDefaultSize, style, validator, name);
const char *gtkstock = wxStockItemToGTK(stock);
if (gtkstock)
{
m_widget = gtk_button_new_from_stock(gtkstock);
return Create(parent, id, wxEmptyString,
pos, wxDefaultSize, style, validator, name);
}
else
{
// not supported by this GTK+ version
return Create(parent, id, wxGetStockItemLabel(stock),
pos, wxDefaultSize, style, validator, name);
}
#else
return CreateStock(parent, id, stock, descriptiveLabel,
pos, style, validator, name);

View File

@@ -157,9 +157,19 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, wxStockItemID stock,
const wxValidator& validator, const wxString& name)
{
#ifdef __WXGTK20__
m_widget = gtk_button_new_from_stock(wxStockItemToGTK(stock));
return Create(parent, id, wxEmptyString,
pos, wxDefaultSize, style, validator, name);
const char *gtkstock = wxStockItemToGTK(stock);
if (gtkstock)
{
m_widget = gtk_button_new_from_stock(gtkstock);
return Create(parent, id, wxEmptyString,
pos, wxDefaultSize, style, validator, name);
}
else
{
// not supported by this GTK+ version
return Create(parent, id, wxGetStockItemLabel(stock),
pos, wxDefaultSize, style, validator, name);
}
#else
return CreateStock(parent, id, stock, descriptiveLabel,
pos, style, validator, name);