forked from quickshell/quickshell
feat: begin work on docs, also minor refactoring
This commit is contained in:
parent
5de0ae095b
commit
424a45be05
12 changed files with 197 additions and 13 deletions
|
@ -56,13 +56,23 @@ Q_ENUM_NS(Enum);
|
|||
|
||||
} // namespace Layer
|
||||
|
||||
/// Type of keyboard focus that will be accepted by a [ProxyShellWindow]
|
||||
///
|
||||
/// [ProxyShellWindow]: ../proxyshellwindow
|
||||
namespace KeyboardFocus { // NOLINT
|
||||
Q_NAMESPACE;
|
||||
QML_ELEMENT;
|
||||
|
||||
enum Enum {
|
||||
/// No keyboard input will be accepted.
|
||||
None = 0,
|
||||
/// Exclusive access to the keyboard, locking out all other windows.
|
||||
Exclusive = 1,
|
||||
/// Access to the keyboard as determined by the operating system.
|
||||
///
|
||||
/// > [!WARNING] On some systems, `OnDemand` may cause the shell window to
|
||||
/// > retain focus over another window unexpectedly.
|
||||
/// > You should try `None` if you experience issues.
|
||||
OnDemand = 2,
|
||||
};
|
||||
Q_ENUM_NS(Enum);
|
||||
|
@ -81,19 +91,57 @@ Q_ENUM_NS(Enum);
|
|||
|
||||
} // namespace ScreenConfiguration
|
||||
|
||||
///! Decorationless window attached to screen edges by anchors.
|
||||
/// Decorationless window attached to screen edges by anchors.
|
||||
///
|
||||
/// #### Example
|
||||
/// The following snippet creates a white bar attached to the bottom of [TODO] screen.
|
||||
///
|
||||
/// ```qml
|
||||
/// ProxyShellWindow {
|
||||
/// anchors {
|
||||
/// left: true
|
||||
/// bottom: true
|
||||
/// right: true
|
||||
/// }
|
||||
///
|
||||
/// Text {
|
||||
/// anchors.horizontalCenter: parent.horizontalCenter
|
||||
/// anchors.verticalCenter: parent.verticalCenter
|
||||
/// text: "Hello!"
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
class ProxyShellWindow: public ProxyWindowBase {
|
||||
// clang-format off
|
||||
Q_OBJECT;
|
||||
/// The screen that the shell window currently occupies.
|
||||
///
|
||||
/// > [!INFO] This cannot be changed while the shell window is visible.
|
||||
Q_PROPERTY(QuickShellScreenInfo* screen READ screen WRITE setScreen NOTIFY screenChanged);
|
||||
/// Anchors attach a shell window to the sides of the screen.
|
||||
/// By default all anchors are disabled to avoid blocking the entire screen due to a misconfiguration.
|
||||
///
|
||||
/// > [!INFO] When two opposite anchors are attached at the same time, the corrosponding dimension
|
||||
/// > (width or height) will be forced to equal the screen width/height.
|
||||
/// > Margins can be used to create anchored windows that are also disconnected from the monitor sides.
|
||||
Q_PROPERTY(Anchors anchors READ anchors WRITE setAnchors NOTIFY anchorsChanged);
|
||||
Q_PROPERTY(qint32 exclusionZone READ exclusiveZone WRITE setExclusiveZone NOTIFY exclusionZoneChanged)
|
||||
Q_PROPERTY(Margins margins READ margins WRITE setMargins NOTIFY marginsChanged)
|
||||
Q_PROPERTY(Layer::Enum layer READ layer WRITE setLayer NOTIFY layerChanged)
|
||||
Q_PROPERTY(QString scope READ scope WRITE setScope)
|
||||
Q_PROPERTY(KeyboardFocus::Enum keyboardFocus READ keyboardFocus WRITE setKeyboardFocus NOTIFY keyboardFocusChanged)
|
||||
Q_PROPERTY(ScreenConfiguration::Enum screenConfiguration READ screenConfiguration WRITE setScreenConfiguration)
|
||||
/// The amount of space reserved for the shell layer relative to its anchors.
|
||||
///
|
||||
/// > [!INFO] Some systems will require exactly 3 anchors to be attached for the exclusion zone to take
|
||||
/// > effect.
|
||||
Q_PROPERTY(qint32 exclusionZone READ exclusiveZone WRITE setExclusiveZone NOTIFY exclusionZoneChanged);
|
||||
/// Offsets from the sides of the screen.
|
||||
///
|
||||
/// > [!INFO] Only applies to edges with anchors
|
||||
Q_PROPERTY(Margins margins READ margins WRITE setMargins NOTIFY marginsChanged);
|
||||
/// The shell layer the window sits in. Defaults to `Layer.Top`.
|
||||
Q_PROPERTY(Layer::Enum layer READ layer WRITE setLayer NOTIFY layerChanged);
|
||||
Q_PROPERTY(QString scope READ scope WRITE setScope);
|
||||
/// The degree of keyboard focus taken. Defaults to `KeyboardFocus.None`.
|
||||
Q_PROPERTY(KeyboardFocus::Enum keyboardFocus READ keyboardFocus WRITE setKeyboardFocus NOTIFY keyboardFocusChanged);
|
||||
Q_PROPERTY(ScreenConfiguration::Enum screenConfiguration READ screenConfiguration WRITE setScreenConfiguration);
|
||||
Q_PROPERTY(bool closeOnDismissed READ closeOnDismissed WRITE setCloseOnDismissed);
|
||||
Q_CLASSINFO("DefaultProperty", "data");
|
||||
QML_ELEMENT;
|
||||
// clang-format on
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue