/////////////////////////////////////////////////////////////////////////////
-// Name: bmpbuttn.cpp
+// Name: src/motif/bmpbuttn.cpp
// Purpose: wxBitmapButton
// Author: Julian Smart
// Modified by:
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "bmpbuttn.h"
-#endif
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
#ifdef __VMS
#define XtScreen XTSCREEN
#endif
-#include "wx/defs.h"
-
#include "wx/bmpbuttn.h"
#ifdef __VMS__
// Implemented in button.cpp
void wxButtonCallback (Widget w, XtPointer clientData, XtPointer ptr);
-Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap );
+// Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap );
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
m_bmpNormal = m_bmpNormalOriginal = bitmap;
m_bmpSelected = m_bmpSelectedOriginal = bitmap;
- /*
- int x = pos.x;
- int y = pos.y;
- int width = size.x;
- int height = size.y;
- */
-
Widget parentWidget = (Widget) parent->GetClientWidget();
/*
xmPushButtonWidgetClass, parentWidget,
#endif
// See comment for wxButton::SetDefault
- // XmNdefaultButtonShadowThickness, 1,
+ // XmNdefaultButtonShadowThickness, 1,
XmNrecomputeSize, False,
NULL);
m_mainWidget = (WXWidget) buttonWidget;
- ChangeFont(FALSE);
+ ChangeFont(false);
ChangeBackgroundColour ();
XmNactivateCallback, (XtCallbackProc) wxButtonCallback,
(XtPointer) this);
- SetCanAddEventHandler(TRUE);
-
wxSize best = m_bmpNormal.Ok() ? GetBestSize() : wxSize(30, 30);
if( size.x != -1 ) best.x = size.x;
if( size.y != -1 ) best.y = size.y;
AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
pos.x, pos.y, best.x, best.y);
- return TRUE;
+ return true;
}
wxBitmapButton::~wxBitmapButton()
m_bmpSelectedOriginal = sel;
DoSetBitmap();
-};
+}
void wxBitmapButton::SetBitmapFocus(const wxBitmap& focus)
{
m_bmpFocus = focus;
// Not used in Motif
-};
+}
void wxBitmapButton::SetBitmapDisabled(const wxBitmap& disabled)
{
m_bmpDisabledOriginal = disabled;
DoSetBitmap();
-};
+}
void wxBitmapButton::DoSetBitmap()
{
wxBitmap newBitmap =
wxCreateMaskedBitmap(m_bmpNormalOriginal, col);
m_bmpNormal = newBitmap;
+ m_bitmapCache.SetBitmap( m_bmpNormal );
- pixmap = (Pixmap) m_bmpNormal.GetPixmap();
+ pixmap = (Pixmap) m_bmpNormal.GetDrawable();
}
else
- pixmap = (Pixmap) m_bmpNormal.GetLabelPixmap(m_mainWidget);
+ {
+ m_bitmapCache.SetBitmap( m_bmpNormal );
+ pixmap = (Pixmap) m_bitmapCache.GetLabelPixmap(m_mainWidget);
+ }
if (m_bmpDisabledOriginal.Ok())
{
wxCreateMaskedBitmap(m_bmpDisabledOriginal, col);
m_bmpDisabled = newBitmap;
- insensPixmap = (Pixmap) m_bmpDisabled.GetPixmap();
+ insensPixmap = (Pixmap) m_bmpDisabled.GetDrawable();
}
else
- insensPixmap = (Pixmap) m_bmpNormal.GetInsensPixmap(m_mainWidget);
+ insensPixmap = (Pixmap) m_bitmapCache.GetInsensPixmap(m_mainWidget);
}
else
- insensPixmap = (Pixmap) m_bmpNormal.GetInsensPixmap(m_mainWidget);
+ insensPixmap = (Pixmap) m_bitmapCache.GetInsensPixmap(m_mainWidget);
// Now make the bitmap representing the armed state
if (m_bmpSelectedOriginal.Ok())
wxCreateMaskedBitmap(m_bmpSelectedOriginal, col);
m_bmpSelected = newBitmap;
- armPixmap = (Pixmap) m_bmpSelected.GetPixmap();
+ armPixmap = (Pixmap) m_bmpSelected.GetDrawable();
}
else
- armPixmap = (Pixmap) m_bmpNormal.GetArmPixmap(m_mainWidget);
+ armPixmap = (Pixmap) m_bitmapCache.GetArmPixmap(m_mainWidget);
}
else
- armPixmap = (Pixmap) m_bmpNormal.GetArmPixmap(m_mainWidget);
-
- // <- the Get...Pixmap()-functions return the same pixmap!
- if (insensPixmap == pixmap)
- {
- insensPixmap =
- XCreateInsensitivePixmap(DisplayOfScreen(XtScreen((Widget) m_mainWidget)), pixmap);
- m_insensPixmap = (WXPixmap) insensPixmap;
- }
+ armPixmap = (Pixmap) m_bitmapCache.GetArmPixmap(m_mainWidget);
XtVaSetValues ((Widget) m_mainWidget,
XmNlabelPixmap, pixmap,
void wxBitmapButton::ChangeBackgroundColour()
{
- DoChangeBackgroundColour(m_mainWidget, m_backgroundColour, TRUE);
+ wxDoChangeBackgroundColour(m_mainWidget, m_backgroundColour, true);
// Must reset the bitmaps since the colours have changed.
DoSetBitmap();
return ret;
}
-