]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/tbar95.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/msw/tbar95.h 
   3 // Purpose:     wxToolBar (Windows 95 toolbar) class 
   4 // Author:      Julian Smart 
   8 // Copyright:   (c) Julian Smart 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  16     #pragma interface "tbar95.h" 
  21 #include "wx/dynarray.h" 
  23 class WXDLLEXPORT wxToolBar 
: public wxToolBarBase
 
  27     wxToolBar() { Init(); } 
  29     wxToolBar(wxWindow 
*parent
, 
  31                 const wxPoint
& pos 
= wxDefaultPosition
, 
  32                 const wxSize
& size 
= wxDefaultSize
, 
  33                 long style 
= wxNO_BORDER 
| wxTB_HORIZONTAL
, 
  34                 const wxString
& name 
= wxToolBarNameStr
) 
  38         Create(parent
, id
, pos
, size
, style
, name
); 
  41     bool Create(wxWindow 
*parent
, 
  43                 const wxPoint
& pos 
= wxDefaultPosition
, 
  44                 const wxSize
& size 
= wxDefaultSize
, 
  45                 long style 
= wxNO_BORDER 
| wxTB_HORIZONTAL
, 
  46                 const wxString
& name 
= wxToolBarNameStr
); 
  50     // override/implement base class virtuals 
  51     virtual wxToolBarToolBase 
*FindToolForPosition(wxCoord x
, wxCoord y
) const; 
  53     virtual bool Realize(); 
  55     virtual void SetToolBitmapSize(const wxSize
& size
); 
  56     virtual wxSize 
GetToolSize() const; 
  58     virtual void SetRows(int nRows
); 
  60     // implementation only from now on 
  61     // ------------------------------- 
  63     virtual void SetWindowStyleFlag(long style
); 
  65     virtual bool MSWCommand(WXUINT param
, WXWORD id
); 
  66     virtual bool MSWOnNotify(int idCtrl
, WXLPARAM lParam
, WXLPARAM 
*result
); 
  68     void OnMouseEvent(wxMouseEvent
& event
); 
  69     void OnSysColourChanged(wxSysColourChangedEvent
& event
); 
  73     static WXHBITMAP 
MapBitmap(WXHBITMAP bitmap
, int width
, int height
); 
  76     // common part of all ctors 
  79     // create the native toolbar control 
  80     bool MSWCreateToolbar(const wxPoint
& pos
, const wxSize
& size
); 
  82     // recreate the control completely 
  85     // implement base class pure virtuals 
  86     virtual bool DoInsertTool(size_t pos
, wxToolBarToolBase 
*tool
); 
  87     virtual bool DoDeleteTool(size_t pos
, wxToolBarToolBase 
*tool
); 
  89     virtual void DoEnableTool(wxToolBarToolBase 
*tool
, bool enable
); 
  90     virtual void DoToggleTool(wxToolBarToolBase 
*tool
, bool toggle
); 
  91     virtual void DoSetToggle(wxToolBarToolBase 
*tool
, bool toggle
); 
  93     virtual wxToolBarToolBase 
*CreateTool(int id
, 
  94                                           const wxString
& label
, 
  95                                           const wxBitmap
& bmpNormal
, 
  96                                           const wxBitmap
& bmpDisabled
, 
  99                                           const wxString
& shortHelp
, 
 100                                           const wxString
& longHelp
); 
 101     virtual wxToolBarToolBase 
*CreateTool(wxControl 
*control
); 
 103     // override WndProc mainly to process WM_SIZE 
 104     virtual long MSWWindowProc(WXUINT nMsg
, WXWPARAM wParam
, WXLPARAM lParam
); 
 106     // return the appropriate size and flags for the toolbar control 
 107     virtual wxSize 
DoGetBestSize() const; 
 108     virtual WXDWORD 
MSWGetStyle(long style
, WXDWORD 
*exstyle
) const; 
 110     // handlers for various events 
 111     bool HandleSize(WXWPARAM wParam
, WXLPARAM lParam
); 
 112     bool HandlePaint(WXWPARAM wParam
, WXLPARAM lParam
); 
 113     void HandleMouseMove(WXWPARAM wParam
, WXLPARAM lParam
); 
 115     // should be called whenever the toolbar size changes 
 118     // the big bitmap containing all bitmaps of the toolbar buttons 
 121     // the total number of toolbar elements 
 124     // the tool the cursor is in 
 125     wxToolBarToolBase 
*m_pInTool
; 
 128     DECLARE_EVENT_TABLE() 
 129     DECLARE_DYNAMIC_CLASS(wxToolBar
) 
 130     DECLARE_NO_COPY_CLASS(wxToolBar
) 
 133 #endif // wxUSE_TOOLBAR