]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/statusbar.h
wxUSE_GSTREAMER is Unix-specific, remove it from common wx/setup_inc.h; it also requi...
[wxWidgets.git] / include / wx / msw / statusbar.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/statbr.h
3 // Purpose: native implementation of wxStatusBar
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 04.04.98
7 // RCS-ID: $Id$
8 // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_MSW_STATUSBAR_H_
13 #define _WX_MSW_STATUSBAR_H_
14
15 #if wxUSE_NATIVE_STATUSBAR
16
17 #include "wx/vector.h"
18 #include "wx/tooltip.h"
19
20 class WXDLLIMPEXP_FWD_CORE wxClientDC;
21
22 class WXDLLIMPEXP_CORE wxStatusBar : public wxStatusBarBase
23 {
24 public:
25 // ctors and such
26 wxStatusBar();
27 wxStatusBar(wxWindow *parent,
28 wxWindowID id = wxID_ANY,
29 long style = wxSTB_DEFAULT_STYLE,
30 const wxString& name = wxStatusBarNameStr)
31 {
32 m_pDC = NULL;
33 (void)Create(parent, id, style, name);
34 }
35
36 bool Create(wxWindow *parent,
37 wxWindowID id = wxID_ANY,
38 long style = wxSTB_DEFAULT_STYLE,
39 const wxString& name = wxStatusBarNameStr);
40
41 virtual ~wxStatusBar();
42
43 // a status line can have several (<256) fields numbered from 0
44 virtual void SetFieldsCount(int number = 1, const int *widths = NULL);
45
46 // each field of status line has it's own text
47 virtual void SetStatusText(const wxString& text, int number = 0);
48
49 // set status line fields' widths
50 virtual void SetStatusWidths(int n, const int widths_field[]);
51
52 // set status line fields' styles
53 virtual void SetStatusStyles(int n, const int styles[]);
54
55 // sets the minimal vertical size of the status bar
56 virtual void SetMinHeight(int height);
57
58 // get the position and size of the field's internal bounding rectangle
59 virtual bool GetFieldRect(int i, wxRect& rect) const;
60
61 // get the border size
62 virtual int GetBorderX() const;
63 virtual int GetBorderY() const;
64
65 virtual bool SetFont(const wxFont& font);
66
67 virtual WXLRESULT MSWWindowProc(WXUINT nMsg,
68 WXWPARAM wParam,
69 WXLPARAM lParam);
70
71 protected:
72 void CopyFieldsWidth(const int widths[]);
73 void SetFieldsWidth();
74 void UpdateFieldText(int nField);
75
76 // override some base class virtuals
77 virtual wxSize DoGetBestSize() const;
78 virtual void DoMoveWindow(int x, int y, int width, int height);
79 #if wxUSE_TOOLTIPS
80 virtual bool MSWProcessMessage(WXMSG* pMsg);
81 virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result);
82 #endif
83
84 // used by UpdateFieldText
85 wxClientDC *m_pDC;
86
87 // the tooltips used when wxSTB_SHOW_TIPS is given
88 wxVector<wxToolTip*> m_tooltips;
89
90 private:
91 DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBar)
92 };
93
94 #endif // wxUSE_NATIVE_STATUSBAR
95
96 #endif // _WX_MSW_STATUSBAR_H_