nuclear@0: #ifndef _NUCWIN_H_ nuclear@0: #define _NUCWIN_H_ nuclear@0: nuclear@0: #include nuclear@0: #include "widget.h" nuclear@0: nuclear@0: struct Point { nuclear@0: int x, y; nuclear@0: inline Point(int x=0, int y=0) {this->x = x; this->y = y;} nuclear@0: }; nuclear@0: nuclear@0: struct Rect : public RECT { nuclear@0: inline Rect() {} nuclear@0: inline Rect(int l, int t, int r, int b) {left=l; top=t; right=r; bottom=b;} nuclear@0: }; nuclear@0: nuclear@0: nuclear@0: #define HandlerFunctionPtr int (*)(Widget*, int) nuclear@0: nuclear@0: extern char *Arguments; nuclear@0: nuclear@0: enum HandlerType { nuclear@0: HANDLER_KEY, nuclear@0: HANDLER_CLOSE, nuclear@0: HANDLER_MOUSE, nuclear@0: HANDLER_WHEEL, nuclear@0: HANDLER_WINMOVE, nuclear@0: HANDLER_MOUSEUP, nuclear@0: HANDLER_PAINT nuclear@0: }; nuclear@0: enum MainLoopMode {EventLoop, RealTimeLoop}; nuclear@0: nuclear@0: void SetHandler(HandlerType htype, int (*Handler)(Widget*, int)); nuclear@0: nuclear@0: void SetMainLoopFunc(void (*func)()); nuclear@0: nuclear@0: Point NWGetScreenSize(); nuclear@0: nuclear@0: int NWMainLoop(MainLoopMode mode = EventLoop); nuclear@0: bool NWCheckForMessages(); nuclear@0: LRESULT CALLBACK MainHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); nuclear@0: nuclear@0: void NWCloseWindow(Widget *win); nuclear@0: nuclear@0: std::string NWFileSaveChooser(Widget *win, const char *title, const char *filetypes, const char *defext); nuclear@0: nuclear@0: #endif // _NUCWIN_H_