aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/wac/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/wac/main.h')
-rw-r--r--Src/Wasabi/api/wac/main.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/Src/Wasabi/api/wac/main.h b/Src/Wasabi/api/wac/main.h
new file mode 100644
index 00000000..b77cb00a
--- /dev/null
+++ b/Src/Wasabi/api/wac/main.h
@@ -0,0 +1,134 @@
+// THIS FILE SHOULD FUCKING DISAPPEAR DAMMIT
+
+//NONPORTABLE -- HWND and HINSTANCE references
+#ifndef _MAIN_H
+#define _MAIN_H
+
+#warning don't include me
+
+#include <bfc/std.h>
+#include <bfc/string/string.h>
+#include <bfc/ptrlist.h>
+
+#define WM_SYSTRAY WM_USER+1102 //FG> Arbitrary value. Would probably be better with a registered message
+#define WM_SETSKIN WM_USER+0x1000
+
+class Systray;
+class MetricsCallback;
+class ScriptObjectManager;
+class CfgItem;
+class api_window;
+class GenWnd;
+class WasabiKernelController;
+class CoreHandle;
+class CompCommandEntry;
+class Layout;
+
+class Main {
+public:
+ friend class WasabiKernel;
+ static HINSTANCE gethInstance();
+ static HWND gethWnd();
+ static DWORD getThreadId();
+ static WasabiKernelController *getKernelController();
+ static int isMaximized();
+ static int isMinimized();
+ static int minimizeWnd();
+ static int restoreWnd();
+ static int invalidate();
+
+ static void outputDebugString(int severity, const char *string);
+ static void outputDebugString(const char *string) {
+ outputDebugString(0, string);
+ }
+
+ // sets the ownerwnd title
+ static void setWindowTitle(const wchar_t *text);
+
+ // status
+ static void setOverlayText(const wchar_t *text, int interval);//displays then reverts
+ static void setTrayTipText(const wchar_t *text); // set systrem tray icon tooltip text
+
+ // ontop status
+ static void setOnTop(BOOL set);
+ static BOOL getOnTop();
+
+ // systray
+ // 0 = nothing
+ // 1 = taskbar
+ // 2 = systray
+ // 3 = both :)
+ static void setIconMode(int mode);
+
+ // skin
+ static void setSkinDelayed(const wchar_t *skinName);
+
+ // path to wasabi.dll
+ static const wchar_t *getWasabiPath();
+ // path to main EXE
+ static const wchar_t *getMainAppPath();
+
+ static GUID getGuid();
+
+ static void shutdown();
+ static void cancelShutdown();
+
+ static void savePosition();
+
+ static void navigateUrl(const wchar_t *url); // displays in minibrowser if present, otherwise launch external
+
+ static int appContextMenu(api_window *parent, BOOL canScale, BOOL canAlpha);
+ static int thingerContextMenu(api_window *parent);
+
+ static void doAction(int action, int param=0);
+ static void doMenu(const wchar_t *which);
+
+ static void processCommandLine(const wchar_t *cmdLine);
+
+ static void setSkinsPath(const wchar_t *path);
+ static const wchar_t *getSkinsPath();
+
+ static GenWnd *getGenericWnd();
+ static int isShutingDown();
+
+ static HICON smallicon;
+ static HICON bigicon;
+ static bool ontop;
+ static Systray *systray;
+ static GenWnd *genericwnd;
+ static int shuting_down;
+
+ // maintains a stack of modal windows so basewnds can discard messages in WM_MOUSEACTIVATE, should only be used by MsgboxWnd & ModalWnd when we write it ;)
+ static api_window *getModalWnd();
+ static void pushModalWnd(api_window *wnd);
+ static int popModalWnd(api_window *wnd);
+
+ static void metrics_addCallback(MetricsCallback *);
+ static void metrics_delCallback(MetricsCallback *);
+ static int metrics_getDelta();
+ static int metrics_setDelta(int newdelta);
+
+ static int isInetAvailable(); //return 1 if connected, 0 if not available
+
+ static String lastwindowtitle;
+ static int taskbaractive;
+
+ static CoreHandle *getMainCoreHandle();
+ static CoreHandle *mainCoreHandle;
+
+ static const wchar_t *getCommandLine();
+ static String commandLine;
+ static String skinspath;
+
+ static int revert_on_error;
+ static int cancel_shutdown;
+ static PtrList<api_window> ontoplist;
+ static void saveTopMosts();
+ static void restoreTopMosts();
+ static int onMouseWheel(int l, int a);
+
+private:
+ static int isRASActive();
+};
+
+#endif