// Modified by: 13.12.99 by VZ during toolbar classes reorganization
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "tbarmsw.h"
#endif
#include "wx/wx.h"
#endif
-#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR && !wxUSE_TOOLBAR_SIMPLE
-
-#if !defined(__WIN32__) && !wxUSE_IMAGE_LOADING_IN_MSW
- #error wxToolBar needs wxUSE_IMAGE_LOADING_IN_MSW under Win16
-#endif
+#if wxUSE_TOOLBAR && defined(__WIN16__)
#if !defined(__GNUWIN32__) && !defined(__SALFORDC__)
#include "malloc.h"
#include <stdlib.h>
-#include "wx/tbarmsw.h"
+#include "wx/msw/tbarmsw.h"
#include "wx/event.h"
#include "wx/app.h"
#include "wx/bitmap.h"
public:
wxToolBarTool(wxToolBar *tbar,
int id,
- const wxBitmap& bitmap1,
- const wxBitmap& bitmap2,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
bool toggle,
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, bmpNormal, bmpDisabled, toggle,
+ clientData, shortHelp, longHelp)
{
}
// ----------------------------------------------------------------------------
#if !USE_SHARED_LIBRARY
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase)
BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
EVT_PAINT(wxToolBar::OnPaint)
// ----------------------------------------------------------------------------
wxToolBarToolBase *wxToolBar::CreateTool(int id,
- const wxBitmap& bitmap1,
- const wxBitmap& bitmap2,
- bool toggle,
+ const wxString& label,
+ const wxBitmap& bmpNormal,
+ const wxBitmap& bmpDisabled,
+ 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, bmpDisabled, kind,
+ clientData, shortHelp, longHelp);
}
wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
// TODO: use the mapping code from wxToolBar95 to get it right in this class
#if !defined(__WIN32__) && !defined(__WIN386__)
- wxBitmap bitmap2;
- if (toggle)
+ wxBitmap bmpDisabled;
+ if (tool->CanBeToggled())
{
HBITMAP hbmp = CreateMappedBitmap((WXHINSTANCE)wxGetInstance(),
GetHbitmapOf(tool->GetBitmap1()));
}
}
-void wxToolBar::DrawButton(WXHDC hdc, int x, int y, int dx, int dy, wxToolBarTool *tool, int state)
+void wxToolBar::DrawButton(WXHDC hdc, int x, int y, int dx, int dy,
+ wxToolBarToolBase *toolBase, int state)
{
+ wxToolBarTool *tool = (wxToolBarTool *)toolBase;
+
int yOffset;
HBRUSH hbrOld, hbr;
BOOL bMaskCreated = FALSE;
dxFace -= 3;
dyFace -= 3;
- // Using bitmap2 can cause problems (don't know why!)
+ // Using bmpDisabled can cause problems (don't know why!)
#if !defined(__WIN32__) && !defined(__WIN386__)
HBITMAP bitmapOld;
if (tool->GetBitmap2().Ok())
WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap)
{
- HANDLE hDIB = wxBitmapToDIB((HBITMAP) hBitmap, 0);
- if (hDIB)
- {
-#ifdef __WINDOWS_386__
- LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)MK_FP32(GlobalLock(hDIB));
-#else
- LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)GlobalLock(hDIB);
-#endif
- HBITMAP newBitmap = (HBITMAP) CreateMappedBitmap((WXHINSTANCE) wxGetInstance(), lpbmInfoHdr);
- GlobalUnlock(hDIB);
+ HANDLE hDIB = wxDIB::ConvertFromBitmap((HBITMAP) hBitmap);
+ if ( !hDIB )
+ return 0;
+
+ WXHBITMAP newBitmap = CreateMappedBitmap(hInstance, GlobalPtr(hDIB));
+
GlobalFree(hDIB);
- return (WXHBITMAP) newBitmap;
- }
- return 0;
+
+ return newBitmap;
}
-#endif
+#endif // wxUSE_TOOLBAR
+