From 9a595736d07382f41ab09bacdd692fe9a4cad894 Mon Sep 17 00:00:00 2001 From: Mattia Barbon Date: Tue, 13 May 2003 20:02:15 +0000 Subject: [PATCH] Derive wxStaticText from wxStaticTextBase, remove dead code/code duplication. Likewise for wxStaticBitmap. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/motif/statbmp.h | 14 ++---- include/wx/motif/stattext.h | 12 ++--- src/motif/statbmp.cpp | 27 +++-------- src/motif/stattext.cpp | 90 +++++-------------------------------- 4 files changed, 24 insertions(+), 119 deletions(-) diff --git a/include/wx/motif/statbmp.h b/include/wx/motif/statbmp.h index 48995b933e..cc13cfa02b 100644 --- a/include/wx/motif/statbmp.h +++ b/include/wx/motif/statbmp.h @@ -19,9 +19,7 @@ #include "wx/motif/bmpmotif.h" #include "wx/icon.h" -WXDLLEXPORT_DATA(extern const char*) wxStaticBitmapNameStr; - -class WXDLLEXPORT wxStaticBitmap : public wxControl +class WXDLLEXPORT wxStaticBitmap : public wxStaticBitmapBase { DECLARE_DYNAMIC_CLASS(wxStaticBitmap) @@ -53,13 +51,13 @@ public: return FALSE; } - wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; } + wxBitmap GetBitmap() const { return m_messageBitmap; } // for compatibility with wxMSW - const wxIcon& GetIcon() const + wxIcon GetIcon() const { // don't use wxDynamicCast, icons and bitmaps are really the same thing - return (const wxIcon &)m_messageBitmap; + return *(wxIcon*)&m_messageBitmap; } // for compatibility with wxMSW @@ -68,11 +66,7 @@ public: SetBitmap( icon ); } - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); virtual void ChangeBackgroundColour(); virtual void ChangeForegroundColour(); diff --git a/include/wx/motif/stattext.h b/include/wx/motif/stattext.h index 495558dc76..4857cc4473 100644 --- a/include/wx/motif/stattext.h +++ b/include/wx/motif/stattext.h @@ -16,11 +16,7 @@ #pragma interface "stattext.h" #endif -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticTextNameStr; - -class WXDLLEXPORT wxStaticText: public wxControl +class WXDLLEXPORT wxStaticText: public wxStaticTextBase { DECLARE_DYNAMIC_CLASS(wxStaticText) @@ -53,12 +49,10 @@ public: return FALSE; } - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); virtual void SetLabel(const wxString& label); - // Get the widget that corresponds to the label (for font setting, label setting etc.) + // Get the widget that corresponds to the label + // (for font setting, label setting etc.) virtual WXWidget GetLabelWidget() const { return m_labelWidget; } diff --git a/src/motif/statbmp.cpp b/src/motif/statbmp.cpp index c10ac0d74a..a226685b38 100644 --- a/src/motif/statbmp.cpp +++ b/src/motif/statbmp.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #ifdef __VMS__ #pragma message enable nosimpint #endif @@ -43,19 +42,12 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, long style, const wxString& name) { + if( !CreateControl( parent, id, pos, size, style, wxDefaultValidator, + name ) ) + return false; + m_messageBitmap = bitmap; m_messageBitmapOriginal = 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(); @@ -72,7 +64,6 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, DoSetBitmap(); - m_font = parent->GetFont(); ChangeFont(FALSE); wxSize actualSize(size); @@ -81,9 +72,10 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, actualSize.x = bitmap.GetWidth() ? bitmap.GetWidth() : 1; if (actualSize.y == -1) actualSize.y = bitmap.GetHeight() ? bitmap.GetHeight() : 1; - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, actualSize.x, actualSize.y); + AttachWidget (parent, m_mainWidget, (WXWidget) NULL, + pos.x, pos.y, actualSize.x, actualSize.y); - return TRUE; + return true; } wxStaticBitmap::~wxStaticBitmap() @@ -155,11 +147,6 @@ void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) DoSetBitmap(); } -void wxStaticBitmap::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - void wxStaticBitmap::ChangeBackgroundColour() { wxWindow::ChangeBackgroundColour(); diff --git a/src/motif/stattext.cpp b/src/motif/stattext.cpp index 4f9b14740c..bbfd843ca0 100644 --- a/src/motif/stattext.cpp +++ b/src/motif/stattext.cpp @@ -17,25 +17,20 @@ #define XtDisplay XTDISPLAY #endif -#include "wx/app.h" +#include "wx/defs.h" #include "wx/stattext.h" -#include - #ifdef __VMS__ #pragma message disable nosimpint #endif -#include #include -#include -#include #ifdef __VMS__ #pragma message enable nosimpint #endif #include "wx/motif/private.h" -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl); bool wxStaticText::Create(wxWindow *parent, wxWindowID id, const wxString& label, @@ -44,64 +39,15 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id, long style, const wxString& name) { - SetName(name); - if (parent) parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - m_font = parent->GetFont(); + if( !CreateControl( parent, id, pos, size, style, + wxDefaultValidator, name ) ) + return false; Widget parentWidget = (Widget) parent->GetClientWidget(); - Widget borderWidget = NULL; - - // Decorate the label widget if a border style is specified. - if (style & wxSIMPLE_BORDER) - { - borderWidget = XtVaCreateManagedWidget - ( - "simpleBorder", - xmFrameWidgetClass, parentWidget, - XmNshadowType, XmSHADOW_ETCHED_IN, - XmNshadowThickness, 1, - NULL - ); - } else if (style & wxSUNKEN_BORDER) - { - borderWidget = XtVaCreateManagedWidget - ( - "sunkenBorder", - xmFrameWidgetClass, parentWidget, - XmNshadowType, XmSHADOW_IN, - NULL - ); - } else if (style & wxRAISED_BORDER) - { - borderWidget = XtVaCreateManagedWidget - ( - "raisedBorder", - xmFrameWidgetClass, parentWidget, - XmNshadowType, XmSHADOW_OUT, - NULL - ); - } - -#if 0 // gcc 2.95 doesn't like this apparently - // Use XmStringCreateLtoR(), since XmStringCreateSimple - // doesn't obey separators. -// XmString text = XmStringCreateSimple (label1); - wxXmString text( label1 ); -#endif // 0 - + Widget borderWidget = + (Widget) wxCreateBorderWidget( (WXWidget)parentWidget, style ); wxXmString text( label ); - WXFontType fontType = m_font.GetFontType(XtDisplay(parentWidget)); m_labelWidget = XtVaCreateManagedWidget (wxConstCast(name.c_str(), char), @@ -117,32 +63,17 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id, m_mainWidget = borderWidget ? borderWidget : m_labelWidget; - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); + AttachWidget (parent, m_mainWidget, (WXWidget) NULL, + pos.x, pos.y, size.x, size.y); ChangeBackgroundColour (); return TRUE; } -void wxStaticText::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxStaticText::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxStaticText::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - void wxStaticText::SetLabel(const wxString& label) { - wxString buf(wxStripMenuCodes(label)); - wxXmString label_str(buf); + wxXmString label_str(wxStripMenuCodes(label)); // This variable means we don't need so many casts later. Widget widget = (Widget) m_labelWidget; @@ -171,4 +102,3 @@ void wxStaticText::SetLabel(const wxString& label) NULL); } } - -- 2.47.2