]> git.saurik.com Git - wxWidgets.git/blob - include/wx/ribbon/control.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / ribbon / control.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/ribbon/control.h
3 // Purpose: Extension of wxControl with common ribbon methods
4 // Author: Peter Cawley
5 // Modified by:
6 // Created: 2009-06-05
7 // Copyright: (C) Peter Cawley
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
10
11 #ifndef _WX_RIBBON_CONTROL_H_
12 #define _WX_RIBBON_CONTROL_H_
13
14 #include "wx/defs.h"
15
16 #if wxUSE_RIBBON
17
18 #include "wx/control.h"
19 #include "wx/dynarray.h"
20
21 class wxRibbonBar;
22 class wxRibbonArtProvider;
23
24 class WXDLLIMPEXP_RIBBON wxRibbonControl : public wxControl
25 {
26 public:
27 wxRibbonControl() { Init(); }
28
29 wxRibbonControl(wxWindow *parent, wxWindowID id,
30 const wxPoint& pos = wxDefaultPosition,
31 const wxSize& size = wxDefaultSize, long style = 0,
32 const wxValidator& validator = wxDefaultValidator,
33 const wxString& name = wxControlNameStr)
34 {
35 Init();
36
37 Create(parent, id, pos, size, style, validator, name);
38 }
39
40 bool Create(wxWindow *parent, wxWindowID id,
41 const wxPoint& pos = wxDefaultPosition,
42 const wxSize& size = wxDefaultSize, long style = 0,
43 const wxValidator& validator = wxDefaultValidator,
44 const wxString& name = wxControlNameStr);
45
46 virtual void SetArtProvider(wxRibbonArtProvider* art);
47 wxRibbonArtProvider* GetArtProvider() const {return m_art;}
48
49 virtual bool IsSizingContinuous() const {return true;}
50 wxSize GetNextSmallerSize(wxOrientation direction, wxSize relative_to) const;
51 wxSize GetNextLargerSize(wxOrientation direction, wxSize relative_to) const;
52 wxSize GetNextSmallerSize(wxOrientation direction) const;
53 wxSize GetNextLargerSize(wxOrientation direction) const;
54
55 virtual bool Realize();
56 bool Realise() {return Realize();}
57
58 virtual wxRibbonBar* GetAncestorRibbonBar()const;
59
60 // Finds the best width and height given the parent's width and height
61 virtual wxSize GetBestSizeForParentSize(const wxSize& WXUNUSED(parentSize)) const { return GetBestSize(); }
62
63 protected:
64 wxRibbonArtProvider* m_art;
65
66 virtual wxSize DoGetNextSmallerSize(wxOrientation direction,
67 wxSize relative_to) const;
68 virtual wxSize DoGetNextLargerSize(wxOrientation direction,
69 wxSize relative_to) const;
70
71 private:
72 void Init() { m_art = NULL; }
73
74 #ifndef SWIG
75 DECLARE_CLASS(wxRibbonControl)
76 #endif
77 };
78
79 WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonControl*, wxArrayRibbonControl, class WXDLLIMPEXP_RIBBON);
80
81 #endif // wxUSE_RIBBON
82
83 #endif // _WX_RIBBON_CONTROL_H_