tekno_uttv2/ultimateteknotool.v2/CWindowsBuilder.h
2020-12-31 15:35:46 +03:00

75 lines
2.3 KiB
C++

#pragma once
#include "WindowsVisitor.h"
#include "CWindow_hwnd.h"
#include "CWindow_edit.h"
#include "CWindow_button.h"
#include "CWindow_edit_cfg.h"
#include "CWindow_button_cfg.h"
#include "CWindow_static.h"
class CWindowsBuilder : public WindowsVisitor
{
private:
const wchar_t* build_text = (wchar_t*)L" ";
DWORD build_style = ~WS_VISIBLE;
HWND build_parenthwnd = NULL;
DWORD build_uniqueid = 1;
public:
int build_left_pos = 0;
int build_top_pos = 0;
int build_width = 0;
int build_height = 0;
void ChangeTextP(const wchar_t* only_static_text) { this->build_text = only_static_text; }
void ChangeStyle(DWORD style) { this->build_style = style; }
void ChangeLeftPos(int pos) { this->build_left_pos = pos; }
void ChangeTopPos(int pos) { this->build_top_pos = pos; }
void ChangeWidth(int sz) { this->build_width = sz; }
void ChangeHeight(int sz) { this->build_height = sz; }
void ChangeParentHWND(HWND newhwnd) { this->build_parenthwnd = newhwnd; }
/*void ChangeUniqueID(DWORD id) { this->build_uniqueid = id; }*/
virtual void Visit(CWindow_edit* win) override
{
win->hwnd = ::CreateWindowExW(
0, L"edit",
build_text, build_style,
build_left_pos, build_top_pos, build_width, build_height,
build_parenthwnd, 0, 0, 0);
}
virtual void Visit(CWindow_edit_cfg* win) override
{
win->hwnd = ::CreateWindowExW(
0, L"edit",
build_text, build_style,
build_left_pos, build_top_pos, build_width, build_height,
build_parenthwnd, 0, 0, 0);
}
virtual void Visit(CWindow_button* win) override
{
win->hwnd = ::CreateWindowExW(
0, L"button",
build_text, build_style,
build_left_pos, build_top_pos, build_width, build_height,
build_parenthwnd, (HMENU)build_uniqueid, 0, 0);
win->id = build_uniqueid;
build_uniqueid++;
}
virtual void Visit(CWindow_button_cfg* win) override
{
win->hwnd = ::CreateWindowExW(
0, L"button",
build_text, build_style,
build_left_pos, build_top_pos, build_width, build_height,
build_parenthwnd, (HMENU)build_uniqueid, 0, 0);
win->id = build_uniqueid;
build_uniqueid++;
}
virtual void Visit(CWindow_static* win) override
{
win->hwnd = ::CreateWindowExW(
0, L"static",
build_text, build_style,
build_left_pos, build_top_pos, build_width, build_height,
build_parenthwnd, (HMENU)build_uniqueid, 0, 0);
}
};