]> git.saurik.com Git - wxWidgets.git/blob - samples/propgrid/propgrid_minimal.cpp
Use wxCONTROL_SPECIAL to denote first header button
[wxWidgets.git] / samples / propgrid / propgrid_minimal.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: samples/propgrid/propgrid_minimal.cpp
3 // Purpose: Minimal portion of wxPropertyGrid sample
4 // Author: Jaakko Salli
5 // Modified by:
6 // Created: 2008-08-23
7 // RCS-ID: $Id$
8 // Copyright: (c) Jaakko Salli
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/wx.h"
13 #include "wx/propgrid/propgrid.h"
14 #include "wx/propgrid/advprops.h"
15
16 class MyFrame : public wxFrame
17 {
18 public:
19 MyFrame(wxWindow* parent);
20
21 void OnAction(wxCommandEvent& event);
22 void OnPropertyGridChange(wxPropertyGridEvent& event);
23 void OnPropertyGridChanging(wxPropertyGridEvent& event);
24
25 private:
26 wxPropertyGrid* m_pg;
27 DECLARE_EVENT_TABLE()
28 };
29
30 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
31 EVT_MENU(wxID_HIGHEST+1, MyFrame::OnAction)
32 EVT_PG_CHANGED( -1, MyFrame::OnPropertyGridChange )
33 EVT_PG_CHANGING( -1, MyFrame::OnPropertyGridChanging )
34 END_EVENT_TABLE()
35
36 MyFrame::MyFrame(wxWindow* parent)
37 : wxFrame(parent, wxID_ANY, wxT("PropertyGrid Test"))
38 {
39 wxMenu *Menu = new wxMenu;
40 Menu->Append(wxID_HIGHEST+1, wxT("Action"));
41 wxMenuBar *MenuBar = new wxMenuBar();
42 MenuBar->Append(Menu, wxT("Action"));
43 SetMenuBar(MenuBar);
44
45 wxPropertyGrid *pg = new wxPropertyGrid(this,-1,wxDefaultPosition,wxSize(400,400),
46 wxPG_SPLITTER_AUTO_CENTER |
47 wxPG_BOLD_MODIFIED );
48 m_pg = pg;
49
50 pg->Append( new wxStringProperty("String Property", wxPG_LABEL) );
51 pg->Append( new wxIntProperty("Int Property", wxPG_LABEL) );
52 pg->Append( new wxBoolProperty("Bool Property", wxPG_LABEL) );
53
54 SetSize(400, 600);
55 }
56
57 void MyFrame::OnPropertyGridChange(wxPropertyGridEvent &event)
58 {
59 wxPGProperty* p = event.GetProperty();
60
61 if ( p )
62 wxLogDebug("OnPropertyGridChange(%s, value=%s)",
63 p->GetName().c_str(), p->GetValueAsString().c_str());
64 else
65 wxLogDebug("OnPropertyGridChange(NULL)");
66 }
67
68 void MyFrame::OnPropertyGridChanging(wxPropertyGridEvent &event)
69 {
70 wxPGProperty* p = event.GetProperty();
71
72 wxLogDebug("OnPropertyGridChanging(%s)", p->GetName().c_str());
73 }
74
75 void MyFrame::OnAction(wxCommandEvent &)
76 {
77 }
78
79 // Called from propgridsample.cpp
80 //
81 void DisplayMinimalFrame(wxWindow* parent)
82 {
83 MyFrame *frame = new MyFrame(parent);
84 frame->Show(true);
85 }