#endif
// For ::UpdateWindow
-#ifdef __WINDOWS__
+#ifdef __WXMSW__
#include <windows.h>
#endif
-#if USE_TOOLBAR
+#if wxUSE_TOOLBAR
#include "wx/tbarbase.h"
#if !USE_SHARED_LIBRARY
-IMPLEMENT_DYNAMIC_CLASS(wxToolBarBase, wxControl)
+IMPLEMENT_ABSTRACT_CLASS(wxToolBarBase, wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool, wxObject)
BEGIN_EVENT_TABLE(wxToolBarBase, wxControl)
// is still valid: a tool may have quit the toolbar.
static wxList gs_ToolBars;
-wxToolBarTool::wxToolBarTool(const int theIndex,
- const wxBitmap& theBitmap1, const wxBitmap& theBitmap2, const bool toggle,
- const long xPos, const long yPos, const wxString& helpS1, const wxString& helpS2)
+wxToolBarTool::wxToolBarTool(int theIndex,
+ const wxBitmap& theBitmap1, const wxBitmap& theBitmap2, bool toggle,
+ long xPos, long yPos, const wxString& helpS1, const wxString& helpS2)
{
m_toolStyle = wxTOOL_STYLE_BUTTON;
m_clientData = NULL;
{
gs_ToolBars.Append(this);
- m_tilingDirection = wxVERTICAL;
- m_rowsOrColumns = 0;
+ m_maxRows = 1;
+ m_maxCols = 32000;
m_maxWidth = 0;
m_maxHeight = 0;
m_defaultWidth = 16;
{
wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
event.SetEventObject(this);
+ event.SetInt(toolIndex);
GetEventHandler()->ProcessEvent(event);
}
// Called when the mouse cursor enters a tool bitmap (no button pressed).
// Argument is -1 if mouse is exiting the toolbar.
+// Note that for this event, the id of the window is used,
+// and the integer parameter of wxCommandEvent is used to retrieve
+// the tool id.
void wxToolBarBase::OnMouseEnter ( int toolIndex )
{
- wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
+ wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, GetId());
event.SetEventObject(this);
+ event.SetInt(toolIndex);
GetEventHandler()->ProcessEvent(event);
}
// If pushedBitmap is NULL, a reversed version of bitmap is
// created and used as the pushed/toggled image.
// If toggle is TRUE, the button toggles between the two states.
-wxToolBarTool *wxToolBarBase::AddTool(const int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap,
- const bool toggle, const long xPos, const long yPos, wxObject *clientData,
+wxToolBarTool *wxToolBarBase::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap,
+ bool toggle, long xPos, long yPos, wxObject *clientData,
const wxString& helpString1, const wxString& helpString2)
{
wxToolBarTool *tool = new wxToolBarTool(index, bitmap, pushedBitmap, toggle, xPos, yPos, helpString1, helpString2);
{
wxToolBarTool *tool = new wxToolBarTool;
tool->m_toolStyle = wxTOOL_STYLE_SEPARATOR;
- m_tools.Append(tool);
+ m_tools.Append(-1, tool);
}
void wxToolBarBase::ClearTools(void)
}
}
-void wxToolBarBase::EnableTool(const int index, const bool enable)
+void wxToolBarBase::EnableTool(int index, bool enable)
{
wxNode *node = m_tools.Find((long)index);
if (node)
}
}
-void wxToolBarBase::ToggleTool(const int index, const bool toggle)
+void wxToolBarBase::ToggleTool(int index, bool toggle)
{
}
-void wxToolBarBase::SetToggle(const int index, const bool value)
+void wxToolBarBase::SetToggle(int index, bool value)
{
wxNode *node=m_tools.Find((long)index);
if (node){
}
}
-bool wxToolBarBase::GetToolState(const int index) const
+bool wxToolBarBase::GetToolState(int index) const
{
wxNode *node = m_tools.Find((long)index);
if (node)
else return FALSE;
}
-bool wxToolBarBase::GetToolEnabled(const int index) const
+bool wxToolBarBase::GetToolEnabled(int index) const
{
wxNode *node = m_tools.Find((long)index);
if (node)
else return FALSE;
}
-wxObject *wxToolBarBase::GetToolClientData(const int index) const
+wxObject *wxToolBarBase::GetToolClientData(int index) const
{
wxNode *node = m_tools.Find((long)index);
if (node)
else return NULL;
}
-void wxToolBarBase::SetToolShortHelp(const int index, const wxString& helpString)
+void wxToolBarBase::SetToolShortHelp(int index, const wxString& helpString)
{
wxNode *node=m_tools.Find((long)index);
if (node)
}
}
-wxString wxToolBarBase::GetToolShortHelp(const int index) const
+wxString wxToolBarBase::GetToolShortHelp(int index) const
{
wxNode *node=m_tools.Find((long)index);
if (node)
return wxString("");
}
-void wxToolBarBase::SetToolLongHelp(const int index, const wxString& helpString)
+void wxToolBarBase::SetToolLongHelp(int index, const wxString& helpString)
{
wxNode *node=m_tools.Find((long)index);
if (node)
}
}
-wxString wxToolBarBase::GetToolLongHelp(const int index) const
+wxString wxToolBarBase::GetToolLongHelp(int index) const
{
wxNode *node=m_tools.Find((long)index);
if (node)
return wxString("");
}
-wxToolBarTool *wxToolBarBase::FindToolForPosition(const long x, const long y) const
+wxToolBarTool *wxToolBarBase::FindToolForPosition(long x, long y) const
{
wxNode *node = m_tools.First();
while (node)
// the tool we're leaving was a 'sprung push button' and if so,
// spring it back to the up state.
//
-void wxToolBarBase::SetMargins(const int x, const int y)
+void wxToolBarBase::SetMargins(int x, int y)
{
m_xMargin = x;
m_yMargin = y;
}
-void wxToolBarBase::SetToolPacking(const int packing)
+void wxToolBarBase::SetToolPacking(int packing)
{
m_toolPacking = packing;
}
-void wxToolBarBase::SetToolSeparation(const int separation)
+void wxToolBarBase::SetToolSeparation(int separation)
{
m_toolSeparation = separation;
}
void wxToolBarBase::Layout(void)
{
- m_currentRowsOrColumns = 0;
- m_lastX = m_xMargin;
- m_lastY = m_yMargin;
- int maxToolWidth = 0;
- int maxToolHeight = 0;
- m_maxWidth = 0;
- m_maxHeight = 0;
-
- // Find the maximum tool width and height
- wxNode *node = m_tools.First();
- while (node)
- {
- wxToolBarTool *tool = (wxToolBarTool *)node->Data();
- if (tool->GetWidth() > maxToolWidth)
- maxToolWidth = (int)tool->GetWidth();
- if (tool->GetHeight() > maxToolHeight)
- maxToolHeight = (int)tool->GetHeight();
- node = node->Next();
- }
-
- int separatorSize = m_toolSeparation;
-
- node = m_tools.First();
- while (node)
- {
- wxToolBarTool *tool = (wxToolBarTool *)node->Data();
- if (tool->m_toolStyle == wxTOOL_STYLE_SEPARATOR)
- {
- if (m_tilingDirection == wxHORIZONTAL)
- {
- if (m_currentRowsOrColumns >= m_rowsOrColumns)
- m_lastY += separatorSize;
- else
- m_lastX += separatorSize;
- }
- else
- {
- if (m_currentRowsOrColumns >= m_rowsOrColumns)
- m_lastX += separatorSize;
- else
- m_lastY += separatorSize;
- }
- }
- else if (tool->m_toolStyle == wxTOOL_STYLE_BUTTON)
- {
- if (m_tilingDirection == wxHORIZONTAL)
- {
- if (m_currentRowsOrColumns >= m_rowsOrColumns)
- {
- m_currentRowsOrColumns = 0;
- 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);
-
- m_lastX += maxToolWidth + m_toolPacking;
- }
- else
- {
- if (m_currentRowsOrColumns >= m_rowsOrColumns)
- {
- m_currentRowsOrColumns = 0;
- 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);
-
- m_lastY += maxToolHeight + m_toolPacking;
- }
- m_currentRowsOrColumns ++;
- }
-
- if (m_lastX > m_maxWidth)
- m_maxWidth = m_lastX;
- if (m_lastY > m_maxHeight)
- m_maxHeight = m_lastY;
-
- node = node->Next();
- }
- if (m_tilingDirection == wxVERTICAL)
- m_maxWidth += maxToolWidth;
- else
- m_maxHeight += maxToolHeight;
-
- m_maxWidth += m_xMargin;
- m_maxHeight += m_yMargin;
}
* pixelsPerUnitX/pixelsPerUnitY: number of pixels per unit (e.g. pixels per text line)
* noUnitsX/noUnitsY: : no. units per scrollbar
*/
-void wxToolBarBase::SetScrollbars (const int pixelsPerUnitX, const int pixelsPerUnitY,
- const int noUnitsX, const int noUnitsY,
- const int xPos, const int yPos)
+void wxToolBarBase::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY,
+ int noUnitsX, int noUnitsY,
+ int xPos, int yPos)
{
m_xScrollPixelsPerLine = pixelsPerUnitX;
m_yScrollPixelsPerLine = pixelsPerUnitY;
}
AdjustScrollbars();
Refresh();
-#ifdef __WINDOWS__
+#ifdef __WXMSW__
::UpdateWindow ((HWND) GetHWND());
#endif
}
int nScrollInc = 0;
switch (event.GetEventType())
{
- case wxEVENT_TYPE_SCROLL_TOP:
+ case wxEVT_SCROLL_TOP:
{
if (orient == wxHORIZONTAL)
nScrollInc = - m_xScrollPosition;
nScrollInc = - m_yScrollPosition;
break;
}
- case wxEVENT_TYPE_SCROLL_BOTTOM:
+ case wxEVT_SCROLL_BOTTOM:
{
if (orient == wxHORIZONTAL)
nScrollInc = m_xScrollLines - m_xScrollPosition;
nScrollInc = m_yScrollLines - m_yScrollPosition;
break;
}
- case wxEVENT_TYPE_SCROLL_LINEUP:
+ case wxEVT_SCROLL_LINEUP:
{
nScrollInc = -1;
break;
}
- case wxEVENT_TYPE_SCROLL_LINEDOWN:
+ case wxEVT_SCROLL_LINEDOWN:
{
nScrollInc = 1;
break;
}
- case wxEVENT_TYPE_SCROLL_PAGEUP:
+ case wxEVT_SCROLL_PAGEUP:
{
if (orient == wxHORIZONTAL)
nScrollInc = -GetScrollPageSize(wxHORIZONTAL);
nScrollInc = -GetScrollPageSize(wxVERTICAL);
break;
}
- case wxEVENT_TYPE_SCROLL_PAGEDOWN:
+ case wxEVT_SCROLL_PAGEDOWN:
{
if (orient == wxHORIZONTAL)
nScrollInc = GetScrollPageSize(wxHORIZONTAL);
nScrollInc = GetScrollPageSize(wxVERTICAL);
break;
}
- case wxEVENT_TYPE_SCROLL_THUMBTRACK:
+ case wxEVT_SCROLL_THUMBTRACK:
{
if (orient == wxHORIZONTAL)
nScrollInc = pos - m_xScrollPosition;
// Default OnSize resets scrollbars, if any
void wxToolBarBase::OnSize(wxSizeEvent& event)
{
-#if USE_CONSTRAINTS
+#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
Layout();
#endif
/*
* Scroll to given position (scroll position, not pixel position)
*/
-void wxToolBarBase::Scroll (const int x_pos, const int y_pos)
+void wxToolBarBase::Scroll (int x_pos, int y_pos)
{
int old_x, old_y;
ViewStart (&old_x, &old_y);
SetScrollPos (wxVERTICAL, y_pos, TRUE);
}
Refresh();
-#ifdef __WINDOWS__
+#ifdef __WXMSW__
UpdateWindow ((HWND) GetHWND());
#endif
}
-void wxToolBarBase::EnableScrolling (const bool x_scroll, const bool y_scroll)
+void wxToolBarBase::EnableScrolling (bool x_scroll, bool y_scroll)
{
m_xScrollingEnabled = x_scroll;
m_yScrollingEnabled = y_scroll;
*y = m_yScrollPosition;
}
-/*
-void wxToolBarBase::CalcScrolledPosition(const int x, const int y, int *xx, int *yy) const
-{
- *xx = (m_calcScrolledOffset ? (x - m_xScrollPosition * m_xScrollPixelsPerLine) : x);
- *yy = (m_calcScrolledOffset ? (y - m_yScrollPosition * m_yScrollPixelsPerLine) : y);
-}
-
-void wxToolBarBase::CalcUnscrolledPosition(const int x, const int y, float *xx, float *yy) const
-{
- *xx = (float)(m_calcScrolledOffset ? (x + m_xScrollPosition * m_xScrollPixelsPerLine) : x);
- *yy = (float)(m_calcScrolledOffset ? (y + m_yScrollPosition * m_yScrollPixelsPerLine) : y);
-}
-*/
-
void wxToolBarBase::OnIdle(wxIdleEvent& event)
{
wxWindow::OnIdle(event);
}
}
-#ifdef __WINDOWS__
+#ifdef __WXMSW__
// Circumvent wxControl::MSWOnMouseMove which doesn't set the cursor.
-void wxToolBarBase::MSWOnMouseMove(const int x, const int y, const WXUINT flags)
+void wxToolBarBase::MSWOnMouseMove(int x, int y, WXUINT flags)
{
wxWindow::MSWOnMouseMove(x, y, flags);
}