dc1efb1d9f
streams; fixed wxSP_... ids that clashed with wxTextCtrl; added generic GetPixel implementation for GTK/Motif git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
143 lines
3.4 KiB
C++
143 lines
3.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: statbmp.cpp
|
|
// Purpose: wxStaticBitmap
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 17/09/98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifdef __GNUG__
|
|
#pragma implementation "statbmp.h"
|
|
#endif
|
|
|
|
#include "wx/statbmp.h"
|
|
|
|
#ifdef __VMS__
|
|
#pragma message disable nosimpint
|
|
#endif
|
|
#include <Xm/Xm.h>
|
|
#include <Xm/Label.h>
|
|
#include <Xm/LabelG.h>
|
|
#include <Xm/RowColumn.h>
|
|
#ifdef __VMS__
|
|
#pragma message enable nosimpint
|
|
#endif
|
|
|
|
#include "wx/motif/private.h"
|
|
|
|
IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl)
|
|
|
|
/*
|
|
* wxStaticBitmap
|
|
*/
|
|
|
|
bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id,
|
|
const wxBitmap& bitmap,
|
|
const wxPoint& pos,
|
|
const wxSize& size,
|
|
long style,
|
|
const wxString& name)
|
|
{
|
|
m_messageBitmap = bitmap;
|
|
SetName(name);
|
|
m_backgroundColour = parent->GetBackgroundColour();
|
|
m_foregroundColour = parent->GetForegroundColour();
|
|
if (parent) parent->AddChild(this);
|
|
|
|
if ( id == -1 )
|
|
m_windowId = (int)NewControlId();
|
|
else
|
|
m_windowId = id;
|
|
|
|
m_windowStyle = style;
|
|
|
|
Widget parentWidget = (Widget) parent->GetClientWidget();
|
|
|
|
m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("staticBitmap",
|
|
#if USE_GADGETS
|
|
xmLabelGadgetClass, parentWidget,
|
|
#else
|
|
xmLabelWidgetClass, parentWidget,
|
|
#endif
|
|
XmNalignment, XmALIGNMENT_BEGINNING,
|
|
NULL);
|
|
|
|
XtVaSetValues ((Widget) m_mainWidget,
|
|
XmNlabelPixmap, (Pixmap) ((wxBitmap&)bitmap).GetLabelPixmap (m_mainWidget),
|
|
XmNlabelType, XmPIXMAP,
|
|
NULL);
|
|
|
|
m_font = parent->GetFont();
|
|
ChangeFont(FALSE);
|
|
|
|
SetCanAddEventHandler(TRUE);
|
|
|
|
wxSize actualSize(size);
|
|
if (actualSize.x == -1)
|
|
actualSize.x = bitmap.GetWidth();
|
|
if (actualSize.y == -1)
|
|
actualSize.y = bitmap.GetHeight();
|
|
AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, actualSize.x, actualSize.y);
|
|
|
|
ChangeBackgroundColour ();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
wxStaticBitmap::~wxStaticBitmap()
|
|
{
|
|
SetBitmap(wxNullBitmap);
|
|
}
|
|
|
|
void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap)
|
|
{
|
|
m_messageBitmap = bitmap;
|
|
|
|
Widget widget = (Widget) m_mainWidget;
|
|
int x, y, w1, h1, w2, h2;
|
|
|
|
GetPosition(&x, &y);
|
|
|
|
if (bitmap.Ok())
|
|
{
|
|
w2 = bitmap.GetWidth();
|
|
h2 = bitmap.GetHeight();
|
|
XtVaSetValues (widget,
|
|
XmNlabelPixmap, ((wxBitmap&)bitmap).GetLabelPixmap (widget),
|
|
XmNlabelType, XmPIXMAP,
|
|
NULL);
|
|
GetSize(&w1, &h1);
|
|
|
|
if (! (w1 == w2) && (h1 == h2))
|
|
SetSize(x, y, w2, h2);
|
|
}
|
|
else
|
|
{
|
|
// Null bitmap: must not use current pixmap
|
|
// since it is no longer valid.
|
|
XtVaSetValues (widget,
|
|
XmNlabelType, XmSTRING,
|
|
XmNlabelPixmap, XmUNSPECIFIED_PIXMAP,
|
|
NULL);
|
|
}
|
|
}
|
|
|
|
void wxStaticBitmap::ChangeFont(bool keepOriginalSize)
|
|
{
|
|
wxWindow::ChangeFont(keepOriginalSize);
|
|
}
|
|
|
|
void wxStaticBitmap::ChangeBackgroundColour()
|
|
{
|
|
wxWindow::ChangeBackgroundColour();
|
|
}
|
|
|
|
void wxStaticBitmap::ChangeForegroundColour()
|
|
{
|
|
wxWindow::ChangeForegroundColour();
|
|
}
|
|
|