1
Fork 0
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:
Sam Atkins 2022-05-13 14:19:18 +01:00 committed by Linus Groh
parent cdffe556c8
commit cd5210a87a
3 changed files with 14 additions and 14 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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 };
}; };
} }