mirror of
https://github.com/edeproject/ede.git
synced 2023-08-10 21:13:03 +03:00
80 lines
2.3 KiB
C++
80 lines
2.3 KiB
C++
|
//
|
||
|
// ScreenResources.hh for pekwm
|
||
|
// Copyright (C) 2009 Claes Nasten <pekdon{@}pekdon{.}net>
|
||
|
//
|
||
|
// This program is licensed under the GNU GPL.
|
||
|
// See the LICENSE file for more information.
|
||
|
//
|
||
|
|
||
|
#include "../config.h"
|
||
|
|
||
|
#include "PWinObj.hh"
|
||
|
#include "ScreenResources.hh"
|
||
|
#include "PScreen.hh"
|
||
|
#include "Config.hh"
|
||
|
#include "PixmapHandler.hh"
|
||
|
|
||
|
extern "C" {
|
||
|
#include <X11/cursorfont.h>
|
||
|
}
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
#include <iostream>
|
||
|
using std::cerr;
|
||
|
using std::endl;
|
||
|
#endif // DEBUG
|
||
|
|
||
|
using std::map;
|
||
|
|
||
|
ScreenResources *ScreenResources::_instance = 0;
|
||
|
|
||
|
//! @brief ScreenResources constructor
|
||
|
ScreenResources::ScreenResources(void)
|
||
|
: _pixmap_handler(0)
|
||
|
{
|
||
|
if (_instance) {
|
||
|
#ifdef DEBUG
|
||
|
cerr << __FILE__ << "@" << __LINE__ << ": "
|
||
|
<< "ScreenResources(" << this << ")::ScreenResources()" << endl
|
||
|
<< " *** _instance already set: " << _instance << endl;
|
||
|
#endif // DEBUG
|
||
|
}
|
||
|
_instance = this;
|
||
|
|
||
|
Display *dpy = PScreen::instance()->getDpy();
|
||
|
|
||
|
// create resize cursors
|
||
|
_cursor_map[CURSOR_TOP_LEFT] = XCreateFontCursor(dpy, XC_top_left_corner);
|
||
|
_cursor_map[CURSOR_TOP] = XCreateFontCursor(dpy, XC_top_side);
|
||
|
_cursor_map[CURSOR_TOP_RIGHT] = XCreateFontCursor(dpy, XC_top_right_corner);
|
||
|
_cursor_map[CURSOR_LEFT] = XCreateFontCursor(dpy, XC_left_side);
|
||
|
_cursor_map[CURSOR_RIGHT] = XCreateFontCursor(dpy, XC_right_side);
|
||
|
_cursor_map[CURSOR_BOTTOM_LEFT] =
|
||
|
XCreateFontCursor(dpy, XC_bottom_left_corner);
|
||
|
_cursor_map[CURSOR_BOTTOM] = XCreateFontCursor(dpy, XC_bottom_side);
|
||
|
_cursor_map[CURSOR_BOTTOM_RIGHT] =
|
||
|
XCreateFontCursor(dpy, XC_bottom_right_corner);
|
||
|
// create other cursors
|
||
|
_cursor_map[CURSOR_ARROW] = XCreateFontCursor(dpy, XC_left_ptr);
|
||
|
_cursor_map[CURSOR_MOVE] = XCreateFontCursor(dpy, XC_fleur);
|
||
|
_cursor_map[CURSOR_RESIZE] = XCreateFontCursor(dpy, XC_plus);
|
||
|
|
||
|
_pixmap_handler =
|
||
|
new PixmapHandler(Config::instance()->getScreenPixmapCacheSize());
|
||
|
}
|
||
|
|
||
|
//! @brief ScreenResources destructor
|
||
|
ScreenResources::~ScreenResources(void)
|
||
|
{
|
||
|
map<CursorType, Cursor>::iterator c_it(_cursor_map.begin());
|
||
|
for (; c_it != _cursor_map.end(); ++c_it) {
|
||
|
XFreeCursor(PScreen::instance()->getDpy(), c_it->second);
|
||
|
}
|
||
|
|
||
|
if (_pixmap_handler) {
|
||
|
delete _pixmap_handler;
|
||
|
}
|
||
|
|
||
|
_instance = 0;
|
||
|
}
|