summaryrefslogtreecommitdiff
path: root/plugins/AsSingleWindow/src/WindowsManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/AsSingleWindow/src/WindowsManager.h')
-rw-r--r--plugins/AsSingleWindow/src/WindowsManager.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/plugins/AsSingleWindow/src/WindowsManager.h b/plugins/AsSingleWindow/src/WindowsManager.h
new file mode 100644
index 0000000000..e47c03655e
--- /dev/null
+++ b/plugins/AsSingleWindow/src/WindowsManager.h
@@ -0,0 +1,62 @@
+#pragma once
+
+#ifndef WINDOWSMANAGER_H
+#define WINDOWSMANAGER_H
+
+#include "stdafx.h"
+
+enum WindowState {
+ WINDOW_STATE_NORMAL,
+ WINDOW_STATE_MINIMIZED,
+ WINDOW_STATE_MAXIMIZED,
+ WINDOW_STATE_HIDDEN,
+ WINDOW_STATE_CLOSED, // not used ?
+};
+
+enum eWindowPosition {
+ WINDOW_POSITION_LEFT = 1,
+ WINDOW_POSITION_RIGHT = 2,
+};
+
+struct sWndCoords {
+ LONG x, y, width, height;
+};
+
+struct sWindowInfo {
+ HWND hWnd;
+ WindowState eState;
+ WNDPROC pPrevWndProc;
+ RECT rLastSavedPosition;
+
+ void saveState();
+ void saveRect();
+ //void restoreRect();
+};
+
+// critical section tools
+void pluginSetProgress();
+void pluginSetDone();
+bool pluginIsAlreadyRunning();
+
+// system
+sWindowInfo* windowFind(HWND);
+//windowsList::iterator windowFindItr(HWND);
+//windowsList::reverse_iterator windowFindRevItr(HWND);
+void windowAdd(HWND, bool);
+//void windowRemove(HWND);
+HWND windowGetRoot(HWND);
+void windowListUpdate();
+void windowReposition(HWND);
+
+// tools
+bool calcNewWindowPosition(HWND, HWND, sWndCoords*, eWindowPosition);
+//LONG calcNewWindowPosition(HWND, HWND, RECT*, eWindowPosition);
+
+// window callbacks
+LRESULT CALLBACK wndProcSync(HWND, UINT, WPARAM, LPARAM);
+void allWindowsMoveAndSize(HWND);
+void allWindowsActivation(HWND);
+
+#endif WINDOWSMANAGER_H
+
+// end of file \ No newline at end of file