#ifndef LUNA_BASE_WINDOW_H #define LUNA_BASE_WINDOW_H class control; class basewindow{ public: HWND winId; virtual void setgeo(int,int,int,int); virtual void on_size(int w,int h); RECT getgeo(); std::wstring text(); void settext(const std::wstring&); operator HWND(){return winId;} }; class mainwindow:public basewindow{ HFONT hfont=0; public: void setfont(int,LPCWSTR fn=0); void visfont(); std::vectorcontrols; std::vectorchildrens; mainwindow* parent; HWND lastcontexthwnd; control* layout; virtual void on_show(); virtual void on_close(); void on_size(int w,int h); mainwindow(mainwindow* _parent=0); LRESULT wndproc(UINT message, WPARAM wParam, LPARAM lParam); static void run(); void show(); void close(); void setcentral(int,int); std::paircalculateXY(int w,int h); void setlayout(control*); }; HICON GetExeIcon(const std::wstring& filePath); #endif