X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..b910a8add446261996bc8d22e6545e6bdb373b8b:/src/motif/toolbar.cpp diff --git a/src/motif/toolbar.cpp b/src/motif/toolbar.cpp index 4d29622f0a..b7a1a782aa 100644 --- a/src/motif/toolbar.cpp +++ b/src/motif/toolbar.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// 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 // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -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" @@ -55,9 +51,7 @@ // wxWin macros // ---------------------------------------------------------------------------- -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl) -#endif // ---------------------------------------------------------------------------- // private functions @@ -205,7 +199,7 @@ bool wxToolBar::Create(wxWindow *parent, { if( !wxControl::CreateControl( parent, id, pos, size, style, wxDefaultValidator, name ) ) - return FALSE; + return false; m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); @@ -232,7 +226,7 @@ bool wxToolBar::Create(wxWindow *parent, m_mainWidget = (WXWidget) toolbar; - ChangeFont(FALSE); + ChangeFont(false); wxPoint rPos = pos; wxSize rSize = size; @@ -247,7 +241,7 @@ bool wxToolBar::Create(wxWindow *parent, ChangeBackgroundColour(); - return TRUE; + return true; } wxToolBar::~wxToolBar() @@ -261,7 +255,7 @@ bool wxToolBar::Realize() if ( m_tools.GetCount() == 0 ) { // nothing to do - return TRUE; + return true; } bool isVertical = GetWindowStyle() & wxTB_VERTICAL; @@ -278,8 +272,6 @@ bool wxToolBar::Realize() int buttonHeight = 0, buttonWidth = 0; - int currentSpacing = 0; - Widget button; Pixmap pixmap, insensPixmap; wxBitmap bmp, insensBmp; @@ -364,7 +356,7 @@ bool wxToolBar::Realize() if( !tool->GetButtonWidget() ) { wxDoChangeBackgroundColour((WXWidget) button, - m_backgroundColour, TRUE); + m_backgroundColour, true); tool->SetWidget(button); } @@ -425,7 +417,7 @@ bool wxToolBar::Realize() (Pixmap)tmp.GetDrawable() : tool->GetInsensPixmap(); } - + if (tool->CanBeToggled()) { // Toggle button @@ -472,7 +464,6 @@ bool wxToolBar::Realize() XtAddEventHandler (button, EnterWindowMask | LeaveWindowMask, False, wxToolButtonPopupCallback, (XtPointer) this); - currentSpacing = 0; break; } @@ -483,7 +474,7 @@ bool wxToolBar::Realize() isVertical ? buttonWidth + 2 * marginX : -1, isVertical ? -1 : buttonHeight + 2*marginY ); - return TRUE; + return true; } wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord WXUNUSED(x), @@ -498,10 +489,10 @@ bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool) { tool->Attach(this); - return TRUE; + return true; } -bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) +bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool) { tool->Detach(); @@ -525,7 +516,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; @@ -551,14 +542,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: @@ -572,9 +563,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, @@ -586,14 +577,18 @@ bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) } } - return TRUE; + return true; } void wxToolBar::DoEnableTool(wxToolBarToolBase *toolBase, bool enable) { wxToolBarTool *tool = (wxToolBarTool *)toolBase; - - XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable); + if (tool->GetButtonWidget()){ + XtSetSensitive(tool->GetButtonWidget(), (Boolean) enable); + } else if (wxTOOL_STYLE_CONTROL == tool->GetStyle()){ + // Controls (such as wxChoice) do not have button widgets + tool->GetControl()->Enable(enable); + } } void wxToolBar::DoToggleTool(wxToolBarToolBase *toolBase, bool toggle) @@ -626,12 +621,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() ) @@ -719,7 +714,7 @@ static void wxToolButtonPopupCallback(Widget w, wxToolBarTimer::help_popup = (Widget) 0; // One shot - wxTheToolBarTimer->Start(delayMilli, TRUE); + wxTheToolBarTimer->Start(delayMilli, true); } /************************************************************/ @@ -759,7 +754,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; /************************************************************/