git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			173 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/tbarsmpl.h
 | |
| // Purpose:     wxToolBarSimple class
 | |
| // Author:      Julian Smart
 | |
| // Modified by: VZ on 14.12.99 during wxToolBar classes reorganization
 | |
| // Created:     01/02/97
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) Julian Smart and Markus Holzem
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_TBARSMPLH__
 | |
| #define _WX_TBARSMPLH__
 | |
| 
 | |
| #ifdef __GNUG__
 | |
|     #pragma interface "tbarsmpl.h"
 | |
| #endif
 | |
| 
 | |
| #include "wx/tbarbase.h"
 | |
| 
 | |
| #if wxUSE_TOOLBAR_SIMPLE
 | |
| 
 | |
| class WXDLLEXPORT wxMemoryDC;
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // wxToolBarSimple is a generic toolbar implementation in pure wxWindows
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLEXPORT wxToolBarSimple : public wxToolBarBase
 | |
| {
 | |
| public:
 | |
|     // ctors and dtor
 | |
|     wxToolBarSimple() { Init(); }
 | |
| 
 | |
|     wxToolBarSimple(wxWindow *parent,
 | |
|                     wxWindowID id,
 | |
|                     const wxPoint& pos = wxDefaultPosition,
 | |
|                     const wxSize& size = wxDefaultSize,
 | |
|                     long style = wxNO_BORDER | wxTB_HORIZONTAL,
 | |
|                     const wxString& name = wxToolBarNameStr)
 | |
|     {
 | |
|         Init();
 | |
| 
 | |
|         Create(parent, id, pos, size, style, name);
 | |
|     }
 | |
| 
 | |
|     bool Create(wxWindow *parent,
 | |
|                 wxWindowID id,
 | |
|                 const wxPoint& pos = wxDefaultPosition,
 | |
|                 const wxSize& size = wxDefaultSize,
 | |
|                 long style = wxNO_BORDER | wxTB_HORIZONTAL,
 | |
|                 const wxString& name = wxToolBarNameStr);
 | |
| 
 | |
|     virtual ~wxToolBarSimple();
 | |
| 
 | |
|     // override/implement base class virtuals
 | |
|     virtual wxToolBarToolBase *AddTool
 | |
|                                (
 | |
|                                    int id,
 | |
|                                    const wxBitmap& bitmap,
 | |
|                                    const wxBitmap& pushedBitmap,
 | |
|                                    bool toggle,
 | |
|                                    wxCoord xPos,
 | |
|                                    wxCoord yPos = -1,
 | |
|                                    wxObject *clientData = NULL,
 | |
|                                    const wxString& helpString1 = wxEmptyString,
 | |
|                                    const wxString& helpString2 = wxEmptyString
 | |
|                                );
 | |
| 
 | |
|     virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
 | |
| 
 | |
|     virtual bool Realize();
 | |
| 
 | |
|     virtual void SetRows(int nRows);
 | |
| 
 | |
|     // implementation from now on
 | |
|     // --------------------------
 | |
| 
 | |
|     // SCROLLING: this has to be copied from wxScrolledWindow since
 | |
|     // wxToolBarBase inherits from wxControl. This could have been put into
 | |
|     // wxToolBarSimple, but we might want any derived toolbar class to be
 | |
|     // scrollable.
 | |
| 
 | |
|     // Number of pixels per user unit (0 or -1 for no scrollbar)
 | |
|     // Length of virtual canvas in user units
 | |
|     virtual void SetScrollbars(int horizontal, int vertical,
 | |
|             int x_length, int y_length,
 | |
|             int x_pos = 0, int y_pos = 0);
 | |
| 
 | |
|     // Physically scroll the window
 | |
|     virtual void Scroll(int x_pos, int y_pos);
 | |
|     virtual void GetScrollPixelsPerUnit(int *x_unit, int *y_unit) const;
 | |
|     virtual void EnableScrolling(bool x_scrolling, bool y_scrolling);
 | |
|     virtual void AdjustScrollbars();
 | |
| 
 | |
|     // Prepare the DC by translating it according to the current scroll position
 | |
|     virtual void PrepareDC(wxDC& dc);
 | |
| 
 | |
|     int GetScrollPageSize(int orient) const ;
 | |
|     void SetScrollPageSize(int orient, int pageSize);
 | |
| 
 | |
|     // Get the view start
 | |
|     virtual void ViewStart(int *x, int *y) const;
 | |
| 
 | |
|     // Actual size in pixels when scrolling is taken into account
 | |
|     virtual void GetVirtualSize(int *x, int *y) const;
 | |
| 
 | |
|     int CalcScrollInc(wxScrollEvent& event);
 | |
| 
 | |
|     // event handlers
 | |
|     void OnPaint(wxPaintEvent& event);
 | |
|     void OnSize(wxSizeEvent& event);
 | |
|     void OnMouseEvent(wxMouseEvent& event);
 | |
|     void OnKillFocus(wxFocusEvent& event);
 | |
|     void OnScroll(wxScrollEvent& event);
 | |
| 
 | |
| protected:
 | |
|     // common part of all ctors
 | |
|     void Init();
 | |
| 
 | |
|     // implement base class pure virtuals
 | |
|     virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
 | |
|     virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
 | |
| 
 | |
|     virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
 | |
|     virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
 | |
|     virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
 | |
| 
 | |
|     virtual wxToolBarToolBase *CreateTool(int id,
 | |
|                                           const wxBitmap& bitmap1,
 | |
|                                           const wxBitmap& bitmap2,
 | |
|                                           bool toggle,
 | |
|                                           wxObject *clientData,
 | |
|                                           const wxString& shortHelpString,
 | |
|                                           const wxString& longHelpString);
 | |
|     virtual wxToolBarToolBase *CreateTool(wxControl *control);
 | |
| 
 | |
|     // helpers
 | |
|     void DrawTool(wxToolBarToolBase *tool);
 | |
|     virtual void DrawTool(wxDC& dc, wxToolBarToolBase *tool);
 | |
|     virtual void SpringUpButton(int index);
 | |
| 
 | |
|     int  m_currentRowsOrColumns;
 | |
| 
 | |
|     int  m_pressedTool, m_currentTool;
 | |
| 
 | |
|     wxCoord m_lastX, m_lastY;
 | |
|     wxCoord m_maxWidth, m_maxHeight;
 | |
|     wxCoord m_xPos, m_yPos;
 | |
| 
 | |
|     // scrolling data
 | |
|     int                   m_xScrollPixelsPerLine;
 | |
|     int                   m_yScrollPixelsPerLine;
 | |
|     bool                  m_xScrollingEnabled;
 | |
|     bool                  m_yScrollingEnabled;
 | |
|     int                   m_xScrollPosition;
 | |
|     int                   m_yScrollPosition;
 | |
|     int                   m_xScrollLines;
 | |
|     int                   m_yScrollLines;
 | |
|     int                   m_xScrollLinesPerPage;
 | |
|     int                   m_yScrollLinesPerPage;
 | |
| 
 | |
| private:
 | |
|     DECLARE_EVENT_TABLE()
 | |
|     DECLARE_DYNAMIC_CLASS(wxToolBarSimple)
 | |
| };
 | |
| 
 | |
| #endif // wxUSE_TOOLBAR_SIMPLE
 | |
| 
 | |
| #endif
 | |
|     // _WX_TBARSMPLH__
 | |
| 
 |