e59dc33e21
takes such an id. * Reused the existing mechanism to to have hardcoded tokens for the system cursors, i.e. removed cursor_which enumeration from ServerProtocol.h and used BCursorID where cursor_which was previously used. * Reworked CursorManager.h and CursorSet.h accordingly and removed some methods that where intended to replace system cursors with client cursors, since those would break the reference counting and forget to maintain the cursor list. * Replaced the cursors in CursorData.h/cpp with the new ones I just designed. * Removed HaikuSystemCursor.h and HaikuLogo.h from the source, as those are/were no longer used. I hope I will not get too much beating for this one... :-) I know the new default cursor is slightly larger, but I believe the old one was just too small. Also I noticed that the cursor may be slightly too dark, at least the old one seems noticeably brighter when compared side by side (the new one has a slight gradient). That is something I may correct at least. Otherwise I hope nothing is broken, I've tested in QEMU and so far everything works as intended. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35782 a95241bf-73f2-0310-859d-f6bbb57e9c96
85 lines
2.2 KiB
C++
85 lines
2.2 KiB
C++
/*
|
|
* Copyright 2006-2009, Haiku, Inc. All Rights Reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _CURSOR_H
|
|
#define _CURSOR_H
|
|
|
|
|
|
#include <Archivable.h>
|
|
#include <InterfaceDefs.h>
|
|
|
|
|
|
enum BCursorID {
|
|
B_CURSOR_ID_SYSTEM_DEFAULT = 1,
|
|
|
|
B_CURSOR_ID_CONTEXT_MENU = 3,
|
|
B_CURSOR_ID_COPY = 4,
|
|
B_CURSOR_ID_CROSS_HAIR = 5,
|
|
B_CURSOR_ID_FOLLOW_LINK = 6,
|
|
B_CURSOR_ID_GRAB = 7,
|
|
B_CURSOR_ID_GRABBING = 8,
|
|
B_CURSOR_ID_HELP = 9,
|
|
B_CURSOR_ID_I_BEAM = 2,
|
|
B_CURSOR_ID_I_BEAM_HORIZONTAL = 10,
|
|
B_CURSOR_ID_MOVE = 11,
|
|
B_CURSOR_ID_NO_CURSOR = 12,
|
|
B_CURSOR_ID_NOT_ALLOWED = 13,
|
|
B_CURSOR_ID_PROGRESS = 14,
|
|
B_CURSOR_ID_RESIZE_NORTH = 15,
|
|
B_CURSOR_ID_RESIZE_EAST = 16,
|
|
B_CURSOR_ID_RESIZE_SOUTH = 17,
|
|
B_CURSOR_ID_RESIZE_WEST = 18,
|
|
B_CURSOR_ID_RESIZE_NORTH_EAST = 19,
|
|
B_CURSOR_ID_RESIZE_NORTH_WEST = 20,
|
|
B_CURSOR_ID_RESIZE_SOUTH_EAST = 21,
|
|
B_CURSOR_ID_RESIZE_SOUTH_WEST = 22,
|
|
B_CURSOR_ID_RESIZE_NORTH_SOUTH = 23,
|
|
B_CURSOR_ID_RESIZE_EAST_WEST = 24,
|
|
B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST = 25,
|
|
B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST = 26,
|
|
B_CURSOR_ID_ZOOM_IN = 27,
|
|
B_CURSOR_ID_ZOOM_OUT = 28
|
|
};
|
|
|
|
|
|
class BCursor : BArchivable {
|
|
public:
|
|
BCursor(const void* cursorData);
|
|
BCursor(const BCursor& other);
|
|
BCursor(BCursorID id);
|
|
BCursor(BMessage* data);
|
|
virtual ~BCursor();
|
|
|
|
virtual status_t Archive(BMessage* archive,
|
|
bool deep = true) const;
|
|
static BArchivable* Instantiate(BMessage* archive);
|
|
|
|
BCursor& operator=(const BCursor& other);
|
|
bool operator==(const BCursor& other) const;
|
|
bool operator!=(const BCursor& other) const;
|
|
|
|
private:
|
|
virtual status_t Perform(perform_code d, void* arg);
|
|
|
|
virtual void _ReservedCursor1();
|
|
virtual void _ReservedCursor2();
|
|
virtual void _ReservedCursor3();
|
|
virtual void _ReservedCursor4();
|
|
|
|
void _FreeCursorData();
|
|
|
|
private:
|
|
friend class BApplication;
|
|
friend class BView;
|
|
|
|
int32 fServerToken;
|
|
bool fNeedToFree;
|
|
|
|
bool _reservedWasPendingViewCursor;
|
|
// Probably bogus because of padding.
|
|
uint32 _reserved[6];
|
|
};
|
|
|
|
#endif // _CURSOR_H
|