absence_thelab

annotate src/nwt/nucwin.h @ 0:1cffe3409164

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 23 Oct 2014 01:46:07 +0300
parents
children
rev   line source
nuclear@0 1 #ifndef _NUCWIN_H_
nuclear@0 2 #define _NUCWIN_H_
nuclear@0 3
nuclear@0 4 #include <string>
nuclear@0 5 #include "widget.h"
nuclear@0 6
nuclear@0 7 struct Point {
nuclear@0 8 int x, y;
nuclear@0 9 inline Point(int x=0, int y=0) {this->x = x; this->y = y;}
nuclear@0 10 };
nuclear@0 11
nuclear@0 12 struct Rect : public RECT {
nuclear@0 13 inline Rect() {}
nuclear@0 14 inline Rect(int l, int t, int r, int b) {left=l; top=t; right=r; bottom=b;}
nuclear@0 15 };
nuclear@0 16
nuclear@0 17
nuclear@0 18 #define HandlerFunctionPtr int (*)(Widget*, int)
nuclear@0 19
nuclear@0 20 extern char *Arguments;
nuclear@0 21
nuclear@0 22 enum HandlerType {
nuclear@0 23 HANDLER_KEY,
nuclear@0 24 HANDLER_CLOSE,
nuclear@0 25 HANDLER_MOUSE,
nuclear@0 26 HANDLER_WHEEL,
nuclear@0 27 HANDLER_WINMOVE,
nuclear@0 28 HANDLER_MOUSEUP,
nuclear@0 29 HANDLER_PAINT
nuclear@0 30 };
nuclear@0 31 enum MainLoopMode {EventLoop, RealTimeLoop};
nuclear@0 32
nuclear@0 33 void SetHandler(HandlerType htype, int (*Handler)(Widget*, int));
nuclear@0 34
nuclear@0 35 void SetMainLoopFunc(void (*func)());
nuclear@0 36
nuclear@0 37 Point NWGetScreenSize();
nuclear@0 38
nuclear@0 39 int NWMainLoop(MainLoopMode mode = EventLoop);
nuclear@0 40 bool NWCheckForMessages();
nuclear@0 41 LRESULT CALLBACK MainHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
nuclear@0 42
nuclear@0 43 void NWCloseWindow(Widget *win);
nuclear@0 44
nuclear@0 45 std::string NWFileSaveChooser(Widget *win, const char *title, const char *filetypes, const char *defext);
nuclear@0 46
nuclear@0 47 #endif // _NUCWIN_H_