mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-23 02:42:10 +00:00
LibGfx: Add ImageCursor type and Cursor variant
Besides standard cursors, we also need to support custom images. For now, everything still uses StandardCursor.
This commit is contained in:
parent
6a4a60cbd5
commit
1990b2fc52
Notes:
github-actions[bot]
2025-02-28 12:52:16 +00:00
Author: https://github.com/AtkinsSJ
Commit: 1990b2fc52
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3644
8 changed files with 104 additions and 39 deletions
60
Libraries/LibGfx/Cursor.h
Normal file
60
Libraries/LibGfx/Cursor.h
Normal file
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <andreas@ladybird.org>
|
||||
* Copyright (c) 2025, Sam Atkins <sam@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/Variant.h>
|
||||
#include <LibGfx/Point.h>
|
||||
#include <LibGfx/ShareableBitmap.h>
|
||||
#include <LibIPC/Forward.h>
|
||||
|
||||
namespace Gfx {
|
||||
|
||||
enum class StandardCursor {
|
||||
None = 0,
|
||||
Hidden,
|
||||
Arrow,
|
||||
Crosshair,
|
||||
IBeam,
|
||||
ResizeHorizontal,
|
||||
ResizeVertical,
|
||||
ResizeDiagonalTLBR,
|
||||
ResizeDiagonalBLTR,
|
||||
ResizeColumn,
|
||||
ResizeRow,
|
||||
Hand,
|
||||
Help,
|
||||
Drag,
|
||||
DragCopy,
|
||||
Move,
|
||||
Wait,
|
||||
Disallowed,
|
||||
Eyedropper,
|
||||
Zoom,
|
||||
__Count,
|
||||
};
|
||||
|
||||
struct ImageCursor {
|
||||
ShareableBitmap bitmap;
|
||||
IntPoint hotspot;
|
||||
|
||||
bool operator==(ImageCursor const& other) const;
|
||||
};
|
||||
|
||||
using Cursor = Variant<StandardCursor, ImageCursor>;
|
||||
|
||||
}
|
||||
|
||||
namespace IPC {
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder&, Gfx::ImageCursor const&);
|
||||
|
||||
template<>
|
||||
ErrorOr<Gfx::ImageCursor> decode(Decoder&);
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue