diff --git a/README.md b/README.md index f1c39c0..3ce8a52 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FramelessHelper +# FramelessHelper (Win32 version) ## Screenshots @@ -55,7 +55,7 @@ data.maximumSize = QSize(1280, 720); data.minimumSize = QSize(800, 540); // How to set ignore areas: // The geometry of something you already know, in window coordinates -data.ignoreAreas.append(QRect(100, 0, 30, 30)); +data.ignoreAreas.append({100, 0, 30, 30}); // The geometry of a widget, in window coordinates. // It won't update automatically when the geometry of that widget has // changed, so if you want to add a widget, which is in a layout and @@ -83,8 +83,10 @@ The code itself should be able to work on Windows Vista in theory, but Qt has dr ## Requirements -- Qt: at least 5.6 (no modules are required, but to make full use of this repository, you'd better install the `gui`, `widgets` and `quick` modules) -- Compiler: support C++11 at least. MSVC, MinGW, Clang-CL, Intel-CL or cross compile from Linux are all supported. +| Component | Requirement | Additional Information | +| --- | --- | --- | +| Qt | >= 5.6 | No modules are required explicitly, but to make full use of this repository, you'd better install the `gui`, `widgets` and `quick` modules | +| Compiler | >= C++11 | MSVC, MinGW, Clang-CL, Intel-CL or cross compile from Linux are all supported | ## Notes for developers diff --git a/README_unix.md b/README_unix.md new file mode 100644 index 0000000..5ab12fc --- /dev/null +++ b/README_unix.md @@ -0,0 +1,62 @@ +# FramelessHelper (UNIX version) + +## Screenshots + +TODO + +## Features + +- Frameless (of course!). +- Draggable. +- Resizable. +- Cross-platform: Windows, X11, Wayland, macOS (however, it doesn't look good on Windows, so you may want to try [`WinNativeEventFilter`](/winnativeeventfilter.h) instead). + +As for the frame shadow and other window features, they mainly depend on your window manager. + +## Usage + +```cpp +QWidget widget; +FramelessHelper helper; +helper.removeWindowFrame(&widget); +widget.show(); +``` + +### Ignore areas and etc + +```cpp +helper.setIgnoreAreas(&widget, {{0, 0, 30, 40}, {40, 0, 30, 40}}); +``` + +## Requirements + +| Component | Requirement | Additional Information | +| --- | --- | --- | +| Qt | >= 5.15 | This code uses two functions, [`startSystemMove`](https://doc.qt.io/qt-5/qwindow.html#startSystemMove) and [`startSystemResize`](https://doc.qt.io/qt-5/qwindow.html#startSystemResize), which are introduced in Qt 5.15 | +| Compiler | >= C++11 | MSVC, MinGW, Clang-CL, Intel-CL / GCC, Clang, ICC are all supported | + +## License + +```text +MIT License + +Copyright (C) 2020 by wangwenx190 (Yuhang Zhao) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +```