X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/002ceb3840434a6bb0d52b3e97ef3fd95fa5bd60..d475dd224790d3fcd530492228eee431a1e44356:/src/motif/toolbar.cpp?ds=sidebyside diff --git a/src/motif/toolbar.cpp b/src/motif/toolbar.cpp index 4c685aada7..cbb8223d82 100644 --- a/src/motif/toolbar.cpp +++ b/src/motif/toolbar.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: motif/toolbar.cpp +// Name: src/motif/toolbar.cpp // Purpose: wxToolBar // Author: Julian Smart // Modified by: 13.12.99 by VZ during toolbar classes reorganization @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "toolbar.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,11 +24,14 @@ #define XtDisplay XTDISPLAY #endif -#include "wx/settings.h" -#include "wx/app.h" -#include "wx/timer.h" #include "wx/toolbar.h" -#include "wx/frame.h" + +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/frame.h" + #include "wx/timer.h" + #include "wx/settings.h" +#endif #ifdef __VMS__ #pragma message disable nosimpint @@ -98,8 +97,8 @@ public: Init(); } - wxToolBarTool(wxToolBar *tbar, wxControl *control) - : wxToolBarToolBase(tbar, control) + wxToolBarTool(wxToolBar *tbar, wxControl *control, const wxString& label) + : wxToolBarToolBase(tbar, control, label) { Init(); } @@ -160,9 +159,10 @@ wxToolBarToolBase *wxToolBar::CreateTool(int id, } -wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control) +wxToolBarToolBase * +wxToolBar::CreateTool(wxControl *control, const wxString& label) { - return new wxToolBarTool(this, control); + return new wxToolBarTool(this, control, label); } void wxToolBarTool::Init() @@ -204,8 +204,9 @@ bool wxToolBar::Create(wxWindow *parent, if( !wxControl::CreateControl( parent, id, pos, size, style, wxDefaultValidator, name ) ) return false; + PreCreation(); - m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); + FixupStyle(); Widget parentWidget = (Widget) parent->GetClientWidget(); @@ -230,8 +231,6 @@ bool wxToolBar::Create(wxWindow *parent, m_mainWidget = (WXWidget) toolbar; - ChangeFont(false); - wxPoint rPos = pos; wxSize rSize = size; @@ -240,11 +239,10 @@ bool wxToolBar::Create(wxWindow *parent, if( rSize.x == -1 && GetParent() ) rSize.x = GetParent()->GetSize().x; + PostCreation(); AttachWidget (parent, m_mainWidget, (WXWidget) NULL, rPos.x, rPos.y, rSize.x, rSize.y); - ChangeBackgroundColour(); - return true; } @@ -380,7 +378,7 @@ bool wxToolBar::Realize() insensBmp = tool->GetDisabledBitmap(); if ( bmp.GetMask() || insensBmp.GetMask() ) { - int backgroundPixel; + WXPixel backgroundPixel; XtVaGetValues(button, XmNbackground, &backgroundPixel, NULL); @@ -403,7 +401,7 @@ bool wxToolBar::Realize() // Create a selected/toggled bitmap. If there isn't a 2nd // bitmap, we need to create it (with a darker, selected // background) - int backgroundPixel; + WXPixel backgroundPixel; if ( tool->CanBeToggled() ) XtVaGetValues(button, XmNselectColor, &backgroundPixel, NULL); @@ -421,7 +419,7 @@ bool wxToolBar::Realize() (Pixmap)tmp.GetDrawable() : tool->GetInsensPixmap(); } - + if (tool->CanBeToggled()) { // Toggle button @@ -496,7 +494,7 @@ bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool) return true; } -bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) +bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool) { tool->Detach(); @@ -520,7 +518,7 @@ bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) offset = isVertical ? size.y : size.x; offset += packing; break; - } + } case wxTOOL_STYLE_SEPARATOR: offset = isVertical ? 0 : separatorSize; break; @@ -546,14 +544,14 @@ bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) { case wxTOOL_STYLE_CONTROL: { - wxPoint pos = t->GetControl()->GetPosition(); + wxPoint location = t->GetControl()->GetPosition(); if( isVertical ) - pos.y -= offset; + location.y -= offset; else - pos.x -= offset; + location.x -= offset; - t->GetControl()->Move( pos ); + t->GetControl()->Move( location ); break; } case wxTOOL_STYLE_SEPARATOR: @@ -567,9 +565,9 @@ bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) NULL ); if( isVertical ) - y -= offset; + y = (Dimension)(y - offset); else - x -= offset; + x = (Dimension)(x - offset); XtVaSetValues( t->GetButtonWidget(), XmNx, x, @@ -625,12 +623,12 @@ void wxToolBar::DoSetSize(int x, int y, int width, int height, int sizeFlags) } wxToolBarBase::DoSetSize(x, y, width, height, sizeFlags); - + // We must refresh the frame size when the toolbar changes size // otherwise the toolbar can be shown incorrectly if ( old_width != width || old_height != height ) { - // But before we send the size event check it + // But before we send the size event check it // we have a frame that is not being deleted. wxFrame *frame = wxDynamicCast(GetParent(), wxFrame); if ( frame && !frame->IsBeingDeleted() ) @@ -758,7 +756,7 @@ void wxToolBarTimer::Notify() // Move the tooltip more or less above the button int yOffset = 20; // TODO: What should be really? - y -= yOffset; + y = (Position)(y - yOffset); if (y < yOffset) y = 0; /************************************************************/ @@ -790,4 +788,3 @@ void wxToolBarTimer::Notify() /************************************************************/ XtPopup (help_popup, XtGrabNone); } -