|
1
|
1 #pragma once
|
|
|
2
|
|
|
3 // DEPRECATED, NOT DPI SAFE
|
|
|
4 // use cfgDialogPosition & cfgWindowSize2 instead
|
|
|
5 #ifdef FOOBAR2000_DESKTOP_WINDOWS
|
|
|
6
|
|
|
7 #include "../SDK/cfg_var.h"
|
|
|
8
|
|
|
9 //! Window position management helpers
|
|
|
10 //! Usage: create a static instance, like with any cfg_var; access it on creation/reposition/destruction of your window.
|
|
|
11 class cfg_window_placement : public cfg_struct_t<WINDOWPLACEMENT> {
|
|
|
12 public:
|
|
|
13 cfg_window_placement(const GUID& guid) : cfg_struct_t(guid) {}
|
|
|
14 //! Read and save position data from HWND.
|
|
|
15 bool read_from_window(HWND window);
|
|
|
16 //! Apply saved position data to HWND.
|
|
|
17 bool apply_to_window(HWND window, bool allowHidden);
|
|
|
18
|
|
|
19 // OLD methods tracking only destroy/create.
|
|
|
20 // Use of read_from_window() / apply_to_window() instead is preferred, so changes can be saved immediately.
|
|
|
21 bool on_window_creation(HWND window, bool allowHidden = false);//returns true if window position has been changed, false if not
|
|
|
22 void on_window_creation_silent(HWND window);
|
|
|
23 void on_window_destruction(HWND window);
|
|
|
24 };
|
|
|
25
|
|
|
26 // At one point there was a separate cfg_window_placement_v2 without legacy methods
|
|
|
27 typedef cfg_window_placement cfg_window_placement_v2;
|
|
|
28
|
|
|
29 //! Window size tracker \n
|
|
|
30 //! Usage: create a static instance, like with any cfg_var; access it on creation/reposition/destruction of your window.
|
|
|
31 class cfg_window_size : public cfg_struct_t<SIZE> {
|
|
|
32 public:
|
|
|
33 cfg_window_size(const GUID& id) : cfg_struct_t(id) {}
|
|
|
34 //! Read and save size data from HWND.
|
|
|
35 bool read_from_window(HWND window);
|
|
|
36 //! Apply saved size data to HWND.
|
|
|
37 bool apply_to_window(HWND);
|
|
|
38
|
|
|
39 // OLD methods tracking only destroy/create.
|
|
|
40 // Use of read_from_window() / apply_to_window() instead is preferred, so changes can be saved immediately.
|
|
|
41 bool on_window_creation(HWND window);//returns true if window position has been changed, false if not
|
|
|
42 void on_window_destruction(HWND window);
|
|
|
43 };
|
|
|
44
|
|
|
45 #endif // FOOBAR2000_DESKTOP_WINDOWS
|