X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12ed316d02733e7111a6967f6ae41e2c0ceaa57a..7b35aa40a06a160ae4a8650c5820880a020697e3:/src/motif/toolbar.cpp diff --git a/src/motif/toolbar.cpp b/src/motif/toolbar.cpp index b38f1c3929..f62b739ad0 100644 --- a/src/motif/toolbar.cpp +++ b/src/motif/toolbar.cpp @@ -82,14 +82,15 @@ class wxToolBarTool : public wxToolBarToolBase public: wxToolBarTool(wxToolBar *tbar, int id, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2, - bool toggle, + const wxString& label, + const wxBitmap& bmpNormal, + const wxBitmap& bmpToggled, + wxItemKind kind, wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString) - : wxToolBarToolBase(tbar, id, bitmap1, bitmap2, toggle, - clientData, shortHelpString, longHelpString) + const wxString& shortHelp, + const wxString& longHelp) + : wxToolBarToolBase(tbar, id, label, bmpNormal, bmpToggled, kind, + clientData, shortHelp, longHelp) { Init(); } @@ -135,17 +136,19 @@ wxString wxToolBarTimer::helpString; // ---------------------------------------------------------------------------- wxToolBarToolBase *wxToolBar::CreateTool(int id, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2, - bool toggle, + const wxString& label, + const wxBitmap& bmpNormal, + const wxBitmap& bmpToggled, + wxItemKind kind, wxObject *clientData, - const wxString& shortHelpString, - const wxString& longHelpString) + const wxString& shortHelp, + const wxString& longHelp) { - return new wxToolBarTool(this, id, bitmap1, bitmap2, toggle, - clientData, shortHelpString, longHelpString); + return new wxToolBarTool(this, id, label, bmpNormal, bmpToggled, kind, + clientData, shortHelp, longHelp); } + wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control) { return new wxToolBarTool(this, control); @@ -196,7 +199,7 @@ bool wxToolBar::Create(wxWindow *parent, m_windowId = id; SetName(name); - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); + m_backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); m_foregroundColour = parent->GetForegroundColour(); m_windowStyle = style; @@ -282,7 +285,10 @@ bool wxToolBar::Realize() wxControl* control = tool->GetControl(); wxSize sz = control->GetSize(); wxPoint pos = control->GetPosition(); - control->Move(currentX, pos.y); + // Allow a control to specify a y-offset by setting its initial position, + // but still don't allow it to position itself above the top margin. + int controlY = (pos.y > 0) ? currentY + pos.y : currentY; + control->Move(currentX, controlY); currentX += sz.x + packing; break; @@ -337,7 +343,7 @@ bool wxToolBar::Realize() // a new wxBitmap that has the correct background colour // for the button. Otherwise the background will just be // e.g. black if a transparent XPM has been loaded. - bmp = tool->GetBitmap1(); + bmp = tool->GetNormalBitmap(); if ( bmp.GetMask() ) { int backgroundPixel; @@ -349,7 +355,7 @@ bool wxToolBar::Realize() bmp = wxCreateMaskedBitmap(bmp, col); - tool->SetBitmap1(bmp); + tool->SetNormalBitmap(bmp); } // Create a selected/toggled bitmap. If there isn't a 2nd @@ -366,11 +372,14 @@ bool wxToolBar::Realize() wxColour col; col.SetPixel(backgroundPixel); - if (tool->GetBitmap2().Ok() && tool->GetBitmap2().GetMask()) + // FIXME: we use disabled bitmap as the bitmap for the toggled + // state, we probably need a GetToggledBitmap() instead + wxBitmap bmpToggled = tool->GetDisabledBitmap(); + if ( bmpToggled.Ok() && bmpToggled.GetMask()) { // Use what's there - wxBitmap newBitmap = wxCreateMaskedBitmap(tool->GetBitmap2(), col); - tool->SetBitmap2(newBitmap); + wxBitmap newBitmap = wxCreateMaskedBitmap(bmpToggled, col); + tool->SetDisabledBitmap(newBitmap); } else { @@ -378,12 +387,13 @@ bool wxToolBar::Realize() if ( bmp.GetMask() ) { wxBitmap newBitmap = wxCreateMaskedBitmap(bmp, col); - tool->SetBitmap2(newBitmap); + tool->SetDisabledBitmap(newBitmap); } else - tool->SetBitmap2(bmp); + tool->SetDisabledBitmap(bmp); } + // FIXME: and here we should use GetDisabledBitmap()... pixmap = (Pixmap) bmp.GetPixmap(); insensPixmap = (Pixmap) bmp.GetInsensPixmap(); @@ -395,11 +405,12 @@ bool wxToolBar::Realize() // If there's a bitmap for the toggled state, use it, // otherwise generate one. - if (tool->GetBitmap2().Ok()) + // + // FIXME: see above + if ( bmpToggled.Ok() ) { - wxBitmap bmp2 = tool->GetBitmap2(); - pixmap2 = (Pixmap) bmp2.GetPixmap(); - insensPixmap2 = (Pixmap) bmp2.GetInsensPixmap(); + pixmap2 = (Pixmap) bmpToggled.GetPixmap(); + insensPixmap2 = (Pixmap) bmpToggled.GetInsensPixmap(); } else { @@ -424,9 +435,9 @@ bool wxToolBar::Realize() // If there's a bitmap for the armed state, use it, // otherwise generate one. - if (tool->GetBitmap2().Ok()) + if ( bmpToggled.Ok() ) { - pixmap2 = (Pixmap) tool->GetBitmap2().GetPixmap(); + pixmap2 = (Pixmap) bmpToggled.GetPixmap(); } else {