nim_duilib/examples/proto_debuger/base_form.h
2022-01-25 23:45:07 +08:00

63 lines
1.5 KiB
C++

#pragma once
// C runtime header
#ifdef __cplusplus
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#endif
// base header
#include "base/base.h"
// duilib
#include "duilib/UIlib.h"
#include "ui_components/ui_components.h"
#include "new_monitor_form.h"
#include "uart_process.h"
#include "tcp_client_form.h"
#include "tcp_server_form.h"
#include <vector>
#include <map>
class BasicForm : public ui::WindowImplBase
{
public:
BasicForm();
~BasicForm();
/**
* 一下三个接口是必须要覆写的接口,父类会调用这三个接口来构建窗口
* GetSkinFolder 接口设置你要绘制的窗口皮肤资源路径
* GetSkinFile 接口设置你要绘制的窗口的 xml 描述文件
* GetWindowClassName 接口设置窗口唯一的类名称
*/
virtual std::wstring GetSkinFolder() override;
virtual std::wstring GetSkinFile() override;
virtual std::wstring GetWindowClassName() const override;
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
/**
* 收到 WM_CREATE 消息时该函数会被调用,通常做一些控件初始化的操作
*/
void InitWindow() override;
LuaBindInterface* FindCurrentFormByLuaPointer(lua_State*);
/**
* 收到 WM_CLOSE 消息时该函数会被调用
*/
virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
static const std::wstring kClassName;
private:
NewMonitorForm* mMonitorNewSelect;
ui::TabBox *mRightSide;
ui::TreeView *mMonitor;
std::map<std::wstring,UartForm*> mUartForm;
std::map<std::wstring, TcpClientForm*> mTcpClientForm;
std::map<std::wstring, TcpServerFrom*> mTcpServerForm;
ui::Control* mRightShow;
};