mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 08:37:46 +00:00
LibGUI: Switch to a resizing cursor when hovering or using a GSplitter.
Also expose the various standard cursors on WSWindowManager so they can be reused by the override mechanism.
This commit is contained in:
parent
94c68dc55a
commit
6673284b06
8 changed files with 31 additions and 2 deletions
|
@ -51,6 +51,8 @@ enum class WSAPI_StandardCursor : unsigned char {
|
|||
None = 0,
|
||||
Arrow,
|
||||
IBeam,
|
||||
ResizeHorizontal,
|
||||
ResizeVertical,
|
||||
};
|
||||
|
||||
struct WSAPI_ServerMessage {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <WindowServer/WSCursor.h>
|
||||
#include <WindowServer/WSWindowManager.h>
|
||||
|
||||
WSCursor::WSCursor(Retained<GraphicsBitmap>&& bitmap, const Point& hotspot)
|
||||
: m_bitmap(move(bitmap))
|
||||
|
@ -26,9 +27,13 @@ RetainPtr<WSCursor> WSCursor::create(WSStandardCursor standard_cursor)
|
|||
case WSStandardCursor::None:
|
||||
return nullptr;
|
||||
case WSStandardCursor::Arrow:
|
||||
return create(*GraphicsBitmap::load_from_file("/res/cursors/arrow.png"));
|
||||
return WSWindowManager::the().arrow_cursor();
|
||||
case WSStandardCursor::IBeam:
|
||||
return create(*GraphicsBitmap::load_from_file("/res/cursors/i-beam.png"));
|
||||
return WSWindowManager::the().i_beam_cursor();
|
||||
case WSStandardCursor::ResizeHorizontal:
|
||||
return WSWindowManager::the().resize_horizontally_cursor();
|
||||
case WSStandardCursor::ResizeVertical:
|
||||
return WSWindowManager::the().resize_vertically_cursor();
|
||||
}
|
||||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ enum class WSStandardCursor {
|
|||
None = 0,
|
||||
Arrow,
|
||||
IBeam,
|
||||
ResizeHorizontal,
|
||||
ResizeVertical,
|
||||
};
|
||||
|
||||
class WSCursor : public Retainable<WSCursor> {
|
||||
|
|
|
@ -87,6 +87,15 @@ public:
|
|||
const WSCursor& active_cursor() const;
|
||||
Rect current_cursor_rect() const;
|
||||
|
||||
const WSCursor& arrow_cursor() const { return *m_arrow_cursor; }
|
||||
const WSCursor& resize_horizontally_cursor() const { return *m_resize_horizontally_cursor; }
|
||||
const WSCursor& resize_vertically_cursor() const { return *m_resize_vertically_cursor; }
|
||||
const WSCursor& resize_diagonally_tlbr_cursor() const { return *m_resize_diagonally_tlbr_cursor; }
|
||||
const WSCursor& resize_diagonally_bltr_cursor() const { return *m_resize_diagonally_bltr_cursor; }
|
||||
const WSCursor& i_beam_cursor() const { return *m_i_beam_cursor; }
|
||||
const WSCursor& disallowed_cursor() const { return *m_disallowed_cursor; }
|
||||
const WSCursor& move_cursor() const { return *m_move_cursor; }
|
||||
|
||||
private:
|
||||
void process_mouse_event(const WSMouseEvent&, WSWindow*& event_window);
|
||||
bool process_ongoing_window_resize(const WSMouseEvent&, WSWindow*& event_window);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue