#ifndef LUNA_BASE_WINDOW_H #define LUNA_BASE_WINDOW_H class control; class basewindow{ public: HFONT hfont=0; 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&); void setfont(int,LPCWSTR fn=0); operator HWND(){return winId;} }; class mainwindow:public basewindow{ public: std::vectorcontrols; 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