Commit Graph

52 Commits

Author SHA1 Message Date
Yuhang Zhao 56499c7028 fix the widget demo
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-18 15:16:06 +08:00
Yuhang Zhao 7616161699 Implement homemade Mica material & other improvements
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-16 15:25:15 +08:00
Yuhang Zhao 8042a78b8f various fixes and improvements
1. Make all demo applications be able to record and restore the previous window geometry.
2. Improve the robustness of the widgets and quick implementation.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-13 14:19:50 +08:00
Yuhang Zhao a10ac4e32d demos: simplify some code
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-08 18:24:09 +08:00
Yuhang Zhao 053d6b104e centralize how we handle global options
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-08 16:09:00 +08:00
Yuhang Zhao e7f434c5a4 demo: center window on first show
Looks better than before.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-05 20:23:35 +08:00
Yuhang Zhao 81e736570f refactor widgets interface
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-03 19:02:39 +08:00
Yuhang Zhao 2c0ec868ab finish the linux implementation
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-16 16:55:51 +08:00
Yuhang Zhao eb1c6f4a62 win32: minor improvements
1. Fix build on 32bit platforms: the "Ptr" suffixed APIs not available on 32bit platforms
2. Reduce the confusion caused by the original "UseStandardWindowLayout" option
3. Minor tweaks of the quick implementation

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-01 20:06:48 +08:00
Yuhang Zhao 6166422e37 misc: internal refactor
centralize how we handle string literals.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-01 14:09:14 +08:00
Yuhang Zhao d4e711d679 win implementation is mostly settled now
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-26 15:31:16 +08:00
Yuhang Zhao 533bbeac82 wip - QtQuick impl on win mostly done
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-25 15:44:59 +08:00
Yuhang Zhao 12988f2ddf add the Options feature to control some details
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-20 15:51:05 +08:00
Yuhang Zhao 09acbfaf02 adjust the project file architecture
to make it more like a modern library project

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-20 12:30:00 +08:00
Yuhang Zhao 4d277a5eac wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-18 18:09:20 +08:00
Yuhang Zhao f700b07e5c wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-17 16:48:57 +08:00
Yuhang Zhao 1aa92e3db4 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-16 16:19:24 +08:00
Yuhang Zhao d6fe3fd8bd wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-16 10:12:12 +08:00
Yuhang Zhao d46ec0c1b6 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-15 13:02:59 +08:00
Yuhang Zhao bb8d174c56 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-14 15:26:49 +08:00
Yuhang Zhao 2073cb9fd2 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-13 15:17:27 +08:00
Yuhang Zhao 556741cfb1 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-13 12:14:08 +08:00
Yuhang Zhao d0e19a2b1e wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-12 16:58:58 +08:00
Yuhang Zhao 2881874d7a wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-12 15:53:50 +08:00
Yuhang Zhao 01ad24aae1 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-11 21:57:24 +08:00
Yuhang Zhao 0ce352ff22 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-11 17:59:53 +08:00
Yuhang Zhao 8e69a57039 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-11 09:33:27 +08:00
Yuhang Zhao a9256ba4b3 QtQuick demo: work-around a QtQuick bug
See https://bugreports.qt.io/browse/QTBUG-69711
Also some minor tweaks of the constexpr variables.

Fixes: #35

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-02-10 10:14:54 +08:00
Yuhang Zhao e0c00bce35 Example improvements
Try to fix the frame border issue on high dpi monitors.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-01-10 10:07:26 +08:00
Yuhang Zhao e85e3f891e Example: special case for Win11
1. On Win11 we don't need to paint the frame border, the OS will always draw one for us.
2. Fix the wrong coordinate of the right and bottom frame border of the widget example.
3. Improve the Qt Quick example.
4. Correctly detect the OS version when building against Qt below 5.9.
5. Other minor tweaks.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-01-07 11:10:28 +08:00
Yuhang Zhao e3adb917a6 Fix build on Qt before 5.14
1. The QWinRegistryKey class was introduced in 5.14.0. The implementation is quite clean, so just copy the sources files from Qt repo in case the user is linking against a version older than 5.14.
2. Fixes the rounding error of the self-painted frame border of the examples.
3. Other minor tweaks.

Fixes: #95
Task-number: #94

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-01-06 11:18:33 +08:00
Yuhang Zhao 2fafa7a433 Fix the border width of the examples
Amends commit 3aba956d66

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-11-19 14:29:44 +08:00
Yuhang Zhao 330669e34a Quality improvements
1. Use native frame color in the MainWindow example, just like the Widget example. Fixes #87
2. Rename setHitTestVisibleInChrome() to setHitTestVisible(): This name was taken from Microsoft's WindowChrome class in WPF. Now they removed the legacy "Chrome" suffix in their new products, so we removed it as well.
3. Fix build with Qt older than 5.15: Q_NAMESPACE_EXPORT was introduced in Qt 5.14
4. Removed code that supports native frame: they are just leftovers of the previous refactoring.
4. Correctly detect SetWindowLongPtrW() and GetWindowLongPtrW() 's operation result: they won't modify the Last Error state on success, so we have to set Last Error state to ERROR_SUCCESS before calling them to make sure we get the correct error code.
5. Remove implicitly conversions, use explicit casts where possible
6. Fixed FormatMessage() usage, correctly retrieve the error message: According to MSDN, we should pass the address of a LPWSTR, not the LPWSTR itself.
7. Removed the special handing of WM_SIZE: It turns out that this handling is not needed at all and it's causing new issues, so just remove it.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-10-08 15:43:33 +08:00
Yuhang Zhao 138a2b90cb Minor refactor
1. Remove compiler specific flags
2. Build shared library by default
3. Remove unused functions
4. Minor tweaks of some internal logic, the final behavior is not affected

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-06 14:24:43 +08:00
Yuhang Zhao d64b38a8db Improve the widget example
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-05 12:27:16 +08:00
Yuhang Zhao bc8a70dbb2 Win32: Fix window content will be cut-off for some pixels when window is fullscreened
1. Fix that bug
2. Some adjustments of the variable names to make them more clear
3. Some tweaks to the title bar height value

TODO: Add a button to switch between fullscreen and windowed mode for the widget example
TODO: Add a title text to the widget example

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-04 22:40:13 +08:00
Yuhang Zhao 2c106ffef9 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-01 15:26:36 +08:00
Yuhang Zhao 2b6d0fccb6 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-23 11:04:48 +08:00
Yuhang Zhao d43d126d3f Fix wrong system button size in example
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-21 11:16:45 +08:00
Yuhang Zhao 233ebba3ec Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-20 09:58:00 +08:00
Yuhang Zhao f30339ff54 Minor cleanup
1. Remove unneeded functions
2. Rename some functions and variables to match their real functionality

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-19 10:43:10 +08:00
Yuhang Zhao 151e8a1664 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-06 10:54:11 +08:00
Yuhang Zhao 28144b1e74 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-06-09 13:27:11 +08:00
Yuhang Zhao e0b5244420 Rename function
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-06-01 13:10:05 +08:00
Yuhang Zhao 4139cf0ab2 redesign API 2021-05-31 11:52:32 +08:00
Yuhang Zhao cdb7b87eb4 Remove acrylic related things
They'll be moved to a separate repo instead

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-04-02 12:02:46 +08:00
Yuhang Zhao ef34a7c699 Minor fixes
1. Fix MainWindow example issue
2. Add a comment about the inverted argument
3. Fix some memory leaks

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-04-01 09:52:38 +08:00
Yuhang Zhao 4cba3a4dd4 Minor improvements
1. Update margins when maximized for the examples
2. Prepare for the UNIX version of utility functions

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-25 15:12:47 +08:00
Yuhang Zhao 3e09c0f9b8 Example: Widget: Fix build below 5.14
Fixes: #54

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-24 11:15:58 +08:00
Yuhang Zhao 8ebf9cfc58 Disable acrylic blur by default
If the user want to use it, the user should enable it.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-21 11:13:09 +08:00