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 */
|