Fix declaration of 'o' hides previous local declaration warnings. Change two wxCONSTRUCTOR_5 definitions using wxBitmapBundle instead of wxBitmap (this does not give build errors). wxGenericCalendarCtrl is missing all XTI implementations, so just use RTTI. And fix building the xti sample. Note the shared build still fails due to WXDLLIMPEXP related issues. Closes #22300. Closes #22301.
141 lines
4.0 KiB
C++
141 lines
4.0 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: src/common/statbmpcmn.cpp
|
|
// Purpose: wxStaticBitmap common code
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 04/01/98
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// ===========================================================================
|
|
// declarations
|
|
// ===========================================================================
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// headers
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// For compilers that support precompilation, includes "wx.h".
|
|
#include "wx/wxprec.h"
|
|
|
|
|
|
#if wxUSE_STATBMP
|
|
|
|
#include "wx/statbmp.h"
|
|
|
|
extern WXDLLEXPORT_DATA(const char) wxStaticBitmapNameStr[] = "staticBitmap";
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// XTI
|
|
// ---------------------------------------------------------------------------
|
|
|
|
wxDEFINE_FLAGS( wxStaticBitmapStyle )
|
|
wxBEGIN_FLAGS( wxStaticBitmapStyle )
|
|
// new style border flags, we put them first to
|
|
// use them for streaming out
|
|
wxFLAGS_MEMBER(wxBORDER_SIMPLE)
|
|
wxFLAGS_MEMBER(wxBORDER_SUNKEN)
|
|
wxFLAGS_MEMBER(wxBORDER_DOUBLE)
|
|
wxFLAGS_MEMBER(wxBORDER_RAISED)
|
|
wxFLAGS_MEMBER(wxBORDER_STATIC)
|
|
wxFLAGS_MEMBER(wxBORDER_NONE)
|
|
|
|
// old style border flags
|
|
wxFLAGS_MEMBER(wxSIMPLE_BORDER)
|
|
wxFLAGS_MEMBER(wxSUNKEN_BORDER)
|
|
wxFLAGS_MEMBER(wxDOUBLE_BORDER)
|
|
wxFLAGS_MEMBER(wxRAISED_BORDER)
|
|
wxFLAGS_MEMBER(wxSTATIC_BORDER)
|
|
wxFLAGS_MEMBER(wxBORDER)
|
|
|
|
// standard window styles
|
|
wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
|
|
wxFLAGS_MEMBER(wxCLIP_CHILDREN)
|
|
wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
|
|
wxFLAGS_MEMBER(wxWANTS_CHARS)
|
|
wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
|
|
wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
|
|
wxFLAGS_MEMBER(wxVSCROLL)
|
|
wxFLAGS_MEMBER(wxHSCROLL)
|
|
|
|
wxEND_FLAGS( wxStaticBitmapStyle )
|
|
|
|
wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBitmap, wxControl, "wx/statbmp.h");
|
|
|
|
wxBEGIN_PROPERTIES_TABLE(wxStaticBitmap)
|
|
wxPROPERTY_FLAGS( WindowStyle, wxStaticBitmapStyle, long, \
|
|
SetWindowStyleFlag, GetWindowStyleFlag, \
|
|
wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, wxT("Helpstring"), \
|
|
wxT("group")) // style
|
|
wxEND_PROPERTIES_TABLE()
|
|
|
|
wxEMPTY_HANDLERS_TABLE(wxStaticBitmap)
|
|
|
|
wxCONSTRUCTOR_5( wxStaticBitmap, wxWindow*, Parent, wxWindowID, Id, \
|
|
wxBitmapBundle, BitmapBundle, wxPoint, Position, wxSize, Size )
|
|
|
|
/*
|
|
TODO PROPERTIES :
|
|
bitmap
|
|
*/
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxStaticBitmap
|
|
// ----------------------------------------------------------------------------
|
|
|
|
wxStaticBitmapBase::~wxStaticBitmapBase()
|
|
{
|
|
// this destructor is required for Darwin
|
|
}
|
|
|
|
wxSize wxStaticBitmapBase::DoGetBestSize() const
|
|
{
|
|
if ( m_bitmapBundle.IsOk() )
|
|
return m_bitmapBundle.GetPreferredLogicalSizeFor(this);
|
|
|
|
// the fall back size is completely arbitrary
|
|
return wxSize(16, 16);
|
|
}
|
|
|
|
wxBitmap wxStaticBitmapBase::GetBitmap() const
|
|
{
|
|
return m_bitmapBundle.GetBitmapFor(this);
|
|
}
|
|
|
|
// Only wxMSW handles icons and bitmaps differently, in all the other ports
|
|
// they are exactly the same thing.
|
|
#ifdef wxICON_IS_BITMAP
|
|
|
|
void wxStaticBitmapBase::SetIcon(const wxIcon& icon)
|
|
{
|
|
SetBitmap(icon);
|
|
}
|
|
|
|
wxIcon wxStaticBitmapBase::GetIcon() const
|
|
{
|
|
wxIcon icon;
|
|
icon.CopyFromBitmap(GetBitmap());
|
|
return icon;
|
|
}
|
|
|
|
#else // !wxICON_IS_BITMAP
|
|
|
|
// Just provide the stabs for them, they're never used anyhow as they're
|
|
// overridden in wxMSW implementation of this class.
|
|
void wxStaticBitmapBase::SetIcon(const wxIcon& WXUNUSED(icon))
|
|
{
|
|
wxFAIL_MSG(wxS("unreachable"));
|
|
}
|
|
|
|
wxIcon wxStaticBitmapBase::GetIcon() const
|
|
{
|
|
wxFAIL_MSG(wxS("unreachable"));
|
|
|
|
return wxIcon();
|
|
}
|
|
|
|
#endif // wxICON_IS_BITMAP/!wxICON_IS_BITMAP
|
|
|
|
#endif // wxUSE_STATBMP
|