mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-21 22:24:07 +01:00
* fix: remove added margins from emote window position * chore: add changelog entry * feat: store size of emote window * chore: update changelog entry * fix: disable layout save * fix: PCH moment * fix: multiply by scale
48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
#pragma once
|
|
|
|
class QWidget;
|
|
class QPoint;
|
|
class QScreen;
|
|
class QRect;
|
|
|
|
namespace chatterino::widgets {
|
|
|
|
enum class BoundsChecking {
|
|
/// Don't do any bounds checking (equivalent to `QWidget::move`).
|
|
Off,
|
|
|
|
/// Attempt to keep the window within bounds of the screen the cursor is on.
|
|
CursorPosition,
|
|
|
|
/// Attempt to keep the window within bounds of the screen the desired position is on.
|
|
DesiredPosition,
|
|
};
|
|
|
|
/// Applies bounds checking to @a initialBounds.
|
|
///
|
|
/// @param initialBounds The bounds to check.
|
|
/// @param mode The desired bounds checking.
|
|
/// @returns The potentially modified bounds.
|
|
QRect checkInitialBounds(QRect initialBounds,
|
|
BoundsChecking mode = BoundsChecking::DesiredPosition);
|
|
|
|
/// Moves the `window` to the (global) `position`
|
|
/// while doing bounds-checking according to `mode` to ensure the window stays on one screen.
|
|
///
|
|
/// @param window The window to move.
|
|
/// @param position The global position to move the window to.
|
|
/// @param mode The desired bounds checking.
|
|
void moveWindowTo(QWidget *window, QPoint position,
|
|
BoundsChecking mode = BoundsChecking::DesiredPosition);
|
|
|
|
/// Moves the `window` to the (global) `position`
|
|
/// while doing bounds-checking according to `mode` to ensure the window stays on one screen.
|
|
/// Will also call show on the `window`, order is dependant on platform.
|
|
///
|
|
/// @param window The window to move.
|
|
/// @param position The global position to move the window to.
|
|
/// @param mode The desired bounds checking.
|
|
void showAndMoveWindowTo(QWidget *window, QPoint position,
|
|
BoundsChecking mode = BoundsChecking::DesiredPosition);
|
|
|
|
} // namespace chatterino::widgets
|