mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 11:12:45 +00:00 
			
		
		
		
	LibGfx: Move StandardCursor enum to LibGfx
This enum existed both in LibGUI and WindowServer which was silly and error-prone.
This commit is contained in:
		
							parent
							
								
									c063a02979
								
							
						
					
					
						commit
						0f9be82826
					
				
					 23 changed files with 127 additions and 111 deletions
				
			
		|  | @ -274,12 +274,12 @@ void HexEditor::mousemove_event(GUI::MouseEvent& event) | |||
|     auto text_end_x = text_start_x + (bytes_per_row() * character_width()); | ||||
|     auto text_end_y = text_start_y + 5 + (total_rows() * line_height()); | ||||
| 
 | ||||
|     window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|     if ((absolute_x >= hex_start_x && absolute_x <= hex_end_x | ||||
|             && absolute_y >= hex_start_y && absolute_y <= hex_end_y) | ||||
|         || (absolute_x >= text_start_x && absolute_x <= text_end_x | ||||
|             && absolute_y >= text_start_y && absolute_y <= text_end_y)) { | ||||
|         window()->set_override_cursor(GUI::StandardCursor::IBeam); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::IBeam); | ||||
|     } | ||||
| 
 | ||||
|     if (m_in_drag_select) { | ||||
|  | @ -585,5 +585,5 @@ void HexEditor::paint_event(GUI::PaintEvent& event) | |||
| void HexEditor::leave_event(Core::Event&) | ||||
| { | ||||
|     ASSERT(window()); | ||||
|     window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| } | ||||
|  |  | |||
|  | @ -81,16 +81,16 @@ void KeyButton::mousemove_event(GUI::MouseEvent& event) | |||
|     Gfx::IntRect c = { rect().x() + 7, rect().y() + 4, rect().width() - 14, rect().height() - 14 }; | ||||
| 
 | ||||
|     if (c.contains(event.position())) { | ||||
|         window()->set_override_cursor(GUI::StandardCursor::Hand); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::Hand); | ||||
|         return; | ||||
|     } | ||||
|     window()->set_override_cursor(GUI::StandardCursor::Arrow); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::Arrow); | ||||
| 
 | ||||
|     AbstractButton::mousemove_event(event); | ||||
| } | ||||
| 
 | ||||
| void KeyButton::leave_event(Core::Event& event) | ||||
| { | ||||
|     window()->set_override_cursor(GUI::StandardCursor::Arrow); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::Arrow); | ||||
|     AbstractButton::leave_event(event); | ||||
| } | ||||
|  |  | |||
|  | @ -52,7 +52,7 @@ void MoveTool::on_mousedown(Layer& layer, GUI::MouseEvent& event, GUI::MouseEven | |||
|     m_layer_being_moved = layer; | ||||
|     m_event_origin = image_event.position(); | ||||
|     m_layer_origin = layer.location(); | ||||
|     m_editor->window()->set_override_cursor(GUI::StandardCursor::Move); | ||||
|     m_editor->window()->set_override_cursor(Gfx::StandardCursor::Move); | ||||
| } | ||||
| 
 | ||||
| void MoveTool::on_mousemove(Layer&, GUI::MouseEvent&, GUI::MouseEvent& image_event) | ||||
|  | @ -69,7 +69,7 @@ void MoveTool::on_mouseup(Layer&, GUI::MouseEvent& event, GUI::MouseEvent&) | |||
|     if (event.button() != GUI::MouseButton::Left) | ||||
|         return; | ||||
|     m_layer_being_moved = nullptr; | ||||
|     m_editor->window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|     m_editor->window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| } | ||||
| 
 | ||||
| void MoveTool::on_keydown(GUI::KeyEvent& event) | ||||
|  |  | |||
|  | @ -515,59 +515,59 @@ int main(int argc, char** argv) | |||
|     auto& radio_cursor_none = cursor_group_box.add<GUI::RadioButton>("None"); | ||||
|     radio_cursor_none.set_checked(true); | ||||
|     radio_cursor_none.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::None); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::None); | ||||
|     }; | ||||
|     auto& radio_cursor_arrow = cursor_group_box.add<GUI::RadioButton>("Arrow"); | ||||
|     radio_cursor_arrow.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::Arrow); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::Arrow); | ||||
|     }; | ||||
|     auto& radio_cursor_i_beam = cursor_group_box.add<GUI::RadioButton>("IBeam"); | ||||
|     radio_cursor_i_beam.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::IBeam); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::IBeam); | ||||
|     }; | ||||
|     auto& radio_cursor_resize_horizontal = cursor_group_box.add<GUI::RadioButton>("ResizeHorizontal"); | ||||
|     radio_cursor_resize_horizontal.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::ResizeHorizontal); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::ResizeHorizontal); | ||||
|     }; | ||||
|     auto& radio_cursor_resize_vertical = cursor_group_box.add<GUI::RadioButton>("ResizeVertical"); | ||||
|     radio_cursor_resize_vertical.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::ResizeVertical); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::ResizeVertical); | ||||
|     }; | ||||
|     auto& radio_cursor_resize_diagonal_tlbr = cursor_group_box.add<GUI::RadioButton>("ResizeDiagonalTLBR"); | ||||
|     radio_cursor_resize_diagonal_tlbr.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::ResizeDiagonalTLBR); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::ResizeDiagonalTLBR); | ||||
|     }; | ||||
|     auto& radio_cursor_resize_diagonal_bltr = cursor_group_box.add<GUI::RadioButton>("ResizeDiagonalBLTR"); | ||||
|     radio_cursor_resize_diagonal_bltr.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::ResizeDiagonalBLTR); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::ResizeDiagonalBLTR); | ||||
|     }; | ||||
|     auto& radio_cursor_resize_column = cursor_group_box.add<GUI::RadioButton>("ResizeColumn"); | ||||
|     radio_cursor_resize_column.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::ResizeColumn); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::ResizeColumn); | ||||
|     }; | ||||
|     auto& radio_cursor_resize_row = cursor_group_box.add<GUI::RadioButton>("ResizeRow"); | ||||
|     radio_cursor_resize_row.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::ResizeRow); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::ResizeRow); | ||||
|     }; | ||||
|     auto& radio_cursor_hand = cursor_group_box.add<GUI::RadioButton>("Hand"); | ||||
|     radio_cursor_hand.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::Hand); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::Hand); | ||||
|     }; | ||||
|     auto& radio_cursor_help = cursor_group_box.add<GUI::RadioButton>("Help"); | ||||
|     radio_cursor_help.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::Help); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::Help); | ||||
|     }; | ||||
|     auto& radio_cursor_drag = cursor_group_box.add<GUI::RadioButton>("Drag"); | ||||
|     radio_cursor_drag.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::Drag); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::Drag); | ||||
|     }; | ||||
|     auto& radio_cursor_move = cursor_group_box.add<GUI::RadioButton>("Move"); | ||||
|     radio_cursor_move.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::Move); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::Move); | ||||
|     }; | ||||
|     auto& radio_cursor_wait = cursor_group_box.add<GUI::RadioButton>("Wait"); | ||||
|     radio_cursor_wait.on_checked = [&](bool) { | ||||
|         window->set_override_cursor(GUI::StandardCursor::Wait); | ||||
|         window->set_override_cursor(Gfx::StandardCursor::Wait); | ||||
|     }; | ||||
| 
 | ||||
|     app->set_menubar(move(menubar)); | ||||
|  |  | |||
|  | @ -209,9 +209,9 @@ void Editor::mousemove_event(GUI::MouseEvent& event) | |||
|     auto ruler_line_rect = ruler_content_rect(text_position.line()); | ||||
|     auto hovering_lines_ruler = (event.position().x() < ruler_line_rect.width()); | ||||
|     if (hovering_lines_ruler && !is_in_drag_select()) | ||||
|         window()->set_override_cursor(GUI::StandardCursor::Arrow); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::Arrow); | ||||
|     else if (m_hovering_editor) | ||||
|         window()->set_override_cursor(m_hovering_link && m_holding_ctrl ? GUI::StandardCursor::Hand : GUI::StandardCursor::IBeam); | ||||
|         window()->set_override_cursor(m_hovering_link && m_holding_ctrl ? Gfx::StandardCursor::Hand : Gfx::StandardCursor::IBeam); | ||||
| 
 | ||||
|     for (auto& span : document().spans()) { | ||||
|         if (span.range.contains(m_previous_text_position) && !span.range.contains(text_position)) { | ||||
|  |  | |||
|  | @ -497,22 +497,22 @@ void VBForm::set_cursor_type_from_grabber(Direction grabber) | |||
|     switch (grabber) { | ||||
|     case Direction::Up: | ||||
|     case Direction::Down: | ||||
|         window()->set_override_cursor(GUI::StandardCursor::ResizeVertical); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::ResizeVertical); | ||||
|         break; | ||||
|     case Direction::Left: | ||||
|     case Direction::Right: | ||||
|         window()->set_override_cursor(GUI::StandardCursor::ResizeHorizontal); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::ResizeHorizontal); | ||||
|         break; | ||||
|     case Direction::UpLeft: | ||||
|     case Direction::DownRight: | ||||
|         window()->set_override_cursor(GUI::StandardCursor::ResizeDiagonalTLBR); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::ResizeDiagonalTLBR); | ||||
|         break; | ||||
|     case Direction::UpRight: | ||||
|     case Direction::DownLeft: | ||||
|         window()->set_override_cursor(GUI::StandardCursor::ResizeDiagonalBLTR); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::ResizeDiagonalBLTR); | ||||
|         break; | ||||
|     case Direction::None: | ||||
|         window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|         break; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -100,11 +100,11 @@ void ColorInput::mouseup_event(MouseEvent& event) | |||
| void ColorInput::mousemove_event(MouseEvent& event) | ||||
| { | ||||
|     if (color_rect().contains(event.position())) { | ||||
|         window()->set_override_cursor(StandardCursor::Hand); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::Hand); | ||||
|         event.accept(); | ||||
|         return; | ||||
|     } else { | ||||
|         window()->set_override_cursor(StandardCursor::IBeam); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::IBeam); | ||||
|     } | ||||
| 
 | ||||
|     TextEditor::mousemove_event(event); | ||||
|  |  | |||
|  | @ -180,7 +180,7 @@ void HeaderView::mousemove_event(MouseEvent& event) | |||
|         bool found_hovered_header = false; | ||||
|         for (int i = 0; i < section_count; ++i) { | ||||
|             if (section_resize_grabbable_rect(i).contains(event.position())) { | ||||
|                 window()->set_override_cursor(StandardCursor::ResizeColumn); | ||||
|                 window()->set_override_cursor(Gfx::StandardCursor::ResizeColumn); | ||||
|                 set_hovered_section(-1); | ||||
|                 return; | ||||
|             } | ||||
|  | @ -192,7 +192,7 @@ void HeaderView::mousemove_event(MouseEvent& event) | |||
|         if (!found_hovered_header) | ||||
|             set_hovered_section(-1); | ||||
|     } | ||||
|     window()->set_override_cursor(StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| } | ||||
| 
 | ||||
| void HeaderView::mouseup_event(MouseEvent& event) | ||||
|  | @ -200,7 +200,7 @@ void HeaderView::mouseup_event(MouseEvent& event) | |||
|     if (event.button() == MouseButton::Left) { | ||||
|         if (m_in_section_resize) { | ||||
|             if (!section_resize_grabbable_rect(m_resizing_section).contains(event.position())) | ||||
|                 window()->set_override_cursor(StandardCursor::None); | ||||
|                 window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|             m_in_section_resize = false; | ||||
|             return; | ||||
|         } | ||||
|  | @ -337,7 +337,7 @@ void HeaderView::leave_event(Core::Event& event) | |||
| { | ||||
|     Widget::leave_event(event); | ||||
|     set_hovered_section(-1); | ||||
|     window()->set_override_cursor(StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| } | ||||
| 
 | ||||
| Gfx::TextAlignment HeaderView::section_alignment(int section) const | ||||
|  |  | |||
|  | @ -112,13 +112,13 @@ void ResizeCorner::mousedown_event(MouseEvent& event) | |||
| 
 | ||||
| void ResizeCorner::enter_event(Core::Event& event) | ||||
| { | ||||
|     window()->set_override_cursor(StandardCursor::ResizeDiagonalTLBR); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::ResizeDiagonalTLBR); | ||||
|     Widget::enter_event(event); | ||||
| } | ||||
| 
 | ||||
| void ResizeCorner::leave_event(Core::Event& event) | ||||
| { | ||||
|     window()->set_override_cursor(StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|     Widget::leave_event(event); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -62,12 +62,12 @@ void Splitter::override_cursor(bool do_override) | |||
| { | ||||
|     if (do_override) { | ||||
|         if (!m_overriding_cursor) { | ||||
|             window()->set_override_cursor(m_orientation == Orientation::Horizontal ? StandardCursor::ResizeColumn : StandardCursor::ResizeRow); | ||||
|             window()->set_override_cursor(m_orientation == Orientation::Horizontal ? Gfx::StandardCursor::ResizeColumn : Gfx::StandardCursor::ResizeRow); | ||||
|             m_overriding_cursor = true; | ||||
|         } | ||||
|     } else { | ||||
|         if (m_overriding_cursor) { | ||||
|             window()->set_override_cursor(StandardCursor::None); | ||||
|             window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|             m_overriding_cursor = false; | ||||
|         } | ||||
|     } | ||||
|  | @ -198,7 +198,7 @@ void Splitter::mouseup_event(MouseEvent& event) | |||
|     m_first_resizee = nullptr; | ||||
|     m_second_resizee = nullptr; | ||||
|     if (!rect().contains(event.position())) | ||||
|         window()->set_override_cursor(StandardCursor::None); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -1343,7 +1343,7 @@ void TextEditor::enter_event(Core::Event&) | |||
| { | ||||
|     ASSERT(window()); | ||||
|     if (!is_displayonly()) | ||||
|         window()->set_override_cursor(StandardCursor::IBeam); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::IBeam); | ||||
| 
 | ||||
|     m_automatic_selection_scroll_timer->stop(); | ||||
| } | ||||
|  | @ -1351,7 +1351,7 @@ void TextEditor::enter_event(Core::Event&) | |||
| void TextEditor::leave_event(Core::Event&) | ||||
| { | ||||
|     ASSERT(window()); | ||||
|     window()->set_override_cursor(StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| 
 | ||||
|     if (m_in_drag_select) | ||||
|         m_automatic_selection_scroll_timer->start(); | ||||
|  |  | |||
|  | @ -93,7 +93,7 @@ void Window::show() | |||
| 
 | ||||
|     auto* parent_window = find_parent_window(); | ||||
| 
 | ||||
|     m_override_cursor = StandardCursor::None; | ||||
|     m_override_cursor = Gfx::StandardCursor::None; | ||||
|     auto response = WindowServerConnection::the().send_sync<Messages::WindowServer::CreateWindow>( | ||||
|         m_rect_when_windowless, | ||||
|         !m_moved_by_client, | ||||
|  | @ -138,7 +138,7 @@ void Window::server_did_destroy() | |||
|     m_pending_paint_event_rects.clear(); | ||||
|     m_back_bitmap = nullptr; | ||||
|     m_front_bitmap = nullptr; | ||||
|     m_override_cursor = StandardCursor::None; | ||||
|     m_override_cursor = Gfx::StandardCursor::None; | ||||
| } | ||||
| 
 | ||||
| void Window::hide() | ||||
|  | @ -226,7 +226,7 @@ void Window::set_window_type(WindowType window_type) | |||
|     m_window_type = window_type; | ||||
| } | ||||
| 
 | ||||
| void Window::set_override_cursor(StandardCursor cursor) | ||||
| void Window::set_override_cursor(Gfx::StandardCursor cursor) | ||||
| { | ||||
|     if (!is_visible()) | ||||
|         return; | ||||
|  |  | |||
|  | @ -36,26 +36,10 @@ | |||
| #include <LibGfx/Color.h> | ||||
| #include <LibGfx/Forward.h> | ||||
| #include <LibGfx/Rect.h> | ||||
| #include <LibGfx/StandardCursor.h> | ||||
| 
 | ||||
| namespace GUI { | ||||
| 
 | ||||
| enum class StandardCursor { | ||||
|     None = 0, | ||||
|     Arrow, | ||||
|     IBeam, | ||||
|     ResizeHorizontal, | ||||
|     ResizeVertical, | ||||
|     ResizeDiagonalTLBR, | ||||
|     ResizeDiagonalBLTR, | ||||
|     ResizeColumn, | ||||
|     ResizeRow, | ||||
|     Hand, | ||||
|     Help, | ||||
|     Drag, | ||||
|     Move, | ||||
|     Wait, | ||||
| }; | ||||
| 
 | ||||
| class Window : public Core::Object { | ||||
|     C_OBJECT(Window) | ||||
| public: | ||||
|  | @ -184,7 +168,7 @@ public: | |||
|     void set_no_resize_aspect_ratio() { set_resize_aspect_ratio({}); } | ||||
|     void set_resize_aspect_ratio(const Optional<Gfx::IntSize>& ratio); | ||||
| 
 | ||||
|     void set_override_cursor(StandardCursor); | ||||
|     void set_override_cursor(Gfx::StandardCursor); | ||||
|     void set_override_cursor(const Gfx::Bitmap&); | ||||
| 
 | ||||
|     void set_icon(const Gfx::Bitmap*); | ||||
|  | @ -257,7 +241,7 @@ private: | |||
|     Gfx::IntSize m_base_size; | ||||
|     Color m_background_color { Color::WarmGray }; | ||||
|     WindowType m_window_type { WindowType::Normal }; | ||||
|     StandardCursor m_override_cursor { StandardCursor::None }; | ||||
|     Gfx::StandardCursor m_override_cursor { Gfx::StandardCursor::None }; | ||||
|     bool m_is_active { false }; | ||||
|     bool m_is_active_input { false }; | ||||
|     bool m_has_alpha_channel { false }; | ||||
|  |  | |||
							
								
								
									
										48
									
								
								Libraries/LibGfx/StandardCursor.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								Libraries/LibGfx/StandardCursor.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> | ||||
|  * All rights reserved. | ||||
|  * | ||||
|  * Redistribution and use in source and binary forms, with or without | ||||
|  * modification, are permitted provided that the following conditions are met: | ||||
|  * | ||||
|  * 1. Redistributions of source code must retain the above copyright notice, this | ||||
|  *    list of conditions and the following disclaimer. | ||||
|  * | ||||
|  * 2. Redistributions in binary form must reproduce the above copyright notice, | ||||
|  *    this list of conditions and the following disclaimer in the documentation | ||||
|  *    and/or other materials provided with the distribution. | ||||
|  * | ||||
|  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
|  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||
|  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||
|  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||
|  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||
|  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
|  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|  */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| namespace Gfx { | ||||
| 
 | ||||
| enum class StandardCursor { | ||||
|     None = 0, | ||||
|     Arrow, | ||||
|     IBeam, | ||||
|     ResizeHorizontal, | ||||
|     ResizeVertical, | ||||
|     ResizeDiagonalTLBR, | ||||
|     ResizeDiagonalBLTR, | ||||
|     ResizeColumn, | ||||
|     ResizeRow, | ||||
|     Hand, | ||||
|     Help, | ||||
|     Drag, | ||||
|     Move, | ||||
|     Wait, | ||||
| }; | ||||
| 
 | ||||
| } | ||||
|  | @ -629,9 +629,9 @@ void TerminalWidget::mousemove_event(GUI::MouseEvent& event) | |||
|             m_hovered_href = {}; | ||||
|         } | ||||
|         if (!m_hovered_href.is_empty()) | ||||
|             window()->set_override_cursor(GUI::StandardCursor::Hand); | ||||
|             window()->set_override_cursor(Gfx::StandardCursor::Hand); | ||||
|         else | ||||
|             window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|             window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|         update(); | ||||
|     } | ||||
| 
 | ||||
|  | @ -667,7 +667,7 @@ void TerminalWidget::mousemove_event(GUI::MouseEvent& event) | |||
| 
 | ||||
| void TerminalWidget::leave_event(Core::Event&) | ||||
| { | ||||
|     window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|     bool should_update = !m_hovered_href.is_empty(); | ||||
|     m_hovered_href = {}; | ||||
|     m_hovered_href_id = {}; | ||||
|  |  | |||
|  | @ -150,7 +150,7 @@ void InProcessWebView::page_did_change_selection() | |||
|     update(); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_request_cursor_change(GUI::StandardCursor cursor) | ||||
| void InProcessWebView::page_did_request_cursor_change(Gfx::StandardCursor cursor) | ||||
| { | ||||
|     if (window()) | ||||
|         window()->set_override_cursor(cursor); | ||||
|  | @ -358,7 +358,7 @@ void InProcessWebView::load_html(const StringView& html, const URL& url) | |||
| bool InProcessWebView::load(const URL& url) | ||||
| { | ||||
|     if (window()) | ||||
|         window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| 
 | ||||
|     return page().main_frame().loader().load(url, FrameLoader::Type::Navigation); | ||||
| } | ||||
|  | @ -378,7 +378,7 @@ LayoutDocument* InProcessWebView::layout_root() | |||
| void InProcessWebView::page_did_request_scroll_into_view(const Gfx::IntRect& rect) | ||||
| { | ||||
|     scroll_into_view(rect, true, true); | ||||
|     window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|     window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::load_empty_document() | ||||
|  |  | |||
|  | @ -91,7 +91,7 @@ private: | |||
|     virtual void page_did_set_document_in_main_frame(DOM::Document*) override; | ||||
|     virtual void page_did_start_loading(const URL&) override; | ||||
|     virtual void page_did_change_selection() override; | ||||
|     virtual void page_did_request_cursor_change(GUI::StandardCursor) override; | ||||
|     virtual void page_did_request_cursor_change(Gfx::StandardCursor) override; | ||||
|     virtual void page_did_request_context_menu(const Gfx::IntPoint&) override; | ||||
|     virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_click_link(const URL&, const String& target, unsigned modifiers) override; | ||||
|  |  | |||
|  | @ -138,7 +138,7 @@ void OutOfProcessWebView::notify_server_did_request_scroll_into_view(Badge<WebCo | |||
| void OutOfProcessWebView::notify_server_did_hover_link(Badge<WebContentClient>, const URL& url) | ||||
| { | ||||
|     if (window()) | ||||
|         window()->set_override_cursor(GUI::StandardCursor::Hand); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::Hand); | ||||
|     if (on_link_hover) | ||||
|         on_link_hover(url); | ||||
| } | ||||
|  | @ -146,7 +146,7 @@ void OutOfProcessWebView::notify_server_did_hover_link(Badge<WebContentClient>, | |||
| void OutOfProcessWebView::notify_server_did_unhover_link(Badge<WebContentClient>) | ||||
| { | ||||
|     if (window()) | ||||
|         window()->set_override_cursor(GUI::StandardCursor::None); | ||||
|         window()->set_override_cursor(Gfx::StandardCursor::None); | ||||
|     if (on_link_hover) | ||||
|         on_link_hover({}); | ||||
| } | ||||
|  |  | |||
|  | @ -216,11 +216,11 @@ bool EventHandler::handle_mousemove(const Gfx::IntPoint& position, unsigned butt | |||
|     } | ||||
| 
 | ||||
|     if (is_hovering_link) | ||||
|         page_client.page_did_request_cursor_change(GUI::StandardCursor::Hand); | ||||
|         page_client.page_did_request_cursor_change(Gfx::StandardCursor::Hand); | ||||
|     else if (is_hovering_text) | ||||
|         page_client.page_did_request_cursor_change(GUI::StandardCursor::IBeam); | ||||
|         page_client.page_did_request_cursor_change(Gfx::StandardCursor::IBeam); | ||||
|     else | ||||
|         page_client.page_did_request_cursor_change(GUI::StandardCursor::None); | ||||
|         page_client.page_did_request_cursor_change(Gfx::StandardCursor::None); | ||||
| 
 | ||||
|     if (hovered_node_changed) { | ||||
|         RefPtr<HTML::HTMLElement> hovered_html_element = document.hovered_node() ? document.hovered_node()->enclosing_html_element() : nullptr; | ||||
|  |  | |||
|  | @ -82,7 +82,7 @@ public: | |||
|     virtual void page_did_change_title(const String&) { } | ||||
|     virtual void page_did_start_loading(const URL&) { } | ||||
|     virtual void page_did_change_selection() { } | ||||
|     virtual void page_did_request_cursor_change(GUI::StandardCursor) { } | ||||
|     virtual void page_did_request_cursor_change(Gfx::StandardCursor) { } | ||||
|     virtual void page_did_request_context_menu(const Gfx::IntPoint&) { } | ||||
|     virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_click_link(const URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|  |  | |||
|  | @ -610,7 +610,7 @@ OwnPtr<Messages::WindowServer::SetWindowOverrideCursorResponse> ClientConnection | |||
|         return nullptr; | ||||
|     } | ||||
|     auto& window = *(*it).value; | ||||
|     window.set_override_cursor(Cursor::create((StandardCursor)message.cursor_type())); | ||||
|     window.set_override_cursor(Cursor::create((Gfx::StandardCursor)message.cursor_type())); | ||||
|     Compositor::the().invalidate_cursor(); | ||||
|     return make<Messages::WindowServer::SetWindowOverrideCursorResponse>(); | ||||
| } | ||||
|  |  | |||
|  | @ -49,36 +49,36 @@ NonnullRefPtr<Cursor> Cursor::create(NonnullRefPtr<Gfx::Bitmap>&& bitmap, const | |||
|     return adopt(*new Cursor(move(bitmap), hotspot)); | ||||
| } | ||||
| 
 | ||||
| RefPtr<Cursor> Cursor::create(StandardCursor standard_cursor) | ||||
| RefPtr<Cursor> Cursor::create(Gfx::StandardCursor standard_cursor) | ||||
| { | ||||
|     switch (standard_cursor) { | ||||
|     case StandardCursor::None: | ||||
|     case Gfx::StandardCursor::None: | ||||
|         return nullptr; | ||||
|     case StandardCursor::Arrow: | ||||
|     case Gfx::StandardCursor::Arrow: | ||||
|         return WindowManager::the().arrow_cursor(); | ||||
|     case StandardCursor::IBeam: | ||||
|     case Gfx::StandardCursor::IBeam: | ||||
|         return WindowManager::the().i_beam_cursor(); | ||||
|     case StandardCursor::ResizeHorizontal: | ||||
|     case Gfx::StandardCursor::ResizeHorizontal: | ||||
|         return WindowManager::the().resize_horizontally_cursor(); | ||||
|     case StandardCursor::ResizeVertical: | ||||
|     case Gfx::StandardCursor::ResizeVertical: | ||||
|         return WindowManager::the().resize_vertically_cursor(); | ||||
|     case StandardCursor::ResizeDiagonalTLBR: | ||||
|     case Gfx::StandardCursor::ResizeDiagonalTLBR: | ||||
|         return WindowManager::the().resize_diagonally_tlbr_cursor(); | ||||
|     case StandardCursor::ResizeDiagonalBLTR: | ||||
|     case Gfx::StandardCursor::ResizeDiagonalBLTR: | ||||
|         return WindowManager::the().resize_diagonally_bltr_cursor(); | ||||
|     case StandardCursor::ResizeColumn: | ||||
|     case Gfx::StandardCursor::ResizeColumn: | ||||
|         return WindowManager::the().resize_column_cursor(); | ||||
|     case StandardCursor::ResizeRow: | ||||
|     case Gfx::StandardCursor::ResizeRow: | ||||
|         return WindowManager::the().resize_row_cursor(); | ||||
|     case StandardCursor::Hand: | ||||
|     case Gfx::StandardCursor::Hand: | ||||
|         return WindowManager::the().hand_cursor(); | ||||
|     case StandardCursor::Help: | ||||
|     case Gfx::StandardCursor::Help: | ||||
|         return WindowManager::the().help_cursor(); | ||||
|     case StandardCursor::Drag: | ||||
|     case Gfx::StandardCursor::Drag: | ||||
|         return WindowManager::the().drag_cursor(); | ||||
|     case StandardCursor::Move: | ||||
|     case Gfx::StandardCursor::Move: | ||||
|         return WindowManager::the().move_cursor(); | ||||
|     case StandardCursor::Wait: | ||||
|     case Gfx::StandardCursor::Wait: | ||||
|         return WindowManager::the().wait_cursor(); | ||||
|     } | ||||
|     ASSERT_NOT_REACHED(); | ||||
|  |  | |||
|  | @ -27,31 +27,15 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <LibGfx/Bitmap.h> | ||||
| #include <LibGfx/StandardCursor.h> | ||||
| 
 | ||||
| namespace WindowServer { | ||||
| 
 | ||||
| enum class StandardCursor { | ||||
|     None = 0, | ||||
|     Arrow, | ||||
|     IBeam, | ||||
|     ResizeHorizontal, | ||||
|     ResizeVertical, | ||||
|     ResizeDiagonalTLBR, | ||||
|     ResizeDiagonalBLTR, | ||||
|     ResizeColumn, | ||||
|     ResizeRow, | ||||
|     Hand, | ||||
|     Help, | ||||
|     Drag, | ||||
|     Move, | ||||
|     Wait, | ||||
| }; | ||||
| 
 | ||||
| class Cursor : public RefCounted<Cursor> { | ||||
| public: | ||||
|     static NonnullRefPtr<Cursor> create(NonnullRefPtr<Gfx::Bitmap>&&, const Gfx::IntPoint& hotspot); | ||||
|     static NonnullRefPtr<Cursor> create(NonnullRefPtr<Gfx::Bitmap>&&); | ||||
|     static RefPtr<Cursor> create(StandardCursor); | ||||
|     static RefPtr<Cursor> create(Gfx::StandardCursor); | ||||
|     ~Cursor(); | ||||
| 
 | ||||
|     Gfx::IntPoint hotspot() const { return m_hotspot; } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling