1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 06:04:57 +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; }
private:
explicit CommandPalette(GUI::Window& parent_window, ScreenPosition screen_position = CenterWithinParent);
explicit CommandPalette(GUI::Window& parent_window, ScreenPosition = ScreenPosition::CenterWithinParent);
virtual ~CommandPalette() override = default;
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); };
switch (m_screen_position) {
case CenterWithinParent:
case ScreenPosition::CenterWithinParent:
if (parent() && is<Window>(parent())) {
auto& parent_window = *static_cast<Window*>(parent());
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
case Center:
case ScreenPosition::Center:
window_rect.center_within(desktop_rect);
break;
case CenterLeft:
case ScreenPosition::CenterLeft:
left_align(window_rect);
window_rect.center_vertically_within(desktop_rect);
break;
case CenterRight:
case ScreenPosition::CenterRight:
right_align(window_rect);
window_rect.center_vertically_within(desktop_rect);
break;
case TopLeft:
case ScreenPosition::TopLeft:
left_align(window_rect);
top_align(window_rect);
break;
case TopCenter:
case ScreenPosition::TopCenter:
window_rect.center_horizontally_within(desktop_rect);
top_align(window_rect);
break;
case TopRight:
case ScreenPosition::TopRight:
right_align(window_rect);
top_align(window_rect);
break;
case BottomLeft:
case ScreenPosition::BottomLeft:
left_align(window_rect);
bottom_align(window_rect);
break;
case BottomCenter:
case ScreenPosition::BottomCenter:
window_rect.center_horizontally_within(desktop_rect);
bottom_align(window_rect);
break;
case BottomRight:
case ScreenPosition::BottomRight:
right_align(window_rect);
bottom_align(window_rect);
break;

View file

@ -22,7 +22,7 @@ public:
Yes = 3,
No = 4,
};
enum ScreenPosition {
enum class ScreenPosition {
CenterWithinParent = 0,
Center = 1,
@ -50,12 +50,12 @@ public:
virtual void close() override;
protected:
explicit Dialog(Window* parent_window, ScreenPosition screen_position = CenterWithinParent);
explicit Dialog(Window* parent_window, ScreenPosition = ScreenPosition::CenterWithinParent);
private:
OwnPtr<Core::EventLoop> m_event_loop;
ExecResult m_result { ExecResult::Aborted };
int m_screen_position { CenterWithinParent };
ScreenPosition m_screen_position { ScreenPosition::CenterWithinParent };
};
}