mirror of
https://github.com/HIllya51/LunaHook.git
synced 2024-11-24 22:35:36 +08:00
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#ifndef LUNA_BASE_CONTROLS_H
|
|
#define LUNA_BASE_CONTROLS_H
|
|
#include"window.h"
|
|
class control:public basewindow{
|
|
public:
|
|
mainwindow* parent;
|
|
control(mainwindow*);
|
|
virtual void dispatch(WPARAM);
|
|
|
|
std::function<HMENU()>oncontextmenu=[](){return (HMENU)nullptr;};
|
|
std::function<void(WPARAM)>oncontextmenucallback=[](WPARAM){};
|
|
};
|
|
|
|
class button:public control{
|
|
public:
|
|
button(mainwindow*,LPCWSTR,int,int,int,int,DWORD=BS_PUSHBUTTON);
|
|
void dispatch(WPARAM);
|
|
std::function<void()> onclick=[](){};
|
|
};
|
|
class checkbox:public button{
|
|
public:
|
|
checkbox(mainwindow*,LPCWSTR,int,int,int,int);
|
|
bool ischecked();
|
|
};
|
|
class textedit:public control{
|
|
public:
|
|
textedit(mainwindow*,LPCWSTR,int,int,int,int,DWORD stype=0);
|
|
void dispatch(WPARAM);
|
|
std::function<void(const std::wstring&)> ontextchange=[&](const std::wstring &text){};
|
|
void appendtext(const std::wstring&);
|
|
void scrolltoend();
|
|
};
|
|
|
|
class label:public control{
|
|
public:
|
|
label(mainwindow*,LPCWSTR,int,int,int,int);
|
|
};
|
|
|
|
class listbox:public control{
|
|
public:
|
|
listbox(mainwindow*,int,int,int,int);
|
|
void dispatch(WPARAM);
|
|
int currentidx();
|
|
std::wstring text(int);
|
|
std::function<void(int)> oncurrentchange=[](int){};
|
|
void clear();
|
|
int additem(LPCWSTR);
|
|
void deleteitem(int);
|
|
void setdata(int,LONG_PTR);
|
|
LONG_PTR getdata(int);
|
|
int count();
|
|
};
|
|
#endif |