From: <ma...@us...> - 2003-12-22 11:56:05
|
Update of /cvsroot/sharedaemon/ui-wx/src In directory sc8-pr-cvs1:/tmp/cvs-serv25731 Modified Files: MBitmapButton.cpp MBitmapButton.h Log Message: Fixed MBitmapButton GTK2 issues Index: MBitmapButton.cpp =================================================================== RCS file: /cvsroot/sharedaemon/ui-wx/src/MBitmapButton.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- MBitmapButton.cpp 22 Dec 2003 10:07:37 -0000 1.3 +++ MBitmapButton.cpp 22 Dec 2003 11:56:02 -0000 1.4 @@ -113,12 +113,11 @@ wxMemoryDC mdc; wxBitmap *tmp; wxCoord x, y; - mdc.SelectObject(wxBitmap(100, 100)); mdc.SetFont(wxFont(BTN_FONT_SIZE, wxDEFAULT, wxNORMAL, wxNORMAL)); mdc.GetTextExtent(name, &x, &y); + x+=image.GetWidth()+LABEL_WIDTH_ADDITION; - x+=image.GetWidth()+10; image.GetHeight() > y ? y = image.GetHeight()+5 : y+=5; tmp = new wxBitmap(x, y); @@ -133,10 +132,11 @@ #endif mdc.DrawRectangle(0, 0, tmp->GetWidth(), tmp->GetHeight()); - mdc.DrawBitmap(image, 5, (y-image.GetHeight())/2, true); + mdc.DrawBitmap(image, 5, ((y-image.GetHeight())/2)+BITMAP_Y_POS_OFFSET, true); mdc.SetTextForeground(wxColour(1, 1, 1)); - mdc.DrawText(name, image.GetWidth()+10, (tmp->GetHeight()-GetCharHeight())/2); + mdc.DrawText(name, image.GetWidth()+10, ((tmp->GetHeight()-GetCharHeight())/2)+TEXT_Y_POS_OFFSET); + #ifndef __WXMSW__ tmp->SetMask(new wxMask(*tmp, wxColour(0, 0, 0))); #endif @@ -154,8 +154,10 @@ void MBitmapButton::OnSize(wxSizeEvent &event) { wxMemoryDC mdc; - /* GTK adds 6 pixels between image and button - substract it. */ - wxBitmap tmp(GetSize().GetWidth()-6, GetSize().GetHeight()-6); + wxBitmap tmp( + GetSize().GetWidth()+LABEL_POS_OFFSET, + GetSize().GetHeight()+LABEL_POS_OFFSET + ); mdc.SelectObject(tmp); #ifdef __WXMSW__ /* This gives transparent image on wxMSW */ Index: MBitmapButton.h =================================================================== RCS file: /cvsroot/sharedaemon/ui-wx/src/MBitmapButton.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MBitmapButton.h 22 Dec 2003 05:04:15 -0000 1.1 +++ MBitmapButton.h 22 Dec 2003 11:56:02 -0000 1.2 @@ -28,11 +28,21 @@ #include "wx/wx.h" #endif -#if defined(__WXMSW__) || defined(__GTK2__) - #define BTN_FONT_SIZE 10 -#else - #define BTN_FONT_SIZE 12 +/* Image/Text positioning/sizing constants */ +#if defined(__WXGTK__) && defined(__GTK2__) + #define BTN_FONT_SIZE 10 /* Button font size */ + #define LABEL_WIDTH_ADDITION 40 /* Extra width */ + #define BITMAP_Y_POS_OFFSET -2 /* Image Y positioning offset */ + #define TEXT_Y_POS_OFFSET -5 /* Text Y positioning offset */ + #define LABEL_POS_OFFSET -10 /* Pixels between image/button borders */ +#elif defined(__WXGTK__) && !defined(__GTK2__) + #define LABEL_WIDTH_ADDITION 10 /* Extra width */ + #define BITMAP_Y_POS_OFFSET 0 /* Text Y positioning offset */ + #define TEXT_Y_POS_OFFSET 0 /* Text Y positioning offset */ + #define LABEL_POS_OFFSET -6 /* Pixels between image/button borders */ + #define BTN_FONT_SIZE 12 /* Button font size */ #endif + #if defined(__WXMSW__) /* Need to use wxButton on MSW */ /******************************************************** class MBitmapButton */ |