协议调试器切换到改框架实现

This commit is contained in:
zcy 2021-09-16 11:34:11 +08:00
parent dca8b90bc0
commit b17d7f3246
4 changed files with 148 additions and 39 deletions

View File

@ -1,15 +1,17 @@
#include "base_form.h"
#include "new_monitor_form.h"
const std::wstring BasicForm::kClassName = L"Basic";
#define WM_USER_POS_CHANGED (WM_USER + 2)
BasicForm::BasicForm()
BasicForm::BasicForm():
mMonitorNewSelect(nullptr)
{
}
BasicForm::~BasicForm()
{
}
std::wstring BasicForm::GetSkinFolder()
@ -27,15 +29,10 @@ std::wstring BasicForm::GetWindowClassName() const
return kClassName;
}
LRESULT BasicForm::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_USER_POS_CHANGED) {
NewMonitorForm* window = new NewMonitorForm();
window->Create(NULL, NewMonitorForm::kClassName.c_str(), WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & WS_SIZEBOX, 0);
window->CenterWindow();
window->ShowModalFake(this->m_hWnd);
nim_comp::Toast::ShowToast(L"×Ô¶¨ÒåÏûÏ¢±»µ÷ÓÃ", 1000, this->GetHWND());
}
return WindowImplBase::HandleMessage(uMsg, wParam, lParam);
}
@ -43,38 +40,71 @@ LRESULT BasicForm::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
void BasicForm::InitWindow()
{
/* Show settings menu */
ui::Button* settings = dynamic_cast<ui::Button*>(FindControl(L"test_customize"));
if (nullptr != settings) {
settings->AttachClick([this](ui::EventArgs* args) {
printf("%d\r\n", ::PostMessage(this->GetHWND(), WM_USER_POS_CHANGED, 0, 0));
ui::Button* btn_add_new = dynamic_cast<ui::Button*>(FindControl(L"add_new"));
btn_add_new->SetText(L"Đ½¨źŕĚýĎî");
if (nullptr != btn_add_new) {
btn_add_new->AttachClick([this](ui::EventArgs* args) {
if (mMonitorNewSelect == nullptr) {
mMonitorNewSelect = new NewMonitorForm();
mMonitorNewSelect->Create(this->GetHWND(), NewMonitorForm::kClassName.c_str(),
WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & WS_SIZEBOX, 0);
mMonitorNewSelect->CenterWindow();
mMonitorNewSelect->ShowModalFake(this->GetHWND());
}
else {
mMonitorNewSelect = new NewMonitorForm();
mMonitorNewSelect->Create(this->GetHWND(), NewMonitorForm::kClassName.c_str(),
WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & WS_SIZEBOX, 0);
mMonitorNewSelect->CenterWindow();
mMonitorNewSelect->ShowModalFake(this->GetHWND());
}
return true;
});
});
}
ui::TreeView* tree = dynamic_cast<ui::TreeView*>(FindControl(L"tree"));
if (nullptr != tree) {
ui::TreeNode* parent_node = nullptr;
for (auto j = 0; j < 8; j++)
{
ui::TreeNode* node = new ui::TreeNode;
node->SetClass(L"listitem");
node->SetFixedHeight(20);
if (parent_node)
{
node->SetText(nbase::StringPrintf(L"Child node %d", j));
node->SetMargin({ 10, 0, 0, 0 });
parent_node->AddChildNode(node);
}
else
{
node->SetText(nbase::StringPrintf(L"Parent node", j));
tree->GetRootNode()->AddChildNode(node);
parent_node = node;
parent_node->AttachClick([this](ui::EventArgs* args) {
printf("%d\r\n", ::PostMessage(this->GetHWND(), WM_USER_POS_CHANGED, 0, 0));
return true;
});
}
}
ui::TreeNode* node = new ui::TreeNode;
node->SetText(nbase::StringPrintf(L"uart"));
node->SetClass(L"listitem");
node->SetFixedHeight(20);
node->SetMargin({ 10, 0, 0, 0 });
tree->GetRootNode()->AddChildNode(node);
node = new ui::TreeNode;
node->SetText(nbase::StringPrintf(L"tcp client"));
node->SetClass(L"listitem");
node->SetFixedHeight(20);
node->SetMargin({ 10, 0, 0, 0 });
tree->GetRootNode()->AddChildNode(node);
node = new ui::TreeNode;
node->SetText(nbase::StringPrintf(L"tcp server"));
node->SetClass(L"listitem");
node->SetFixedHeight(20);
node->SetMargin({ 10, 0, 0, 0 });
tree->GetRootNode()->AddChildNode(node);
node = new ui::TreeNode;
node->SetText(nbase::StringPrintf(L"udp client"));
node->SetClass(L"listitem");
node->SetFixedHeight(20);
node->SetMargin({ 10, 0, 0, 0 });
tree->GetRootNode()->AddChildNode(node);
node = new ui::TreeNode;
node->SetText(nbase::StringPrintf(L"udp server"));
node->SetClass(L"listitem");
node->SetFixedHeight(20);
node->SetMargin({ 10, 0, 0, 0 });
tree->GetRootNode()->AddChildNode(node);
node = new ui::TreeNode;
node->SetText(nbase::StringPrintf(L"udp group"));
node->SetClass(L"listitem");
node->SetFixedHeight(20);
node->SetMargin({ 10, 0, 0, 0 });
tree->GetRootNode()->AddChildNode(node);
}
}

View File

@ -14,6 +14,7 @@
// duilib
#include "duilib/UIlib.h"
#include "ui_components/ui_components.h"
#include "new_monitor_form.h"
class BasicForm : public ui::WindowImplBase
@ -43,4 +44,7 @@ public:
virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
static const std::wstring kClassName;
private:
NewMonitorForm* mMonitorNewSelect;
};

View File

@ -32,10 +32,86 @@ LRESULT NewMonitorForm::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
void NewMonitorForm::InitWindow()
{
}
ui::Button* btn_add_new = dynamic_cast<ui::Button*>(FindControl(L"exit_button"));
if (nullptr != btn_add_new) {
btn_add_new->SetText(L"Í˳ö");
btn_add_new->AttachClick([this](ui::EventArgs*) {
this->Close();
return true;
});
}
ui::Combo* combo_add_new = dynamic_cast<ui::Combo*>(FindControl(L"combo"));
if (NULL != combo_add_new) {
ui::ListContainerElement* element = new ui::ListContainerElement;
element->SetClass(L"listitem");
element->SetFixedHeight(30);
element->SetBkColor(L"white");
element->SetTextPadding({ 6,0,6,0 });
element->SetText(nbase::StringPrintf(L""));
combo_add_new->Add(element);
element = new ui::ListContainerElement;
element->SetClass(L"listitem");
element->SetFixedHeight(30);
element->SetBkColor(L"white");
element->SetTextPadding({ 6,0,6,0 });
element->SetText(nbase::StringPrintf(L"uart"));
combo_add_new->Add(element);
element = new ui::ListContainerElement;
element->SetClass(L"listitem");
element->SetFixedHeight(30);
element->SetBkColor(L"white");
element->SetTextPadding({ 6,0,6,0 });
element->SetText(nbase::StringPrintf(L"tcp client"));
combo_add_new->Add(element);
element = new ui::ListContainerElement;
element->SetClass(L"listitem");
element->SetFixedHeight(30);
element->SetBkColor(L"white");
element->SetTextPadding({ 6,0,6,0 });
element->SetText(nbase::StringPrintf(L"tcp server"));
combo_add_new->Add(element);
element = new ui::ListContainerElement;
element->SetClass(L"listitem");
element->SetFixedHeight(30);
element->SetBkColor(L"white");
element->SetTextPadding({ 6,0,6,0 });
element->SetText(nbase::StringPrintf(L"udp client"));
combo_add_new->Add(element);
element = new ui::ListContainerElement;
element->SetClass(L"listitem");
element->SetFixedHeight(30);
element->SetBkColor(L"white");
element->SetTextPadding({ 6,0,6,0 });
element->SetText(nbase::StringPrintf(L"udp server"));
combo_add_new->Add(element);
}
combo_add_new->AttachAllEvents([this](ui::EventArgs* ev) {
if (nullptr != ev) {
if (ev->Type == 42) {
auto text = p->GetText();
wprintf(L"%s\r\n", text.c_str());
}
printf("%d\r\n", ev->Type);
auto p = static_cast<ui::Combo*>(ev->pSender);
auto text = p->GetText();
wprintf(L"%s\r\n", text.c_str());
}
return true;
});
}
LRESULT NewMonitorForm::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
PostQuitMessage(0L);
return __super::OnClose(uMsg, wParam, lParam, bHandled);
}

View File

@ -7,7 +7,6 @@
#include <tchar.h>
#endif
// base header
#include "base/base.h"
// duilib