Commit Graph

183 Commits

Author SHA1 Message Date
Yuhang Zhao e2f7c76c88 win: minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-16 13:41:41 +08:00
Yuhang Zhao 87da6cb5da move static_assert to cpp source files
To speed up compilation time.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-13 09:44:50 +08:00
Yuhang Zhao f15ca8daf0 fix various issues
1. Fix mica material doesn't work normally when used on multiple windows.
2. Fix build on Qt5.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-12 14:08:58 +08:00
Yuhang Zhao 994b02ad6c quick: add FramelessApplicationWindow element
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-12 10:47:41 +08:00
Yuhang Zhao b9f5cf79c0 win32: add support for dark theme menu
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-11 16:17:04 +08:00
Yuhang Zhao fcf51d6d73 refactor
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-11 11:52:49 +08:00
Yuhang Zhao 1e43ba2e81 improve windowborder element
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-10 22:12:01 +08:00
Yuhang Zhao 55be173c31 minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-10 13:59:00 +08:00
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 b50a2dcd72 fix Qt5 compilation error
And change to lazy initialization for Mica Material.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-09 10:08:49 +08:00
Yuhang Zhao d483c39b9a add way to disable window maximization
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-08 15:25:22 +08:00
Yuhang Zhao ac9a05209e quick: fix misleading and annoying warning
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-30 12:58:13 +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 684ebc3fa3 minor improvement
Code simplification & adapt to latest Qt code.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-23 14:04:47 +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 55fe04000e add more comments
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-11 10:43:48 +08:00
Jan Kowalewicz 6a46844853
win: Qt version check for #155 (#157) 2022-09-11 10:23:01 +08:00
Jan Kowalewicz f2affbca85
win: fix build with Qt 5.14 and MinGW (#155) 2022-09-10 16:38:40 +08:00
Yuhang Zhao 33c3eaa05a win: add missing definitions for mingw
Fixes: #153
Fixes: #154

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-10 16:04:17 +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 7dda58deaf free all resources during destruction
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-06 13:40:16 +08:00
Yuhang Zhao f2a6d35908 improve macos code [1/2]
1. Simplify code a little
2. Use Qt functionalities as many as possible.
3. Prepare for adding old Qt support.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-05 16:55: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 ba343fbbd4 win: fix bug when using Qt 5.14 and below
Fixes: #152

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-01 16:45:32 +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 abf4b29dca minor fixes of the last commit
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-31 10:45:26 +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 e55afa2fe3 simplify a function
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-28 20:08:44 +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 406c801383 Remove unneeded function
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-25 11:16:50 +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 1bce57445b win: use qt own functions more
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-19 10:53:46 +08:00
Yuhang Zhao a49756ee45 registrykey: rename
RegistryKey is a better name than Registry.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-17 10:42:48 +08:00
Yuhang Zhao 0535276f55 win: use Qt functionalities as much as possible
If Qt provides the functionalities we need, use it
instead of reinventing the wheel.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-16 15:24:14 +08:00
Yuhang Zhao 3dbeb2721a minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-06 12:01:12 +08:00
Yuhang Zhao beb16bfdc2 linux: minor improvement
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-04 10:32:32 +08:00
Yuhang Zhao f4f56498c2 win32: minor improvement
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-30 17:26:27 +08:00
Yuhang Zhao 775b1a2aab minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-30 11:34:14 +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 4f8106a009 minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-10 14:26:01 +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 9a93475f2b fix typo: snap layouts --> snap layout
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-07 17:00:15 +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
VerySimple b413d0b1e6
修改了几个地方 (#139)
* merge 3 commits

modify a few lines

Update framelesshelper_windows.h

* improve syntax
2022-07-07 10:26:14 +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 aed1673855 win32: remove the limit to the manifest file
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-05 10:36:34 +08:00
Yuhang Zhao df5ff50c7f win32: minor improvement
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-04 18:05: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 f90b49538a add support for qmltc tool
Also remove one useless enum.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-01 15:52:28 +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 75f19218c6 minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-24 21:38:26 +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 5754f2ec20 common: improve robustness
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-20 17:36:44 +08:00
Yuhang Zhao 44b3730056 quick: remove not used code
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-19 10:23:18 +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 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 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 cfb0842726 win: make sure we can still compile this project using some old windows sdks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-04 17:09:30 +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 2f629a9e5b Quick: make the titleBarItem become a property
By making it a Q_PROPERTY we can use it more conveniently.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-25 14:50:41 +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 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 a0a9b8d108 Final code of version 2.0.0!
Some minor issues are known to exist and they'll get fixed before 2.1 is officially released.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-23 14:59:27 +08:00
Yuhang Zhao 8460995d7f quick module: minor improvements
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-22 15:49:00 +08:00
Yuhang Zhao 3f17626c64 misc: minor tweaks
1. Finish the simple title bar of the QOpenGLWidget demo
2. Minor improvements of the Quick implementation

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-22 12:04:38 +08:00
Yuhang Zhao 130d174dc2 misc: improve old Qt version support
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-21 21:13:16 +08:00
Yuhang Zhao 701d8d0927 fix build on 5.12 & add initial opengl demo
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-21 15:10:16 +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 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