Yuhang Zhao
92415fb61c
Add WindowBorderPainter and WindowBorder
...
1. Added WindowBorderPainter for QtWidgets
2. Added WindowBorder for QtQuick (uses WindowBorderPainter internally)
3. Adjust some header includes
4. Limit a Linux workaround to the appropriate Qt versions
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-10 13:35:37 +08:00
Yuhang Zhao
e77a2db663
Revert "fix multiple issues found by user"
...
This reverts commit c0ce7b0f48
.
Reason for revert: the fix is totally wrong, as it's trying
to fix a bug which never exists, what's worse, the wrong fix
itself is also causing critical regressions. so revert it immediately.
But the QMake modifications are correct and necessary, so don't
revert that part.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-04 08:55:25 +08:00
Yuhang Zhao
c0ce7b0f48
fix multiple issues found by user
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-02 20:17:52 +08:00
Yuhang Zhao
07101273bd
win: refactor & simplify
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-26 11:18:13 +08:00
Yuhang Zhao
f97f000cc7
avoid potential deadlocks
...
And some other minor tweaks.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-25 10:35:00 +08:00
Yuhang Zhao
eeda750a61
finalize api update
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-21 13:22:03 +08:00
Yuhang Zhao
47bf4da5ae
allow user to remove a window from the frameless window list
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-20 15:56:59 +08:00
Yuhang Zhao
3d3607af7b
refactor
...
and maybe avoid potential bugs.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-16 17:38:13 +08:00
Yuhang Zhao
91bb8273b8
routine code quality improvement
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-15 18:24:34 +08:00
Yuhang Zhao
47dcb8f032
quick: emulate Windows behavior more, just like widget
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-14 17:07:06 +08:00
Yuhang Zhao
1b36587f14
widgets: emulate Windows behavior more
...
On Windows, when you left click the window icon in the title bar, the system menu will be triggered.
And when you double click it, the window will be closed.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-14 13:30:08 +08:00
Yuhang Zhao
221f1c12aa
fix button size can't be changed
...
widget: fix the bug
quick: add the interface to change size
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-13 17:38:10 +08:00
Yuhang Zhao
34596db939
fix various issues found by user
...
Issue list:
1. MinGW lacks some definitions so there's compilation errors
2. The chrome buttons' foreground color is incorrect when the window is inactive.
3. Adapt to new macros from Qt dev branch.
4. Remove unneeded parameter from setApplicationOSThemeAware().
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-10 13:11:55 +08:00
Yuhang Zhao
b9f65aa783
add frameless dialog & demo
...
And some other minor fixes.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-05 15:00:02 +08:00
Yuhang Zhao
5018d9ea82
widget: add support for changing title font
...
Not needed for Qt Quick, because you can easily to change it:
```qml
StandardTitleBar {
titleLabel {
font {
family: "Arial"
pointSize: 10
italic: true
}
}
}
```
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-02 10:39:45 +08:00
Yuhang Zhao
7a35b09a74
add limited qmake support
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-31 16:34:30 +08:00
Yuhang Zhao
463ac0a999
add window icon support
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-31 10:21:24 +08:00
Yuhang Zhao
ce78c037b1
add some helper functionalities
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-28 19:25:22 +08:00
Yuhang Zhao
c3338cd9b7
win: don't use round corner when fullscreen on win11
...
Fixes : #149
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-26 15:54:56 +08:00
Yuhang Zhao
6c060b3946
demo: add shortcut to switch between fullscreen state
...
Can also help use better debugging the old style window frame
issue on Windows.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-21 15:38:43 +08:00
Yuhang Zhao
cf83b050d2
common: minor tweaks
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-29 15:36:28 +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
7f9f2c8543
adapt to latest qt change
...
And install some missing files
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-13 10:40:29 +08:00
Yuhang Zhao
5e863ee661
cmake: fix include dir for package
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-12 14:58:20 +08:00
Yuhang Zhao
7e3a735a7d
minor tweaks and improvements
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-09 12:10:41 +08:00
Yuhang Zhao
2a113ee8ab
Allow build as a CMake package, support the install command
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-08 13:47:50 +08:00
Yuhang Zhao
011b4a85f5
fix Qt5 build
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-07 16:22:34 +08:00
Yuhang Zhao
2806cc811b
code simplification, minor re-structure
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-07 13:43:09 +08:00
Yuhang Zhao
01828e086f
quick blur demo: fix typo
...
And minor improvements to the win32 utils code.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-06 18:01:24 +08:00
Yuhang Zhao
464e2af515
finish the chrome palette implementation
...
And with some other minor tweaks that improve user experience.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-06 14:24:41 +08:00
Yuhang Zhao
e8dcb6e6fe
add api to set title bar and chrome button color
...
TODO:
1. Special handling for the close button
2. Move QuickChromePalette class to own files
3. More testing
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-05 17:58:04 +08:00
Yuhang Zhao
cbf34ea0ec
win32: try to fix bug
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-04 13:03:23 +08:00
Yuhang Zhao
71f8a5aab1
add blurBehindWindowEnabled property
...
Current only implements for Windows,
macOS will be implemented later,
Linux won't be supported in the near future.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-03 16:01:19 +08:00
Yuhang Zhao
66250dbb6e
cmake: minor tweaks
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-27 14:15:34 +08:00
Yuhang Zhao
6683a183d7
cmake: a little simplification
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-27 10:00:23 +08:00
Yuhang Zhao
7b769a71a0
minor tweaks
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-26 14:57:18 +08:00
Yuhang Zhao
a89f19af96
2.1.7 release
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-25 19:38:41 +08:00
Yuhang Zhao
888f9d0aca
standardsystembutton: use icon font instead of svg images
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-24 18:04:49 +08:00
Yuhang Zhao
a04fd53a38
general improvements
...
1. replace raw char array with QByteArray
2. Register QWindow for Quick module
3. Account for hidden and disable state when hovering controls
4. fix quick title bar label alignment
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-01 11:16:34 +08:00
Yuhang Zhao
0cff5ff48e
add "hideWhenClose" property
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-23 21:09:09 +08:00
Yuhang Zhao
093040ec93
make windowFixedSize a Qt property
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-23 15:17:34 +08:00
Yuhang Zhao
6fe3dd1088
cmake: minor tweaks
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-23 14:46:20 +08:00
Yuhang Zhao
5754f2ec20
common: improve robustness
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-20 17:36:44 +08:00
Yuhang Zhao
3a0e6f081f
titlebar: allow use alternative background
...
Set this property to true if you want to use your own background color/pixmap
instead of system's current accent color.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-15 11:46:27 +08:00
Yuhang Zhao
45b3657d7e
minor tweaks
...
Doesn't seem to affect the final appearance
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-13 20:51:03 +08:00
Yuhang Zhao
d13d74783f
quick: simplify implementation
...
1. Merge the three system buttons into one class.
2. Fixed some color calculation errors of system button.
3. Removed some not used bundled resources.
4. Added function to retrieve runtime version of FramelessHelper.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-13 17:33:01 +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
5c3b8b70df
general: fix the system button background color in various cases
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-12 17:25:10 +08:00
Yuhang Zhao
8cb24c61b3
general improvements
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-12 15:07:57 +08:00
Yuhang Zhao
ab20f3433b
remove useless code
...
And that also fixes the bug for Qt Quick applications
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-11 20:24:29 +08:00
Yuhang Zhao
a1acc3e06f
common: minor tweaks
...
Code simplification, format changes, etc ...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-11 17:32:14 +08:00
Yuhang Zhao
54496f9fe0
lower warning level for msvc
...
Bug reports from users indicate that /W4 causes many
warnings for MSVC 2019 and the warnings come from
private Qt headers so no way to fix them in FramelessHelper.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-09 11:39:15 +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
286811c9df
expose private headers, someone may need
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-07 18:02:44 +08:00
Yuhang Zhao
c936a7da80
minor tweaks
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-06 21:00:07 +08:00
Yuhang Zhao
1c6e02d81b
code tidies, prepare for the 2.1 release
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-05 18:02:38 +08:00
Yuhang Zhao
a97b1782ae
redesign the title bar interface
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-04 14:50:11 +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
306ebfc717
Refactor the Quick implementation, interface is now simpler
...
Now we use attached properties instead, it make things simpler.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-02 12:26:57 +08:00
Yuhang Zhao
ff8252aaf4
Add initial snap layout implementation
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-30 12:47:51 +08:00
Yuhang Zhao
fbe241f29e
internal refactor
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-29 18:03:39 +08:00
Yuhang Zhao
fd2b3f5e84
Linux: fix mouse release event not being sent due to wrong parameter
...
Also simplifies a little Windows implementation.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-25 13:48:19 +08:00
Yuhang Zhao
3c0209c979
Linux: fix the mouse grab issue, for real
...
Port previous workaround from 1.x to 2.0
And some minor tweaks.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-24 13:37:10 +08:00
Yuhang Zhao
2915d1f33a
Widgets: move FramelessWidgetsHelper to source directory
...
It's pure implementation detail, so should not be publicly visible
Also fixed the crash of the QOpenGLWidget demo application.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-24 11:33:05 +08:00
Yuhang Zhao
201f54e7a5
widgets module: fix two issues
...
1. The top border has a one pixel gap under some circumstances, fixed
2. The zoomed property didn't get notified correctly sometimes, fixed
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-22 12:57:00 +08:00
Yuhang Zhao
cf4e4c331b
macos: verify functionality
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-20 16:31:30 +08:00
Yuhang Zhao
f2faf5dac3
linux: minor improvements
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-20 15:26:25 +08:00
Yuhang Zhao
b5eebada2c
minor general improvement
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-20 13:09:11 +08:00
Yuhang Zhao
d86e9144a2
general improvement
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-19 17:01:07 +08:00
Yuhang Zhao
68296cc1ae
linux: update the implementation based on previous commit
...
When implementing macOS functionalities, some functions changed signature, update accordingly.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-18 19:11:23 +08:00
Yuhang Zhao
976b2463d7
win32: update changes from previous commit
...
Some functions changed signature, update accordingly.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-18 17:33:41 +08:00
Yuhang Zhao
5173fb51af
macos: add initial implementation
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-18 16:56:58 +08:00
Yuhang Zhao
dee635c0b9
misc: minor improvements
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-17 21:09:24 +08:00
Yuhang Zhao
bb42c69d36
linux: minor improvements
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-17 18:30:16 +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
cd05b6ecdf
quick: finish qml -> cpp migrating
...
Convert all qml files to pure c++ implementation.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-16 09:52:38 +08:00
Yuhang Zhao
4f5044a58c
wip: quick: start migrating to modern usage
...
Still wip, but doesn't left much.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-14 17:33:09 +08:00
Yuhang Zhao
d353c81c5e
misc: minor tweaks
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-14 10:22:57 +08:00
Yuhang Zhao
a57011bd11
win32: half implementation of max btn docking
...
Now the problem is how to send mouse click events to our system buttons
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-09 12:53:55 +08:00
Yuhang Zhao
1839c968db
finish the implementation of StandardSystemButton
...
Convenient button widget to emulate the standard system button
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-07 10:17:16 +08:00
Yuhang Zhao
4eac2b2970
implement TransparentWindowBackground option
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-06 13:15:29 +08:00
Yuhang Zhao
e19dad5b82
some wip code
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-05 19:54:43 +08:00
Yuhang Zhao
b5d2ae5888
quick: improve the standard titlebar's appearance
...
And some minor tweaks to the initialize() function.
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-02 17:56:45 +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
bde9c85cd9
cmake: add license headers
...
add some more license headers
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-01 14:36:36 +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
3525dfee58
win32: nitpck: don't highlight the first entry of the system menu if brought by mouse
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-31 15:59:49 +08:00
Yuhang Zhao
90ad8d281a
little simplify
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-30 13:16:19 +08:00
Julien
4af48d84b9
Fix "out of boundaries" line drawing ( #106 )
...
drawLine on [0, w-1]
2022-03-30 09:32:19 +08:00
Julien
06c23aaba5
FIX #92 do not call startSystemMove2 in MousePressEvent ( #105 )
...
* FIX #92 do not call startSystemMove2 in MousePressEvent
* Add same fix for QtQuick
Co-authored-by: Julien Maille <julien.maille@data-pixel.com>
2022-03-29 15:38:20 +08:00
Yuhang Zhao
c49b971983
internal refactoring
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-29 13:34:05 +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
fd3b815924
wip
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-24 16:37:37 +08:00
Yuhang Zhao
6ffc894213
wip
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-23 16:38:14 +08:00
Yuhang Zhao
d94f8221d3
wip
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-23 10:48:22 +08:00
Yuhang Zhao
d3157699ef
wip
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-22 17:14:03 +08:00
Yuhang Zhao
5ecc06df2f
wip
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-22 15:03:22 +08:00
Yuhang Zhao
6a43ef39f8
wip
...
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-22 11:56:05 +08:00