This doesn't look great and also doesn't work correctly in high DPI. Instead of trying to fix it, just hard code the size of the main frame and also apply FromDIP() to the size of the child frame.
92 lines
2.4 KiB
C++
92 lines
2.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: samples/propgrid/propgrid_minimal.cpp
|
|
// Purpose: Minimal portion of wxPropertyGrid sample
|
|
// Author: Jaakko Salli
|
|
// Created: 2008-08-23
|
|
// Copyright: (c) Jaakko Salli
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "wx/wx.h"
|
|
#include "wx/propgrid/propgrid.h"
|
|
#include "wx/propgrid/advprops.h"
|
|
|
|
class MyFrame : public wxFrame
|
|
{
|
|
public:
|
|
MyFrame(wxWindow* parent);
|
|
|
|
void OnAction(wxCommandEvent& event);
|
|
void OnPropertyGridChange(wxPropertyGridEvent& event);
|
|
void OnPropertyGridChanging(wxPropertyGridEvent& event);
|
|
|
|
private:
|
|
wxPropertyGrid* m_pg;
|
|
wxDECLARE_EVENT_TABLE();
|
|
};
|
|
|
|
enum
|
|
{
|
|
ID_ACTION = wxID_HIGHEST
|
|
};
|
|
|
|
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|
EVT_MENU(ID_ACTION, MyFrame::OnAction)
|
|
EVT_PG_CHANGED( -1, MyFrame::OnPropertyGridChange )
|
|
EVT_PG_CHANGING( -1, MyFrame::OnPropertyGridChanging )
|
|
wxEND_EVENT_TABLE()
|
|
|
|
MyFrame::MyFrame(wxWindow* parent)
|
|
: wxFrame(parent, wxID_ANY, "PropertyGrid Test")
|
|
{
|
|
wxMenu *Menu = new wxMenu;
|
|
Menu->Append(ID_ACTION, "Action");
|
|
wxMenuBar *MenuBar = new wxMenuBar();
|
|
MenuBar->Append(Menu, "Action");
|
|
SetMenuBar(MenuBar);
|
|
|
|
wxPropertyGrid *pg = new wxPropertyGrid(this,wxID_ANY,wxDefaultPosition,wxSize(400,400),
|
|
wxPG_SPLITTER_AUTO_CENTER |
|
|
wxPG_BOLD_MODIFIED );
|
|
m_pg = pg;
|
|
|
|
pg->Append( new wxStringProperty("String Property", wxPG_LABEL) );
|
|
pg->Append( new wxIntProperty("Int Property", wxPG_LABEL) );
|
|
pg->Append( new wxBoolProperty("Bool Property", wxPG_LABEL) );
|
|
|
|
SetClientSize(FromDIP(wxSize(400, 300)));
|
|
}
|
|
|
|
void MyFrame::OnPropertyGridChange(wxPropertyGridEvent &event)
|
|
{
|
|
wxPGProperty* p = event.GetProperty();
|
|
|
|
if ( p )
|
|
{
|
|
wxLogVerbose("OnPropertyGridChange(%s, value=%s)",
|
|
p->GetName(), p->GetValueAsString());
|
|
}
|
|
else
|
|
{
|
|
wxLogVerbose("OnPropertyGridChange(nullptr)");
|
|
}
|
|
}
|
|
|
|
void MyFrame::OnPropertyGridChanging(wxPropertyGridEvent &event)
|
|
{
|
|
wxPGProperty* p = event.GetProperty();
|
|
|
|
wxLogVerbose("OnPropertyGridChanging(%s)", p->GetName());
|
|
}
|
|
|
|
void MyFrame::OnAction(wxCommandEvent &)
|
|
{
|
|
}
|
|
|
|
// Called from propgridsample.cpp
|
|
//
|
|
void DisplayMinimalFrame(wxWindow* parent)
|
|
{
|
|
MyFrame *frame = new MyFrame(parent);
|
|
frame->Show(true);
|
|
}
|