]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/tbarsmpl.cpp
initial attempts to get raw bitmaps working under Mac
[wxWidgets.git] / src / generic / tbarsmpl.cpp
index dd79b926b4ec3d110576f7151b4b9830f165c624..33d24e417864825d729f618c6c5f30c117cf791c 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by: VZ on 14.12.99 during wxToolBarSimple reorganization
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Modified by: VZ on 14.12.99 during wxToolBarSimple 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
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -48,14 +48,15 @@ class WXDLLEXPORT wxToolBarToolSimple : public wxToolBarToolBase
 public:
     wxToolBarToolSimple(wxToolBarSimple *tbar,
                         int id,
 public:
     wxToolBarToolSimple(wxToolBarSimple *tbar,
                         int id,
-                        const wxBitmap& bitmap1,
-                        const wxBitmap& bitmap2,
-                        bool toggle,
+                        const wxString& label,
+                        const wxBitmap& bmpNormal,
+                        const wxBitmap& bmpDisabled,
+                        wxItemKind kind,
                         wxObject *clientData,
                         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, bmpDisabled, kind,
+                            clientData, shortHelp, longHelp)
     {
     }
 
     {
     }
 
@@ -73,10 +74,10 @@ public:
     wxCoord GetWidth() const { return m_width; }
     wxCoord GetHeight() const { return m_height; }
 
     wxCoord GetWidth() const { return m_width; }
     wxCoord GetHeight() const { return m_height; }
 
-    wxCoord               m_x;
-    wxCoord               m_y;
-    wxCoord               m_width;
-    wxCoord               m_height;
+    wxCoord m_x;
+    wxCoord m_y;
+    wxCoord m_width;
+    wxCoord m_height;
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -85,7 +86,7 @@ public:
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase)
 
-#if !wxUSE_TOOLBAR_NATIVE || defined(__WXUNIVERSAL__)
+#if !wxUSE_TOOLBAR_NATIVE && !defined(__WXUNIVERSAL__)
     #include "wx/toolbar.h"
 
     IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarSimple)
     #include "wx/toolbar.h"
 
     IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarSimple)
@@ -108,15 +109,16 @@ END_EVENT_TABLE()
 // ----------------------------------------------------------------------------
 
 wxToolBarToolBase *wxToolBarSimple::CreateTool(int id,
 // ----------------------------------------------------------------------------
 
 wxToolBarToolBase *wxToolBarSimple::CreateTool(int id,
-                                               const wxBitmap& bitmap1,
-                                               const wxBitmap& bitmap2,
-                                               bool toggle,
+                                               const wxString& label,
+                                               const wxBitmap& bmpNormal,
+                                               const wxBitmap& bmpDisabled,
+                                               wxItemKind kind,
                                                wxObject *clientData,
                                                wxObject *clientData,
-                                               const wxString& shortHelpString,
-                                               const wxString& longHelpString)
+                                               const wxString& shortHelp,
+                                               const wxString& longHelp)
 {
 {
-    return new wxToolBarToolSimple(this, id, bitmap1, bitmap2, toggle,
-                                   clientData, shortHelpString, longHelpString);
+    return new wxToolBarToolSimple(this, id, label, bmpNormal, bmpDisabled,
+                                   kind, clientData, shortHelp, longHelp);
 }
 
 wxToolBarToolBase *wxToolBarSimple::CreateTool(wxControl *control)
 }
 
 wxToolBarToolBase *wxToolBarSimple::CreateTool(wxControl *control)
@@ -162,23 +164,24 @@ void wxToolBarSimple::Init()
     m_yScrollLinesPerPage = 0;
 }
 
     m_yScrollLinesPerPage = 0;
 }
 
-wxToolBarToolBase *wxToolBarSimple::AddTool(int id,
-                                            const wxBitmap& bitmap,
-                                            const wxBitmap& pushedBitmap,
-                                            bool toggle,
-                                            wxCoord xPos,
-                                            wxCoord yPos,
-                                            wxObject *clientData,
-                                            const wxString& helpString1,
-                                            const wxString& helpString2)
+wxToolBarToolBase *wxToolBarSimple::DoAddTool(int id,
+                                              const wxString& label,
+                                              const wxBitmap& bitmap,
+                                              const wxBitmap& bmpDisabled,
+                                              wxItemKind kind,
+                                              const wxString& shortHelp,
+                                              const wxString& longHelp,
+                                              wxObject *clientData,
+                                              wxCoord xPos,
+                                              wxCoord yPos)
 {
     // rememeber the position for DoInsertTool()
     m_xPos = xPos;
     m_yPos = yPos;
 
 {
     // rememeber the position for DoInsertTool()
     m_xPos = xPos;
     m_yPos = yPos;
 
-    return wxToolBarBase::AddTool(id, bitmap, pushedBitmap, toggle,
-                                  xPos, yPos, clientData,
-                                  helpString1, helpString2);
+    return wxToolBarBase::DoAddTool(id, label, bitmap, bmpDisabled, kind,
+                                    shortHelp, longHelp,
+                                    clientData, xPos, yPos);
 }
 
 bool wxToolBarSimple::DoInsertTool(size_t WXUNUSED(pos),
 }
 
 bool wxToolBarSimple::DoInsertTool(size_t WXUNUSED(pos),
@@ -202,10 +205,10 @@ bool wxToolBarSimple::DoInsertTool(size_t WXUNUSED(pos),
     if ( tool->IsButton() )
     {
         // Calculate reasonable max size in case Layout() not called
     if ( tool->IsButton() )
     {
         // Calculate reasonable max size in case Layout() not called
-        if ((tool->m_x + tool->GetBitmap1().GetWidth() + m_xMargin) > m_maxWidth)
+        if ((tool->m_x + tool->GetNormalBitmap().GetWidth() + m_xMargin) > m_maxWidth)
             m_maxWidth = (wxCoord)((tool->m_x + tool->GetWidth() + m_xMargin));
 
             m_maxWidth = (wxCoord)((tool->m_x + tool->GetWidth() + m_xMargin));
 
-        if ((tool->m_y + tool->GetBitmap1().GetHeight() + m_yMargin) > m_maxHeight)
+        if ((tool->m_y + tool->GetNormalBitmap().GetHeight() + m_yMargin) > m_maxHeight)
             m_maxHeight = (wxCoord)((tool->m_y + tool->GetHeight() + m_yMargin));
     }
 
             m_maxHeight = (wxCoord)((tool->m_y + tool->GetHeight() + m_yMargin));
     }
 
@@ -353,13 +356,15 @@ bool wxToolBarSimple::Realize()
     }
 
     if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
     }
 
     if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
-        m_maxWidth += maxToolWidth;
-    else
         m_maxHeight += maxToolHeight;
         m_maxHeight += maxToolHeight;
+    else
+        m_maxWidth += maxToolWidth;
 
     m_maxWidth += m_xMargin;
     m_maxHeight += m_yMargin;
 
 
     m_maxWidth += m_xMargin;
     m_maxHeight += m_yMargin;
 
+    SetSize(m_maxWidth, m_maxHeight);
+
     return TRUE;
 }
 
     return TRUE;
 }
 
@@ -511,9 +516,11 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase)
     wxPen white_pen(wxT("WHITE"), 1, wxSOLID);
     wxPen black_pen(wxT("BLACK"), 1, wxSOLID);
 
     wxPen white_pen(wxT("WHITE"), 1, wxSOLID);
     wxPen black_pen(wxT("BLACK"), 1, wxSOLID);
 
-    wxBitmap bitmap = tool->GetBitmap();
+    wxBitmap bitmap = tool->GetNormalBitmap();
+    if (!bitmap.Ok())
+        return;
 
 
-    if ( bitmap.Ok() )
+    if ( !tool->IsToggled() )
     {
 #if wxUSE_PALETTE
 #ifndef __WXGTK__
     {
 #if wxUSE_PALETTE
 #ifndef __WXGTK__
@@ -573,14 +580,14 @@ void wxToolBarSimple::DrawTool(wxDC& dc, wxToolBarToolBase *toolBase)
 
         if (!drawBorder)
         {
 
         if (!drawBorder)
         {
-            memDC.SelectObject(tool->GetBitmap1());
+            memDC.SelectObject(tool->GetNormalBitmap());
             dc.Blit(tool->m_x, tool->m_y, tool->GetWidth(), tool->GetHeight(),
                     &memDC, 0, 0, wxSRC_INVERT);
             memDC.SelectObject(wxNullBitmap);
         }
         else
         {
             dc.Blit(tool->m_x, tool->m_y, tool->GetWidth(), tool->GetHeight(),
                     &memDC, 0, 0, wxSRC_INVERT);
             memDC.SelectObject(wxNullBitmap);
         }
         else
         {
-            bitmap = tool->GetBitmap1();
+            bitmap = tool->GetNormalBitmap();
 
             if (m_windowStyle & wxTB_3DBUTTONS)
             {
 
             if (m_windowStyle & wxTB_3DBUTTONS)
             {