add:一个最初的简单结构。
This commit is contained in:
parent
2daea403b4
commit
cf12e52e10
@ -4,23 +4,47 @@ CBasePanel::CBasePanel(wxWindow* parent, wxWindowID id, const wxPoint& pos, cons
|
||||
: wxPanel(parent, wxID_ANY, pos, size, style, name)
|
||||
{
|
||||
Init();
|
||||
ManLayout();
|
||||
}
|
||||
|
||||
void CBasePanel::Init()
|
||||
{
|
||||
auto* topSizer = new wxBoxSizer(wxVERTICAL);
|
||||
edIp_ = new wxTextCtrl(this, wxID_ANY, _(""));
|
||||
edPort_ = new wxTextCtrl(this, wxID_ANY, _(""));
|
||||
btnConnect_ = new wxButton(this, wxID_ANY, _("Connect"));
|
||||
btnDisconnect_ = new wxButton(this, wxID_ANY, _("DisConnect"));
|
||||
dirctrl_ = new wxGenericDirCtrl(this);
|
||||
rbtLocal_ = new wxRadioButton(this, wxID_ANY, _("Local"));
|
||||
rbtRemote_ = new wxRadioButton(this, wxID_ANY, _("Remote"));
|
||||
lbState_ = new wxStaticText(this, wxID_ANY, _("State"));
|
||||
}
|
||||
|
||||
void CBasePanel::ManLayout()
|
||||
{
|
||||
auto* topSizer = new wxBoxSizer(wxVERTICAL);
|
||||
auto* szL1 = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
auto* lbIp = new wxStaticText(this, wxID_ANY, _("ServerIP:"));
|
||||
edIp_ = new wxTextCtrl(this, wxID_ANY, _(""));
|
||||
auto* lbPort = new wxStaticText(this, wxID_ANY, _("Port:"));
|
||||
edPort_ = new wxTextCtrl(this, wxID_ANY, _("Port"));
|
||||
szL1->Add(lbIp, 0, wxALL, 5);
|
||||
szL1->Add(edIp_, 0, wxALL, 5);
|
||||
szL1->Add(lbPort, 0, wxALL, 5);
|
||||
szL1->Add(edPort_, 0, wxALL, 5);
|
||||
szL1->Add(lbIp, 0, wxALL | wxCENTER, g_BaseBorder);
|
||||
szL1->Add(edIp_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
szL1->Add(lbPort, 0, wxALL | wxCENTER, g_BaseBorder);
|
||||
szL1->Add(edPort_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
szL1->Add(btnConnect_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
szL1->Add(btnDisconnect_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
|
||||
topSizer->Add(szL1, 0, wxEXPAND | wxALL, 5);
|
||||
auto* szL2 = new wxBoxSizer(wxHORIZONTAL);
|
||||
auto* lbCurMode = new wxStaticText(this, wxID_ANY, _("CurrentOperMode:"));
|
||||
szL2->Add(lbCurMode, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
szL2->Add(rbtLocal_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
szL2->Add(rbtRemote_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
szL2->Add(lbState_, 0, wxALL | wxEXPAND, g_BaseBorder);
|
||||
|
||||
auto* szL3 = new wxBoxSizer(wxHORIZONTAL);
|
||||
szL3->Add(dirctrl_, 1, wxALL | wxEXPAND, g_BaseBorder);
|
||||
|
||||
topSizer->Add(szL1, 0, wxEXPAND | wxALL, g_BaseBorder);
|
||||
topSizer->Add(szL2, 0, wxEXPAND | wxALL, g_BaseBorder);
|
||||
topSizer->Add(szL3, 1, wxEXPAND | wxALL, g_BaseBorder);
|
||||
this->SetSizer(topSizer);
|
||||
}
|
||||
}
|
@ -2,6 +2,9 @@
|
||||
#define BASEMAIN_H
|
||||
|
||||
#include <wx/wx.h>
|
||||
#include <wx/dirctrl.h>
|
||||
|
||||
constexpr int g_BaseBorder = 3;
|
||||
|
||||
class CBasePanel : public wxPanel
|
||||
{
|
||||
@ -10,10 +13,17 @@ public:
|
||||
|
||||
private:
|
||||
void Init();
|
||||
void ManLayout();
|
||||
|
||||
protected:
|
||||
public:
|
||||
wxTextCtrl* edIp_{};
|
||||
wxTextCtrl* edPort_{};
|
||||
wxButton* btnConnect_{};
|
||||
wxButton* btnDisconnect_{};
|
||||
wxGenericDirCtrl* dirctrl_{};
|
||||
wxRadioButton* rbtLocal_{};
|
||||
wxRadioButton* rbtRemote_{};
|
||||
wxStaticText* lbState_{};
|
||||
};
|
||||
|
||||
#endif // BASEMAIN_H
|
@ -15,6 +15,7 @@ DECLARE_APP(CMainForm);
|
||||
|
||||
bool CMainForm::OnInit()
|
||||
{
|
||||
SetProcessDPIAware();
|
||||
// 这里也是自动释放的,不需要智能指针或者手动释放。
|
||||
frmae_ = new CMainFrame(_("GTransm"));
|
||||
frmae_->Show(true);
|
||||
|
@ -4,22 +4,26 @@ CMainFrame::CMainFrame(const wxString& title) : wxFrame(nullptr, wxID_ANY, title
|
||||
{
|
||||
InitFrame();
|
||||
ManLayout();
|
||||
SetMinSize(wxSize(1280, 700));
|
||||
}
|
||||
|
||||
void CMainFrame::InitFrame()
|
||||
{
|
||||
if (panela_ == nullptr) {
|
||||
panela_ = new CMainPanel(this);
|
||||
}
|
||||
if (panelb_ == nullptr) {
|
||||
panelb_ = new CMainPanel(this);
|
||||
}
|
||||
panela_ = new CMainPanel(this);
|
||||
panelb_ = new CMainPanel(this);
|
||||
listbox_ = new wxCheckListBox(this, wxID_ANY);
|
||||
toolbar_ = new wxToolBar(this, wxID_ANY);
|
||||
}
|
||||
|
||||
void CMainFrame::ManLayout()
|
||||
{
|
||||
auto* szTop = new wxBoxSizer(wxHORIZONTAL);
|
||||
szTop->Add(panela_, 1, wxEXPAND);
|
||||
szTop->Add(panelb_, 1, wxEXPAND);
|
||||
auto* szTop = new wxBoxSizer(wxVERTICAL);
|
||||
auto* szL1 = new wxBoxSizer(wxHORIZONTAL);
|
||||
szL1->Add(panela_, 1, wxALL | wxEXPAND, g_Border);
|
||||
szL1->Add(panelb_, 1, wxALL | wxEXPAND, g_Border);
|
||||
|
||||
szTop->Add(toolbar_, 0, wxALL, g_Border);
|
||||
szTop->Add(szL1, 3, wxALL | wxEXPAND, g_Border);
|
||||
szTop->Add(listbox_, 1, wxALL | wxEXPAND, g_Border);
|
||||
SetSizer(szTop);
|
||||
}
|
||||
|
@ -16,6 +16,8 @@ public:
|
||||
private:
|
||||
CMainPanel* panela_{};
|
||||
CMainPanel* panelb_{};
|
||||
wxCheckListBox* listbox_{};
|
||||
wxToolBar* toolbar_{};
|
||||
};
|
||||
|
||||
#endif
|
@ -5,13 +5,13 @@
|
||||
|
||||
constexpr int g_Width = 300;
|
||||
constexpr int g_Heigh = 450;
|
||||
constexpr int g_Border = 3;
|
||||
constexpr int g_Border = 1;
|
||||
|
||||
class CMainPanel : public CBasePanel
|
||||
{
|
||||
public:
|
||||
CMainPanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxSize(g_Width, g_Heigh), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString);
|
||||
const wxSize& size = wxSize(g_Width, g_Heigh), long style = wxBORDER_RAISED, const wxString& name = wxEmptyString);
|
||||
};
|
||||
|
||||
#endif // MAINPANEL_H
|
Loading…
x
Reference in New Issue
Block a user