ede/edewm/Cursor.h

71 lines
1.3 KiB
C++

/*
* $Id: Cursor.h 1700 2006-07-22 18:51:10Z karijes $
*
* Edewm, window manager
* Part of Equinox Desktop Environment (EDE).
* Copyright (c) 2000-2006 EDE Authors.
*
* This program is licenced under terms of the
* GNU General Public Licence version 2 or newer.
* See COPYING for details.
*/
#ifndef __CURSOR_H__
#define __CURSOR_H__
#include <X11/Xlib.h> // Cursor
/* Main existance of this class is
* to allow using efltk and X cursors
* (...and maybe bitmapped ones :).
*/
enum CursorType
{
CURSOR_DEFAULT = 0,
CURSOR_MOVE,
CURSOR_WAIT,
CURSOR_HELP,
CURSOR_N,
CURSOR_NE,
CURSOR_E,
CURSOR_SE,
CURSOR_S,
CURSOR_SW,
CURSOR_W,
CURSOR_NW,
CURSOR_NONE
};
#define CURSOR_LIST_SIZE 13
enum CursorShapeType
{
FLTK_CURSORS = 0,
X_CURSORS
};
class Frame;
class CursorHandler
{
private:
int cursors[CURSOR_LIST_SIZE];
CursorShapeType st;
CursorType curr_cursor_type;
Cursor root_window_cursor;
bool locked;
bool cursors_loaded;
public:
CursorHandler();
~CursorHandler();
void load(CursorShapeType s);
void set_cursor(Frame* f, CursorType t);
void set_root_cursor(void);
void set_root_cursor(CursorType t);
Cursor current_cursor(void) const;
Cursor root_cursor(void) { return root_window_cursor; }
CursorShapeType cursor_shape_type(void) { return st; }
};
#endif