X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/479cd5de40ca8029c79e780170fa7c0af7ec0297..3c85ada9dbd66f72f174c049744e8cdaa444d99f:/src/generic/tbarsmpl.cpp diff --git a/src/generic/tbarsmpl.cpp b/src/generic/tbarsmpl.cpp index bda7f6ced7..42557f2885 100644 --- a/src/generic/tbarsmpl.cpp +++ b/src/generic/tbarsmpl.cpp @@ -70,8 +70,8 @@ public: m_height = size.y; } - long GetWidth() const { return m_width; } - long GetHeight() const { return m_height; } + wxCoord GetWidth() const { return m_width; } + wxCoord GetHeight() const { return m_height; } wxCoord m_x; wxCoord m_y; @@ -83,7 +83,13 @@ public: // wxWin macros // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase) + +#if !wxUSE_TOOLBAR_NATIVE || defined(__WXUNIVERSAL__) + #include "wx/toolbar.h" + + IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarSimple) +#endif BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase) EVT_SIZE(wxToolBarSimple::OnSize) @@ -143,6 +149,17 @@ void wxToolBarSimple::Init() m_defaultWidth = 16; m_defaultHeight = 15; + + m_xScrollPixelsPerLine = 1; + m_yScrollPixelsPerLine = 1; + m_xScrollingEnabled = FALSE; + m_yScrollingEnabled = FALSE; + m_xScrollPosition = 0; + m_yScrollPosition = 0; + m_xScrollLines = 0; + m_yScrollLines = 0; + m_xScrollLinesPerPage = 0; + m_yScrollLinesPerPage = 0; } wxToolBarToolBase *wxToolBarSimple::AddTool(int id, @@ -303,8 +320,8 @@ bool wxToolBarSimple::Realize() m_lastX = m_xMargin; m_lastY += maxToolHeight + m_toolPacking; } - tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0); - tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0); + tool->m_x = (wxCoord)(m_lastX + (maxToolWidth - tool->GetWidth())/2.0); + tool->m_y = (wxCoord)(m_lastY + (maxToolHeight - tool->GetHeight())/2.0); m_lastX += maxToolWidth + m_toolPacking; } @@ -316,8 +333,8 @@ bool wxToolBarSimple::Realize() m_lastX += (maxToolWidth + m_toolPacking); m_lastY = m_yMargin; } - tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0); - tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0); + tool->m_x = (wxCoord)(m_lastX + (maxToolWidth - tool->GetWidth())/2.0); + tool->m_y = (wxCoord)(m_lastY + (maxToolHeight - tool->GetHeight())/2.0); m_lastY += maxToolHeight + m_toolPacking; } @@ -586,10 +603,10 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase) } else { - long x = tool->m_x; - long y = tool->m_y; - long w = bitmap.GetWidth(); - long h = bitmap.GetHeight(); + wxCoord x = tool->m_x; + wxCoord y = tool->m_y; + wxCoord w = bitmap.GetWidth(); + wxCoord h = bitmap.GetHeight(); wxPen thick_black_pen("BLACK", 3, wxSOLID); memDC.SelectObject(bitmap); @@ -671,7 +688,8 @@ void wxToolBarSimple::SpringUpButton(int id) if ( tool && tool->CanBeToggled() ) { - tool->Toggle(); + if (tool->IsToggled()) + tool->Toggle(); DrawTool(tool); } @@ -778,63 +796,51 @@ int wxToolBarSimple::CalcScrollInc(wxScrollEvent& event) int orient = event.GetOrientation(); int nScrollInc = 0; - switch (event.GetEventType()) + if (event.GetEventType() == wxEVT_SCROLL_TOP) { - case wxEVT_SCROLL_TOP: - { - if (orient == wxHORIZONTAL) - nScrollInc = - m_xScrollPosition; - else - nScrollInc = - m_yScrollPosition; - break; - } - case wxEVT_SCROLL_BOTTOM: - { - if (orient == wxHORIZONTAL) - nScrollInc = m_xScrollLines - m_xScrollPosition; - else - nScrollInc = m_yScrollLines - m_yScrollPosition; - break; - } - case wxEVT_SCROLL_LINEUP: - { - nScrollInc = -1; - break; - } - case wxEVT_SCROLL_LINEDOWN: - { - nScrollInc = 1; - break; - } - case wxEVT_SCROLL_PAGEUP: - { - if (orient == wxHORIZONTAL) - nScrollInc = -GetScrollPageSize(wxHORIZONTAL); - else - nScrollInc = -GetScrollPageSize(wxVERTICAL); - break; - } - case wxEVT_SCROLL_PAGEDOWN: - { - if (orient == wxHORIZONTAL) - nScrollInc = GetScrollPageSize(wxHORIZONTAL); - else - nScrollInc = GetScrollPageSize(wxVERTICAL); - break; - } - case wxEVT_SCROLL_THUMBTRACK: - { - if (orient == wxHORIZONTAL) - nScrollInc = pos - m_xScrollPosition; - else - nScrollInc = pos - m_yScrollPosition; - break; - } - default: - { - break; - } + if (orient == wxHORIZONTAL) + nScrollInc = - m_xScrollPosition; + else + nScrollInc = - m_yScrollPosition; + } else + if (event.GetEventType() == wxEVT_SCROLL_BOTTOM) + { + if (orient == wxHORIZONTAL) + nScrollInc = m_xScrollLines - m_xScrollPosition; + else + nScrollInc = m_yScrollLines - m_yScrollPosition; + } else + if (event.GetEventType() == wxEVT_SCROLL_LINEUP) + { + nScrollInc = -1; + } else + if (event.GetEventType() == wxEVT_SCROLL_LINEDOWN) + { + nScrollInc = 1; + } else + if (event.GetEventType() == wxEVT_SCROLL_PAGEUP) + { + if (orient == wxHORIZONTAL) + nScrollInc = -GetScrollPageSize(wxHORIZONTAL); + else + nScrollInc = -GetScrollPageSize(wxVERTICAL); + } else + if (event.GetEventType() == wxEVT_SCROLL_PAGEDOWN) + { + if (orient == wxHORIZONTAL) + nScrollInc = GetScrollPageSize(wxHORIZONTAL); + else + nScrollInc = GetScrollPageSize(wxVERTICAL); + } else + if ((event.GetEventType() == wxEVT_SCROLL_THUMBTRACK) || + (event.GetEventType() == wxEVT_SCROLL_THUMBRELEASE)) + { + if (orient == wxHORIZONTAL) + nScrollInc = pos - m_xScrollPosition; + else + nScrollInc = pos - m_yScrollPosition; } + if (orient == wxHORIZONTAL) { int w, h;