mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:18:11 +00:00
LibGUI: Make Dialog::ScreenPosition an enum class
This commit is contained in:
parent
cdffe556c8
commit
cd5210a87a
3 changed files with 14 additions and 14 deletions
|
@ -20,7 +20,7 @@ public:
|
||||||
GUI::Action const* selected_action() const { return m_selected_action; }
|
GUI::Action const* selected_action() const { return m_selected_action; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit CommandPalette(GUI::Window& parent_window, ScreenPosition screen_position = CenterWithinParent);
|
explicit CommandPalette(GUI::Window& parent_window, ScreenPosition = ScreenPosition::CenterWithinParent);
|
||||||
virtual ~CommandPalette() override = default;
|
virtual ~CommandPalette() override = default;
|
||||||
|
|
||||||
void collect_actions(GUI::Window& parent_window);
|
void collect_actions(GUI::Window& parent_window);
|
||||||
|
|
|
@ -35,7 +35,7 @@ Dialog::ExecResult Dialog::exec()
|
||||||
auto right_align = [this, desktop_rect](Gfx::Rect<int>& rect) { rect.set_x(desktop_rect.width() - width() - 12); };
|
auto right_align = [this, desktop_rect](Gfx::Rect<int>& rect) { rect.set_x(desktop_rect.width() - width() - 12); };
|
||||||
|
|
||||||
switch (m_screen_position) {
|
switch (m_screen_position) {
|
||||||
case CenterWithinParent:
|
case ScreenPosition::CenterWithinParent:
|
||||||
if (parent() && is<Window>(parent())) {
|
if (parent() && is<Window>(parent())) {
|
||||||
auto& parent_window = *static_cast<Window*>(parent());
|
auto& parent_window = *static_cast<Window*>(parent());
|
||||||
if (parent_window.is_visible()) {
|
if (parent_window.is_visible()) {
|
||||||
|
@ -44,38 +44,38 @@ Dialog::ExecResult Dialog::exec()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[[fallthrough]]; // Fall back to `Center` if parent window is invalid or not visible
|
[[fallthrough]]; // Fall back to `Center` if parent window is invalid or not visible
|
||||||
case Center:
|
case ScreenPosition::Center:
|
||||||
window_rect.center_within(desktop_rect);
|
window_rect.center_within(desktop_rect);
|
||||||
break;
|
break;
|
||||||
case CenterLeft:
|
case ScreenPosition::CenterLeft:
|
||||||
left_align(window_rect);
|
left_align(window_rect);
|
||||||
window_rect.center_vertically_within(desktop_rect);
|
window_rect.center_vertically_within(desktop_rect);
|
||||||
break;
|
break;
|
||||||
case CenterRight:
|
case ScreenPosition::CenterRight:
|
||||||
right_align(window_rect);
|
right_align(window_rect);
|
||||||
window_rect.center_vertically_within(desktop_rect);
|
window_rect.center_vertically_within(desktop_rect);
|
||||||
break;
|
break;
|
||||||
case TopLeft:
|
case ScreenPosition::TopLeft:
|
||||||
left_align(window_rect);
|
left_align(window_rect);
|
||||||
top_align(window_rect);
|
top_align(window_rect);
|
||||||
break;
|
break;
|
||||||
case TopCenter:
|
case ScreenPosition::TopCenter:
|
||||||
window_rect.center_horizontally_within(desktop_rect);
|
window_rect.center_horizontally_within(desktop_rect);
|
||||||
top_align(window_rect);
|
top_align(window_rect);
|
||||||
break;
|
break;
|
||||||
case TopRight:
|
case ScreenPosition::TopRight:
|
||||||
right_align(window_rect);
|
right_align(window_rect);
|
||||||
top_align(window_rect);
|
top_align(window_rect);
|
||||||
break;
|
break;
|
||||||
case BottomLeft:
|
case ScreenPosition::BottomLeft:
|
||||||
left_align(window_rect);
|
left_align(window_rect);
|
||||||
bottom_align(window_rect);
|
bottom_align(window_rect);
|
||||||
break;
|
break;
|
||||||
case BottomCenter:
|
case ScreenPosition::BottomCenter:
|
||||||
window_rect.center_horizontally_within(desktop_rect);
|
window_rect.center_horizontally_within(desktop_rect);
|
||||||
bottom_align(window_rect);
|
bottom_align(window_rect);
|
||||||
break;
|
break;
|
||||||
case BottomRight:
|
case ScreenPosition::BottomRight:
|
||||||
right_align(window_rect);
|
right_align(window_rect);
|
||||||
bottom_align(window_rect);
|
bottom_align(window_rect);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -22,7 +22,7 @@ public:
|
||||||
Yes = 3,
|
Yes = 3,
|
||||||
No = 4,
|
No = 4,
|
||||||
};
|
};
|
||||||
enum ScreenPosition {
|
enum class ScreenPosition {
|
||||||
CenterWithinParent = 0,
|
CenterWithinParent = 0,
|
||||||
|
|
||||||
Center = 1,
|
Center = 1,
|
||||||
|
@ -50,12 +50,12 @@ public:
|
||||||
virtual void close() override;
|
virtual void close() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
explicit Dialog(Window* parent_window, ScreenPosition screen_position = CenterWithinParent);
|
explicit Dialog(Window* parent_window, ScreenPosition = ScreenPosition::CenterWithinParent);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OwnPtr<Core::EventLoop> m_event_loop;
|
OwnPtr<Core::EventLoop> m_event_loop;
|
||||||
ExecResult m_result { ExecResult::Aborted };
|
ExecResult m_result { ExecResult::Aborted };
|
||||||
int m_screen_position { CenterWithinParent };
|
ScreenPosition m_screen_position { ScreenPosition::CenterWithinParent };
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue