From b508ba671cf1789c5cb2ca29b1d2afff5a9b0ef3 Mon Sep 17 00:00:00 2001 From: Sanel Zukan Date: Fri, 20 Feb 2009 13:03:38 +0000 Subject: [PATCH] Removing unfinished wm --- edewm/Atoms.cpp | 243 ----- edewm/Atoms.h | 131 --- edewm/COMPLIANCE | 128 --- edewm/Cursor.cpp | 298 ------ edewm/Cursor.h | 70 -- edewm/Desktop.h | 81 -- edewm/Events.cpp | 508 --------- edewm/Events.h | 45 - edewm/Frame.cpp | 1700 ------------------------------ edewm/Frame.h | 344 ------ edewm/Hints.cpp | 512 --------- edewm/Hints.h | 40 - edewm/Jamfile | 18 - edewm/Sound.cpp | 173 --- edewm/Sound.h | 63 -- edewm/Titlebar.cpp | 429 -------- edewm/Titlebar.h | 79 -- edewm/Tracers.h | 42 - edewm/Utils.cpp | 29 - edewm/Utils.h | 20 - edewm/Windowmanager.cpp | 733 ------------- edewm/Windowmanager.h | 165 --- edewm/app.xpm | 21 - edewm/debug.cpp | 62 -- edewm/debug.h | 26 - edewm/locale/fi.po | 89 -- edewm/locale/hu.po | 85 -- edewm/locale/id.po | 89 -- edewm/locale/messages.po.default | 63 -- edewm/locale/messages.pot | 88 -- edewm/locale/ru.po | 90 -- edewm/locale/sk.po | 87 -- edewm/locale/sr.po | 87 -- edewm/main.cpp | 54 - edewm/mask.xpm | 15 - edewm/tests/basic_moveresize.cpp | 95 -- edewm/tests/basic_moveresize.fld | 61 -- edewm/tests/demo.ogg | Bin 413925 -> 0 bytes edewm/tests/sound_test.cpp | 14 - edewm/tests/testpositions.sh | 70 -- 40 files changed, 6947 deletions(-) delete mode 100644 edewm/Atoms.cpp delete mode 100644 edewm/Atoms.h delete mode 100644 edewm/COMPLIANCE delete mode 100644 edewm/Cursor.cpp delete mode 100644 edewm/Cursor.h delete mode 100644 edewm/Desktop.h delete mode 100644 edewm/Events.cpp delete mode 100644 edewm/Events.h delete mode 100644 edewm/Frame.cpp delete mode 100644 edewm/Frame.h delete mode 100644 edewm/Hints.cpp delete mode 100644 edewm/Hints.h delete mode 100644 edewm/Jamfile delete mode 100644 edewm/Sound.cpp delete mode 100644 edewm/Sound.h delete mode 100644 edewm/Titlebar.cpp delete mode 100644 edewm/Titlebar.h delete mode 100644 edewm/Tracers.h delete mode 100644 edewm/Utils.cpp delete mode 100644 edewm/Utils.h delete mode 100644 edewm/Windowmanager.cpp delete mode 100644 edewm/Windowmanager.h delete mode 100644 edewm/app.xpm delete mode 100644 edewm/debug.cpp delete mode 100644 edewm/debug.h delete mode 100644 edewm/locale/fi.po delete mode 100644 edewm/locale/hu.po delete mode 100644 edewm/locale/id.po delete mode 100644 edewm/locale/messages.po.default delete mode 100644 edewm/locale/messages.pot delete mode 100644 edewm/locale/ru.po delete mode 100644 edewm/locale/sk.po delete mode 100644 edewm/locale/sr.po delete mode 100644 edewm/main.cpp delete mode 100644 edewm/mask.xpm delete mode 100644 edewm/tests/basic_moveresize.cpp delete mode 100644 edewm/tests/basic_moveresize.fld delete mode 100644 edewm/tests/demo.ogg delete mode 100644 edewm/tests/sound_test.cpp delete mode 100644 edewm/tests/testpositions.sh diff --git a/edewm/Atoms.cpp b/edewm/Atoms.cpp deleted file mode 100644 index 0cddd8e..0000000 --- a/edewm/Atoms.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/* - * $Id: Atoms.cpp 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. - */ - -#include "Atoms.h" -#include - -// Icccm atoms -Atom _XA_WM_PROTOCOLS; -Atom _XA_WM_DELETE_WINDOW; -Atom _XA_WM_STATE; -Atom _XA_WM_CHANGE_STATE; -Atom _XA_WM_COLORMAP_WINDOWS; -Atom _XA_WM_TAKE_FOCUS; - -Atom _XA_UTF8_STRING; - -// Motif atoms -Atom _XA_MOTIF_HINTS; - -// Netwm atoms -Atom _XA_NET_SUPPORTED; -Atom _XA_NET_SUPPORTING_WM_CHECK; - -Atom _XA_NET_NUMBER_OF_DESKTOPS; -Atom _XA_NET_DESKTOP_GEOMETRY; -Atom _XA_NET_DESKTOP_VIEWPORT; -Atom _XA_NET_CURRENT_DESKTOP; -Atom _XA_NET_DESKTOP_NAMES; -Atom _XA_NET_ACTIVE_WINDOW; -Atom _XA_NET_WORKAREA; -Atom _XA_NET_SHOWING_DESKTOP; -// other root messages -Atom _XA_NET_CLOSE_WINDOW; -Atom _XA_NET_MOVERESIZE_WINDOW; -Atom _XA_NET_RESTACK_WINDOW; -Atom _XA_NET_REQUEST_FRAME_EXTENTS; - -// application messages -Atom _XA_NET_WM_NAME; -Atom _XA_NET_WM_WINDOW_TYPE; -Atom _XA_NET_WM_WINDOW_TYPE_NORMAL; -Atom _XA_NET_WM_WINDOW_TYPE_DOCK; -Atom _XA_NET_WM_WINDOW_TYPE_TOOLBAR; -Atom _XA_NET_WM_WINDOW_TYPE_MENU; -Atom _XA_NET_WM_WINDOW_TYPE_UTIL; -Atom _XA_NET_WM_WINDOW_TYPE_DIALOG; -Atom _XA_NET_WM_WINDOW_TYPE_SPLASH; -Atom _XA_NET_WM_WINDOW_TYPE_DESKTOP; - -// our messages -Atom _XA_EDE_WM_STARTUP_NOTIFY; -Atom _XA_EDE_WM_APP_STARTING; - -// only for debugging -Atom _XA_NET_VIRTUAL_ROOTS; -Atom _XA_NET_DESKTOP_LAYOUT; -Atom _XA_NET_WM_MOVERESIZE; -Atom _XA_NET_WM_VISIBLE_NAME; -Atom _XA_NET_WM_ICON_NAME; -Atom _XA_NET_WM_ICON_VISIBLE_NAME; -Atom _XA_NET_WM_DESKTOP; -Atom _XA_NET_WM_STATE; -Atom _XA_NET_WM_STATE_MODAL; //Needs transient for (root for whole group) -Atom _XA_NET_WM_STATE_STICKY; //Pos fixed, even if virt. desk. scrolls -Atom _XA_NET_WM_STATE_MAXIMIZED_VERT; -Atom _XA_NET_WM_STATE_MAXIMIZED_HORZ; -Atom _XA_NET_WM_STATE_SHADED; -Atom _XA_NET_WM_STATE_SKIP_TASKBAR; -Atom _XA_NET_WM_STATE_SKIP_PAGER; -Atom _XA_NET_WM_STATE_HIDDEN; -Atom _XA_NET_WM_STATE_FULLSCREEN; -Atom _XA_NET_WM_STATE_ABOVE; -Atom _XA_NET_WM_STATE_BELOW; -Atom _XA_NET_WM_STATE_DEMANDS_ATTENTION; -Atom _XA_NET_WM_ALLOWED_ACTIONS; -Atom _XA_NET_WM_ACTION_MOVE; -Atom _XA_NET_WM_ACTION_RESIZE; -Atom _XA_NET_WM_ACTION_MINIMIZE; -Atom _XA_NET_WM_ACTION_SHADE; -Atom _XA_NET_WM_ACTION_STICK; -Atom _XA_NET_WM_ACTION_MAXIMIZE_HORZ; -Atom _XA_NET_WM_ACTION_MAXIMIZE_VERT; -Atom _XA_NET_WM_ACTION_FULLSCREEN; -Atom _XA_NET_WM_ACTION_CHANGE_DESKTOP; -Atom _XA_NET_WM_ACTION_CLOSE; -Atom _XA_NET_WM_STRUT; -Atom _XA_NET_WM_STRUT_PARTIAL; -Atom _XA_NET_WM_ICON_GEOMETRY; -Atom _XA_NET_WM_ICON; -Atom _XA_NET_WM_PID; -Atom _XA_NET_WM_HANDLED_ICONS; -Atom _XA_NET_WM_USER_TIME; -Atom _XA_NET_FRAME_EXTENTS; -Atom _XA_NET_WM_PING; -Atom _XA_NET_WM_SYNC_REQUEST; -Atom _XA_NET_WM_STATE_STAYS_ON_TOP; -Atom _XA_KWM_WIN_ICON; - - -#ifdef _DEBUG - #define REGISTER_ATOM(id, name) \ - id = XInternAtom(fl_display, name, False);\ - atoms_map[id] = name -#else - #define REGISTER_ATOM(id, name) \ - id = XInternAtom(fl_display, name, False) -#endif - -#define COUNT(x) (sizeof(x)/sizeof(x[0])) - -#ifdef _DEBUG -void InitAtoms(Display* display, std::map& atoms_map) -#else -void InitAtoms(Display* display) -#endif -{ - // Icccm - REGISTER_ATOM(_XA_WM_PROTOCOLS, "WM_PROTOCOLS"); - REGISTER_ATOM(_XA_WM_DELETE_WINDOW, "WM_DELETE_WINDOW"); - REGISTER_ATOM(_XA_WM_STATE, "WM_STATE"); - REGISTER_ATOM(_XA_WM_CHANGE_STATE, "WM_CHANGE_STATE"); - REGISTER_ATOM(_XA_WM_COLORMAP_WINDOWS, "WM_COLORMAP_WINDOWS"); - REGISTER_ATOM(_XA_WM_TAKE_FOCUS, "WM_TAKE_FOCUS"); - - REGISTER_ATOM(_XA_UTF8_STRING, "UTF8_STRING"); - - // Motif - REGISTER_ATOM(_XA_MOTIF_HINTS, "_MOTIF_WM_HINTS"); - - // Netwm - REGISTER_ATOM(_XA_NET_SUPPORTED, "_NET_SUPPORTED"); - REGISTER_ATOM(_XA_NET_SUPPORTING_WM_CHECK, "_NET_SUPPORTING_WM_CHECK"); - REGISTER_ATOM(_XA_NET_NUMBER_OF_DESKTOPS, "_NET_NUMBER_OF_DESKTOPS"); - REGISTER_ATOM(_XA_NET_DESKTOP_GEOMETRY, "_NET_DESKTOP_GEOMETRY"); - REGISTER_ATOM(_XA_NET_DESKTOP_VIEWPORT, "_NET_DESKTOP_VIEWPORT"); - REGISTER_ATOM(_XA_NET_CURRENT_DESKTOP, "_NET_CURRENT_DESKTOP"); - REGISTER_ATOM(_XA_NET_DESKTOP_NAMES, "_NET_DESKTOP_NAMES"); - REGISTER_ATOM(_XA_NET_ACTIVE_WINDOW, "_NET_ACTIVE_WINDOW"); - REGISTER_ATOM(_XA_NET_WORKAREA, "_NET_WORKAREA"); - REGISTER_ATOM(_XA_NET_SHOWING_DESKTOP, "_NET_SHOWING_DESKTOP"); - - // other root messages - REGISTER_ATOM(_XA_NET_CLOSE_WINDOW, "_NET_CLOSE_WINDOW"); - REGISTER_ATOM(_XA_NET_MOVERESIZE_WINDOW, "_NET_MOVERESIZE_WINDOW"); - REGISTER_ATOM(_XA_NET_RESTACK_WINDOW, "_NET_RESTACK_WINDOW"); - REGISTER_ATOM(_XA_NET_REQUEST_FRAME_EXTENTS, "_NET_REQUEST_FRAME_EXTENTS"); - - REGISTER_ATOM(_XA_NET_WM_NAME, "_NET_WM_NAME"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE, "_NET_WM_WINDOW_TYPE"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_NORMAL, "_NET_WM_WINDOW_TYPE_NORMAL"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_DOCK, "_NET_WM_WINDOW_TYPE_DOCK"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_TOOLBAR, "_NET_WM_WINDOW_TYPE_TOOLBAR"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_MENU, "_NET_WM_WINDOW_TYPE_MENU"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_UTIL, "_NET_WM_WINDOW_TYPE_UTIL"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_DIALOG, "_NET_WM_WINDOW_TYPE_DIALOG"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_DIALOG, "_NET_WM_WINDOW_TYPE_SPLASH"); - REGISTER_ATOM(_XA_NET_WM_WINDOW_TYPE_DESKTOP, "_NET_WM_WINDOW_TYPE_DESKTOP"); - - // window messages - REGISTER_ATOM(_XA_NET_WM_STATE, "_NET_WM_STATE"); - REGISTER_ATOM(_XA_NET_WM_STATE_MAXIMIZED_VERT,"_NET_WM_STATE_MAXIMIZED_VERT"); - REGISTER_ATOM(_XA_NET_WM_STATE_MAXIMIZED_HORZ,"_NET_WM_STATE_MAXIMIZED_HORZ"); - REGISTER_ATOM(_XA_NET_WM_STATE_SHADED, "_NET_WM_STATE_SHADED"); - REGISTER_ATOM(_XA_NET_WM_STATE_ABOVE, "_NET_WM_STATE_ABOVE"); - REGISTER_ATOM(_XA_NET_WM_STATE_BELOW, "_NET_WM_STATE_BELOW"); - - // our messages - REGISTER_ATOM(_XA_EDE_WM_STARTUP_NOTIFY, "_EDE_WM_STARTUP_NOTIFY"); - REGISTER_ATOM(_XA_EDE_WM_APP_STARTING, "_EDE_WM_APP_STARTING"); - - // debugging stuff (aka. not implemented) - REGISTER_ATOM(_XA_NET_VIRTUAL_ROOTS, "_NET_VIRTUAL_ROOTS"); - REGISTER_ATOM(_XA_NET_DESKTOP_LAYOUT, "_NET_DESKTOP_LAYOUT"); - REGISTER_ATOM(_XA_NET_WM_MOVERESIZE, "_NET_WM_MOVERESIZE"); - REGISTER_ATOM(_XA_NET_WM_VISIBLE_NAME, "_NET_WM_VISIBLE_NAME"); - REGISTER_ATOM(_XA_NET_WM_ICON_NAME, "_NET_WM_ICON_NAME"); - REGISTER_ATOM(_XA_NET_WM_ICON_VISIBLE_NAME, "_NET_WM_ICON_VISIBLE_NAME"); - REGISTER_ATOM(_XA_NET_WM_DESKTOP, "_NET_WM_DESKTOP"); - REGISTER_ATOM(_XA_NET_WM_STATE_MODAL, "_NET_WM_STATE_MODAL"); - REGISTER_ATOM(_XA_NET_WM_STATE_STICKY, "_NET_WM_STATE_STICKY"); - REGISTER_ATOM(_XA_NET_WM_STATE_SKIP_TASKBAR, "_NET_WM_STATE_SKIP_TASKBAR"); - REGISTER_ATOM(_XA_NET_WM_STATE_SKIP_PAGER, "_NET_WM_STATE_SKIP_PAGER"); - REGISTER_ATOM(_XA_NET_WM_STATE_HIDDEN, "_NET_WM_STATE_HIDDEN"); - REGISTER_ATOM(_XA_NET_WM_STATE_FULLSCREEN, "_NET_WM_STATE_FULLSCREEN"); - REGISTER_ATOM(_XA_NET_WM_STATE_DEMANDS_ATTENTION, "_NET_WM_STATE_DEMANDS_ATTENTION"); - REGISTER_ATOM(_XA_NET_WM_ALLOWED_ACTIONS, "_NET_WM_ALLOWED_ACTIONS"); - REGISTER_ATOM(_XA_NET_WM_ACTION_MOVE, "_NET_WM_ACTION_MOVE"); - REGISTER_ATOM(_XA_NET_WM_ACTION_RESIZE, "_NET_WM_ACTION_RESIZE"); - REGISTER_ATOM(_XA_NET_WM_ACTION_MINIMIZE, "_NET_WM_ACTION_MINIMIZE"); - REGISTER_ATOM(_XA_NET_WM_ACTION_SHADE, "_NET_WM_ACTION_SHADE"); - REGISTER_ATOM(_XA_NET_WM_ACTION_STICK, "_NET_WM_ACTION_STICK"); - REGISTER_ATOM(_XA_NET_WM_ACTION_MAXIMIZE_HORZ,"_NET_WM_ACTION_MAXIMIZE_HORZ"); - REGISTER_ATOM(_XA_NET_WM_ACTION_MAXIMIZE_VERT,"_NET_WM_ACTION_MAXIMIZE_VERT"); - REGISTER_ATOM(_XA_NET_WM_ACTION_FULLSCREEN, "_NET_WM_ACTION_FULLSCREEN"); - REGISTER_ATOM(_XA_NET_WM_ACTION_CHANGE_DESKTOP,"_NET_WM_ACTION_CHANGE_DESKTOP"); - REGISTER_ATOM(_XA_NET_WM_ACTION_CLOSE, "_NET_WM_ACTION_CLOSE"); - REGISTER_ATOM(_XA_NET_WM_STRUT, "_NET_WM_STRUT"); - REGISTER_ATOM(_XA_NET_WM_STRUT_PARTIAL, "_NET_WM_STRUT_PARTIAL"); - REGISTER_ATOM(_XA_NET_WM_ICON_GEOMETRY, "_NET_WM_ICON_GEOMETRY"); - REGISTER_ATOM(_XA_NET_WM_ICON, "_NET_WM_ICON"); - REGISTER_ATOM(_XA_NET_WM_PID, "_NET_WM_PID"); - REGISTER_ATOM(_XA_NET_WM_HANDLED_ICONS, "_NET_WM_HANDLED_ICONS"); - REGISTER_ATOM(_XA_NET_WM_USER_TIME, "_NET_WM_USER_TIME"); - REGISTER_ATOM(_XA_NET_FRAME_EXTENTS, "_NET_FRAME_EXTENTS"); - REGISTER_ATOM(_XA_NET_WM_PING, "_NET_WM_PING"); - REGISTER_ATOM(_XA_NET_WM_SYNC_REQUEST, "_NET_WM_SYNC_REQUEST"); - REGISTER_ATOM(_XA_NET_WM_STATE_STAYS_ON_TOP, "_NET_WM_STATE_STAYS_ON_TOP"); - REGISTER_ATOM(_XA_KWM_WIN_ICON, "_KWM_WIN_ICON"); -} - -// these are list of current implemented atoms -void SetSupported(Window root) -{ - Atom atoms[] = - { - _XA_NET_SUPPORTED, - _XA_NET_SUPPORTING_WM_CHECK, - - _XA_NET_WM_NAME, - _XA_NET_WM_WINDOW_TYPE, - _XA_NET_WM_WINDOW_TYPE_NORMAL, - _XA_NET_WM_WINDOW_TYPE_DOCK, - _XA_NET_WM_WINDOW_TYPE_TOOLBAR, - _XA_NET_WM_WINDOW_TYPE_MENU, - _XA_NET_WM_WINDOW_TYPE_UTIL, - _XA_NET_WM_WINDOW_TYPE_DIALOG, - _XA_NET_WM_WINDOW_TYPE_SPLASH, - _XA_NET_WM_WINDOW_TYPE_DESKTOP - }; - - XChangeProperty(fl_display, root, _XA_NET_SUPPORTED, XA_ATOM, 32, PropModeReplace, - (unsigned char*)atoms, COUNT(atoms)); -} - diff --git a/edewm/Atoms.h b/edewm/Atoms.h deleted file mode 100644 index b37ce79..0000000 --- a/edewm/Atoms.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * $Id: Atoms.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 __ATOMS_H__ -#define __ATOMS_H__ - -#ifdef _DEBUG -#include -#endif - -#include - -// Icccm atoms -extern Atom _XA_WM_PROTOCOLS; -extern Atom _XA_WM_DELETE_WINDOW; -extern Atom _XA_WM_STATE; -extern Atom _XA_WM_CHANGE_STATE; -extern Atom _XA_WM_COLORMAP_WINDOWS; -extern Atom _XA_WM_TAKE_FOCUS; - -extern Atom _XA_UTF8_STRING; - -// Motif atoms -extern Atom _XA_MOTIF_HINTS; - -// Netwm atoms -// root messages -extern Atom _XA_NET_SUPPORTED; -extern Atom _XA_NET_SUPPORTING_WM_CHECK; -extern Atom _XA_NET_NUMBER_OF_DESKTOPS; -extern Atom _XA_NET_DESKTOP_GEOMETRY; -extern Atom _XA_NET_DESKTOP_VIEWPORT; -extern Atom _XA_NET_CURRENT_DESKTOP; -extern Atom _XA_NET_DESKTOP_NAMES; -extern Atom _XA_NET_ACTIVE_WINDOW; -extern Atom _XA_NET_WORKAREA; -extern Atom _XA_NET_SHOWING_DESKTOP; -// other root messages -extern Atom _XA_NET_CLOSE_WINDOW; -extern Atom _XA_NET_MOVERESIZE_WINDOW; -extern Atom _XA_NET_RESTACK_WINDOW; -extern Atom _XA_NET_REQUEST_FRAME_EXTENTS; - -// application messages -extern Atom _XA_NET_WM_NAME; -extern Atom _XA_NET_WM_WINDOW_TYPE; - extern Atom _XA_NET_WM_WINDOW_TYPE_NORMAL; - extern Atom _XA_NET_WM_WINDOW_TYPE_DOCK; - extern Atom _XA_NET_WM_WINDOW_TYPE_TOOLBAR; - extern Atom _XA_NET_WM_WINDOW_TYPE_MENU; - extern Atom _XA_NET_WM_WINDOW_TYPE_UTIL; - extern Atom _XA_NET_WM_WINDOW_TYPE_DIALOG; - extern Atom _XA_NET_WM_WINDOW_TYPE_SPLASH; - extern Atom _XA_NET_WM_WINDOW_TYPE_DESKTOP; - -extern Atom _XA_NET_WM_STATE_SHADED; -extern Atom _XA_NET_WM_STATE_MAXIMIZED_VERT; -extern Atom _XA_NET_WM_STATE_MAXIMIZED_HORZ; -extern Atom _XA_NET_WM_STATE_ABOVE; -extern Atom _XA_NET_WM_STATE_BELOW; - -// how to apply above states -#define _NET_WM_STATE_REMOVE 0 // remove/unset property -#define _NET_WM_STATE_ADD 1 // add/set property -#define _NET_WM_STATE_TOGGLE 2 // toggle property - -// our messages -extern Atom _XA_EDE_WM_STARTUP_NOTIFY; - extern Atom _XA_EDE_WM_APP_STARTING; - -// atoms for debugging (not implemented) -extern Atom _XA_NET_VIRTUAL_ROOTS; -extern Atom _XA_NET_DESKTOP_LAYOUT; -extern Atom _XA_NET_WM_MOVERESIZE; -extern Atom _XA_NET_RESTACK_WINDOW; -extern Atom _XA_NET_REQUEST_FRAME_EXTENTS; -extern Atom _XA_NET_WM_NAME; -extern Atom _XA_NET_WM_VISIBLE_NAME; -extern Atom _XA_NET_WM_ICON_NAME; -extern Atom _XA_NET_WM_ICON_VISIBLE_NAME; -extern Atom _XA_NET_WM_DESKTOP; -extern Atom _XA_NET_WM_STATE; -extern Atom _XA_NET_WM_STATE_MODAL; //Needs transient for (root for whole group) -extern Atom _XA_NET_WM_STATE_STICKY; //Pos fixed, even if virt. desk. scrolls -extern Atom _XA_NET_WM_STATE_SKIP_TASKBAR; -extern Atom _XA_NET_WM_STATE_SKIP_PAGER; -extern Atom _XA_NET_WM_STATE_HIDDEN; -extern Atom _XA_NET_WM_STATE_FULLSCREEN; -extern Atom _XA_NET_WM_STATE_DEMANDS_ATTENTION; - -extern Atom _XA_NET_WM_ALLOWED_ACTIONS; -extern Atom _XA_NET_WM_ACTION_MOVE; -extern Atom _XA_NET_WM_ACTION_RESIZE; -extern Atom _XA_NET_WM_ACTION_MINIMIZE; -extern Atom _XA_NET_WM_ACTION_SHADE; -extern Atom _XA_NET_WM_ACTION_STICK; -extern Atom _XA_NET_WM_ACTION_MAXIMIZE_HORZ; -extern Atom _XA_NET_WM_ACTION_MAXIMIZE_VERT; -extern Atom _XA_NET_WM_ACTION_FULLSCREEN; -extern Atom _XA_NET_WM_ACTION_CHANGE_DESKTOP; -extern Atom _XA_NET_WM_ACTION_CLOSE; -extern Atom _XA_NET_WM_STRUT; -extern Atom _XA_NET_WM_STRUT_PARTIAL; -extern Atom _XA_NET_WM_ICON_GEOMETRY; -extern Atom _XA_NET_WM_ICON; -extern Atom _XA_NET_WM_PID; -extern Atom _XA_NET_WM_HANDLED_ICONS; -extern Atom _XA_NET_WM_USER_TIME; -extern Atom _XA_NET_FRAME_EXTENTS; -extern Atom _XA_NET_WM_PING; -extern Atom _XA_NET_WM_SYNC_REQUEST; -extern Atom _XA_NET_WM_STATE_STAYS_ON_TOP; -extern Atom _XA_KWM_WIN_ICON; - -#ifdef _DEBUG - void InitAtoms(Display* display, std::map& atoms_map); -#else - void InitAtoms(Display* display); -#endif -void SetSupported(Window root); - -#endif // __ATOMS_H__ diff --git a/edewm/COMPLIANCE b/edewm/COMPLIANCE deleted file mode 100644 index 2d4e4c4..0000000 --- a/edewm/COMPLIANCE +++ /dev/null @@ -1,128 +0,0 @@ -$Id: COMPLIANCE 1688 2006-07-19 12:01:58Z karijes $ - -Edewm standards compliance -========================== - -Map: ----- - (?): pending for implementation - (+): implemented - (/): partially implemented - (x): listed in _NET_SUPPORTED, but not implemented - (-): probably will not be implemented - -Netwm compliance (http://freedesktop.org/Standards/wm-spec/) -============================================================ - -Root window ------------ - -(+) _NET_SUPPORTED, -(x) _NET_SUPPORTING_WM_CHECK -(?) _NET_CLIENT_LIST -(?) _NET_CLIENT_LIST_STACKING -(?) _NET_NUMBER_OF_DESKTOPS -(?) _NET_DESKTOP_GEOMETRY -(?) _NET_DESKTOP_VIEWPORT -(?) _NET_CURRENT_DESKTOP -(?) _NET_DESKTOP_NAMES -(?) _NET_ACTIVE_WINDOW -(?) _NET_WORKAREA -(?) _NET_SUPPORTING_WM_CHECK -(-) _NET_VIRTUAL_ROOTS -(?) _NET_DESKTOP_LAYOUT -(?) _NET_SHOWING_DESKTOP -(?) _NET_CLOSE_WINDOW -(?) _NET_MOVERESIZE_WINDOW -(?) _NET_WM_MOVERESIZE - -Application window ------------------- - -(x) _NET_WM_NAME -(/) _NET_WM_WINDOW_TYPE - (+) _NET_WM_WINDOW_TYPE_NORMAL - (?) _NET_WM_WINDOW_TYPE_DOCK - (+) _NET_WM_WINDOW_TYPE_TOOLBAR - (+) _NET_WM_WINDOW_TYPE_MENU - (?) _NET_WM_WINDOW_TYPE_UTIL - (?) _NET_WM_WINDOW_TYPE_DIALOG - (+) _NET_WM_WINDOW_TYPE_SPLASH - (?) _NET_WM_WINDOW_TYPE_DESKTOP - -(/) _NET_WM_STATE - (?) _NET_WM_STATE_MODAL - (?) _NET_WM_STATE_STICKY - (/) _NET_WM_STATE_MAXIMIZED_VERT - (/) _NET_WM_STATE_MAXIMIZED_HORZ - (+) _NET_WM_STATE_SHADED - (?) _NET_WM_STATE_SKIP_TASKBAR - (?) _NET_WM_STATE_SKIP_PAGER - (?) _NET_WM_STATE_HIDDEN - (?) _NET_WM_STATE_FULLSCREEN - (?) _NET_WM_STATE_ABOVE - (?) _NET_WM_STATE_BELOW - -(-) _NET_WM_ALLOWED_ACTIONS - Although in edewm there is facility for easier implementing - this message, I am not quite sure where will be used. - -(?) _NET_WM_STRUT -(?) _NET_WM_STRUT_PARTIAL -(?) _NET_WM_ICON_GEOMETRY -(?) _NET_WM_ICON - -(-) _NET_WM_PID - Probably later will be implemented. For now it is not needed - at all. - -(-) _NET_WM_HANDLED_ICONS -(?) _NET_WM_USER_TIME - - -Icccm compliance -================ - -Version 2.0 is used as guide. - -Note: in WM_NORMAL_HINTS, win_gravitiy is ignored since edewm always -assume and use NorthWestGravity. This will be changed. - - -Other -===== - -Motif ------ - -(/) _MOTIF_HINTS - This hint is, as I can see, very standardized now, but implementations - differ. Edewm use only decor data from it, since based on decor, allowed - actions are deduced. - -KDE ---- -(?) _KWM_WIN_ICON - Previous edewm version loaded this message, but not used. Probably - will be implemented for history reasons (hm...) - -GNOME ------ -(-) None of them, since no one requested it. - - -Ambiguities -=========== -If ambiguities arise between similar hints, Netwm is preferred. Then -comes Icccm and Other. - - -Notes -===== -This document will be tried to be up to date with package. If you notice some -omissions, please mail me at [karijes at users.sf.net]. - -Important: since standard's documentation is very sparse (nothing unusual) and -possibility for bad/wrong interpretation of some parts exists, your notice about -them (or different behaviors among other window managers) will be much appreciated. -Mail is above. diff --git a/edewm/Cursor.cpp b/edewm/Cursor.cpp deleted file mode 100644 index 733f8ac..0000000 --- a/edewm/Cursor.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/* - * $Id: Cursor.cpp 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. - */ - -#include "Cursor.h" -#include "Frame.h" -#include "Tracers.h" - -#include -#include - -#include - -#ifdef _DEBUG - #include - std::map cursors_map; -#endif - -/* Windows like cursors (copied from FLTK). - * These are cursors for some shapes (given in comments). For others, default X are used. - */ -#define CURSORSIZE 16 -#define HOTXY 8 -static struct TableEntry { - uchar bits[CURSORSIZE*CURSORSIZE/8]; - uchar mask[CURSORSIZE*CURSORSIZE/8]; - Cursor cursor; -} table[] = { - {{ // FL_CURSOR_NS - 0x00, 0x00, 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0x80, 0x01, 0x80, 0x01, - 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, - 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00}, - { - 0x80, 0x01, 0xc0, 0x03, 0xe0, 0x07, 0xf0, 0x0f, 0xf0, 0x0f, 0xc0, 0x03, - 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xc0, 0x03, 0xf0, 0x0f, - 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x01}}, - {{ // FL_CURSOR_EW - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, - 0x0c, 0x30, 0xfe, 0x7f, 0xfe, 0x7f, 0x0c, 0x30, 0x08, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x1c, 0x38, - 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0x1c, 0x38, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{ // FL_CURSOR_NWSE - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x38, 0x00, 0x78, 0x00, - 0xe8, 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x17, 0x00, 0x1e, 0x00, 0x1c, - 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - { - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x7c, 0x00, 0xfc, 0x00, - 0xfc, 0x01, 0xec, 0x03, 0xc0, 0x37, 0x80, 0x3f, 0x00, 0x3f, 0x00, 0x3e, - 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00}}, - {{ // FL_CURSOR_NESW - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x1c, 0x00, 0x1e, - 0x00, 0x17, 0x80, 0x03, 0xc0, 0x01, 0xe8, 0x00, 0x78, 0x00, 0x38, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x3f, 0x00, 0x3e, 0x00, 0x3f, - 0x80, 0x3f, 0xc0, 0x37, 0xec, 0x03, 0xfc, 0x01, 0xfc, 0x00, 0x7c, 0x00, - 0xfc, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0}, {0}} // FL_CURSOR_NONE & unknown -}; - -// Mozilla-like busy cursor -#define LAWATCH_WIDTH 32 -#define LAWATCH_HEIGHT 32 -#define LAWATCH_HOTXY 2 -const char left_arrow_watch_bits [] = -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, - 0xfc, 0x3b, 0x00, 0x00, 0x7c, 0x38, 0x00, 0x00, 0x6c, 0x54, 0x00, 0x00, - 0xc4, 0xdc, 0x00, 0x00, 0xc0, 0x44, 0x00, 0x00, 0x80, 0x39, 0x00, 0x00, - 0x80, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const char left_arrow_watch_mask [] = -{ - 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x3b, 0x00, 0x00, - 0xfe, 0x7f, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, - 0xee, 0xff, 0x01, 0x00, 0xe4, 0xff, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, - 0xc0, 0x7f, 0x00, 0x00, 0x80, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -Cursor CreateLeftArrowWatch(void) -{ - XColor dummy; - Pixmap p = XCreateBitmapFromData(fl_display, RootWindow(fl_display, fl_screen), - left_arrow_watch_bits, LAWATCH_WIDTH, LAWATCH_HEIGHT); - Pixmap m = XCreateBitmapFromData(fl_display, RootWindow(fl_display, fl_screen), - left_arrow_watch_mask, LAWATCH_WIDTH, LAWATCH_HEIGHT); - - Cursor cursor = XCreatePixmapCursor(fl_display, p, m, &dummy, &dummy, LAWATCH_HOTXY, LAWATCH_HOTXY); - - // recolor created cursor to usefull colors - XColor fgc; - Fl_Color fg = fl_get_color(FL_BLACK); - fgc.red = (fg>>16)&0xFF00; - fgc.green = (fg>>8)&0xFF00; - fgc.blue = fg & 0xFF00; - - XColor bgc; - Fl_Color bg = fl_get_color(FL_WHITE); - bgc.red = (bg>>16)&0xFF00; - bgc.green = (bg>>8)&0xFF00; - bgc.blue = bg & 0xFF00; - XRecolorCursor(fl_display, cursor, &fgc, &bgc); - - return cursor; -} - -Cursor CreateFltkCursor(Fl_Cursor c) -{ - Cursor cursor; - if(!c) - return None; - - if(c >= FL_CURSOR_NS) - { - TableEntry* q = (c > FL_CURSOR_NESW) ? table+4 : table+(c-FL_CURSOR_NS); - if(!(q->cursor)) - { - XColor dummy; - Pixmap p = XCreateBitmapFromData(fl_display, RootWindow(fl_display, fl_screen), (const char*)q->bits, - CURSORSIZE, CURSORSIZE); - Pixmap m = XCreateBitmapFromData(fl_display, RootWindow(fl_display, fl_screen), (const char*)q->mask, - CURSORSIZE, CURSORSIZE); - q->cursor = XCreatePixmapCursor(fl_display, p, m, &dummy, &dummy, HOTXY, HOTXY); - - XFreePixmap(fl_display, m); - XFreePixmap(fl_display, p); - } - cursor = q->cursor; - } - else - cursor = XCreateFontCursor(fl_display, (c-1)*2); - - // recolor created cursor to usefull colors - XColor fgc; - Fl_Color fg = fl_get_color(FL_BLACK); - fgc.red = (fg>>16)&0xFF00; - fgc.green = (fg>>8)&0xFF00; - fgc.blue = fg & 0xFF00; - - XColor bgc; - Fl_Color bg = fl_get_color(FL_WHITE); - bgc.red = (bg>>16)&0xFF00; - bgc.green = (bg>>8)&0xFF00; - bgc.blue = bg & 0xFF00; - XRecolorCursor(fl_display, cursor, &fgc, &bgc); - - return cursor; -} - -CursorHandler::CursorHandler() -{ - cursors_loaded = false; - - /* In some cases curr_cursor_type can't be set - * fast enough (mostly for Frame::grab_cursor()) which - * will crash whole wm. This will prevent that. - */ - curr_cursor_type = CURSOR_DEFAULT; -} - -CursorHandler::~CursorHandler() -{ - if(st != X_CURSORS) - return; - - for(int i = 0; i < CURSOR_LIST_SIZE; i++) - XFreeCursor(fl_display, cursors[i]); -} - -void CursorHandler::load(CursorShapeType s) -{ - TRACE_FUNCTION("void CursorHandler::load(CursorShapeType s)"); - - st = s; - if(st == FLTK_CURSORS) - { - cursors[CURSOR_DEFAULT] = CreateFltkCursor(FL_CURSOR_ARROW); - cursors[CURSOR_MOVE] = CreateFltkCursor(FL_CURSOR_MOVE); - - //cursors[CURSOR_WAIT] = CreateFltkCursor(FL_CURSOR_WAIT); - cursors[CURSOR_WAIT] = CreateLeftArrowWatch(); - - cursors[CURSOR_HELP] = CreateFltkCursor(FL_CURSOR_HELP); - cursors[CURSOR_N] = CreateFltkCursor(FL_CURSOR_NS); - cursors[CURSOR_NE] = CreateFltkCursor(FL_CURSOR_NESW); - cursors[CURSOR_E] = CreateFltkCursor(FL_CURSOR_WE); - cursors[CURSOR_SE] = CreateFltkCursor(FL_CURSOR_NWSE); - cursors[CURSOR_S] = CreateFltkCursor(FL_CURSOR_NS); - cursors[CURSOR_SW] = CreateFltkCursor(FL_CURSOR_NESW); - cursors[CURSOR_W] = CreateFltkCursor(FL_CURSOR_WE); - cursors[CURSOR_NW] = CreateFltkCursor(FL_CURSOR_NWSE); - } - else - { - cursors[CURSOR_DEFAULT] = XCreateFontCursor(fl_display, XC_left_ptr); - cursors[CURSOR_MOVE] = XCreateFontCursor(fl_display, XC_fleur); - - //cursors[CURSOR_WAIT] = XCreateFontCursor(fl_display, XC_watch); - cursors[CURSOR_WAIT] = CreateLeftArrowWatch(); - - cursors[CURSOR_HELP] = XCreateFontCursor(fl_display, XC_question_arrow); - cursors[CURSOR_N] = XCreateFontCursor(fl_display, XC_top_side); - cursors[CURSOR_NE] = XCreateFontCursor(fl_display, XC_top_right_corner); - cursors[CURSOR_E] = XCreateFontCursor(fl_display, XC_right_side); - cursors[CURSOR_SE] = XCreateFontCursor(fl_display, XC_bottom_right_corner); - cursors[CURSOR_S] = XCreateFontCursor(fl_display, XC_bottom_side); - cursors[CURSOR_SW] = XCreateFontCursor(fl_display, XC_bottom_left_corner); - cursors[CURSOR_W] = XCreateFontCursor(fl_display, XC_left_side); - cursors[CURSOR_NW] = XCreateFontCursor(fl_display, XC_top_left_corner); - } - -#ifdef _DEBUG - cursors_map[CURSOR_DEFAULT] = "CURSOR_DEFAULT"; - cursors_map[CURSOR_MOVE] = "CURSOR_MOVE"; - cursors_map[CURSOR_WAIT] = "CURSOR_WAIT"; - cursors_map[CURSOR_HELP] = "CURSOR_HELP"; - cursors_map[CURSOR_N] = "CURSOR_N"; - cursors_map[CURSOR_NE] = "CURSOR_NE"; - cursors_map[CURSOR_E] = "CURSOR_E"; - cursors_map[CURSOR_SE] = "CURSOR_SE"; - cursors_map[CURSOR_S] = "CURSOR_S"; - cursors_map[CURSOR_SW] = "CURSOR_SW"; - cursors_map[CURSOR_W] = "CURSOR_W"; - cursors_map[CURSOR_NW] = "CURSOR_NW"; -#endif - - cursors_loaded = true; -} - -void CursorHandler::set_cursor(Frame* f, CursorType t) -{ - TRACE_FUNCTION("void CursorHandler::set_cursor(Frame* f, CursorType t)"); -#ifdef _DEBUG - ELOG("Cursor set to %s", cursors_map[t]); -#endif - assert(cursors_loaded != false); - assert(f != NULL); - - // do not set cursor to same type again - if(t == curr_cursor_type) - return; - - curr_cursor_type = t; - - XDefineCursor(fl_display, fl_xid(f), cursors[curr_cursor_type]); -} - -// only for root window -void CursorHandler::set_root_cursor(void) -{ - TRACE_FUNCTION("void CursorHandler::set_root_cursor(void)"); - assert(cursors_loaded != false); - - root_window_cursor = cursors[CURSOR_DEFAULT]; - XDefineCursor(fl_display, RootWindow(fl_display, fl_screen), root_window_cursor); -} - -void CursorHandler::set_root_cursor(CursorType t) -{ - TRACE_FUNCTION("void CursorHandler::set_root_cursor(CursorType t)"); - assert(cursors_loaded != false); - - root_window_cursor = cursors[t]; - XDefineCursor(fl_display, RootWindow(fl_display, fl_screen), root_window_cursor); -} - -Cursor CursorHandler::current_cursor(void) const -{ - TRACE_FUNCTION("Cursor CursorHandler::current_cursor(void) const"); - //assert(current_cursor > 0 && current_cursor < CURSOR_LIST_SIZE); - return cursors[curr_cursor_type]; -} diff --git a/edewm/Cursor.h b/edewm/Cursor.h deleted file mode 100644 index a393e18..0000000 --- a/edewm/Cursor.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $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 // 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 diff --git a/edewm/Desktop.h b/edewm/Desktop.h deleted file mode 100644 index 097c744..0000000 --- a/edewm/Desktop.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * $Id: Desktop.h 1653 2006-06-09 13:08:58Z 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 _DESKTOP_H_ -#define _DESKTOP_H_ - -#include - -class Desktop { -public: - Desktop(const char *name); - ~Desktop(); - - const char* name() const { return name_; } - void name(const char *name); - int number() const { return number_; } - - static Desktop *desktop(int num); - - static Desktop *next(); - static Desktop *prev(); - - static Desktop *current() { return current_; } - static int current_num() { return current_ ? current_->number() : -1; } - - static Desktop* add(const char *name=0); - - static void current(Desktop *cur); - static void current(int cur) { current(desktop(cur)); } - - static int desktop_count() { return desktop_count_; } - - static void update_desktop_viewport(); - static void update_desktop_workarea(); - static void update_desktop_geometry(); - - static void update_desktop_count(uint cnt, bool send=true); - static void update_desktop_names(bool send=true); - - static void set_names(); - - int junk; // for temporary storage by menu builder - -private: - static Desktop* current_; - static int desktop_count_; - - const char* name_; - int number_; -}; - -class Desktop_List : public Fl_Ptr_List { -public: - Desktop_List() : Fl_Ptr_List() { } - - void append(Desktop *item) { Fl_Ptr_List::append((void *)item); } - void prepend(Desktop *item) { Fl_Ptr_List::prepend((void *)item); } - void insert(uint pos, Desktop *item) { Fl_Ptr_List::insert(pos, (void *)item); } - void replace(uint pos, Desktop *item) { Fl_Ptr_List::replace(pos, (void *)item); } - void remove(uint pos) { Fl_Ptr_List::remove(pos); } - bool remove(Desktop *item) { return Fl_Ptr_List::remove((void *)item); } - int index_of(const Desktop *w) const { return Fl_Ptr_List::index_of((void*)w); } - Desktop *item(uint index) const { return (Desktop*)Fl_Ptr_List::item(index); } - - Desktop **data() { return (Desktop**)items; } - - Desktop *operator [](uint ind) const { return (Desktop *)items[ind]; } -}; - -extern Desktop_List desktops; - -#endif diff --git a/edewm/Events.cpp b/edewm/Events.cpp deleted file mode 100644 index e7add63..0000000 --- a/edewm/Events.cpp +++ /dev/null @@ -1,508 +0,0 @@ -/* - * $Id: Events.cpp 1712 2006-07-25 10:04:41Z 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. - */ - -#include "Events.h" -#include "Frame.h" -#include "Titlebar.h" -#include "Windowmanager.h" -#include "Tracers.h" -#include "Atoms.h" -#include "Hints.h" -#include "Cursor.h" -#include "debug.h" - -#include - - -#define FRAME_NAME(frame) (frame->label ? frame->label : "NULL") - -FrameEventHandler::FrameEventHandler(Frame* f) : curr_frame(f) -{ - assert(curr_frame != NULL); -} - -FrameEventHandler::~FrameEventHandler() -{ -} - -/* Handle efltk events. - * Some events like FL_FOCUS and FL_UNFOCUS are not handled, since - * efltk does not receive this event when when should (for example: - * one window is focused, but other shoud be automatically unfocused). - * X on ther hand send FocusIn and FocusOut when above events ocurr. - */ -int FrameEventHandler::handle_fltk(int event) -{ - long gggg; - static long bbbb; - static CursorType ctype; - - if(curr_frame->show_titlebar) - { - Titlebar* tbar = curr_frame->titlebar; - assert(tbar != NULL); - - if(!curr_frame->resizing()) - { - if(Fl::event_inside(tbar->x(), tbar->y(), tbar->w(), tbar->h()) || curr_frame->moving()) - return tbar->handle(event); - } - } - - switch(event) - { - case FL_SHOW: - case FL_HIDE: - return 0; - - case FL_ENTER: - ELOG("FrameEventHandler: FL_ENTER"); - return 1; - - case FL_LEAVE: - ELOG("FrameEventHandler: FL_LEAVE"); - return 1; - - case FL_MOVE: - { - // note, I am using coordinates _inside_ window - gggg = curr_frame->resize_type(Fl::event_x(), Fl::event_y()); - switch(gggg) - { - case ResizeTypeUpLeft: - ELOG("FrameEventHandler (resizing): ResizeTypeUpLeft"); - curr_frame->set_cursor(CURSOR_NW); - ctype = CURSOR_NW; - bbbb = ResizeTypeUpLeft; - return 1; - case ResizeTypeUpRight: - ELOG("FrameEventHandler (resizing): ResizeTypeUpRight"); - curr_frame->set_cursor(CURSOR_NE); - ctype = CURSOR_NE; - bbbb = ResizeTypeUpRight; - return 1; - case ResizeTypeDownLeft: - ELOG("FrameEventHandler (resizing): ResizeTypeDownLeft"); - curr_frame->set_cursor(CURSOR_SW); - ctype = CURSOR_SW; - bbbb = ResizeTypeDownLeft; - return 1; - case ResizeTypeDownRight: - ELOG("FrameEventHandler (resizing): ResizeTypeDownRight"); - curr_frame->set_cursor(CURSOR_SE); - ctype = CURSOR_SE; - bbbb = ResizeTypeDownRight; - return 1; - case ResizeTypeUp: - ELOG("FrameEventHandler (resizing): ResizeTypeUp"); - curr_frame->set_cursor(CURSOR_N); - ctype = CURSOR_N; - bbbb = ResizeTypeUp; - return 1; - case ResizeTypeLeft: - ELOG("FrameEventHandler (resizing): ResizeTypeLeft"); - curr_frame->set_cursor(CURSOR_W); - ctype = CURSOR_W; - bbbb = ResizeTypeLeft; - return 1; - case ResizeTypeRight: - ELOG("FrameEventHandler (resizing): ResizeTypeRight"); - curr_frame->set_cursor(CURSOR_E); - ctype = CURSOR_E; - bbbb = ResizeTypeRight; - return 1; - case ResizeTypeDown: - ELOG("FrameEventHandler (resizing): ResizeTypeDown"); - curr_frame->set_cursor(CURSOR_S); - ctype = CURSOR_S; - bbbb = ResizeTypeDown; - return 1; - default: - //curr_frame->set_cursor(CURSOR_DEFAULT); - bbbb = ResizeTypeNone; - return 1; - } - return 1; - } - - case FL_PUSH: - ELOG("FrameEventHandler: FL_PUSH"); - - if(Fl::event_is_click()) - { - curr_frame->borders_color(CLICKED); - curr_frame->raise(); - } - return 1; - - case FL_DRAG: - ELOG("FrameEventHandler: FL_DRAG"); - if(bbbb != ResizeTypeNone) - { - if(!curr_frame->resizing()) - { - curr_frame->grab_cursor(); - curr_frame->resize_start(); - curr_frame->show_coordinates_window(); - } - - //XGrabServer(fl_display); - - curr_frame->set_cursor(ctype); - curr_frame->resize_window(Fl::event_x_root(), Fl::event_y_root(), bbbb); - curr_frame->update_coordinates_window(); - } - return 1; - - case FL_RELEASE: - ELOG("FrameEventHandler: FL_RELEASE"); - if(curr_frame->resizing()) - { - //XUngrabServer(fl_display); - curr_frame->resize_end(); - curr_frame->ungrab_cursor(); - curr_frame->hide_coordinates_window(); - curr_frame->set_cursor(CURSOR_DEFAULT); - } - - //curr_frame->color(FL_GRAY); - curr_frame->borders_color(FOCUSED); - return 1; - default: - // let other events go to sizers - return curr_frame->handle_parent(event); - } - return 0; - -} - -int FrameEventHandler::handle_x(XEvent* event) -{ - switch(event->type) - { - case MapRequest: - return map_event(event->xmaprequest); - case UnmapNotify: - return unmap_event(event->xunmap); - case ReparentNotify: - return reparent_event(event->xreparent); - case DestroyNotify: - return destroy_event(event->xdestroywindow); - /*case ClientMessage: - return client_message(event->xclient);*/ - case LeaveNotify: - case EnterNotify: - return enter_leave_event(event->xcrossing); - - /* FocusIn, as FocusOut is not used, but for - * debugging is here. When we map a large number - * of windows, X seems goes into (for me unknown) - * infinite FocusIn/FocusOut loop, which blocks - * everything. So, to keep us far away from pain, - * leave FocusIn for someone else. Here should not - * be used. - */ - case FocusIn: - { - ELOG("FrameEventHandler: FocusIn"); - switch(event->xfocus.mode) - { - case NotifyNormal: - ELOG(" - NotifyNormal"); - break; - case NotifyGrab: - ELOG(" - NotifyGrab"); - break; - case NotifyUngrab: - ELOG(" - NotifyUngrab"); - break; - } - - if(event->xfocus.send_event) - ELOG(" - got from SendEvent"); - - /* This will prevent menus, etc. - * to steal focus from parent. - */ - //if(event->xfocus.mode == NotifyNormal) - // curr_frame->focus(); - } - return 1; - - /* FocusOut really fuck up focusing so - * it is not handled. Either xfocus.mode == NotifyNormal - * does not helps when window emits menu, since menu - * itself will yield FocusOut for parent and FocusIn - * for itself. Unfortunately I don't know any toolkit - * which export some kind MENU flag, where we can check. - * So, let we shut it up, make ourself little bit happy - * and take all burden of FocusOut to ourself (which made - * use very very unhappy). - */ - case FocusOut: - { - ELOG("FrameEventHandler: FocusOut"); - switch(event->xfocus.mode) - { - case NotifyNormal: - ELOG(" - NotifyNormal"); - break; - case NotifyGrab: - ELOG(" - NotifyGrab"); - break; - case NotifyUngrab: - ELOG(" - NotifyUngrab"); - break; - } - - if(event->xfocus.send_event) - ELOG(" - got from SendEvent"); - //curr_frame->unfocus(); - } - return 1; - case PropertyNotify: - return property_event(event->xproperty); - case ConfigureRequest: - return configure_event(event->xconfigurerequest); - return 1; - - default: -#ifdef _DEBUG - const char* name = WindowManager::instance()->xevent_map[event->type]; - if(name) - ELOG("Got unhandled %s in frame", name); - else - ELOG("Got unhandled event in frame (%i)", event->type); -#endif - return 0; - } - return 0; -} - -int FrameEventHandler::map_event(const XMapRequestEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::map_event(const XMapRequestEvent& e)"); - assert(e.window == curr_frame->window()); - - curr_frame->map(); - - return 1; -} - -int FrameEventHandler::unmap_event(const XUnmapEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::unmap_event(const XUnmapEvent& e)"); - //assert(e.window == curr_frame->window()); - if(e.window != curr_frame->window()) - return 1; - - ELOG("FrameEventHandler: UnmapNotify (%s)", FRAME_NAME(curr_frame->fdata)); - if(e.from_configure) - return 1; - - if(curr_frame->option(FrameOptIgnoreUnmap)) - { - ELOG("Frame have FrameOptIgnoreUnmap, skiping this event"); - curr_frame->clear_option(FrameOptIgnoreUnmap); - } - else - curr_frame->unmap(); - - return 1; -} - -int FrameEventHandler::reparent_event(const XReparentEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::reparent_event(const XReparentEvent& e)"); - ELOG("FrameEventHandler: ReparentNotify (%s)", FRAME_NAME(curr_frame->fdata)); - - // echo - if(e.parent == fl_xid(curr_frame)) - return 1; - // app is trying to tear-off again ??? - if(e.parent == fl_xid(WindowManager::instance())) - return 1; - - if(e.override_redirect) - { - ELOG("override_redirect from reparent_event"); - } - - EWARNING("Destroy in ReparentNotify!"); - curr_frame->destroy(); - - return 1; -} - -int FrameEventHandler::destroy_event(const XDestroyWindowEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::destroy_event(const XDestroyWindowEvent& e)"); - - curr_frame->destroy(); - return 1; -} - -int FrameEventHandler::client_message(const XClientMessageEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::client_message(const XClientMessageEvent& e)"); - - if(!ValidateDrawable(e.window)) - return 1; - -#ifdef _DEBUG - Atom a = e.message_type; - const char* name = WindowManager::instance()->atom_map[a]; - if(name) - ELOG("FrameEventHandler: unhandled atom %s", name); - else - ELOG("FrameEventHandler: unhandled atom %x", a); -#endif - - return 1; -} - -/* Handle property atoms. Here Netwm atoms are handled - * last, giving them precedence and chance to overwrite - * Icccm stuf (list XA_WM_NAME vs. _XA_NET_WM_NAME) - */ -int FrameEventHandler::property_event(const XPropertyEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::property_event(const XPropertyEvent& e)"); - - if(e.atom == XA_WM_NAME) - ELOG("XA_WM_NAME"); - if(e.atom == XA_WM_ICON_NAME) - ELOG("XA_WM_ICON_NAME"); - if(e.atom == XA_WM_HINTS) - ELOG("XA_WM_HINTS"); - if(e.atom == XA_WM_NORMAL_HINTS) - ELOG("XA_WM_NORMAL_HINTS"); - if(e.atom == XA_WM_SIZE_HINTS) - ELOG("XA_WM_SIZE_HINTS"); - if(e.atom == XA_WM_TRANSIENT_FOR) - ELOG("XA_WM_TRANSIENT_FOR"); - if(e.atom == _XA_WM_COLORMAP_WINDOWS) - ELOG("_XA_WM_COLORMAP_WINDOWS"); - if(e.atom == _XA_WM_STATE) - ELOG("_XA_WM_STATE"); - if(e.atom == _XA_WM_PROTOCOLS) - ELOG("_XA_WM_PROTOCOLS"); - if(e.atom == _XA_NET_WM_WINDOW_TYPE) - ELOG("_XA_NET_WM_WINDOW_TYPE"); - if(e.atom == _XA_NET_WM_STRUT) - { - ELOG("_XA_NET_WM_STRUT"); - int dummy; - WindowManager::instance()->hints()->netwm_strut(curr_frame->fdata->window, - &dummy, &dummy, &dummy, &dummy); - } - if(e.atom == _XA_NET_WM_NAME) - ELOG("_XA_NET_WM_NAME"); - if(e.atom == _XA_NET_WM_ICON) - ELOG("_XA_NET_WM_ICON"); - if(e.atom == _XA_KWM_WIN_ICON) - ELOG("_XA_KWM_WIN_ICON"); - - return 1; -} - -/* Handle EnterNotify and LeaveNotify events. - * Here is used only LeaveNotify to change cursor, since it will be - * trigered only on window borders (exact what is needed). On other - * hand, entering frame's child (or plain window) is handled by - * window itself, with ability to change cursor as like. - * Note, this event could not be simulated with FL_LEAVE, since - * it will be trigered only when mouse if off from whole window - * (including childs). - * - * Also, checkings of frame resizings are must, since mouse moving is - * usually faster than window resizing, so we will get flickering in - * cursors changes if not checked. - * - * TODO: better will be cursor is grabbed ! - */ -int FrameEventHandler::enter_leave_event(const XCrossingEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::enter_event(const XEnterWindowEvent& e)"); - if(curr_frame->state(FrameStateUnmapped)) - return 1; - - if(e.type == LeaveNotify && !curr_frame->resizing()) - curr_frame->set_cursor(CURSOR_DEFAULT); - - return 1; -} - -/* This message we can get for windows we know about and we don't know - * about (since all root messages are redirected to us). So we first check - * is window is managed by us, and apply changes to it via our functions. - * Otherwise, we configure window directly. - * - * Note: in fltk's fluid(1.1.6), setting x coords will send us pretty - * amount of junk (change x and y in the same time !!!). This is probably - * bug in fluid. - */ -int FrameEventHandler::configure_event(const XConfigureRequestEvent& e) -{ - TRACE_FUNCTION("int FrameEventHandler::configure_event(const XConfigureRequestEvent& e)"); - - if(curr_frame->state(FrameStateUnmapped)) - return 1; - - if(curr_frame->window() == e.window) - { - ELOG("ConfigureRequest from frame"); - if(!ValidateDrawable(curr_frame->window())) - return 1; - - int x_pos = curr_frame->fdata->plain.x; - int y_pos = curr_frame->fdata->plain.y; - int w_sz = curr_frame->fdata->plain.w; - int h_sz = curr_frame->fdata->plain.h; - - if(e.value_mask & CWX) - x_pos = e.x; - if(e.value_mask & CWY) - y_pos = e.y; - if(e.value_mask & CWWidth) - w_sz = e.width; - if(e.value_mask & CWHeight) - h_sz = e.height; - - if(e.value_mask & CWStackMode) - { - if(e.detail == Above) - curr_frame->raise(); - if(e.detail == Below) - curr_frame->lower(); - } - - curr_frame->set_size(x_pos, y_pos, w_sz, h_sz, true); - } - else - { - ELOG("ConfigureRequest from unhandled window"); - - if(ValidateDrawable(e.window)) - { - XWindowChanges wc; - wc.x = e.x; - wc.y = e.y; - wc.width = e.width; - wc.height = e.height; - wc.stack_mode = e.detail; - XConfigureWindow(fl_display, e.window, e.value_mask, &wc); - } - } - - return 1; -} diff --git a/edewm/Events.h b/edewm/Events.h deleted file mode 100644 index 1dfced1..0000000 --- a/edewm/Events.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: Events.h 1683 2006-07-17 14:05:47Z 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 __EVENTS_H__ -#define __EVENTS_H__ - -#include // XEvent - -/* Purpose of this class is to - * split and minimize already big Frame class - */ - -class Frame; - -class FrameEventHandler -{ - private: - Frame* curr_frame; - - int map_event(const XMapRequestEvent& e); - int unmap_event(const XUnmapEvent& e); - int reparent_event(const XReparentEvent& e); - int destroy_event(const XDestroyWindowEvent& e); - int client_message(const XClientMessageEvent& e); - int property_event(const XPropertyEvent& e); - int enter_event(const XCrossingEvent& e); - int configure_event(const XConfigureRequestEvent& e); - int enter_leave_event(const XCrossingEvent& e); - public: - FrameEventHandler(Frame* f); - ~FrameEventHandler(); - int handle_fltk(int e); - int handle_x(XEvent* e); -}; - -#endif diff --git a/edewm/Frame.cpp b/edewm/Frame.cpp deleted file mode 100644 index 14f8100..0000000 --- a/edewm/Frame.cpp +++ /dev/null @@ -1,1700 +0,0 @@ -/* - * $Id: Frame.cpp 1736 2006-08-19 00:38:53Z 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. - */ - -#include "Frame.h" -#include "Events.h" -#include "Hints.h" -#include "Windowmanager.h" -#include "Atoms.h" -#include "Utils.h" -#include "Titlebar.h" -#include "debug.h" -#include "Sound.h" -#include "Tracers.h" - -#include -#include // snprintf - -#ifdef SHAPE - #include -#endif // SHAPE - - -#define FRAME_NAME(frame) (frame->label ? frame->label : "NULL") - -// TODO: just for testing -#define BORDER_UPDOWN 3 -#define BORDER_LEFTRIGHT 3 - -#define BORDER_THIN_UPDOWN 1 -#define BORDER_THIN_LEFTRIGHT 1 - -#define SIZER_W 15 -#define SIZER_H 15 - -#define MIN_W 0 -#define MIN_H 0 - -#define TITLEBAR_H 20 - -#define EDGE_SNAP 10 - - -void FrameBorders::item_color(Fl_Color c, FrameBordersState s, bool is_border) -{ - switch(s) - { - case FOCUSED: - (is_border) ? (focused = c) : (sizers_focused = c); - break; - case UNFOCUSED: - (is_border) ? (unfocused = c) : (sizers_unfocused = c); - break; - case CLICKED: - (is_border) ? (clicked = c) : (sizers_clicked = c); - break; - } -} - -Fl_Color FrameBorders::item_color(FrameBordersState s, bool is_border) -{ - switch(s) - { - case FOCUSED: - if(is_border) - return focused; - else - return sizers_focused; - case UNFOCUSED: - if(is_border) - return unfocused; - else - return sizers_unfocused; - case CLICKED: - if(is_border) - return clicked; - else - return sizers_clicked; - } - - return FL_GRAY; -} - -void FrameBorders::updown(int s) -{ - updown_w = s; - updown2x_w = s * 2; -} - -void FrameBorders::leftright(int s) -{ - leftright_h = s; - leftright2x_h = s * 2; -} - -void FrameBorders::shaped(bool s) -{ - is_shaped = s; -} - -CoordinatesView::CoordinatesView() : Fl_Window(120, 20) -{ - color(FL_WHITE); - box(FL_BORDER_BOX); - data_box = new Fl_Box(0, 0, w(), h()); - data_box->label_size(11); - end(); -} - -CoordinatesView::~CoordinatesView() -{ -} - -void CoordinatesView::display_data(int x, int y, int w, int h) -{ - snprintf(data, sizeof(data)-1, "%i x %i x %i x %i", x, y, w, h); - data_box->label(data); - data_box->redraw_label(); - redraw(); -} - -Frame::Frame(Window win, XWindowAttributes* attrs) : - Fl_Window(0, 0), - fdata(new FrameData), - screen_x(0), - screen_y(0), - screen_w(0), - screen_h(0), - restore_x(0), - restore_y(0), - restore_w(0), - restore_h(0), - opaque_move_resize(false), - show_titlebar(true), - is_moving(false), - is_resizing(false), - cursor_grabbed(false), - snap_move(false), - show_coordinates(true) -{ - // register our events - events = new FrameEventHandler(this); - - if(show_coordinates) - cview = new CoordinatesView(); - - fdata->window = win; - fdata->transient_win = None; - fdata->colormap = DefaultColormap(fl_display, fl_screen); - fdata->option = 0; - fdata->type = FrameTypeNormal; - fdata->state = 0; - fdata->win_gravity = 0; - fdata->autoplace = true; - fdata->icon_pixmap = 0; - fdata->icon_mask = 0; - fdata->label = 0; - fdata->label_alocated = false; - - fdata->plain.x = fdata->plain.y = 0; - fdata->plain.w = fdata->plain.h = 0; - fdata->plain.offset_x = fdata->plain.offset_y = 0; - fdata->plain.inc_w = fdata->plain.inc_h = 0; - fdata->plain.max_w = fdata->plain.max_h = 0; - fdata->plain.min_w = fdata->plain.min_h = 0; - - overlay.x = overlay.y = overlay.w = overlay.h = 0; - - borders.border_color(fl_darker(FL_GRAY), FOCUSED); - borders.border_color(FL_WHITE, UNFOCUSED); - borders.border_color(FL_BLUE, CLICKED); - - borders.sizers_color(FL_GRAY, FOCUSED); - borders.sizers_color(FL_RED, UNFOCUSED); - borders.sizers_color(FL_RED, CLICKED); - // recalculated in setup_borders - borders.updown(0); - borders.leftright(0); - borders.shaped(false); - - // we does not use window specific borders - fdata->plain.border = 0; - - // collect data - WindowManager* wm = WindowManager::instance(); - - screen_x = wm->x(); - screen_y = wm->y(); - screen_w = wm->w(); - screen_h = wm->h(); - - XWindowAttributes init_attrs; - if(attrs) - { - init_attrs = *attrs; - set_option(FrameOptIgnoreUnmap); - } - else - XGetWindowAttributes(fl_display, fdata->window, &init_attrs); - - fdata->plain.x = init_attrs.x; - fdata->plain.y = init_attrs.y; - fdata->plain.w = init_attrs.width; - fdata->plain.h = init_attrs.height; - - load_colormap(init_attrs.colormap); - - if(init_attrs.map_state == IsViewable) - set_state(FrameStateNormal); - else if(init_attrs.map_state == IsUnmapped) - set_state(FrameStateIconized); - else if(init_attrs.map_state == IsUnviewable) - ELOG("Got IsUnviewable map_state, skiping for now..."); - - wm->hints()->icccm_size(fdata); - wm->hints()->icccm_wm_hints(fdata); - wm->hints()->netwm_window_type(fdata); - wm->hints()->netwm_window_state(fdata); - wm->hints()->mwm_load_hints(fdata); - - load_label(); - - // do this asap so we don't miss any events... - XSelectInput(fl_display, fdata->window, - VisibilityChangeMask | ColormapChangeMask | - PropertyChangeMask | FocusChangeMask /*| StructureNotifyMask*/); - - XGetTransientForHint(fl_display, fdata->window, &fdata->transient_win); - if(fdata->transient_win != None) - { - fdata->type = FrameTypeDialog; - ELOG("Got transient_win"); - } - - if(fdata->type == FrameTypeNormal || fdata->type == FrameTypeDialog) - { - set_option(FrameOptHaveTitlebar | FrameOptHaveBorder | FrameOptCloseable | FrameOptMoveable); - if(fdata->type == FrameTypeNormal) - set_option(FrameOptResizeable | FrameOptHideable); - - borders.leftright(BORDER_LEFTRIGHT); - borders.updown(BORDER_UPDOWN); - } - - init_overlay(borders.updown()); - - x(fdata->plain.x); - y(fdata->plain.y); - - w(fdata->plain.w + borders.leftright2x()); - h(fdata->plain.h + borders.updown2x()); - XSetWindowBorderWidth(fl_display, fdata->window, fdata->plain.border); - - XMoveResizeWindow(fl_display, fdata->window, fdata->plain.x, fdata->plain.y, - fdata->plain.w, fdata->plain.h); - - ELOG("XWindowAttributes: %i %i %i %i", fdata->plain.x, fdata->plain.y, fdata->plain.w, fdata->plain.h); - begin(); - Fl_Color szc = borders.sizers_color(FOCUSED); - sizer_top_left = new Fl_Box(1,1,SIZER_W,SIZER_H); - sizer_top_left->box(FL_FLAT_BOX); - sizer_top_left->color(szc); - - sizer_top_right = new Fl_Box(1,1,SIZER_W,SIZER_H); - sizer_top_right->box(FL_FLAT_BOX); - sizer_top_right->color(szc); - - sizer_bottom_left = new Fl_Box(1,1,SIZER_W,SIZER_H); - sizer_bottom_left->box(FL_FLAT_BOX); - sizer_bottom_left->color(szc); - - sizer_bottom_right = new Fl_Box(1,1,SIZER_W,SIZER_H); - sizer_bottom_right->box(FL_FLAT_BOX); - sizer_bottom_right->color(szc); - - - if(show_titlebar) - { - titlebar = new Titlebar(this, borders.leftright(), borders.updown(), - w() - borders.leftright2x(), TITLEBAR_H, "Untitled"); - - if(fdata->label) - titlebar->label(fdata->label); - - /* Offset for fdata->window in our frame. - * Used in reparenting. - */ - fdata->plain.offset_x = borders.leftright(); - fdata->plain.offset_y = borders.updown() + titlebar->h(); - } - else - { - fdata->plain.offset_x = borders.leftright(); - fdata->plain.offset_y = borders.updown(); - } - - end(); - - /* Reposition and resize main frame - * but skip it if position is already - * set by some hints or fdata->autoplace is false. - * - * NOTE: efltk set minimal position 2x2 - * so this is check. If window is initialy - * tried to be placed on 0x0 it will be - * misteriously hidden. - */ - int pos_x; - int pos_y; - if(fdata->autoplace && wm->query_best_position(&pos_x, &pos_y, w(), h())) - { - if(pos_x <= 2) - pos_x = x(); - if(pos_y <= 2) - pos_y = y(); - - ELOG("This window does use autoplace"); - } - else - { - // recorrect positions made up in setup_borders() ?@#@! including - // titlebar if present - if((x() - borders.leftright()) > screen_x) - pos_x = x() - borders.leftright(); - else - pos_x = x(); - - if(show_titlebar && (y() - titlebar->h() - borders.updown()) > screen_y) - pos_y = y() - titlebar->h() - borders.updown(); - else if((y() - borders.updown()) > screen_y) - pos_y = y() - borders.updown(); - else - pos_y = y(); - } - - if(show_titlebar) - resize(pos_x, pos_y, w(), h() + titlebar->h()); - else - resize(pos_x, pos_y, w(), h()); - - place_sizers(x(), y(), w(), h()); - - // only normal windows can be resized - if(fdata->type != FrameTypeNormal) - hide_sizers(); - - set_override(); - // color of main window background, aka borders - color(borders.border_color(FOCUSED)); - create(); - reparent_window(); - configure_notify(); - - // rest is in content_click() - XGrabButton(fl_display, AnyButton, AnyModifier, fdata->window, - False, ButtonPressMask, GrabModeSync, GrabModeAsync, None, None); - - // show our creation - XMapWindow(fl_display, fdata->window); - show(); - - if(borders.shaped()) - shape_borders(); - - //shape_edges(); - - XAddToSaveSet(fl_display, fdata->window); - - // TODO: this handling should be in WindowManager - wm->window_list.push_back(this); - - if(fdata->transient_win != None) - { - ELOG("Added to aot_list"); - // latest mapped windows will be _before_ others iff they are transient - wm->aot_list.push_front(this); - } - else - { - ELOG("Added to stack_list"); - wm->stack_list.push_front(this); - } - - if(fdata->option & FrameOptTakeFocus) - focus(); - - ELOG("Window loaded, frame: 0x%x plain: 0x%x", fl_xid(this), fdata->window); - XFlush(fl_display); -} - -Frame::~Frame() -{ - ELOG("Frame::~Frame"); - if(fdata->label_alocated) - free(fdata->label); - - XFreeGC(fl_display, overlay.inverted_gc); - - if(show_coordinates) - delete cview; - - delete events; - delete fdata; -} -#if 0 -void Frame::feed_data(XWindowAttributes* existing) -{ - WindowManager* wm = WindowManager::instance(); - - screen_x = wm->x(); - screen_y = wm->y(); - screen_w = wm->w(); - screen_h = wm->h(); - - wm->hints()->icccm_size(fdata); - - // TODO: For testing only. Better solution will be. - fdata->type = wm->hints()->netwm_window_type(fdata); - - setup_borders(); - - if(fdata->type == FrameTypeSplash - || fdata->type == FrameTypeMenu - || fdata->type == FrameTypeDesktop - || fdata->type == FrameTypeDock) - { - show_titlebar = false; - } - // ------------------------------------------------ - - wm->hints()->netwm_window_state(fdata); - wm->hints()->mwm_load_hints(fdata); - - load_wm_hints(); - load_colormap(); - load_label(); - - XWindowAttributes attrs; - if(existing) - attrs = *existing; - else - XGetWindowAttributes(fl_display, fdata->window, &attrs); - - // according to ICCCM standard, returned values must - // be used for window only, excluding decorations - fdata->plain.x = attrs.x; - fdata->plain.y = attrs.y; - // TODO: add checking if window out of screen - fdata->plain.w = attrs.width; - fdata->plain.h = attrs.height; - - ELOG("XWindowAttributes: %i %i %i %i", fdata->plain.x, fdata->plain.y, fdata->plain.w, fdata->plain.h); - - // Shorthand for: fdata->colormap = attrs->colormap; - // ...for easier tracking - if(fdata->colormap != attrs.colormap) - load_colormap(attrs.colormap); - - switch(attrs.map_state) - { - case IsUnmapped: - set_state(FrameStateIconized); - break; - case IsViewable: - set_state(FrameStateNormal); - break; - case IsUnviewable: - ELOG("Got IsUnviewable map_state, skiping for now..."); - break; - } -} -#endif -/* load WM_HINTS property, finding if window - * have icons and in what state is in - * TODO: place this as Hint::icccm_load_wm_hints() - */ -#if 0 -void Frame::load_wm_hints(void) -{ - XWMHints* wm_hints = XAllocWMHints(); - wm_hints = XGetWMHints(fl_display, fdata->window); - if(!wm_hints) - { - ELOG("XGetWMHints failed!"); - return; - } - - if((wm_hints->flags & IconPixmapHint) && wm_hints->icon_pixmap) - fdata->icon_pixmap = wm_hints->icon_pixmap; - if((wm_hints->flags & IconMaskHint) &&wm_hints->icon_mask) - fdata->icon_mask = wm_hints->icon_mask; - - switch(wm_hints->initial_state) - { - case WithdrawnState: - XRemoveFromSaveSet(fl_display, fdata->window); - break; - case IconicState: - fdata->state = FrameStateIconized; - break; - case NormalState: - default: - fdata->state = FrameStateNormal; - break; - } - - // check for focus - if((wm_hints->flags & InputHint) && !wm_hints->input) - fdata->option &= ~FrameOptTakeFocus; // window does not want focus - else - fdata->option |= FrameOptTakeFocus; // window want focus; - - XFree(wm_hints); -} -#endif -// guess title -void Frame::load_label(void) -{ - TRACE_FUNCTION("void Frame::load_label(void)"); - WindowManager* wm = WindowManager::instance(); - - // first try NETWM style - fdata->label = wm->hints()->netwm_label(fdata->window, &fdata->label_alocated); - if(!fdata->label) - { - // then ICCCM - fdata->label = wm->hints()->icccm_label(fdata->window, &fdata->label_alocated); - } - ELOG("Window: %s (%p) loaded", (fdata->label ? fdata->label : "NULL"), fdata->window); -} - -void Frame::destroy(void) -{ - TRACE_FUNCTION("void Frame::destroy(void)"); - - ELOG("window goes down"); - if(state(FrameStateDestroyed)) - return; - - if(!state(FrameStateUnmapped)) - { - if(ValidateDrawable(fdata->window)) - { - XRemoveFromSaveSet(fl_display, fdata->window); - XUnmapWindow(fl_display, fdata->window); - XUnmapWindow(fl_display, fl_xid(this)); - } - } - - set_state(FrameStateDestroyed); - WindowManager::instance()->update_client_list(); - Fl::awake(); -} - -void Frame::map(void) -{ - if(!state(FrameStateUnmapped)) - return; - - XAddToSaveSet(fl_display, fdata->window); - XMapWindow(fl_display, fdata->window); - XMapWindow(fl_display, fl_xid(this)); - - clear_state(FrameStateUnmapped); -} - -void Frame::unmap(void) -{ - if(state(FrameStateUnmapped)) - return; - - if(ValidateDrawable(fdata->window)) - { - XRemoveFromSaveSet(fl_display, fdata->window); - XUnmapWindow(fl_display, fdata->window); - XUnmapWindow(fl_display, fl_xid(this)); - } - - set_state(FrameStateUnmapped); -} - -// Install custom or default colormap. -// Default colormap is read only once, in Frame constructor. -void Frame::load_colormap(Colormap col) -{ - TRACE_FUNCTION("void Frame::load_colormap(Colormap col)"); - - if(col != 0) - { - ELOG("Installing custom colormap"); - fdata->colormap = col; - } - else - ELOG("Loading default colormap"); - - XInstallColormap(fl_display, fdata->colormap); -} - -// Recalculate framed based on plain. -// If window is outside screen, fix what needs to be fixed -void Frame::setup_borders(void) -{ - TRACE_FUNCTION("void Frame::setup_borders(void)"); - - int tx, ty; - switch(fdata->type) - { - case FrameTypeNormal: - /* border = BORDER_NORMAL; */ - borders.leftright(BORDER_LEFTRIGHT); - borders.updown(BORDER_UPDOWN); - break; - case FrameTypeDialog: - /*border = BORDER_THIN; */ - //borders.leftright(BORDER_THIN_LEFTRIGHT); - //borders.updown(BORDER_THIN_UPDOWN); - borders.leftright(BORDER_LEFTRIGHT); - borders.updown(BORDER_UPDOWN); - break; - case FrameTypeSplash: - case FrameTypeDesktop: - case FrameTypeMenu: - case FrameTypeDock: - borders.leftright(0); - borders.updown(0); - // they don't have visible borders - break; - } - - // TODO: setting up initial window sizes - // should not be in setup_borders(); - tx = fdata->plain.x - borders.leftright(); - ty = fdata->plain.y - borders.updown(); - if(tx < 0) - fdata->plain.x = borders.leftright(); - if(ty < 0) - fdata->plain.y = borders.updown(); - x(fdata->plain.x); - y(fdata->plain.y); - - w(fdata->plain.w + borders.leftright2x()); - h(fdata->plain.h + borders.updown2x()); - - // set fdata->window borders, althought fdata->plain.borders is - // always 0 - XSetWindowBorderWidth(fl_display, fdata->window, fdata->plain.border); -} -#if 0 -/* Setup window sizes to minimal usable (MIN_W, MIN_H) - * but only for normal windows. Transient should set - * their size internally. - */ -void Frame::init_sizes(void) -{ - if(fdata->type == FrameTypeDialog) - return; - - if(fdata->plain.w < MIN_W) - fdata->plain.w = MIN_W; - if(fdata->plain.h < MIN_H) - fdata->plain.h = MIN_H; -} -#endif -void Frame::init_overlay(int border_size) -{ - XGCValues v; - v.subwindow_mode = IncludeInferiors; - v.foreground = 0xffffffff; - v.function = GXxor; - v.line_width = border_size; - v.graphics_exposures = False; - int mask = GCForeground | GCSubwindowMode | GCFunction | GCLineWidth | GCGraphicsExposures; - overlay.inverted_gc = XCreateGC(fl_display, - WindowManager::instance()->root_window(), mask, &v); -} - -void Frame::reparent_window(void) -{ - TRACE_FUNCTION("void Frame::reparent_window(void)"); - - if(!ValidateDrawable(fdata->window)) - return; - - const int XEventMask = - ExposureMask | - StructureNotifyMask| - VisibilityChangeMask | - KeyPressMask| - KeyReleaseMask| - KeymapStateMask| - FocusChangeMask | - ButtonPressMask | - ButtonReleaseMask | - EnterWindowMask | - LeaveWindowMask | - PointerMotionMask | - SubstructureRedirectMask | - SubstructureNotifyMask; - - - XSetWindowAttributes sattr; - // TODO: some windows set bit_gravity too - sattr.bit_gravity = NorthWestGravity; - sattr.event_mask = XEventMask; - sattr.colormap = fl_colormap; - sattr.border_pixel = fl_xpixel(FL_BLACK); - sattr.override_redirect = 0; - sattr.background_pixel = fl_xpixel(FL_GRAY); - XChangeWindowAttributes(fl_display, fl_xid(this), - CWBitGravity | CWBorderPixel | CWColormap | CWEventMask | CWBackPixel | CWOverrideRedirect, &sattr); - - XReparentWindow(fl_display, fdata->window, fl_xid(this), fdata->plain.offset_x, fdata->plain.offset_y); -/* - if(!show_titlebar) - { - XReparentWindow(fl_display, fdata->window, fl_xid(this), - borders.leftright(), borders.updown()); - } - else - { - XReparentWindow(fl_display, fdata->window, fl_xid(this), - borders.leftright(), borders.updown() + titlebar->h()); - } -*/ - -} - -void Frame::recalc_geometry(int x_pos, int y_pos, int w_sz, int h_sz, short rtype) -{ - TRACE_FUNCTION("void Frame::recalc_geometry(int x_pos, int y_pos, int w_sz, int h_sz, short rtype"); - - if(rtype == GeometryRecalcAll) - { - x(x_pos); y(y_pos); - w(w_sz); h(h_sz); - - fdata->plain.x = x() + borders.leftright(); - fdata->plain.y = y() + borders.updown(); - fdata->plain.w = w() - borders.leftright2x(); - } - else if(rtype == GeometryRecalcAllXY) - { - // do not include fdata->plain.w - // FIXME: duplication as above - x(x_pos); y(y_pos); - w(w_sz); h(h_sz); - fdata->plain.x = x() + borders.leftright(); - fdata->plain.y = y() + borders.updown(); - } - else if(rtype == GeometryRecalcPlain) - { - fdata->plain.x = x_pos; - fdata->plain.y = y_pos; - fdata->plain.w = w_sz; - fdata->plain.h = h_sz; - - x(x_pos - borders.leftright()); - y(y_pos - borders.updown()); - w(w_sz + borders.leftright2x()); - } - else - { - // we should no be here - assert(0); - } - - - if(show_titlebar) - { - // titlebar->resize(border, border, w() - border2x, titlebar->h()); - if(rtype == GeometryRecalcAll) - { - fdata->plain.h = h() - (titlebar->h() + borders.updown2x()); - } - else if(rtype == GeometryRecalcPlain) - { - h(h_sz + titlebar->h() + borders.updown2x()); - } - - titlebar->size(w() - borders.leftright2x(), titlebar->h()); - } - else - { - if(rtype == GeometryRecalcAll) - { - fdata->plain.h = h() - borders.updown2x(); - } - else if(rtype == GeometryRecalcPlain) - { - h(h_sz + borders.updown2x()); - } - } - - /* Sanitize sizes. If we go below min width and height - * even X will start to yell. Who likes yelling ? - * - * TODO: maybe when we detect this, should disallow any - * further moves/resizes ? - */ - if(fdata->plain.w <= fdata->plain.min_w) - { - int offset = fdata->plain.min_w - fdata->plain.w; - fdata->plain.w = fdata->plain.min_w; - w(w() + offset); - } - - if(fdata->plain.h <= fdata->plain.min_h) - { - int offset = fdata->plain.min_h - fdata->plain.h; - fdata->plain.h = fdata->plain.min_h; - h(h() + offset); - } - - - ELOG("p: %i %i %i %i w: %i %i %i %i", - fdata->plain.x, fdata->plain.y, fdata->plain.w, fdata->plain.h, - x(), y(), w(), h()); -} - -/* Set size of window, accepting coordinates for fdata->window + frame, - * int which case it will be resized both. - */ -void Frame::set_size(int x_pos, int y_pos, int w_sz, int h_sz, bool apply_on_plain) -{ - TRACE_FUNCTION("void Frame::set_size(int x_pos, int y_pos, int w_sz, int h_sz, bool apply_on_plain)"); - - if(!ValidateDrawable(fdata->window)) - return; - - short how; - if(apply_on_plain) - how = GeometryRecalcPlain; - else - how = GeometryRecalcAll; - - recalc_geometry(x_pos, y_pos, w_sz, h_sz, how); - - XGrabServer(fl_display); - - place_sizers(x(), y(), w(), h()); - XMoveWindow(fl_display, fl_xid(this), x(), y()); - XResizeWindow(fl_display, fl_xid(this), w(), h()); - XResizeWindow(fl_display, fdata->window, fdata->plain.w, fdata->plain.h); - - if(borders.shaped()) - shape_borders(); - - XUngrabServer(fl_display); - - configure_notify(); - redraw(); -} - -void Frame::move_window(int x_pos, int y_pos) -{ - TRACE_FUNCTION("void Frame::move_window(int x_pos, int y_pos)"); - - //draw_overlay(x_pos, y_pos, w(), h()); - //return; - - // very dummy snapping with screen edges - // TODO: what about other window(s) edges ? - if(snap_move) - { - int snap_x = screen_x + EDGE_SNAP; - int snap_y = snap_x; - int snap_w = screen_w - EDGE_SNAP; - int snap_h = screen_h - EDGE_SNAP; - int w_pos = x_pos + w(); - int h_pos = y_pos + h(); - - if(snap_x > x_pos - EDGE_SNAP && snap_x < x_pos + EDGE_SNAP) - x_pos = screen_x; - if(snap_y > y_pos - EDGE_SNAP && snap_y < y_pos + EDGE_SNAP) - y_pos = screen_y; - - if(snap_w > w_pos - EDGE_SNAP && snap_w < w_pos + EDGE_SNAP) - x_pos = screen_w - w(); - if(snap_h > h_pos - EDGE_SNAP && snap_h < h_pos + EDGE_SNAP) - y_pos = screen_h - h(); - } - - recalc_geometry(x_pos, y_pos, w(), h(), GeometryRecalcAllXY); - XMoveWindow(fl_display, fl_xid(this), x(), y()); - configure_notify(); -} - -void Frame::draw_overlay(int x, int y, int w, int h) -{ - TRACE_FUNCTION("void Frame::draw_overlay(int x, int y, int w, int h)"); -/* - XGCValues v; - v.subwindow_mode = IncludeInferiors; - v.foreground = 0xffffffff; - v.function = GXxor; - v.line_width = borders.updown(); - v.graphics_exposures = False; - int mask = GCForeground|GCSubwindowMode|GCFunction|GCLineWidth|GCGraphicsExposures; - GC invertGc = XCreateGC(fl_display, RootWindow(fl_display, fl_screen), mask, &v); -*/ - - if (w < 0) {x += w; w = -w;} - else if (!w) w = 1; - if (h < 0) {y += h; h = -h;} - else if (!h) h = 1; - Window root = WindowManager::instance()->root_window(); - - if(overlay.w > 0) - { - if(x == overlay.x && y == overlay.y && w == overlay.w && h == overlay.h) - return; - XDrawRectangle(fl_display, root, overlay.inverted_gc, overlay.x, overlay.y, overlay.w, overlay.h); - } - - overlay.x = x; - overlay.y = y; - overlay.w = w; - overlay.h = h; - - XDrawRectangle(fl_display, root, overlay.inverted_gc, overlay.x, overlay.y, overlay.w, overlay.h); -} - -void Frame::clear_overlay(void) -{ - if(overlay.w > 0) - { - Window root = WindowManager::instance()->root_window(); - XDrawRectangle(fl_display, root, overlay.inverted_gc, overlay.x, overlay.y, overlay.w, overlay.h); - overlay.w = 0; - } -} - -void Frame::place_sizers(int x, int y, int w, int h) -{ - TRACE_FUNCTION("void Frame::place_sizers(int x, int y, int w, int h)"); - - // using position() instead resize() will be only - // valid if sizers are initialy set to SIZER_W and SIZER_H - - sizer_top_left->position(0, 0); - sizer_top_right->position(w - SIZER_W, 0); - sizer_bottom_left->position(0, h - SIZER_H); - sizer_bottom_right->position(w - SIZER_W, h - SIZER_H); -} - -/* Determine type of resizing based on position - * (NOTE: here is used relative position - Fl::event_x() and Fl::event_y(), - * which are valid only in frame window). - * - * TODO: any way this can be simplified ? - */ -long Frame::resize_type(int x, int y) -{ - // TRACE_FUNCTION("long Frame::resize_type(int x, int y)"); - - //ELOG("%i %i", x, y); - // we are in top left sizer - if((x >= sizer_top_left->x() && x <= sizer_top_left->w()) && - (y >= sizer_top_left->y() && y <= sizer_top_left->h())) - return ResizeTypeUpLeft; - - // we are in top right sizer - if((x >= sizer_top_right->x() && x <= sizer_top_right->x() + sizer_top_right->w()) && - (y >= sizer_top_right->y() && y <= sizer_top_right->y() + sizer_top_right->h())) - return ResizeTypeUpRight; - - // we are in bottom left sizer - if((x >= sizer_bottom_left->x() && x <= sizer_bottom_left->x() + sizer_bottom_left->w()) && - (y >= sizer_bottom_left->y() && y <= sizer_bottom_left->y() + sizer_bottom_left->h())) - return ResizeTypeDownLeft; - - // we are in bottom right sizer - if((x >= sizer_bottom_right->x() && x <= sizer_bottom_right->x() + sizer_bottom_right->w()) && - y >= sizer_bottom_right->y() && y <= sizer_bottom_right->y() + sizer_bottom_right->h()) - return ResizeTypeDownRight; - - // we are in top border - if((x > sizer_top_left->x() + sizer_top_left->w() && x < sizer_top_right->x()) && - (y < borders.updown())) - return ResizeTypeUp; - - // we are in left border - if((x < borders.leftright()) && (y > sizer_top_left->y() + sizer_top_left->h()) && - y < sizer_bottom_left->y()) - return ResizeTypeLeft; - - // we are in right border - if((x < sizer_top_right->x() + sizer_top_right->w()) && - (x > sizer_top_right->x() + sizer_top_right->w() - borders.leftright()) && - (y > sizer_top_right->y() + sizer_top_right->w()) && - (y < sizer_bottom_left->y())) - return ResizeTypeRight; - - // we are in bottom border - if((x > sizer_bottom_left->x() + sizer_bottom_left->w()) && - (x < sizer_bottom_right->x()) && - (y > sizer_bottom_left->y() + sizer_bottom_left->h() - borders.updown()) && - (y < sizer_bottom_left->y() + sizer_bottom_left->h())) - return ResizeTypeDown; - - - return ResizeTypeNone; -} - -/* unscramble direction, and check what combination it have - * - * TODO: direction should not have oposite sides included - * like ResizeTypeRight | ResizeTypeLeft - */ -void Frame::resize_window(int mouse_x, int mouse_y, long direction) -{ - TRACE_FUNCTION("void Frame::resize_window(int mouse_x, int mouse_y, long direction)"); - - if(direction == 0) - EFATAL("calling resize on possible unresizable window"); - - if(direction & ResizeTypeNone) - return; - -#warning "Add increment/decrement info from icccm" - - // use collected increment/decrement info from icccm - /*int inc_w = fdata->plain.inc_w; - int inc_h = fdata->plain.inc_h; */ - - int tw = 0, th = 0; - - if(direction & ResizeTypeLeft) - { - if(mouse_x > x()) - tw = w() - (mouse_x - x()); // decrease - else - tw = w() + (x() - mouse_x); // increase - - set_size(mouse_x, y(), tw, h(), false); - } - - if(direction & ResizeTypeRight) - { - tw = mouse_x - x(); - set_size(x(), y(), tw, h(), false); - } - - if(direction & ResizeTypeUp) - { - if(mouse_y > y()) - th = h() - (mouse_y - y()); //decrease - else - th = h() + (y() - mouse_y); //increase - - set_size(x(), mouse_y, w(), th, false); - } - - if(direction & ResizeTypeDown) - { - th = mouse_y - y(); - set_size(x(), y(), w(), th, false); - } - -} - -void Frame::configure_notify(void) -{ - TRACE_FUNCTION("void Frame::configure_notify(void)"); - if(!ValidateDrawable(fdata->window)) - return; - - WindowManager::instance()->hints()->icccm_configure(fdata); -} - -// apply shape on borders, based on shape mask -void Frame::shape_borders(void) -{ - TRACE_FUNCTION("void Frame::shape_borders(void)"); - -#ifdef SHAPE - Window shape = XCreateSimpleWindow(fl_display, RootWindow(fl_display, fl_screen), - x(), y(), w(), h(), 0, 0, 0); - - XRectangle rect[4]; - // top - rect[0].x = SIZER_W; - rect[0].y = 0; - rect[0].width = w() - SIZER_W * 2; - rect[0].height = borders.updown(); - - // right - rect[1].x = w() - borders.leftright(); - rect[1].y = SIZER_H; - rect[1].width = borders.leftright(); - rect[1].height = h() - SIZER_H * 2; - - // bottom - rect[2].x = SIZER_W; - rect[2].y = h() - borders.updown(); - rect[2].width = w() - SIZER_W * 2; - rect[2].height = borders.updown(); - - // left - rect[3].x = 0; - rect[3].y = SIZER_H; - rect[3].width = borders.leftright(); - rect[3].height = h() - SIZER_H * 2; - - // modify our shape window - XShapeCombineRectangles(fl_display, shape, ShapeBounding, 0, 0, rect, 4, ShapeSubtract, Unsorted); - // apply our shape window as mask - XShapeCombineShape(fl_display, fl_xid(this), ShapeBounding, 0, 0, shape, ShapeBounding, ShapeSet); - XDestroyWindow(fl_display, shape); -#endif -} - -// apply shape on edges, based on pixmap mask -#include "mask.xpm" -#include -void Frame::shape_edges(void) -{ - TRACE_FUNCTION("void Frame::shape_edges(void)"); -#if 0 - // TODO: finish with other three edges - Fl_Image img((const char**)mask_xpm); - Pixmap mask = img.create_mask(img.width(), img.height()); - - Window shape = XCreateSimpleWindow(fl_display, RootWindow(fl_display, fl_screen), - x(), y(), w(), h(), 0, 0, 0); - - XShapeCombineMask(fl_display, shape, ShapeBounding, 0, 0, mask, ShapeSubtract); - XShapeCombineShape(fl_display, fl_xid(this), ShapeBounding, 0, 0, shape, ShapeBounding, ShapeSet); - XDestroyWindow(fl_display, shape); -#endif -} - -void Frame::maximize(void) -{ - TRACE_FUNCTION("void Frame::maximize(void)"); - - if(state(FrameStateShaded)) - { - ELOG("Maximizing shaded windows is bugy as devil himself !"); - return; - } - - if(fdata->type == FrameTypeDialog) - { - ELOG("Dialogs should not be resized !"); - return; - } - - if(state(FrameStateMaximized)) - { - ELOG("Window is alread maximized"); - return; - } - - restore_x = x(); - restore_y = y(); - restore_w = w(); - restore_h = h(); - - set_size(screen_x, screen_y, screen_w, screen_h, false); - set_state(FrameStateMaximized); - - WindowManager::instance()->play_sound(SOUND_MAXIMIZE); -} - -void Frame::restore(void) -{ - TRACE_FUNCTION("void Frame::restore(void)"); - - if(!state(FrameStateMaximized)) - { - ELOG("Restore unmaximized window ???"); - return; - } - - set_size(restore_x, restore_y, restore_w, restore_h, false); - clear_state(FrameStateMaximized); - - WindowManager::instance()->play_sound(SOUND_RESTORE); -} - -/* First will inspect does window participate for WM_DELETE_WINDOW - * message, and if not, it will be killed. That is the life... - */ -void Frame::close_kill(void) -{ - TRACE_FUNCTION("void Frame::close_kill(void)"); - - Atom* protocols; - int n; - bool have_close = false; - - if(XGetWMProtocols(fl_display, fdata->window, &protocols, &n)) - { - for(int i = 0; i < n; i++) - { - if(protocols[i] == _XA_WM_DELETE_WINDOW) - have_close = true; - } - - XFree(protocols); - } - if(have_close) - SendMessage(fdata->window, _XA_WM_PROTOCOLS, _XA_WM_DELETE_WINDOW); - else - { - ELOG("Frame killed"); - XKillClient(fl_display, fdata->window); - } - - WindowManager::instance()->play_sound(SOUND_CLOSE); -} - -// window accepts input -void Frame::focus(void) -{ - TRACE_FUNCTION("void Frame::focus(void)"); - - if(state(FrameStateFocused)) - return; - - if(!ValidateDrawable(fdata->window)) - return; - - WindowManager::instance()->clear_focus_windows(); - - borders_color(FOCUSED); - if(show_titlebar) - titlebar->focus(); - - //XSetInputFocus(fl_display, fdata->window, RevertToPointerRoot, fl_event_time); - XSetInputFocus(fl_display, fdata->window, RevertToPointerRoot, CurrentTime); - XInstallColormap(fl_display, fdata->colormap); - - /* DO NOT use this ! - * SendMessage(fdata->window, _XA_WM_PROTOCOLS, _XA_WM_TAKE_FOCUS); - */ - - WindowManager::instance()->hints()->netwm_set_active_window(fdata->window); - set_state(FrameStateFocused); -} - -void Frame::unfocus(void) -{ - if(!state(FrameStateFocused)) - return; - - TRACE_FUNCTION("void Frame::unfocus(void)"); - - borders_color(UNFOCUSED); - if(show_titlebar) - titlebar->unfocus(); - - clear_state(FrameStateFocused); -} - -void Frame::raise(void) -{ - TRACE_FUNCTION("void Frame::raise(void)"); - - WindowManager* wm = WindowManager::instance(); - if(wm->stack_list.size() <= 1) - { - ELOG("Only one window, restacking skipped"); - focus(); - return; - } - - FrameList::iterator it = wm->stack_list.begin(); - FrameList::iterator last = wm->stack_list.end(); - - while(it != last) - { - if(*it == this) - { - wm->stack_list.erase(it); - wm->stack_list.push_front(*it); - } - - ++it; - } - wm->restack_windows(); - focus(); -} - -/* Send frame one stack position below. - * Note that as in raise(), aot_list is not checked - * since those windows are _always_ on top. This will - * rearange stack_list and call restack_windows(), as you guess. - * - * Yes, this can be avoided using XWindowChanges with - * x.sibling and x.stack_mode = Below, which is much faster - * but we will lose arangements in stack_list and posibility - * to update _NET_CLIENT_LIST_STACKING atom. So stick with this. - * - * PS: if you have idea how to combine XWindowChanges with X calls - * without needs to update stack_list, but to extract full stacking - * list for _NET_CLIENT_LIST_STACKING, let me know. - */ -void Frame::lower(void) -{ - TRACE_FUNCTION("void Frame::lower(void)"); - - WindowManager* wm = WindowManager::instance(); - - if(wm->stack_list.size() <= 1) - { - ELOG("Only one window, restacking skipped"); - return; - } - - FrameList::iterator top = wm->stack_list.begin(); - - /* We are not at the top. - * This will prevent rise-lower-rise effect when - * function is called multiple times. - */ - if(this != *top) - return; - - FrameList::iterator below = top; - ++below; - - if(*below) - { - std::swap(*top, *below); - } - - wm->restack_windows(); - focus(); -} - -/* When we want to shade window, child (fdata->window) must - * completely disapear (as should it be). Funny thing is - * if few pixels child is visible, some programs-windows - * will crash (like mrxvt). - */ -void Frame::shade(void) -{ - TRACE_FUNCTION("void Frame::shade(void)"); - - if(!show_titlebar) - return; - - if(state(FrameStateShaded)) - return; - - restore_x = x(); - restore_y = y(); - restore_w = w(); - restore_h = h(); - - // place it to outside frame - int px = -(fdata->plain.offset_x + fdata->plain.w); - int py = -(fdata->plain.offset_y + fdata->plain.h); - - XMoveWindow(fl_display, fdata->window, px, py); - XResizeWindow(fl_display, fl_xid(this), w(), titlebar->h() + borders.updown2x()); - - set_state(FrameStateShaded); - WindowManager::instance()->hints()->netwm_set_window_state(fdata); - - WindowManager::instance()->play_sound(SOUND_SHADE); - - // Configure not needed, since we do nothing usefull to window - //configure_notify(); -} - -void Frame::unshade(void) -{ - TRACE_FUNCTION("void Frame::unshade(void)"); - - if(!show_titlebar) - return; - - if(!state(FrameStateShaded)) - { - ELOG("Unshade not shaded window ???"); - return; - } - - XMoveResizeWindow(fl_display, fdata->window, fdata->plain.offset_x, fdata->plain.offset_y, - fdata->plain.w, fdata->plain.h); - XResizeWindow(fl_display, fl_xid(this), w(), restore_h); - - clear_state(FrameStateShaded); - WindowManager::instance()->hints()->netwm_set_window_state(fdata); - - WindowManager::instance()->play_sound(SOUND_SHADE); - - // Configure not needed, since we do nothing usefull to window - //configure_notify(); -} - -void Frame::borders_color(FrameBordersState s) -{ - TRACE_FUNCTION("void Frame::borders_color(FrameBordersState s)"); - - Fl_Color szc = borders.sizers_color(s); - sizer_top_left->color(szc); - sizer_top_right->color(szc); - sizer_bottom_left->color(szc); - sizer_bottom_right->color(szc); - - color(borders.border_color(s)); - redraw(); -} - -void Frame::show_sizers(void) -{ - TRACE_FUNCTION("void Frame::show_sizers(void)"); - - sizer_top_left->show(); - sizer_top_right->show(); - sizer_bottom_left->show(); - sizer_bottom_right->show(); -} - -void Frame::hide_sizers(void) -{ - TRACE_FUNCTION("void Frame::hide_sizers(void)"); - - sizer_top_left->hide(); - sizer_top_right->hide(); - sizer_bottom_left->hide(); - sizer_bottom_right->hide(); -} - -void Frame::set_cursor(CursorType t) -{ - WindowManager::instance()->set_cursor(this, t); -} - -#if 0 -/* This function will change window type, to some of - * netwm types. Note, this function should _not_ be used - * anywhere except from toolbar menu, where window can - * be modified (if allowed in options). - * - * TODO: If we want borderless window, netwm does not provide - * anything like _NET_WM_WINDOW_TYPE_SPLASH, but not for splashes. - * Maybe we should add something like _EDE_WM_WINDOW_TYPE_PLAIN ? - */ -void Frame::change_window_type(short type) -{ - TRACE_FUNCTION("void Frame::change_window_type(short type)"); - - if(type == fdata->type) - return; - - // set fdata->window borders, althought fdata->plain.borders is - // always 0 - XSetWindowBorderWidth(fl_display, fdata->window, fdata->plain.border); - - fdata->type = type; - - switch(fdata->type) - { - case FrameTypeNormal: - borders.leftright(BORDER_LEFTRIGHT); - borders.updown(BORDER_UPDOWN); - break; - case FrameTypeDialog: - borders.leftright(BORDER_THIN_LEFTRIGHT); - borders.updown(BORDER_THIN_UPDOWN); - break; - case FrameTypeSplash: - case FrameTypeDesktop: - case FrameTypeMenu: - case FrameTypeDock: - borders.leftright(0); - borders.updown(0); - if(show_titlebar && titlebar) - { - titlebar->hide(); - show_titlebar = false; - } - // they don't have visible borders - break; - } - - // TODO: setting up initial window sizes - // should not be in setup_borders(); - if(fdata->type == FrameTypeNormal || fdata->type == FrameTypeDialog) - { - int tx, ty; - tx = fdata->plain.x - borders.leftright(); - ty = fdata->plain.y - borders.updown(); - /* - if(tx < 0) - fdata->plain.x = borders.leftright(); - if(ty < 0) - fdata->plain.y = borders.updown(); - */ - x(fdata->plain.x); - y(fdata->plain.y); - - w(fdata->plain.w + borders.leftright2x()); - h(fdata->plain.h + borders.updown2x()); - } - // means only borders - else - { - /* First resize window to size of child (x,y will be preserved) - * then resize child. - * XXX: child window's x,y are offsets from x,y of parent, so - * they are 0. - * We can't use Fl_Window::size(), since explicit window sizing - * does not work. In that case, slap it with hammer ! - */ - XResizeWindow(fl_display, fl_xid(this), fdata->plain.w, fdata->plain.h); - XMoveResizeWindow(fl_display, fdata->window, 0, 0, fdata->plain.w, fdata->plain.h); - } - - WindowManager::instance()->hints()->netwm_set_window_type(fdata); -} -#endif -/* After XGrabButton, WindowManager will FL_PUSH events - * redirect here. We must make sure after processing them - * redirect events further to fdata->window. - * - * We should not worry about transients (or any window - * it aot_list) since they will be always on top. - * - * TODO: Should we allow events on below windows event - * if transients are shown ??? - */ -void Frame::content_click(void) -{ - TRACE_FUNCTION("void Frame::content_click(void)"); - - ELOG("Clicked on frame: %s", FRAME_NAME(fdata)); - - if(fl_xevent.xbutton.button == 1) - raise(); - - XAllowEvents(fl_display, ReplayPointer, CurrentTime); -} - -void Frame::show_coordinates_window(void) -{ - if(!show_coordinates) - return; - - TRACE_FUNCTION("void Frame::show_coordinates_window(void)"); - - // calculate center of frame, and show it there - int cx = (x() + w()/2) - (cview->w()/2); - int cy = (y() + h()/2) - (cview->h()/2); - - /* Check if we are inside screen coordinates or showing window - * beyond them will not show window at all! - */ - if(cx < screen_x) - cx = screen_x; - if(cy < screen_y) - cy = screen_y; - if((cx + cview->w()) > screen_w) - cx = screen_w - cview->w(); - if((cy + cview->h()) > screen_h) - cy = screen_h - cview->h(); - - cview->position(cx, cy); - //if(!cview->shown()) - cview->show(); -} - -void Frame::update_coordinates_window(void) -{ - if(!show_coordinates) - return; - - TRACE_FUNCTION("void Frame::update_coordinates_window(void)"); - int cx = (x() + w()/2) - (cview->w()/2); - int cy = (y() + h()/2) - (cview->h()/2); - - if(cx < screen_x) - cx = screen_x; - if(cy < screen_y) - cy = screen_y; - if((cx + cview->w()) > screen_w) - cx = screen_w - cview->w(); - if((cy + cview->h()) > screen_h) - cy = screen_h - cview->h(); - - cview->position(cx, cy); - cview->display_data(x(), y(), w(), h()); -} - -void Frame::hide_coordinates_window(void) -{ - if(!show_coordinates) - return; - - TRACE_FUNCTION("void Frame::hide_coordinates_window(void)"); - cview->hide(); -} - -// handle events that efltk understainds -int Frame::handle(int event) -{ - return events->handle_fltk(event); -} - -int Frame::handle(XEvent* event) -{ - return events->handle_x(event); -} - -// this is here so FrameEventHandler can access Fl_Window -int Frame::handle_parent(int event) -{ - return Fl_Window::handle(event); -} - -/* Grab pointer, scheduling pointer events for future use. - * The only thing I can say is this is the only way of correct - * usage, althought I would like to see pointer in GrabModeAsync. - * Later is hardly possible (think so) because efltk will not be - * able to synchronize itself with X events. - */ -void Frame::grab_cursor(void) -{ - TRACE_FUNCTION("void Frame::grab_cursor(void)"); - - if(cursor_grabbed) - return; - - // use currently set cursor - Cursor cc = WindowManager::instance()->cursor_handler()->current_cursor(); - - if(XGrabPointer(fl_display, fl_xid(this), - true, /* owner events */ - ButtonMotionMask | ButtonPressMask |ButtonReleaseMask | PointerMotionMask, - GrabModeAsync, /* pointer mode */ - GrabModeAsync, /* keyboard mode */ - None, - cc, fl_event_time) == GrabSuccess) - { - //XAllowEvents(fl_display, AsyncPointer, CurrentTime); - cursor_grabbed = true; - ELOG("Cursor grabbed"); - } -} - -void Frame::ungrab_cursor(void) -{ - TRACE_FUNCTION("void Frame::ungrab_cursor(void)"); - - if(!cursor_grabbed) - return; - - ELOG("Cursor ungrabbed"); - Fl::event_is_click(0); // avoid double click - //XAllowEvents(fl_display, Fl::event() == FL_PUSH ? ReplayPointer : AsyncPointer, CurrentTime); - XUngrabPointer(fl_display, fl_event_time); - XFlush(fl_display); // make sure we are out of danger before continuing... - // because we "pushed back" the FL_PUSH, make it think no buttons are down: - Fl::e_state &= 0xffffff; - Fl::e_keysym = 0; - - cursor_grabbed = false; -} - -void Frame::display_internals(void) -{ - EPRINTF("-----------------------------------\n"); - EPRINTF("window : %lx\n", fdata->window); - EPRINTF("transient : %lx\n", fdata->transient_win); - EPRINTF("colormap : %lx\n", fdata->colormap); - EPRINTF("state : %li\n", fdata->state); - EPRINTF("options : %li\n", fdata->option); - EPRINTF("type : %i\n", fdata->type); - EPRINTF("min width : %i\n", fdata->plain.min_w); - EPRINTF("min height : %i\n", fdata->plain.min_h); - EPRINTF("max width : %i\n", fdata->plain.max_w); - EPRINTF("max height : %i\n", fdata->plain.max_h); - EPRINTF("x : %i\n", fdata->plain.x); - EPRINTF("y : %i\n", fdata->plain.y); - EPRINTF("w : %i\n", fdata->plain.w); - EPRINTF("h : %i\n", fdata->plain.h); - EPRINTF("x (framed) : %i\n", x()); - EPRINTF("y (framed) : %i\n", y()); - EPRINTF("w (framed) : %i\n", w()); - EPRINTF("h (framed) : %i\n", h()); - EPRINTF("gravity : %i\n", fdata->win_gravity); - EPRINTF("autoplace : %i\n", fdata->autoplace); - EPRINTF("have icon : %s\n", (fdata->icon_pixmap ? "yes" : "no")); - EPRINTF("have icon mask : %s\n", (fdata->icon_mask ? "yes" : "no")); - EPRINTF("label : %s\n", (fdata->label ? fdata->label : "NULL")); - EPRINTF("-----------------------------------\n"); -} diff --git a/edewm/Frame.h b/edewm/Frame.h deleted file mode 100644 index affef12..0000000 --- a/edewm/Frame.h +++ /dev/null @@ -1,344 +0,0 @@ -/* - * $Id: Frame.h 1736 2006-08-19 00:38:53Z 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 _FRAME_H_ -#define _FRAME_H_ - -#include -#include -#include - -#include "Cursor.h" - -// frame states (internal) -#define FrameStateNormal (1 << 0) // neither of below states -#define FrameStateUnmapped (1 << 1) // or Withdrawn -#define FrameStateDestroyed (1 << 2) // destroyed window, handled by WindowManager -#define FrameStateFocused (1 << 3) - -// frame states (netwm) -#define FrameStateModal (1 << 4) // transients -#define FrameStateSticky (1 << 5) -#define FrameStateShaded (1 << 6) -#define FrameStateHidden (1 << 7) // or iconized -#define FrameStateIconized FrameStateHidden - -/* These two types are used to emit _NET_WM_STATE_ABOVE and _NET_WM_STATE_BELOW. - * For me it is unclear why they didn't called _NET_WM_STATE_ALWAYS_(ABOVE,BELOW) - * since all wm's set them in this state (except transient who are always above all - * windows), and stacking order can't be changed. Anyway, enjoy with more apropriate - * names. - */ -#define FrameStateAlwaysAbove (1 << 8) -#define FrameStateAlwaysBelow (1 << 9) - -#define FrameStateMaximizedHorz (1 << 10) -#define FrameStateMaximizedVert (1 << 11) -#define FrameStateMaximized (FrameStateMaximizedHorz | FrameStateMaximizedVert) - -// some options frame can have (or their combinations) -/* -#define FrameOptSkipList (1 << 0) // some reason why not in list -#define FrameOptBorder (1 << 1) -#define FrameOptThinBorder (1 << 2) -#define FrameOptTitlebar (1 << 3) -#define FrameOptSysmenu (1 << 4) // what a hell !?!? -#define FrameOptMinimize (1 << 5) -#define FrameOptMaxmize (1 << 6) -#define FrameOptClose (1 << 7) -#define FrameOptResize (1 << 8) -#define FrameOptMove (1 << 9) -#define FrameOptTakeFocus (1 << 10) -#define FrameOptKeepAspect (1 << 11) -*/ - -#define FrameOptSkipList (1 << 0) -#define FrameOptHaveBorder (1 << 1) -#define FrameOptHaveTitlebar (1 << 2) -#define FrameOptResizeable (1 << 3) -#define FrameOptMoveable (1 << 4) -#define FrameOptCloseable (1 << 5) -#define FrameOptHideable (1 << 6) -#define FrameOptTakeFocus (1 << 7) -#define FrameOptKeepAspect (1 << 8) - -/* some events echo UnmapNotify, like ReparentNotify, and if we - * start wm on existing X session with open windows, this flag will - * prevent they be unmapped - */ -#define FrameOptIgnoreUnmap (1 << 12) - -// frame type -#define FrameTypeNormal 0 -#define FrameTypeDialog 1 -#define FrameTypeSplash 2 -#define FrameTypeDock 3 -#define FrameTypeToolbar 4 -#define FrameTypeMenu 5 -#define FrameTypeUtil 6 -#define FrameTypeDesktop 7 - -// type of resizing; means from which -// side of window is resize doing -#define ResizeTypeNone (1 << 0) -#define ResizeTypeLeft (1 << 1) -#define ResizeTypeRight (1 << 2) -#define ResizeTypeUp (1 << 3) -#define ResizeTypeDown (1 << 4) -#define ResizeTypeUpLeft (ResizeTypeUp | ResizeTypeLeft) -#define ResizeTypeDownLeft (ResizeTypeDown | ResizeTypeLeft) -#define ResizeTypeUpRight (ResizeTypeUp | ResizeTypeRight) -#define ResizeTypeDownRight (ResizeTypeDown | ResizeTypeRight) -#define ResizeTypeAll (ResizeTypeUp | ResizeTypeDown | ResizeTypeLeft | ResizeTypeRight) - -// type of recalc_geometry() -#define GeometryRecalcAll 0 -#define GeometryRecalcAllXY 1 // recalc all, except for plain w and h -#define GeometryRecalcPlain 2 - -// now lets go to code... - -// window sizes without borders, titlebar etc. -struct WindowGeometry -{ - int x, y, w, h; - int offset_x, offset_y; - int min_w, min_h; - int max_w, max_h; - int inc_w, inc_h; - int border; -}; - -struct FrameData -{ - Window window; - Window transient_win; - Colormap colormap; - - WindowGeometry plain; - - Pixmap icon_pixmap; - Pixmap icon_mask; - char* label; - bool label_alocated; - long state; - long option; - short type; - - int win_gravity; - bool autoplace; - bool have_transient; - -// Icon* icon; -}; - -struct Overlay -{ - int x, y, w, h; - GC inverted_gc; -}; - -enum FrameBordersState -{ - FOCUSED = 1, - UNFOCUSED, - CLICKED -}; - -class FrameBorders -{ - private: - Fl_Color focused; - Fl_Color unfocused; - Fl_Color clicked; - Fl_Color sizers_focused; - Fl_Color sizers_unfocused; - Fl_Color sizers_clicked; - int updown_w; - int updown2x_w; - int leftright_h; - int leftright2x_h; - bool is_shaped; - bool is_border; - void item_color(Fl_Color c, FrameBordersState s, bool is_border); - Fl_Color item_color(FrameBordersState s, bool is_border); - - public: - void border_color(Fl_Color c, FrameBordersState s) { item_color(c, s, true); } - void sizers_color(Fl_Color c, FrameBordersState s) { item_color(c, s, false); } - void updown(int s); - void leftright(int s); - void shaped(bool s); - - Fl_Color border_color(FrameBordersState s) { return item_color(s, true); } - Fl_Color sizers_color(FrameBordersState s) { return item_color(s, false); } - int updown(void) { return updown_w; } - int updown2x(void) { return updown2x_w; } - int leftright(void) { return leftright_h; } - int leftright2x(void) { return leftright2x_h; } - bool shaped(void) { return is_shaped; } -}; - -/* Window responsible for displaying parent - * coordinates. It will _not_ be framed. - */ -class CoordinatesView : public Fl_Window -{ - private: - char data[100]; - Fl_Box* data_box; - public: - CoordinatesView(); - ~CoordinatesView(); - void display_data(int x, int y, int w, int h); -}; - - -class Titlebar; -class FrameEventHandler; - -// Head honcho of everything -class Frame : public Fl_Window -{ - private: - friend class FrameEventHandler; - - FrameData* fdata; - int screen_x, screen_y, screen_w, screen_h; - // sizes used when we do restore() - int restore_x, restore_y, restore_w, restore_h; - - bool opaque_move_resize; - bool show_titlebar; - bool is_moving; - bool is_resizing; - bool cursor_grabbed; - bool snap_move; - bool show_coordinates; - - FrameBorders borders; - FrameEventHandler* events; - - Titlebar* titlebar; - - Fl_Box* sizer_top_left; - Fl_Box* sizer_top_right; - Fl_Box* sizer_bottom_left; - Fl_Box* sizer_bottom_right; - - CoordinatesView* cview; - - Overlay overlay; - - // private loaders - void feed_data(XWindowAttributes* attrs); - //void load_wm_hints(void); - /* void load_size_hints(void); */ - void load_label(void); - - // preparers - void setup_borders(void); - // void init_sizes(void); - void init_overlay(int border_size); - void reparent_window(void); - void place_sizers(int x, int y, int w, int h); - long resize_type(int x, int y); - - void recalc_geometry(int x, int y, int w, int h, short rtype); - void configure_notify(void); - void shape_borders(void); - void shape_edges(void); - - void show_sizers(void); - void hide_sizers(void); - - void draw_overlay(int x, int y, int w, int h); - void clear_overlay(void); - - // this is here so FrameEventHandler can access Fl_Window - int handle_parent(int event); - - Frame(const Frame&); - Frame operator=(const Frame&); - - public: - Frame(Window, XWindowAttributes* = 0); - ~Frame(); - - Window window(void) { return fdata->window; } - Window transient_window(void) { return fdata->transient_win; } - - void settings_changed(void) { } - int handle(int e); - int handle(XEvent* e); - void destroy(void); - void display_internals(void); - void content_click(void); - - bool frame_type(short t) { return ((fdata->type == t) ? true : false); } - - void set_state(long s) { fdata->state |= s; } - bool state(long s) { return ((fdata->state & s) == s) ? true : false; } - void clear_state(long s) { fdata->state &= ~s; } - void clear_all_states(void) { fdata->state = 0; } - - void set_option(long o) { fdata->option |= o; } - bool option(long o) { return ((fdata->option & o) == o) ? true : false; } - void clear_option(long o) { fdata->option &= ~o; } - void clear_all_options(void) { fdata->option = 0; } - - // public loaders - void load_colormap(Colormap col = 0); - - // window manipulators - void set_size(int x, int y, int w, int h, bool apply_on_plain); - void move_window(int x, int y); - void resize_window(int mouse_x, int mouse_y, long direction); - void maximize(void); - void restore(void); - void shade(void); - void unshade(void); - void close_kill(void); - void focus(void); - void unfocus(void); - void raise(void); - void lower(void); - void borders_color(FrameBordersState s); - void set_cursor(CursorType t); - // void change_window_type(short t); - void map(void); - void unmap(void); - - void show_coordinates_window(void); - void update_coordinates_window(void); - void hide_coordinates_window(void); - - //const FrameBorders& frame_borders(void) { return borders; } - - /* These function are used to determine how Frame - * will dispatch events between titlebar and sizers - */ - void move_start(void) { is_moving = true; } - void move_end(void) { is_moving = false; } - bool moving(void) { return is_moving; } - void resize_start(void) { is_resizing = true; } - void resize_end(void) { is_resizing = false; } - bool resizing(void) { return is_resizing; } - - // TODO: should this be in WindowManager or here ??? - void grab_cursor(void); - void ungrab_cursor(void); - - bool destroy_scheduled(void) { return state(FrameStateDestroyed); } -}; - -#endif diff --git a/edewm/Hints.cpp b/edewm/Hints.cpp deleted file mode 100644 index 179cf55..0000000 --- a/edewm/Hints.cpp +++ /dev/null @@ -1,512 +0,0 @@ -/* - * $Id: Hints.cpp 1736 2006-08-19 00:38:53Z 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. - */ - -#include "Hints.h" -#include "Tracers.h" -#include "Frame.h" -#include "Atoms.h" -#include "Windowmanager.h" - -#include -#include // CARD32 -#include - -#define MwmHintsDecorations (1 << 1) - -#define MwmDecorAll (1 << 0) -#define MwmDecorBorder (1 << 1) -#define MwmDecorHandle (1 << 2) -#define MwmDecorTitle (1 << 3) -#define MwmDecorMenu (1 << 4) -#define MwmDecorMinimize (1 << 5) -#define MwmDecorMaximize (1 << 6) - -#define PropMotifHintsElements 3 - -struct MwmHints -{ - unsigned long flags; - unsigned long functions; - unsigned long decorations; -}; - -void Hints::icccm_size(FrameData* f) -{ - TRACE_FUNCTION("void Hints::icccm_size(FrameData* f)"); - - assert(f != 0); - long supplied; - XSizeHints* sh = XAllocSizeHints(); - - if(!XGetWMNormalHints(fl_display, f->window, sh, &supplied)) - sh->flags = 0; - - if(sh->flags & PResizeInc) - { - if(sh->width_inc < 1) - sh->width_inc = 1; - if(sh->height_inc < 1) - sh->height_inc = 1; - } - - /* Check if PBaseSize flag is set. If not - * fill it with minimal values and use them below. - */ - if(!(sh->flags & PBaseSize)) - sh->base_width = sh->base_height = 0; - - if(!(sh->flags & PMinSize)) - { - sh->min_width = sh->base_width; - sh->min_height= sh->base_height; - } - - if(!(sh->flags & PMaxSize)) - { - sh->max_width = 32767; - sh->max_height = 32767; - } - - if(sh->max_width < sh->min_width || sh->max_width <= 0) - sh->max_width = 32767; - if(sh->max_height < sh->min_height || sh->max_height <= 0) - sh->max_height = 32767; - - if(!(sh->flags & PWinGravity)) - { - sh->win_gravity = NorthWestGravity; - sh->flags |= PWinGravity; - } - - f->plain.max_w = sh->max_width; - f->plain.max_h = sh->max_height; - //f->plain.w = sh->base_width; - //f->plain.h = sh->base_height; - f->plain.min_w = sh->min_width; - f->plain.min_h = sh->min_height; - f->win_gravity = sh->win_gravity; - - // TODO: maybe calculate aspect_min and aspect_max ? - if(sh->flags & PAspect) - f->option |= FrameOptKeepAspect; - - f->autoplace = (!(sh->flags & (USPosition|PPosition))); - - XFree(sh); -} - -void Hints::icccm_wm_hints(FrameData* f) -{ - TRACE_FUNCTION("void Hints::icccm_wm_hints(FrameData* f)"); - assert(f != NULL); - - XWMHints* wm_hints = XAllocWMHints(); - wm_hints = XGetWMHints(fl_display, f->window); - if(!wm_hints) - { - ELOG("XGetWMHints failed!"); - return; - } - - if((wm_hints->flags & IconPixmapHint) && wm_hints->icon_pixmap) - f->icon_pixmap = wm_hints->icon_pixmap; - if((wm_hints->flags & IconMaskHint) &&wm_hints->icon_mask) - f->icon_mask = wm_hints->icon_mask; - - switch(wm_hints->initial_state) - { - case WithdrawnState: - XRemoveFromSaveSet(fl_display, f->window); - break; - case IconicState: - f->state = FrameStateIconized; - break; - case NormalState: - default: - f->state = FrameStateNormal; - break; - } - - // check for focus - if((wm_hints->flags & InputHint) && !wm_hints->input) - f->option &= ~FrameOptTakeFocus; // window does not want focus - else - f->option |= FrameOptTakeFocus; // window want focus; - - XFree(wm_hints); -} - -char* Hints::icccm_label(Window win, bool* allocated) -{ - TRACE_FUNCTION("char* Hints::icccm_label(Window win, bool* allocated)"); - - XTextProperty xtp; - char* title = 0; - if(XGetWMName(fl_display, win, &xtp)) - { - if(xtp.encoding == XA_STRING) - { - title = strdup((const char*)xtp.value); - *allocated = true; - } - else - { - ELOG("X11 UTF8 text property not supported, at least for now..."); - *allocated = false; - } - - XFree(xtp.value); - } - - return title; -} - -void Hints::icccm_set_iconsizes(WindowManager* wm) -{ - TRACE_FUNCTION("void Hints::icccm_set_iconsizes(WindowManager* wm)"); - assert(wm != 0); - - XIconSize* is = XAllocIconSize(); - if(!is) - { - ELOG("XAllocIconSize failed!"); - return; - } - - is->min_width = is->min_height = 8; - is->max_width = is->max_height = 48; - is->width_inc = is->height_inc = 1; - ELOG("setting icon sizes"); - XSetIconSizes(fl_display, WindowManager::instance()->root_window(), is, 1); - XFree(is); -} - -void Hints::icccm_configure(FrameData* f) const -{ - TRACE_FUNCTION("void Hints::icccm_configure(FrameData* f) const"); - - assert(f != 0); - - XConfigureEvent ce; - ce.send_event = True; - ce.display = fl_display; - ce.type = ConfigureNotify; - ce.event = f->window; - ce.window = f->window; - ce.x = f->plain.x; - ce.y = f->plain.y; - ce.width = f->plain.w; - ce.height = f->plain.h; - ce.border_width = f->plain.border; - ce.above = None; - ce.override_redirect = False; - XSendEvent(fl_display, f->window, False, StructureNotifyMask, (XEvent*)&ce); -} - -char* Hints::netwm_label(Window win, bool* allocated) -{ - TRACE_FUNCTION("char* Hints::netwm_label(Window win, bool* allocated)"); - - unsigned char* title = 0; - Atom real_type; - int real_format; - unsigned long items_read, items_left; - - int status = XGetWindowProperty(fl_display, win, _XA_NET_WM_NAME, - 0L, 0x7fffffff, False, _XA_UTF8_STRING, &real_type, &real_format, &items_read, &items_left, - (unsigned char**)&title); - - if(status != Success && items_read != 1) - { - *allocated = false; - if(title) - XFree(title); - - return 0; - } - - *allocated = true; - return (char*)title; -} - -void Hints::netwm_window_type(FrameData* fd) -{ - TRACE_FUNCTION("short Hints::netwm_window_type(FrameData* fd) const"); - - Atom *data; - Atom real_type; - int real_format; - unsigned long items_read, items_left; - short type = FrameTypeNormal; - - int status = XGetWindowProperty(fl_display, fd->window, _XA_NET_WM_WINDOW_TYPE, - 0L, 8L, false, XA_ATOM, &real_type, &real_format, &items_read, &items_left, - (unsigned char**)&data); - - if(status != Success || !items_read) - { - ELOG("Netwm say: unknown window type, using FrameTypeNormal"); - type = FrameTypeNormal; - } - - for(unsigned int i = 0; i < items_read; i++) - { - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_DOCK) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_DOCK"); - type = FrameTypeDock; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_TOOLBAR) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_TOOLBAR"); - type = FrameTypeToolbar; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_MENU) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_MENU"); - type = FrameTypeMenu; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_UTIL) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_UTIL"); - type = FrameTypeUtil; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_DIALOG) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_DIALOG"); - type = FrameTypeDialog; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_SPLASH) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_SPLASH"); - type = FrameTypeSplash; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_DESKTOP) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_DESKTOP"); - type = FrameTypeDesktop; - break; - } - - if(data[i] == _XA_NET_WM_WINDOW_TYPE_NORMAL) - { - ELOG("_XA_NET_WM_WINDOW_TYPE_NORMAL"); - type = FrameTypeNormal; - break; - } - } - - XFree(data); - fd->type = type; -} - -void Hints::netwm_set_window_type(FrameData* fd) -{ - TRACE_FUNCTION("void Hints::netwm_set_window_type(FrameData* fd)"); - assert(fd != 0); - - Atom to_set[1]; - switch(fd->type) - { - case FrameTypeNormal: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_NORMAL; - break; - case FrameTypeDesktop: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_DESKTOP; - break; - case FrameTypeSplash: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_SPLASH; - break; - case FrameTypeUtil: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_UTIL; - break; - case FrameTypeMenu: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_MENU; - break; - case FrameTypeToolbar: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_TOOLBAR; - break; - case FrameTypeDialog: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_DIALOG; - break; - case FrameTypeDock: - to_set[0] = _XA_NET_WM_WINDOW_TYPE_DOCK; - break; - default: - EFATAL("Type unknown"); - to_set[0] = _XA_NET_WM_WINDOW_TYPE_NORMAL; - break; - } - - XChangeProperty(fl_display, fd->window, _XA_NET_WM_WINDOW_TYPE, XA_ATOM, 32, - PropModeReplace, (unsigned char*)to_set, 1); -} - -long Hints::netwm_window_state(FrameData* fd) const -{ - TRACE_FUNCTION("long Hints::netwm_window_state(FrameData* fd) const"); - assert(fd != 0); - - Atom *data; - Atom real_type; - int real_format; - unsigned long items_read, items_left; - - int status = XGetWindowProperty(fl_display, fd->window, _XA_NET_WM_STATE, - 0L, 12L, false, XA_ATOM, &real_type, &real_format, &items_read, &items_left, - (unsigned char**)&data); - - if(status != Success || !items_read) - return FrameTypeNormal; - - for(unsigned int i = 0; i < items_read; i++) - { - if(data[i] == _XA_NET_WM_STATE_MODAL) - ELOG("_XA_NET_WM_STATE_MODAL"); - else if(data[i] == _XA_NET_WM_STATE_STICKY) - ELOG("_XA_NET_WM_STATE_STICKY"); - else if(data[i] == _XA_NET_WM_STATE_MAXIMIZED_VERT) - ELOG("_XA_NET_WM_STATE_MAXIMIZED_VERT"); - else if(data[i] == _XA_NET_WM_STATE_MAXIMIZED_HORZ) - ELOG("_XA_NET_WM_STATE_MAXIMIZED_HORZ"); - else if(data[i] == _XA_NET_WM_STATE_SHADED) - ELOG("_XA_NET_WM_STATE_SHADED"); - else if(data[i] == _XA_NET_WM_STATE_SKIP_TASKBAR) - ELOG("_XA_NET_WM_STATE_SKIP_TASKBAR"); - else if(data[i] == _XA_NET_WM_STATE_SKIP_PAGER) - ELOG("_XA_NET_WM_STATE_SKIP_PAGER"); - else if(data[i] == _XA_NET_WM_STATE_HIDDEN) - ELOG("_XA_NET_WM_STATE_HIDDEN"); - else if(data[i] == _XA_NET_WM_STATE_FULLSCREEN) - ELOG("_XA_NET_WM_STATE_FULLSCREEN"); - else if(data[i] == _XA_NET_WM_STATE_ABOVE) - ELOG("_XA_NET_WM_STATE_ABOVE"); - else if(data[i] == _XA_NET_WM_STATE_BELOW) - ELOG("_XA_NET_WM_STATE_BELOW"); - else if(data[i] == _XA_NET_WM_STATE_DEMANDS_ATTENTION) - ELOG("_XA_NET_WM_STATE_DEMANDS_ATTENTION"); - } - - XFree(data); - return FrameStateNormal; -} - -void Hints::netwm_set_window_state(FrameData* fd) -{ - TRACE_FUNCTION("void Hints::set_window_state(FrameData* fd)"); - - assert(fd != 0); - Atom data[10]; - int i = 0; - - if(fd->state & FrameStateSticky) - data[i++] = _XA_NET_WM_STATE_STICKY; - if(fd->state & FrameStateShaded) - data[i++] = _XA_NET_WM_STATE_SHADED; - if(fd->state & FrameStateAlwaysAbove) - data[i++] = _XA_NET_WM_STATE_ABOVE; - if(fd->state & FrameStateAlwaysBelow) - data[i++] = _XA_NET_WM_STATE_BELOW; - if((fd->state & FrameStateMaximizedHorz) || (fd->state & FrameStateMaximized)) - data[i++] = _XA_NET_WM_STATE_MAXIMIZED_HORZ; - if((fd->state & FrameStateMaximizedVert) || (fd->state & FrameStateMaximized)) - data[i++] = _XA_NET_WM_STATE_MAXIMIZED_VERT; - - XChangeProperty(fl_display, fd->window, _XA_NET_WM_STATE, XA_ATOM, 32, - PropModeReplace, (unsigned char*)data, i); -} - -void Hints::netwm_set_active_window(Window win) -{ - TRACE_FUNCTION("void Hints::netwm_set_active_window(Window win)"); - - XChangeProperty(fl_display, WindowManager::instance()->root_window(), _XA_NET_ACTIVE_WINDOW, XA_WINDOW, 32, - PropModeReplace, (unsigned char *)&win, 1); -} - -void Hints::netwm_strut(Window win, int* x, int* y, int* w, int* h) const -{ - TRACE_FUNCTION("void Hints::netwm_strut(Window win, int* x, int* y, int* w, int* h) const"); - - CARD32 *data; - Atom real_type; - int real_format; - unsigned long items_read, items_left; - - int status = XGetWindowProperty(fl_display, win, _XA_NET_WM_STRUT, - 0L, 0x7fffffff, False, XA_CARDINAL, &real_type, &real_format, &items_read, &items_left, - (unsigned char**)&data); - - ELOG("STRUT: items_read %i", items_read); - if(status != Success) - return; - - if((items_read / sizeof(CARD32)) != 4) - { - ELOG("STRUT: window have wrong strut %i", items_read/sizeof(CARD32)); - return; - } - - ELOG("STRUT: %i %i %i %i", data[0], data[1], data[2], data[3]); - XFree((char*)data); -} - -void Hints::mwm_load_hints(FrameData* fd) -{ - TRACE_FUNCTION("void Hints::mwm_load_hints(FrameData* fd)"); - assert(fd != 0); - - Atom real_type; - int real_format; - unsigned long items_read, items_left; - MwmHints* mwm; - - int status = XGetWindowProperty(fl_display, fd->window, _XA_MOTIF_HINTS, - 0L, 20L, false, _XA_MOTIF_HINTS, &real_type, &real_format, &items_read, &items_left, - (unsigned char**)&mwm); - - if(status == Success && items_read /*>= PropMotifHintsElements*/) - { - ELOG("MWM: got hints !!!"); - if((mwm->flags & MwmHintsDecorations)) - { - if(mwm->decorations & MwmDecorAll) - ELOG("MwmDecorAll"); - else - { - if(mwm->decorations & MwmDecorTitle) - ELOG("MwmHintsDecorTitle"); - if(mwm->decorations & MwmDecorBorder) - ELOG("MwmHintsDecorBorder"); - if(mwm->decorations & MwmDecorHandle) - ELOG("MwmHintsDecorHandle"); - } - } - else - ELOG("mwm: no decor at all"); - } - - XFree(mwm); -} diff --git a/edewm/Hints.h b/edewm/Hints.h deleted file mode 100644 index 4f40449..0000000 --- a/edewm/Hints.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * $Id: Hints.h 1736 2006-08-19 00:38:53Z 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 __HINTS_H__ -#define __HINTS_H__ - -#include - -struct FrameData; -class WindowManager; - -struct Hints -{ - void icccm_size(FrameData* f); - void icccm_wm_hints(FrameData* f); - char* icccm_label(Window win, bool* allocated); - void icccm_set_iconsizes(WindowManager* wm); - void icccm_configure(FrameData* f) const; - - char* netwm_label(Window win, bool* allocated); - void netwm_window_type(FrameData* fd); - void netwm_set_window_type(FrameData* fd); - long netwm_window_state(FrameData* fd) const; - void netwm_set_window_state(FrameData* fd); - void netwm_set_active_window(Window win); - void netwm_strut(Window win, int* x, int* y, int* w, int* h) const; - - void mwm_load_hints(FrameData* fd); -}; - -#endif diff --git a/edewm/Jamfile b/edewm/Jamfile deleted file mode 100644 index b898509..0000000 --- a/edewm/Jamfile +++ /dev/null @@ -1,18 +0,0 @@ -# -# $Id$ -# -# Part of Equinox Desktop Environment (EDE). -# Copyright (c) 2000-2007 EDE Authors. -# -# This program is licensed under terms of the -# GNU General Public License version 2 or newer. -# See COPYING for details. - -SubDir TOP edewm ; - -SOURCE = [ Wildcard *.cpp ] ; -POFILES = [ Wildcard locale : *.po ] ; - -EfltkProgram edewm : $(SOURCE) ; -TranslationStrings locale : $(SOURCE) ; -Translation locale : $(POFILES) ; diff --git a/edewm/Sound.cpp b/edewm/Sound.cpp deleted file mode 100644 index 42e9306..0000000 --- a/edewm/Sound.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* - * $Id: Sound.cpp 1697 2006-07-21 15:01:05Z 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. - */ - -#include "Sound.h" -#include "debug.h" - -#ifdef SOUND - #include - #include -#endif - -#include -#include -#include // free -#include // strdup - -SoundSystem::SoundSystem() -{ -#ifdef SOUND - device = NULL; - inited = false; - down = false; -#endif -} - -SoundSystem::~SoundSystem() -{ -#ifdef SOUND - if(!down) - shutdown(); // just in case -#endif -} - -void SoundSystem::init(void) -{ -#ifdef SOUND - EPRINTF("Loading sound system\n"); - - ao_initialize(); - default_driver = ao_default_driver_id(); - - for(int i = 0; i < KNOWN_SOUNDS; i++) - { - event_sound[i].allocated = false; - event_sound[i].loaded = false; - event_sound[i].file_to_play = NULL; - } - - inited = true; -#endif -} - -void SoundSystem::shutdown(void) -{ -#ifdef SOUND - EPRINTF("Shutting down sound system\n"); - - ao_shutdown(); - - for(int i = 0; i < KNOWN_SOUNDS; i++) - { - if(event_sound[i].allocated) - free(event_sound[i].file_to_play); - } - - down = true; -#endif -} - -void SoundSystem::add(short event, const char* file) -{ -#ifdef SOUND - assert(event < KNOWN_SOUNDS); - if(event_sound[event].allocated) - free(event_sound[event].file_to_play); - - event_sound[event].file_to_play = strdup(file); - event_sound[event].allocated = true; - event_sound[event].loaded = true; -#endif -} - -int SoundSystem::play(short event) -{ -#ifdef SOUND - assert(event < KNOWN_SOUNDS); - if(event_sound[event].loaded) - play(event_sound[event].file_to_play); - else - ELOG("Skipping this sound, no file for it"); -#endif - return 1; -} - -int SoundSystem::play(const char* fname) -{ -#ifdef SOUND - assert(inited != false); - assert(fname != NULL); - - FILE* f = fopen(fname, "rb"); - if(f == NULL) - { - ELOG("Can't open %s\n", fname); - return 0; - } - - OggVorbis_File vf; - vorbis_info* vi; - - if(ov_open(f, &vf, NULL, 0) < 0) - { - ELOG("%s does not appear to be ogg file\n"); - fclose(f); - return 0; - } - - // read and print comments - char** comm = ov_comment(&vf, -1)->user_comments; - vi = ov_info(&vf, -1); - - while(*comm) - { - ELOG("%s", *comm); - comm++; - } - - assert(vi != NULL); - - format.bits = 4 * 8; // TODO: should be word_size * 8 - format.channels = vi->channels; - format.rate = vi->rate; - format.byte_format = AO_FMT_NATIVE; - - // now open device - device = ao_open_live(default_driver, &format, NULL); - if(device == NULL) - { - ELOG("Can't open device"); - ov_clear(&vf); - return 0; - } - - int current_section; - while(1) - { - long ret = ov_read(&vf, pcm_out, sizeof(pcm_out), 0, 2, 1, ¤t_section); - if(ret == 0) - break; - else if(ret < 0) - ELOG("Error in the stream, continuing..."); - else - ao_play(device, pcm_out, ret); - } - - ao_close(device); - device = NULL; - - // NOTE: fclose(f) is not needed, since ov_clear() will close file - ov_clear(&vf); -#endif // SOUND - - return 1; -} diff --git a/edewm/Sound.h b/edewm/Sound.h deleted file mode 100644 index 1b68259..0000000 --- a/edewm/Sound.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * $Id: Sound.h 1697 2006-07-21 15:01:05Z 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 __SOUND_H__ -#define __SOUND_H__ - -#ifdef SOUND - #include -#endif - -enum -{ - SOUND_MINIMIZE = 0, - SOUND_MAXIMIZE, - SOUND_RESTORE, - SOUND_SHADE, - SOUND_CLOSE -}; -#define KNOWN_SOUNDS 5 - -struct EventSound -{ - bool allocated; - bool loaded; - short event; - char* file_to_play; -}; - -#define PCM_BUF_SIZE 4096 - -class SoundSystem -{ -#ifdef SOUND - private: - ao_device* device; - ao_sample_format format; - int default_driver; - char pcm_out[PCM_BUF_SIZE]; - bool inited; - bool down; - EventSound event_sound[KNOWN_SOUNDS]; -#endif - public: - SoundSystem(); - ~SoundSystem(); - void init(void); - void shutdown(void); - - void add(short event, const char* file); - int play(const char* fname); - int play(short event); -}; - -#endif diff --git a/edewm/Titlebar.cpp b/edewm/Titlebar.cpp deleted file mode 100644 index 8000724..0000000 --- a/edewm/Titlebar.cpp +++ /dev/null @@ -1,429 +0,0 @@ -/* - * $Id: Titlebar.cpp 1718 2006-07-29 13:26:19Z 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. - */ - -#include "Titlebar.h" -#include "Frame.h" -#include "debug.h" -#include -#include -#include -#include -#include - -#include "app.xpm" -Fl_Image app_img((const char**)app_xpm); - -#define MAX_OF 0.6f -#define MIN_OF 0.5f -#define RES_OF 0.1f -#define vv(x,y) fl_vertex(x,y) - -void draw_close(Fl_Color col) -{ - fl_rotate(45); - fl_color(col); - - vv(-0.9f,-0.12f); vv(-0.9f,0.12f); vv(0.9f,0.12f); vv(0.9f,-0.12f); fl_fill_stroke(FL_DARK3); - vv(-0.12f,-0.9f); vv(-0.12f,0.9f); vv(0.12f,0.9f); vv(0.12f,-0.9f); fl_fill_stroke(FL_DARK3); -} - -void draw_max(Fl_Color col) -{ - fl_color(col); - - vv(-MAX_OF, -MAX_OF); vv(MAX_OF, -MAX_OF); - vv(MAX_OF,-MAX_OF+0.4); vv(-MAX_OF,-MAX_OF+0.4); - fl_fill(); - - vv(MAX_OF,-MAX_OF); vv(MAX_OF,MAX_OF); - vv(-MAX_OF,MAX_OF); vv(-MAX_OF,-MAX_OF); - fl_stroke(); -} - -void draw_maximized(Fl_Color col) -{ - fl_color(col); - - vv(-MAX_OF+RES_OF, -MAX_OF+RES_OF); vv(MAX_OF-RES_OF, -MAX_OF+RES_OF); - vv(MAX_OF-RES_OF,-MAX_OF+RES_OF); vv(MAX_OF-RES_OF,MAX_OF-RES_OF); - vv(-MAX_OF+RES_OF,MAX_OF-RES_OF); vv(-MAX_OF+RES_OF,-MAX_OF+RES_OF); - fl_stroke(); - - vv(-MAX_OF+RES_OF+0.2f, -MAX_OF+RES_OF+0.2f); vv(MAX_OF-RES_OF-0.2f, -MAX_OF+RES_OF+0.2f); - vv(MAX_OF-RES_OF-0.2f,-MAX_OF+RES_OF+0.2f); vv(MAX_OF-RES_OF-0.2f,MAX_OF-RES_OF-0.2f); - vv(-MAX_OF+RES_OF+0.2f,MAX_OF-RES_OF-0.2f); vv(-MAX_OF+RES_OF+0.2f,-MAX_OF+RES_OF+0.2f); - fl_stroke(); -} - - -void draw_min(Fl_Color col) -{ - fl_color(col); - - vv(-MIN_OF, MIN_OF); vv(MIN_OF, MIN_OF); - vv(MIN_OF, MIN_OF+0.3f); vv(-MIN_OF, MIN_OF+0.3f); - fl_fill(); -} - -void close_cb(Fl_Widget*, void* t) -{ - Titlebar* tb = (Titlebar*)t; - assert(tb != NULL); - tb->on_close(); -} - -void maximize_cb(Fl_Widget* b, void* t) -{ - Titlebar* tb = (Titlebar*)t; - assert(tb != NULL); - tb->on_maximize(); -} - -void shade_cb(Fl_Widget*, void* t) -{ - Titlebar* tb = (Titlebar*)t; - assert(tb != NULL); - tb->on_shade(); -} - -void minimize_cb(Fl_Widget*, void* t) -{ - Titlebar* tb = (Titlebar*)t; - assert(tb != NULL); - tb->on_minimize(); -} - -void lower_cb(Fl_Widget*, void* t) -{ - Titlebar* tb = (Titlebar*)t; - assert(tb != NULL); - tb->on_lower(); -} - -TitlebarButton::TitlebarButton(int type) : - Fl_Button(0, 0, 0, 0, 0), - button_type(type), - pos(PLACE_RIGHT) -{ - focus_box(FL_NO_BOX); - box(FL_FLAT_BOX); - label_type(FL_SYMBOL_LABEL); - - switch(button_type) - { - case TITLEBAR_CLOSE_UP: - label("@xx"); - break; - case TITLEBAR_MAX_UP: - label("@mx"); - break; - case TITLEBAR_MIN_UP: - label("@ii"); - break; - } -} - -TitlebarButton::~TitlebarButton() -{ -} - -/* Place buttons on titlebar. The can be either - * PLACE_RIGHT (standard in many wm-s) or PLACE_RIGHT - */ -void TitlebarButton::place(int p) -{ - if(p != PLACE_LEFT && p != PLACE_RIGHT) - pos = PLACE_RIGHT; - else - pos = p; -} - -Titlebar::Titlebar(Frame* f, int x, int y, int w, int h, const char* l) : - Fl_Group(x, y, w, h, l), - win_x(0), - win_y(0), - win_x1(0), - win_y1(0), - curr_frame(f), - minb(TITLEBAR_MIN_UP), - maxb(TITLEBAR_MAX_UP), - closeb(TITLEBAR_CLOSE_UP), - label_box(new Fl_Box(0, 0, 0, 0)), - icon_box(new Fl_Box(0, 0, 0, 0)), - focus_color(FL_GRAY), - unfocus_color(FL_WHITE) -{ - assert(curr_frame != NULL); - - box(FL_FLAT_BOX); - - fl_add_symbol("xx", draw_close, 1); - fl_add_symbol("mx", draw_max, 1); - fl_add_symbol("mz", draw_maximized, 1); - fl_add_symbol("ii", draw_min, 1); - label_box->box(FL_FLAT_BOX); - label_box->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); - label_box->color(FL_GRAY); - - icon_box->image(app_img); - - title_menu = new Fl_Menu_(); - - /* XXX: any way this can be better ? - * When we change label of existing menu item, menu width will not be - * recalculated honoring size of that item. So we must initially fill - * them with blanks, which will keep longer labels fully visible. - */ - menu_max = title_menu->add(_("Maximize "), 0, maximize_cb, this); - menu_shade = title_menu->add(_("Shade "), 0, shade_cb, this); - menu_lower = title_menu->add(_("Lower "), 0, lower_cb, this); - menu_min = title_menu->add(_("Minimize "), 0, minimize_cb, this, FL_MENU_DIVIDER); - menu_close = title_menu->add(_("Close "), 0, close_cb, this); - - //closeb.place(PLACE_LEFT); - end(); - - closeb.callback(close_cb, this); - //minb.callback(minimize_cb, this); - minb.callback(shade_cb, this); - maxb.callback(maximize_cb, this); - - color(FL_GRAY); - //align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE); - if(curr_frame->frame_type(FrameTypeDialog)) - { - minb.hide(); - maxb.hide(); - } -} - -Titlebar::~Titlebar() -{ -} - -#define PLACE_BUTTON(btn, leftx, rightx, mid, offset, sz) \ - if(btn.place() == PLACE_LEFT) \ - {\ - btn.resize(leftx, mid, sz, sz); \ - if(btn.visible()) \ - leftx += sz + offset; \ - }\ - if(btn.place() == PLACE_RIGHT) \ - {\ - btn.resize(rightx, mid, sz, sz); \ - if(btn.visible()) \ - rightx -= sz + offset; \ - } - -void Titlebar::layout(void) -{ - int initial_offset = 2; // distance from borders - int W = w() - box()->dx() - initial_offset; - int X = box()->dx() + initial_offset; - - int lsize = h() / 2 + 2; - int offset = 0; - int mid = 0; - int sz = h(); - - label_size(lsize); - - sz -= 4; // button width/height - mid = 2; - offset = 2; - - int lx = X + offset; // left x - int rx = W - sz - offset; // right x - - PLACE_BUTTON(closeb, lx, rx, mid, offset, sz) - PLACE_BUTTON(maxb, lx, rx, mid, offset, sz) - PLACE_BUTTON(minb, lx, rx, mid, offset, sz) - - //rx -= sz + offset; - //lx += sz + offset; - - if(icon_box->visible()) - { - icon_box->resize(lx, mid, sz, sz); - lx += sz + offset; - } - - lx += offset; - rx -= lx; - label_box->resize(lx, mid, rx, sz); - - fl_font(label_font(), label_size()); - // take a label from titlebar object - if(!label().empty()) - label_box->label(label()); - - Fl_Group::layout(); -} - -void Titlebar::focus(void) -{ - // TODO: add colors for label_box, buttons - color(focus_color); - redraw(); -} - -void Titlebar::unfocus(void) -{ - // TODO: add colors for label_box, buttons - color(unfocus_color); - redraw(); -} - -void Titlebar::on_close(void) -{ - assert(curr_frame != NULL); - curr_frame->close_kill(); -} - -void Titlebar::on_maximize(void) -{ - assert(curr_frame != NULL); - - if(curr_frame->state(FrameStateMaximized)) - { - curr_frame->restore(); - maxb.label("@mx"); - menu_max->label(_("Maximize")); - } - else - { - curr_frame->maximize(); - maxb.label("@mz"); - menu_max->label(_("UnMaximize")); - } -} - -void Titlebar::on_minimize(void) -{ - assert(curr_frame != NULL); - // TODO: not implemented -} - -void Titlebar::on_shade(void) -{ - assert(curr_frame != NULL); - - if(curr_frame->state(FrameStateShaded)) - { - curr_frame->unshade(); - menu_shade->label(_("Shade")); - } - else - { - curr_frame->shade(); - menu_shade->label(_("UnShade")); - } -} - -void Titlebar::on_lower(void) -{ - curr_frame->lower(); -} - -int Titlebar::handle(int event) -{ - // check if event is directed to our buttons - if(event == FL_PUSH || event == FL_RELEASE) - { - Fl_Widget* ch = 0; - for(int i = 0; i < children(); i++) - { - ch = child(i); - - // do not send event to label_box - if(label_box && ch == label_box) - continue; - - if(ch && Fl::event_inside(ch->x(), ch->y(), ch->w(), ch->h())) - { - ch->send(event); - return 1; - } - } - } - - // proceed to our events - switch(event) - { - case FL_PUSH: - ELOG("Titlebar FL_PUSH"); - - if(Fl::event_state(FL_BUTTON3)) - { - title_menu->popup(Fl::event_x_root(), Fl::event_y_root()); - title_menu->redraw(); - return 1; - } - - // prevent double click - if(Fl::event_is_click()) - curr_frame->raise(); - - win_x = Fl::event_x_root() - curr_frame->x(); - win_y = Fl::event_y_root() - curr_frame->y(); - return 1; - - case FL_DRAG: - ELOG("Titlebar FL_DRAG"); - // TODO: correct behaviour ??? - if(curr_frame->state(FrameStateMaximized)) - return 1; - - win_x1 = Fl::event_x_root() - win_x; - win_y1 = Fl::event_y_root() - win_y; - - if(!curr_frame->moving()) - { - curr_frame->move_start(); - - /* We can safely call grab_cursor() as many times - * as we want, since it have internal checks - * - * TODO: add XGrabServer() here - */ - curr_frame->set_cursor(CURSOR_MOVE); - curr_frame->grab_cursor(); - curr_frame->show_coordinates_window(); - } - - curr_frame->move_window(win_x1, win_y1); - curr_frame->update_coordinates_window(); - - return 1; - - case FL_RELEASE: - ELOG("Titlebar FL_RELEASE"); - if(curr_frame->moving()) - { - curr_frame->ungrab_cursor(); - curr_frame->set_cursor(CURSOR_DEFAULT); - curr_frame->move_end(); - curr_frame->hide_coordinates_window(); - } - return 1; - - case FL_ENTER: - ELOG("Titlebar::FL_ENTER"); - return 1; - case FL_LEAVE: - ELOG("Titlebar::FL_LEAVE"); - return 1; - default: - return Fl_Group::handle(event); - } - return 0; -} diff --git a/edewm/Titlebar.h b/edewm/Titlebar.h deleted file mode 100644 index 2deeb6c..0000000 --- a/edewm/Titlebar.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * $Id: Titlebar.h 1718 2006-07-29 13:26:19Z 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 __TITLEBAR_H__ -#define __TITLEBAR_H__ - -#include -#include -#include -#include -#include - -// TODO: remove this after themes are added -#define TITLEBAR_MAX_UP 1 -#define TITLEBAR_CLOSE_UP 2 -#define TITLEBAR_MIN_UP 3 - -#define PLACE_RIGHT 1 -#define PLACE_LEFT 2 - -class TitlebarButton : public Fl_Button -{ - private: - int button_type; - int pos; - public: - TitlebarButton(int type); - ~TitlebarButton(); - void place(int p); - int place(void) { return pos; } -}; - -class Frame; - -class Titlebar : public Fl_Group -{ - private: - int win_x, win_y, win_x1, win_y1; - Frame* curr_frame; - TitlebarButton minb; - TitlebarButton maxb; - TitlebarButton closeb; - Fl_Box* label_box; - Fl_Box* icon_box; - Fl_Color focus_color; - Fl_Color unfocus_color; - - Fl_Menu_* title_menu; - Fl_Widget* menu_max; - Fl_Widget* menu_min; - Fl_Widget* menu_close; - Fl_Widget* menu_shade; - Fl_Widget* menu_lower; - - public: - Titlebar(Frame* f, int x, int y, int w, int h, const char* l); - ~Titlebar(); - void layout(void); - int handle(int event); - void focus(void); - void unfocus(void); - - void on_close(void); - void on_maximize(void); - void on_minimize(void); - void on_shade(void); - void on_lower(void); -}; - -#endif diff --git a/edewm/Tracers.h b/edewm/Tracers.h deleted file mode 100644 index 12786b0..0000000 --- a/edewm/Tracers.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: Tracers.h 1671 2006-07-11 14:07:43Z 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 __TRACERS_H__ -#define __TRACERS_H__ - -#include "debug.h" - -#ifdef _DEBUG - class FunctionTracer - { - private: - const char* func; - public: - FunctionTracer(const char* f) : func(f) - { - if(func) - EPRINTF("Function [+]: \"%s\"\n", func); - } - - ~FunctionTracer() - { - if(func) - EPRINTF("Function [-]: \"%s\"\n", func); - } - }; - - #define TRACE_FUNCTION(name) FunctionTracer foo(name) -#else - #define TRACE_FUNCTION(name) (void)0 -#endif // _DEBUG - -#endif diff --git a/edewm/Utils.cpp b/edewm/Utils.cpp deleted file mode 100644 index 5818dbf..0000000 --- a/edewm/Utils.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * $Id: Utils.cpp 1705 2006-07-23 22:31:56Z 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. - */ - -#include "Utils.h" -#include - -void SendMessage(Window win, Atom a, Atom l) -{ - XEvent ev; - long mask; - memset(&ev, 0, sizeof(ev)); - ev.xclient.type = ClientMessage; - ev.xclient.window = win; - ev.xclient.message_type = a; - ev.xclient.format = 32; - ev.xclient.data.l[0] = long(l); - ev.xclient.data.l[1] = long(fl_event_time); - mask = 0L; - XSendEvent(fl_display, win, False, mask, &ev); -} diff --git a/edewm/Utils.h b/edewm/Utils.h deleted file mode 100644 index 23576be..0000000 --- a/edewm/Utils.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * $Id: Utils.h 1705 2006-07-23 22:31:56Z 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 __UTILS_H__ -#define __UTILS_H__ - -#include - -void SendMessage(Window win, Atom a, Atom l); - -#endif // _UTILS_H_ diff --git a/edewm/Windowmanager.cpp b/edewm/Windowmanager.cpp deleted file mode 100644 index 5dc6b1f..0000000 --- a/edewm/Windowmanager.cpp +++ /dev/null @@ -1,733 +0,0 @@ -/* - * $Id: Windowmanager.cpp 1711 2006-07-25 09:51:50Z 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. - */ - -#include "Windowmanager.h" -#include "Atoms.h" -#include "Hints.h" -#include "Frame.h" -#include "../exset/exset.h" -#include "Tracers.h" -#include "Sound.h" -#include "debug.h" - -#include -#include -#include -#include - -#define WM_CONFIG_FILE "wmanager.conf" -#define EDE_CONFIG_FILE "ede.conf" - - -WindowManager* WindowManager::pinstance = NULL; -int x_errors; - -/* This is one of the most important part of wm and reflects - * current design. Wm will try to send all messages to frame itself, - * after trying to find it's ID in collected list. All further processing - * is left to that frame. Other messages will process wm, - * minimizing spreading events all over the code. - * I'am not in love with this decision; it's roots are from previous - * edewm code (the real roots are from icewm). - * - * Future major versions will probably have different design. - */ -int wm_event_handler(int e) -{ - if(fl_xevent.type == KeyPress) - e = FL_KEY; - if(!e) - { - Window window = fl_xevent.xany.window; - switch(fl_xevent.type) - { - case CirculateNotify: - case CirculateRequest: - case ConfigureNotify: - case ConfigureRequest: - case CreateNotify: - case GravityNotify: - /*case MapNotify:*/ - case MapRequest: - case ReparentNotify: - case UnmapNotify: - window = fl_xevent.xmaprequest.window; - break; - } - - FrameList::iterator last = WindowManager::instance()->window_list.end(); - for(FrameList::iterator it = WindowManager::instance()->window_list.begin(); it != last; ++it) - { - Frame* c = *it; - if(c->window() == window || fl_xid(c) == window) - { - //ELOG("wm_event_handler-> window found (%i), sending a message", i); - return c->handle(&fl_xevent); - } - } - - return WindowManager::instance()->handle(&fl_xevent); - } - else - return WindowManager::instance()->handle(e); -} - -int convert_align(int a) -{ - switch(a) - { - default: - case 0: break; - case 1: return FL_ALIGN_RIGHT; - case 2: return FL_ALIGN_CENTER; - } - return FL_ALIGN_LEFT; -} - -int xerror_handler(Display* d, XErrorEvent* e) -{ - if(e->request_code == X_ChangeWindowAttributes && - e->error_code == BadAccess && - e->resourceid == RootWindow(fl_display, DefaultScreen(fl_display))) - { - // force cleaning data - WindowManager::shutdown(); - Fl::fatal(_("Another window manager is running. You must exit it before running edewm.")); - } - - x_errors++; - - char buff[128]; - - EPRINTF("\n"); - XGetErrorDatabaseText(fl_display, "XlibMessage", "XError", "", buff, 128); - EPRINTF("%s: ", buff); - XGetErrorText(fl_display, e->error_code, buff, 128); - EPRINTF("%s \n", buff); - - XGetErrorDatabaseText(fl_display, "XlibMessage", "MajorCode", "%d", buff, 128); - EPRINTF(" "); - EPRINTF(buff, e->request_code); - - sprintf(buff, "%d", e->request_code); - XGetErrorDatabaseText(fl_display, "XRequest", buff, "%d", buff, 128); - EPRINTF(" (%s)\n", buff); - - XGetErrorDatabaseText(fl_display, "XlibMessage", "MinorCode", "%d", buff, 128); - EPRINTF(" "); - EPRINTF(buff, e->minor_code); - EPRINTF(" "); - XGetErrorDatabaseText(fl_display, "XlibMessage", "ResourceID", "%d", buff, 128); - EPRINTF(buff, e->resourceid); - - EPRINTF("\n"); - EPRINTF("\n"); - - return 0; -} - -bool ValidateDrawable(Drawable d) -{ - Window w; - int dummy; - unsigned int dummy_ui; - - XSync(fl_display, False); - x_errors = 0; - XGetGeometry(fl_display, d, &w, &dummy, &dummy, &dummy_ui, &dummy_ui, &dummy_ui, &dummy_ui); - XSync(fl_display, False); - - bool ret = (x_errors == 0 ? true : false); - x_errors = 0; - -/* - if(ret != true) - { - WindowManager::shutdown(); - assert(ret == true); - } -*/ - - return ret; -} - -WindowManager::WindowManager() : Fl_Window(0, 0, Fl::w(), Fl::h()), is_running(false) -{ - box(FL_NO_BOX); - ELOG("WindowManager constructor"); -} - -WindowManager::~WindowManager() -{ - ELOG("WindowManager destructor"); - - FrameList::iterator last = window_list.end(); - for(FrameList::iterator it = window_list.begin(); it != last; ++it) - { - Frame* f = *it; - delete f; - } - window_list.clear(); - - sound_system->shutdown(); - delete sound_system; - - delete wm_conf; - delete hint_stuff; - delete cur; -} - -WindowManager* WindowManager::instance(void) -{ - assert(WindowManager::pinstance != NULL); - return WindowManager::pinstance; -} - -void WindowManager::init(int argc, char** argv) -{ - if(WindowManager::pinstance != NULL) - return; - - WindowManager::pinstance = new WindowManager(); - WindowManager::pinstance->init_internals(); -} - -void WindowManager::shutdown(void) -{ - if(WindowManager::pinstance != NULL) - { - delete WindowManager::pinstance; - WindowManager::pinstance = NULL; - } -} - -void WindowManager::init_internals(void) -{ - ELOG("Starting window manager"); - wm_conf = new WindowManagerConfig; - - app_starting = false; - - // defaults, in case world goes down - wm_conf->title_active_color = fl_rgb(0,0,128); - wm_conf->title_active_color_text = fl_rgb(255,255,255); - wm_conf->title_normal_color = fl_rgb(192,192,192); - wm_conf->title_normal_color_text = fl_rgb(0,0,128); - wm_conf->title_label_align = FL_ALIGN_LEFT; - wm_conf->title_height = 20; - wm_conf->title_box_type = 0; - wm_conf->frame_do_opaque = false; - wm_conf->frame_animate = true; - wm_conf->frame_animate_speed = 15; - - fl_open_display(); - XSetErrorHandler(xerror_handler); - wm_area.set(0, 0, Fl::w(), Fl::h()); - - read_configuration(); - read_xset_configuration(); - - //register_protocols(); -#ifdef _DEBUG - InitAtoms(fl_display, atom_map); - register_events(); -#else - InitAtoms(fl_display); -#endif - - //cur = XCreateFontCursor(fl_display, XC_left_ptr); - //XDefineCursor(fl_display, RootWindow(fl_display, fl_screen), cur); - // load cursor - cur = new CursorHandler; - cur->load(X_CURSORS); - cur->set_root_cursor(); - - sound_system = new SoundSystem(); - sound_system->init(); - - sound_system->add(SOUND_MINIMIZE, "sounds/minimize.ogg"); - sound_system->add(SOUND_MAXIMIZE, "sounds/maximize.ogg"); - sound_system->add(SOUND_CLOSE, "sounds/close.ogg"); - sound_system->add(SOUND_RESTORE, "sounds/restore.ogg"); - sound_system->add(SOUND_SHADE, "sounds/shade.ogg"); - - // the world is starting here - show(); - register_protocols(); - - hint_stuff = new Hints; - hint_stuff->icccm_set_iconsizes(this); - - init_clients(); - Fl::add_handler(wm_event_handler); - XSync(fl_display, 0); - - is_running = true; -} - -// load current visible clients -void WindowManager::init_clients(void) -{ - Frame* frame = 0; - uint win_num; - Window w1, w2, *wins; - XWindowAttributes attr; - XQueryTree(fl_display, fl_xid(this), &w1, &w2, &wins, &win_num); - - // XXX: excluding root parent !!! - //for (uint i = 0; i < win_num-1; i++) - for (uint i = 0; i < win_num; i++) - { - XGetWindowAttributes(fl_display, wins[i], &attr); - if(!attr.override_redirect && attr.map_state == IsViewable) - { - if(!attr.screen) - { - ELOG("Screen not as window, skiping..."); - continue; - } - - if(ValidateDrawable(wins[i])) - frame = new Frame(wins[i], &attr); - } - else - ELOG("Skipping override_redirect window"); - } - XFree((void *)wins); -} - -// register type messages wm understainds -void WindowManager::register_protocols(void) -{ - ELOG("Loading protocols"); - SetSupported(root_win); -} - -void WindowManager::read_configuration(void) -{ - ELOG("Reading config"); - Fl_Config conf(fl_find_config_file(WM_CONFIG_FILE, 0)); - conf.set_section("TitleBar"); - conf.read("Active color", wm_conf->title_active_color, fl_rgb(0, 0, 128)); - conf.read("Normal color", wm_conf->title_normal_color, fl_rgb(192, 192, 192)); - conf.read("Active color text", wm_conf->title_active_color_text, fl_rgb(255, 255, 255)); - conf.read("Normal color text", wm_conf->title_normal_color_text, fl_rgb(0, 0, 128)); - conf.read("Box type", wm_conf->title_box_type, 0); - conf.read("Height", wm_conf->title_height, 20); - - int la; - conf.read("Text align", la, 0); - wm_conf->title_label_align = convert_align(la); - - conf.set_section("Resize"); - conf.read("Opaque resize", wm_conf->frame_do_opaque, false); - conf.read("Animate", wm_conf->frame_animate, true); - conf.read("Animate Speed", wm_conf->frame_animate_speed, 15); - - conf.set_section("Misc"); - conf.read("Use theme", wm_conf->use_theme); - - notify_clients(); -} - -void WindowManager::read_xset_configuration(void) -{ - Fl_Config conf(fl_find_config_file(EDE_CONFIG_FILE, 1)); - int val1, val2, val3; - Exset xset; - - conf.set_section("Mouse"); - conf.read("Accel", val1, 4); - conf.read("Thress",val2, 4); - xset.set_mouse(val1, val2); - - conf.set_section("Bell"); - conf.read("Volume", val1, 50); - conf.read("Pitch", val2, 440); - conf.read("Duration", val3, 200); - xset.set_bell(val1, val2, val3); - - conf.set_section("Keyboard"); - conf.read("Repeat", val1, 1); - conf.read("ClickVolume", val2, 50); - xset.set_keybd(val1, val2); - - conf.set_section("Screen"); - conf.read("Delay", val1, 15); - conf.read("Pattern",val2, 2); - xset.set_pattern(val1, val2); - - conf.read("CheckBlank", val1, 1); - xset.set_check_blank(val1); - - conf.read("Pattern", val1, 2); - xset.set_blank(val1); -} - -void WindowManager::notify_clients(void) -{ -#warning "TODO: implement WindowManager::notify_clients()" -} - -void WindowManager::show(void) -{ - if(!shown()) - { - create(); - /* Destroy efltk window, set RootWindow to our - * xid and redirect all messages to us, which - * will make us a window manager. - */ - XDestroyWindow(fl_display, Fl_X::i(this)->xid); - Fl_X::i(this)->xid = RootWindow(fl_display, fl_screen); - root_win = RootWindow(fl_display, fl_screen); - XSelectInput(fl_display, fl_xid(this), - SubstructureRedirectMask | - SubstructureNotifyMask | - ColormapChangeMask | - PropertyChangeMask | - ButtonPressMask | - ButtonReleaseMask | - EnterWindowMask | - LeaveWindowMask | - KeyPressMask | - KeyReleaseMask | - KeymapStateMask); - - ELOG("RootWindow ID set to xid"); - draw(); - } -} - -void WindowManager::draw(void) -{ - ELOG("RootWindow draw"); - // redraw root window - XClearWindow(fl_display, fl_xid(this)); -} - -void WindowManager::idle(void) -{ - //ELOG("Idle"); - FrameList::iterator last = remove_list.end(); - for(FrameList::iterator it = remove_list.begin(); it != last; ++it) - { - Frame* f = *it; - delete f; - } - remove_list.clear(); -} - -void WindowManager::exit(void) -{ - if(is_running) - is_running = false; -} - -const Cursor WindowManager::root_cursor(void) -{ - assert(cur != NULL); - return cur->root_cursor(); -} - -void WindowManager::set_cursor(Frame* f, CursorType t) -{ - assert(f != NULL); - cur->set_cursor(f, t); -/* - if(cur->cursor_shape_type() == FLTK_CURSORS) - cur->set_fltk_cursor(f, t); - else - cur->set_x_cursor(f, t); -*/ -} - -const CursorHandler* WindowManager::cursor_handler(void) -{ - assert(cur != NULL); - return cur; -} - -int WindowManager::handle(int event) -{ - Window window = fl_xevent.xany.window; - switch(event) - { - case FL_PUSH: - { - FrameList::iterator last = window_list.end(); - for(FrameList::iterator it = window_list.begin(); it != last; ++it) - { - Frame* f = *it; - if(f->window() == window || fl_xid(f) == window) - { - f->content_click(); - return 1; - } - } - - ELOG("FL_PUSH on root"); - return 0; - } - - case FL_SHORTCUT: - case FL_KEY: - - ELOG("FL_SHORCUT | FL_KEY"); - return 1; - case FL_MOUSEWHEEL: - XAllowEvents(fl_display, ReplayPointer, CurrentTime); - return 0; - } - return 0; -} - -int WindowManager::handle(XEvent* event) -{ - switch(event->type) - { - /* ClientMessage is only used for desktop handling - * and startup notifications. - */ - case ClientMessage: - { - ELOG("ClientMessage in wm"); - if(event->xclient.message_type == _XA_EDE_WM_STARTUP_NOTIFY) - { - Atom data = event->xclient.data.l[0]; - if(data == _XA_EDE_WM_APP_STARTING) - { - app_starting = true; - cur->set_root_cursor(CURSOR_WAIT); - } - } - return 1; - } - case MapRequest: - { - ELOG("MapRequest from wm"); - const XMapRequestEvent* e = &(fl_xevent.xmaprequest); - - XWindowAttributes attrs; - XGetWindowAttributes(fl_display, e->window, &attrs); - if(!attrs.override_redirect) - { - ELOG("--- map from wm ---"); - new Frame(e->window); - - if(app_starting) - { - cur->set_root_cursor(CURSOR_DEFAULT); - app_starting = false; - } - } - - return 1; - } - case ConfigureRequest: - { - ELOG("ConfigureRequest from wm"); - const XConfigureRequestEvent *e = &(fl_xevent.xconfigurerequest); - XConfigureWindow(fl_display, e->window, e->value_mask&~(CWSibling|CWStackMode), - (XWindowChanges*)&(e->x)); - return 1; - } - - default: - return 0; - } - return 0; -} - -/* Clear stack_list and window_list for those - * windows schedulied for removal. - * Expensive operation, so use it with care. - */ -void WindowManager::update_client_list(void) -{ - bool found = false; - - // first clear aot_list - FrameList::iterator last = aot_list.end(); - for(FrameList::iterator it = aot_list.begin(); it != last; ++it) - { - Frame* f = *it; - if(f->destroy_scheduled()) - { - // erase current and let 'it' point to next element - it = aot_list.erase(it); - found = true; - } - } - - // then clear stack_list - if(!found) - { - last = stack_list.end(); - for(FrameList::iterator it = stack_list.begin(); it != last; ++it) - { - Frame* f = *it; - if(f->destroy_scheduled()) - it = stack_list.erase(it); - } - } - - // then window_list - last = window_list.end(); - for(FrameList::iterator it = window_list.begin(); it != last; ++it) - { - Frame* f = *it; - if(f->destroy_scheduled()) - { - // TODO: do I need this ??? - remove_list.push_back(*it); - it = window_list.erase(it); - } - } -} - -/* Used by frames. - * Window manager will check position of last client and - * return possible next one - * - * Accepted values are: current frame width and height, and - * returned is position where it should be placed. - */ -bool WindowManager::query_best_position(int* x, int* y, int w, int h) -{ - const int offset = 20; - - if(window_list.size() <= 0) - return false; - - //Frame* f = window_list[window_list.size()-1]; - Frame* f = *(--window_list.end()); - if(!f) - return false; - - *x = f->x() + offset; - *y = f->y() + offset; - - // if w-h of frame are larger than area - // place them to apropriate corners - if((*x + w) > wm_area.w()) - *x = wm_area.x(); - if((*y + h) > wm_area.h()) - *y = wm_area.y(); - - return true; -} - -Frame* WindowManager::find_xid(Window win) -{ - FrameList::iterator last = window_list.end(); - for(FrameList::iterator it = window_list.begin(); it != last; ++it) - { - Frame* f = *it; - if(f->window() == win) - return f; - } - - return 0; -} - -void WindowManager::restack_windows(void) -{ - TRACE_FUNCTION("void WindowManager::restack_windows(void)"); - - Window* stack = new Window[aot_list.size() + stack_list.size()]; - FrameList::iterator it = aot_list.begin(); - FrameList::iterator last = aot_list.end(); - unsigned int i = 0; - - for(; it != last && i < aot_list.size(); ++it, i++) - stack[i] = fl_xid(*it); - - it = stack_list.begin(); - last = stack_list.end(); - - - for(; it != last && i < aot_list.size() + stack_list.size(); ++it, i++) - stack[i] = fl_xid(*it); - - XRestackWindows(fl_display, stack, stack_list.size()); - delete [] stack; -} - -void WindowManager::clear_focus_windows(void) -{ - if(aot_list.size() > 0) - { - FrameList::iterator it = aot_list.begin(); - FrameList::iterator last = aot_list.end(); - for(; it != last; ++it) - (*it)->unfocus(); - } - - FrameList::iterator it = stack_list.begin(); - FrameList::iterator last = stack_list.end(); - for(; it != last; ++it) - (*it)->unfocus(); -} - -void WindowManager::play_sound(short event) -{ - assert(sound_system != NULL); - sound_system->play(event); -} - - -#ifdef _DEBUG -void WindowManager::register_events(void) -{ - xevent_map[CirculateNotify] = "CirculateNotify"; - xevent_map[CirculateRequest] = "CirculateRequest"; - xevent_map[ConfigureNotify] = "ConfigureNotify"; - xevent_map[ConfigureRequest] = "ConfigureRequest"; - xevent_map[CreateNotify] = "CreateNotify"; - xevent_map[GravityNotify] = "GravityNotify"; - xevent_map[MapNotify] = "MapNotify"; - xevent_map[MapRequest] = "MapRequest"; - xevent_map[ReparentNotify] = "ReparentNotify"; - xevent_map[UnmapNotify] = "UnmapNotify"; - xevent_map[DestroyNotify] = "DestroyNotify"; - xevent_map[PropertyNotify] = "PropertyNotify"; - xevent_map[EnterNotify] = "EnterNotify"; - xevent_map[LeaveNotify] = "LeaveNotify"; - xevent_map[VisibilityNotify] = "VisibilityNotify"; - xevent_map[FocusIn] = "FocusIn"; - xevent_map[FocusOut] = "FocusOut"; - xevent_map[ClientMessage] = "ClientMessage"; - - efltkevent_map[FL_PUSH] = "FL_PUSH"; - efltkevent_map[FL_RELEASE] = "FL_RELEASE"; - efltkevent_map[FL_ENTER] = "FL_ENTER"; - efltkevent_map[FL_LEAVE] = "FL_LEAVE"; - efltkevent_map[FL_DRAG] = "FL_DRAG"; - efltkevent_map[FL_FOCUS] = "FL_FOCUS"; - efltkevent_map[FL_UNFOCUS] = "FL_UNFOCUS"; - efltkevent_map[FL_KEY] = "FL_KEY"; - efltkevent_map[FL_KEYUP] = "FL_KEYUP"; - efltkevent_map[FL_MOVE] = "FL_MOVE"; - efltkevent_map[FL_SHORTCUT] = "FL_SHORTCUT"; - efltkevent_map[FL_ACTIVATE] = "FL_ACTIVATE"; - efltkevent_map[FL_DEACTIVATE]= "FL_DEACTIVATE"; - efltkevent_map[FL_SHOW] = "FL_SHOW"; - efltkevent_map[FL_HIDE] = "FL_HIDE"; - efltkevent_map[FL_MOUSEWHEEL]= "FL_MOUSEWHEEL"; - efltkevent_map[FL_PASTE] = "FL_PASTE"; - efltkevent_map[FL_DND_ENTER] = "FL_DND_ENTER"; - efltkevent_map[FL_DND_DRAG] = "FL_DND_DRAG"; - efltkevent_map[FL_DND_LEAVE] = "FL_DND_LEAVE"; - efltkevent_map[FL_DND_RELEASE] = "FL_DND_RELEASE"; -} -#endif diff --git a/edewm/Windowmanager.h b/edewm/Windowmanager.h deleted file mode 100644 index 15decd1..0000000 --- a/edewm/Windowmanager.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * $Id: Windowmanager.h 1711 2006-07-25 09:51:50Z 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 _WINDOWMANAGER_H_ -#define _WINDOWMANAGER_H_ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Cursor.h" - -#ifdef _DEBUG -#include -#endif - -#include - -/* -class Frame_List : public Fl_Ptr_List { -public: - Frame_List() : Fl_Ptr_List() { } - - void append(Frame *item) { Fl_Ptr_List::append((void *)item); } - void prepend(Frame *item) { Fl_Ptr_List::prepend((void *)item); } - void insert(uint pos, Frame *item) { Fl_Ptr_List::insert(pos, (void *)item); } - void replace(uint pos, Frame *item) { Fl_Ptr_List::replace(pos, (void *)item); } - void remove(uint pos) { Fl_Ptr_List::remove(pos); } - bool remove(Frame *item) { return Fl_Ptr_List::remove((void *)item); } - int index_of(const Frame *w) const { return Fl_Ptr_List::index_of((void*)w); } - Frame *item(uint index) const { return (Frame*)Fl_Ptr_List::item(index); } - - Frame **data() { return (Frame**)items; } - - Frame *operator [](uint ind) const { return (Frame *)items[ind]; } -}; -*/ - -struct WindowManagerConfig -{ - Fl_Color title_active_color; - Fl_Color title_active_color_text; - Fl_Color title_normal_color; - Fl_Color title_normal_color_text; - - int title_label_align; - int title_height; - int title_box_type; - - bool frame_do_opaque; - bool frame_animate; - int frame_animate_speed; - - bool use_theme; -}; - - -// The WindowManager class looks like a window to efltk but is actually the -// screen's root window. This is done by setting xid to "show" it -// rather than have efltk create the window. Class handles all root -// windows X events - -struct Hints; -class Frame; -class CursorHandler; -class SoundSystem; -typedef std::list FrameList; - -class WindowManager : public Fl_Window -{ - private: - bool is_running; - static WindowManager* pinstance; - WindowManagerConfig* wm_conf; - Fl_Rect wm_area; - Window root_win; - Hints* hint_stuff; - - CursorHandler* cur; - SoundSystem* sound_system; - - bool app_starting; - - WindowManager(); - ~WindowManager(); - WindowManager(const WindowManager&); - WindowManager& operator=(WindowManager&); - void register_protocols(void); - void init_internals(void); - void init_clients(void); - - public: - static void init(int argc, char** argv); - static void shutdown(void); - static WindowManager* instance(); - void read_configuration(void); - void read_xset_configuration(void); - void notify_clients(void); - void show(void); - void hide(void) { } // prevent efltk from root window hiding - void draw(void); - int handle(int event); - int handle(XEvent* e); - void update_client_list(void); - bool running(void) { return is_running; } - Window root_window(void) { return root_win; } - void idle(void); - Hints* hints(void) { return hint_stuff; } - void exit(void); - int x(void) { return wm_area.x(); } - int y(void) { return wm_area.y(); } - int w(void) { return wm_area.w(); } - int h(void) { return wm_area.h(); } - - bool query_best_position(int* x, int* y, int w, int h); - Frame* find_xid(Window win); - void restack_windows(void); - void clear_focus_windows(void); - - void play_sound(short event); - - const Cursor root_cursor(void); - const CursorHandler* cursor_handler(void); - void set_cursor(Frame* f, CursorType t); - - //FrameList window_list; - //FrameList remove_list; - - // list of mapped windows (it is not changed excep window is destroyed) - FrameList window_list; - // stacking list of ordinary windows - FrameList stack_list; - // list of destroyed windows (cleared in WindowManager::idle() phase) - FrameList remove_list; - // list of always on top windows (transients etc.) - FrameList aot_list; - - -#ifdef _DEBUG - std::map atom_map; - std::map xevent_map; - std::map efltkevent_map; - - void register_events(void); -#endif -}; - - -bool ValidateDrawable(Drawable d); - -#endif diff --git a/edewm/app.xpm b/edewm/app.xpm deleted file mode 100644 index 2c5f3d9..0000000 --- a/edewm/app.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -static char * app_xpm[] = { -"16 16 2 1", -" c None", -". c #FF0000", -" ", -" ", -" ", -" .... . ", -" .... . ", -" .... . ", -" .... . ", -" ... . ", -" . .. ", -" . .... ", -" . .... ", -" . .... ", -" . .... ", -" . .... ", -" ", -" "}; diff --git a/edewm/debug.cpp b/edewm/debug.cpp deleted file mode 100644 index 2c53fc3..0000000 --- a/edewm/debug.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: debug.cpp 1671 2006-07-11 14:07:43Z 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. - */ - -#include "debug.h" -#include -#include - -#define OUT_TYPE stdout - -void edewm_log(const char* str, ...) -{ -#ifdef _DEBUG - fprintf(OUT_TYPE, "wm: "); - va_list args; - va_start(args, str); - vfprintf(OUT_TYPE, str, args); - fprintf(OUT_TYPE, "\n"); - fflush(OUT_TYPE); -#endif -} -void edewm_warning(const char* str, ...) -{ -#ifdef _DEBUG - fprintf(OUT_TYPE, "wm (warning): "); - va_list args; - va_start(args, str); - vfprintf(OUT_TYPE, str, args); - fprintf(OUT_TYPE, "\n"); - fflush(OUT_TYPE); -#endif -} - -void edewm_fatal(const char* str, ...) -{ -#ifdef _DEBUG - fprintf(OUT_TYPE, "!!! wm (fatal): "); - va_list args; - va_start(args, str); - vfprintf(OUT_TYPE, str, args); - fprintf(OUT_TYPE, "\n"); - fflush(OUT_TYPE); -#endif -} - -void edewm_printf(const char* str, ...) -{ -#ifdef _DEBUG - va_list args; - va_start(args, str); - vfprintf(OUT_TYPE, str, args); - fflush(OUT_TYPE); -#endif -} diff --git a/edewm/debug.h b/edewm/debug.h deleted file mode 100644 index 8a64bac..0000000 --- a/edewm/debug.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * $Id: debug.h 1671 2006-07-11 14:07:43Z 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 __DEBUG_H__ -#define __DEBUG_H__ - -void edewm_log(const char* str, ...); -void edewm_printf(const char* str, ...); -void edewm_warning(const char* str, ...); -void edewm_fatal(const char* str, ...); - -#define ELOG edewm_log -#define EWARNING edewm_warning -#define EFATAL edewm_fatal -#define EPRINTF edewm_printf - -#endif diff --git a/edewm/locale/fi.po b/edewm/locale/fi.po deleted file mode 100644 index ffb9e61..0000000 --- a/edewm/locale/fi.po +++ /dev/null @@ -1,89 +0,0 @@ -# Finnish translation of edewm. -# Copyright (C) 2002 THE edewm'S COPYRIGHT HOLDER -# This file is distributed under the same license as the edewm package. -# Mikko L. , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: edewm 1.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-02-04 12:33+0100\n" -"PO-Revision-Date: 2002-09-16 11:07+0300\n" -"Last-Translator: Mikko L. \n" -"Language-Team: Finnish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-15\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "Työpöytä %d" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "Nimetön" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "" - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "Kiinteä" - -#: Titlebar.cpp:275 Titlebar.cpp:320 -msgid "Set size" -msgstr "" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "" - -#: Titlebar.cpp:318 Titlebar.cpp:331 -msgid "Maximize" -msgstr "Suurenna" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "Pienennä" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "Työpöydälle:" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "Tapa" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "Sulje" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "Palauta" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" -"Toinen ikkunointi järjestelmä käynnissä. Sinun täytyy lopettaa se ennen kuin " -"voit ajaa: %s" diff --git a/edewm/locale/hu.po b/edewm/locale/hu.po deleted file mode 100644 index 2984a51..0000000 --- a/edewm/locale/hu.po +++ /dev/null @@ -1,85 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2005-02-09 11:21+0100\n" -"Last-Translator: Nemeth Otto \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 -#: Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "Munkaterület %d" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "Névtelen" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "EDEWM: BelsÅ‘ hiba, restacking (%d != %d)! Kilépés... " - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "Ragadós" - -#: Titlebar.cpp:275 -#: Titlebar.cpp:320 -msgid "Set size" -msgstr "Méret beállítása" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "Ablakméret beállítása:" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "szél.:" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "mag.:" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "&OK" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "Mégs&em" - -#: Titlebar.cpp:318 -#: Titlebar.cpp:331 -msgid "Maximize" -msgstr "Maximalizálás" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "Minimalizálás" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "Munkaterületre" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "Kilövés" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "Bezárás" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "Visszaállítás" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "Egy másik ablakkezelÅ‘ fut. Ki kell lépni belÅ‘le mielÅ‘tt ezt futtatod: %s." - diff --git a/edewm/locale/id.po b/edewm/locale/id.po deleted file mode 100644 index ad79606..0000000 --- a/edewm/locale/id.po +++ /dev/null @@ -1,89 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: edewm 1.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-02-04 12:33+0100\n" -"PO-Revision-Date: 202-11-29 14:20+0700\n" -"Last-Translator: Bambang Purnomosidi D. P. \n" -"Language-Team: id \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "Ruangkerja %d" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "Tanpa judul" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "" - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "Sticky" - -#: Titlebar.cpp:275 Titlebar.cpp:320 -msgid "Set size" -msgstr "" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "" - -#: Titlebar.cpp:318 Titlebar.cpp:331 -msgid "Maximize" -msgstr "Maksimalkan" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "Minimalkan" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "Ke Desktop" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "Tutup" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "Kembalikan" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" -"Window manager lain sedang berjalan. Anda harus menghentikannya sebelum " -"menjalankan %s." diff --git a/edewm/locale/messages.po.default b/edewm/locale/messages.po.default deleted file mode 100644 index c33a66d..0000000 --- a/edewm/locale/messages.po.default +++ /dev/null @@ -1,63 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#: Desktop.cpp:233 Windowmanager.cpp:97 -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-09-16 10:58+0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:247 -#, c-format -msgid "Workspace %d" -msgstr "" - - - -#: Frame.cpp:134 main.cpp:51 -msgid "Untitled" -msgstr "" - - - -#: Titlebar.cpp:211 -msgid "Sticky" -msgstr "" - -#: Titlebar.cpp:247 Titlebar.cpp:257 -msgid "Maximize" -msgstr "" - -#: Titlebar.cpp:248 -msgid "Minimize" -msgstr "" - -#: Titlebar.cpp:249 -msgid "To Desktop" -msgstr "" - -#: Titlebar.cpp:250 -msgid "Close" -msgstr "" - -#: Titlebar.cpp:272 -msgid "Kill" -msgstr "" - -#: Titlebar.cpp:256 -msgid "Restore" -msgstr "" - -#: Windowmanager.cpp:88 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" diff --git a/edewm/locale/messages.pot b/edewm/locale/messages.pot deleted file mode 100644 index 9512350..0000000 --- a/edewm/locale/messages.pot +++ /dev/null @@ -1,88 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-02-04 12:33+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "" - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "" - -#: Titlebar.cpp:275 Titlebar.cpp:320 -msgid "Set size" -msgstr "" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "" - -#: Titlebar.cpp:318 Titlebar.cpp:331 -msgid "Maximize" -msgstr "" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" diff --git a/edewm/locale/ru.po b/edewm/locale/ru.po deleted file mode 100644 index b10b539..0000000 --- a/edewm/locale/ru.po +++ /dev/null @@ -1,90 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-02-04 12:33+0100\n" -"PO-Revision-Date: 2002-11-28 HO:MI+ZONE\n" -"Last-Translator: aabbvv \n" -"Language-Team: RUSSIAN \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=koi8-r\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "òÁÂÏÞÉÊ ÓÔÏÌ %d" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "îÅÐÏÉÍÅÎÏ×ÁÎÎÙÊ" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "" - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "÷ÓÅ ÓÒÁÚÕ" - -#: Titlebar.cpp:275 Titlebar.cpp:320 -msgid "Set size" -msgstr "" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "" - -#: Titlebar.cpp:318 Titlebar.cpp:331 -msgid "Maximize" -msgstr "òÁÚ×ÅÒÎÕÔØ" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "ó×ÅÒÎÕÔØ" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "îÁ ÒÁÂÏÞÉÊ ÓÔÏÌ" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "úÁËÒÙÔØ" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" -"úÁÐÕÝÅÎ ÄÒÕÇÏÊ ÏËÏÎÎÙÊ ÍÅÎÅÄÖÅÒ. îÅÏÂÈÏÄÉÍÏ ×ÙÊÔÉ ÉÈ ÎÅÇÏ ÐÅÒÅ ÔÅÍ ËÁË " -"ÚÁÐÕÓÔÉÔØ %s." diff --git a/edewm/locale/sk.po b/edewm/locale/sk.po deleted file mode 100644 index d44ddd7..0000000 --- a/edewm/locale/sk.po +++ /dev/null @@ -1,87 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: edewm 1.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-02-04 12:33+0100\n" -"PO-Revision-Date: 2002-04-21 14:50+0200\n" -"Last-Translator: Martin Pekar \n" -"Language-Team: Slovak \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "Plocha %d" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "Bez názvu" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "" - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "Lepkavý" - -#: Titlebar.cpp:275 Titlebar.cpp:320 -msgid "Set size" -msgstr "" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "" - -#: Titlebar.cpp:318 Titlebar.cpp:331 -msgid "Maximize" -msgstr "MaximalizovaÅ¥" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "MinimalizovaÅ¥" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "Na plochu" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "UkonÄiÅ¥" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "ZavrieÅ¥" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "ObnoviÅ¥" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" -"Práve beží už iný manažér okien. Musíte ho ukonÄiÅ¥ a chcete spustiÅ¥ %s." diff --git a/edewm/locale/sr.po b/edewm/locale/sr.po deleted file mode 100644 index dd8865c..0000000 --- a/edewm/locale/sr.po +++ /dev/null @@ -1,87 +0,0 @@ -# EDEWM - Prevod na srpski jezik -# Copyright (C) 2002 EDE Team -# Dejan Lekic Dejan Lekic , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: EDEWM 0.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-02-04 12:33+0100\n" -"PO-Revision-Date: 2002-11-21 08:26+0100\n" -"Last-Translator: Dejan Lekic \n" -"Language-Team: LINUKS.org T.T. \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: Desktop.cpp:138 Desktop.cpp:180 -#, c-format -msgid "Workspace %d" -msgstr "Радни проÑтор %d" - -#: Frame.cpp:106 -msgid "Untitled" -msgstr "Ðеименован" - -#: Frame.cpp:938 -#, c-format -msgid "EDEWM: Internal bug, when restacking (%d != %d)! Exiting... " -msgstr "" - -#: Titlebar.cpp:215 -msgid "Sticky" -msgstr "Стики" - -#: Titlebar.cpp:275 Titlebar.cpp:320 -msgid "Set size" -msgstr "" - -#: Titlebar.cpp:276 -msgid "Set size to window:" -msgstr "" - -#: Titlebar.cpp:285 -msgid "width:" -msgstr "" - -#: Titlebar.cpp:287 -msgid "height:" -msgstr "" - -#: Titlebar.cpp:291 -msgid "&OK" -msgstr "" - -#: Titlebar.cpp:294 -msgid "&Cancel" -msgstr "" - -#: Titlebar.cpp:318 Titlebar.cpp:331 -msgid "Maximize" -msgstr "МакÑимизуј" - -#: Titlebar.cpp:319 -msgid "Minimize" -msgstr "Минимизуј" - -#: Titlebar.cpp:321 -msgid "To Desktop" -msgstr "Ðа деÑктоп" - -#: Titlebar.cpp:322 -msgid "Kill" -msgstr "" - -#: Titlebar.cpp:323 -msgid "Close" -msgstr "Затвори" - -#: Titlebar.cpp:330 -msgid "Restore" -msgstr "Врати" - -#: Windowmanager.cpp:90 -#, c-format -msgid "Another window manager is running. You must exit it before running %s." -msgstr "" -"Други менаџер прозора је активан. Мораћете га угаÑити пре покретања %s." diff --git a/edewm/main.cpp b/edewm/main.cpp deleted file mode 100644 index 0be914e..0000000 --- a/edewm/main.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * $Id: main.cpp 1671 2006-07-11 14:07:43Z 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. - */ - -#include "Windowmanager.h" -#include "debug.h" -//#include - -#include -#include - -#include -#include -#include -#include - -bool got_signal = false; - - -void exit_signal(int signum) -{ - EWARNING("* Exiting (got signal %d) *", signum); - got_signal = true; -} - -int main(int argc, char ** argv) -{ - signal(SIGTERM, exit_signal); - signal(SIGKILL, exit_signal); - signal(SIGINT, exit_signal); - - Fl::args(argc, argv); - //fl_init_locale_support("edewm", PREFIX"/share/locale"); - - WindowManager::init(argc, argv); - Fl_Style::load_theme(); - - while(!got_signal && WindowManager::instance()->running()) - { - Fl::wait(); - WindowManager::instance()->idle(); - } - - WindowManager::shutdown(); - return 0; -} diff --git a/edewm/mask.xpm b/edewm/mask.xpm deleted file mode 100644 index c8a9cae..0000000 --- a/edewm/mask.xpm +++ /dev/null @@ -1,15 +0,0 @@ -/* XPM */ -static char * mask_xpm[] = { -"10 10 2 1", -" c None", -". c #000000", -"........ ", -"...... ", -"..... ", -".... ", -"... ", -".. ", -". ", -". ", -" ", -" "}; diff --git a/edewm/tests/basic_moveresize.cpp b/edewm/tests/basic_moveresize.cpp deleted file mode 100644 index 01ce29f..0000000 --- a/edewm/tests/basic_moveresize.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#define MRSIZE 2 - -void cb_move_left(Fl_Widget*, void* ww) -{ - Fl_Window* win = (Fl_Window*) ww; - printf("move left(before) x: %i y: %i\n", win->x(), win->y()); - win->position(win->x() - MRSIZE, win->y()); - printf("move left(after) x: %i y: %i\n", win->x(), win->y()); -} - -void cb_move_right(Fl_Widget*, void* ww) -{ - Fl_Window* win = (Fl_Window*) ww; - printf("move right(before) x: %i y: %i\n", win->x(), win->y()); - win->position(win->x() + MRSIZE, win->y()); - printf("move right(after) x: %i y: %i\n", win->x(), win->y()); -} - -void cb_move_up(Fl_Widget*, void* ww) -{ - Fl_Window* win = (Fl_Window*) ww; - printf("move up(before) x: %i y: %i\n", win->x(), win->y()); - win->position(win->x(), win->y() - MRSIZE); - printf("move up(after) x: %i y: %i\n", win->x(), win->y()); -} - -void cb_move_down(Fl_Widget*, void* ww) -{ - Fl_Window* win = (Fl_Window*) ww; - printf("move down(before) x: %i y: %i\n", win->x(), win->y()); - win->position(win->x(), win->y() + MRSIZE); - printf("move down(after) x: %i y: %i\n", win->x(), win->y()); -} - - -int main (int argc, char **argv) -{ - Fl_Window* win = new Fl_Window(300, 290, "Basic Window Operations"); - win->shortcut(0xff1b); - - Fl_Box* bbb = new Fl_Box(10, 10, 280, 50, "Below buttons should apply changes to this window"); - bbb->align(FL_ALIGN_INSIDE|FL_ALIGN_WRAP); - - Fl_Group* move_group = new Fl_Group(10, 85, 280, 75, "Move"); - move_group->box(FL_ENGRAVED_BOX); - move_group->align(FL_ALIGN_TOP|FL_ALIGN_LEFT); - - Fl_Button* move_up = new Fl_Button(130, 10, 25, 25, "^"); - move_up->callback(cb_move_up, win); - //move_left->label_type(FL_SYMBOL_LABEL); - - Fl_Button* move_down = new Fl_Button(130, 35, 25, 25, "v"); - move_down->callback(cb_move_down, win); - //move_right->label_type(FL_SYMBOL_LABEL); - - Fl_Button* move_left = new Fl_Button(105, 35, 25, 25, "<"); - move_left->callback(cb_move_left, win); - //move_up->label_type(FL_SYMBOL_LABEL); - - Fl_Button* move_right = new Fl_Button(155, 35, 25, 25, ">"); - move_right->callback(cb_move_right, win); - //move_down->label_type(FL_SYMBOL_LABEL); - - move_group->end(); - - - Fl_Group* resize_group = new Fl_Group(10, 190, 280, 75, "Resize"); - resize_group->box(FL_ENGRAVED_BOX); - resize_group->align(FL_ALIGN_TOP|FL_ALIGN_LEFT); - - Fl_Button* resize_up = new Fl_Button(130, 10, 25, 25, "^"); - //resize_left->label_type(FL_SYMBOL_LABEL); - - Fl_Button* resize_down = new Fl_Button(130, 35, 25, 25, "v"); - //resize_right->label_type(FL_SYMBOL_LABEL); - - Fl_Button* resize_left = new Fl_Button(105, 35, 25, 25, "<"); - //resize_up->label_type(FL_SYMBOL_LABEL); - - Fl_Button* resize_right = new Fl_Button(155, 35, 25, 25, ">"); - //resize_down->label_type(FL_SYMBOL_LABEL); - - resize_group->end(); - - win->end(); - win->show(argc, argv); - return Fl::run(); -} diff --git a/edewm/tests/basic_moveresize.fld b/edewm/tests/basic_moveresize.fld deleted file mode 100644 index d7dd61c..0000000 --- a/edewm/tests/basic_moveresize.fld +++ /dev/null @@ -1,61 +0,0 @@ -# data file for the eFLTK User Interface Designer (eFLUID) -version 2.0003 -header_name {.h} -code_name {.cpp} -gridx 5 -gridy 5 -snap 3 -Function {} {open -} { - Fl_Window {} { - label {Basic Window Operations} open - xywh {361 170 300 290} resizable visible - } { - Fl_Box {} { - label {Below buttons should apply changes to this window} - xywh {10 10 280 50} align FL_ALIGN_INSIDE|FL_ALIGN_WRAP - } - Fl_Group {} { - label Move open - xywh {10 85 280 75} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX - } { - Fl_Button {} { - label {@<} - xywh {130 10 25 25} label_type SYMBOL_LABEL - } - Fl_Button {} { - label {@<} - xywh {130 35 25 25} label_type SYMBOL_LABEL - } - Fl_Button {} { - label {@<} - xywh {105 35 25 25} label_type SYMBOL_LABEL - } - Fl_Button {} { - label {@>} - xywh {155 35 25 25} label_type SYMBOL_LABEL - } - } - Fl_Group {} { - label Resize open selected - xywh {10 190 280 75} align FL_ALIGN_TOP|FL_ALIGN_LEFT box ENGRAVED_BOX - } { - Fl_Button {} { - label {@<} - xywh {130 10 25 25} label_type SYMBOL_LABEL - } - Fl_Button {} { - label {@<} - xywh {130 35 25 25} label_type SYMBOL_LABEL - } - Fl_Button {} { - label {@<} - xywh {105 35 25 25} label_type SYMBOL_LABEL - } - Fl_Button {} { - label {@>} - xywh {155 35 25 25} label_type SYMBOL_LABEL - } - } - } -} diff --git a/edewm/tests/demo.ogg b/edewm/tests/demo.ogg deleted file mode 100644 index 4091a9f6078fedbff560ce1c0e9c8452d2b3885d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413925 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

iHFS3zZb3QDc*zlR9Cw33R?N7onOeR>6 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© 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 r>+XL(rq5VdYCIwP|NG1t*G~A)x2yfN - -int main() -{ - puts("playing...\n"); - SoundSystem ss; - ss.init(); - ss.play("demo.ogg"); - ss.shutdown(); - puts("done\n"); - - return 0; -} diff --git a/edewm/tests/testpositions.sh b/edewm/tests/testpositions.sh deleted file mode 100644 index 85d4c9d..0000000 --- a/edewm/tests/testpositions.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh -# -# $Id: testpositions.sh 1672 2006-07-11 14:13:16Z karijes $ -# -#= -#= Usage: testpositions.sh [OPTIONS] -#= -#= Test position where will be placed newly created windows. -#= -#= Options: -#= -p [program] run program -#= -t [number] run [program] [number] times -#= -h show this help -#= -#= Example: testpositions.sh -e gvim -t 1000, which -#= will run 1000 instances of gvim. -#= -#= NOTE: if you try this with some heavier programs -#= (mozilla, ooffice, etc.) swapping and possible X crashes -#= are not due window manager. Just warned you ! -#= - -PROGRAM="xterm" -TIMES="10" - -help() -{ - sed -ne "/^#= /{ s/^#= //p }" $0 - exit 0 -} - -main() -{ - if [ $# -eq 0 ]; then - help - fi - - argv=$@ - for argv do - case $argv in - -h) - help - continue;; - -p) - unset PROGRAM - continue;; - -t) - unset TIMES - continue;; - esac - - if [ "$PROGRAM" = "" ];then - PROGRAM=$argv - continue - elif [ "$TIMES" = "" ];then - TIMES=$argv - else - echo "Bad parameter '$argv'." - echo "Run $0 -h for options." - exit 0 - fi - done - - for((i = 1; i <= $TIMES; i++)) - do - `$PROGRAM`& - done -} - -main $@