From d0498c453dcb671475217352a85ef0c81bce8d21 Mon Sep 17 00:00:00 2001 From: Sanel Zukan Date: Thu, 19 Feb 2009 08:10:30 +0000 Subject: [PATCH] Moving old evoke to branches --- evoke/Autostart.cpp | 126 --- evoke/Autostart.h | 54 -- evoke/ClassHack.c | 17 - evoke/ClassHack.h | 36 - evoke/Composite.cpp | 1362 ------------------------------ evoke/Composite.h | 61 -- evoke/EvokeService.cpp | 798 ----------------- evoke/EvokeService.h | 132 --- evoke/Jamfile | 43 - evoke/Log.cpp | 73 -- evoke/Log.h | 51 -- evoke/Logout.cpp | 95 --- evoke/Logout.h | 26 - evoke/Spawn.cpp | 154 ---- evoke/Spawn.h | 40 - evoke/Splash.cpp | 276 ------ evoke/Splash.h | 56 -- evoke/Xsm.cpp | 332 -------- evoke/Xsm.h | 35 - evoke/data/edewm.png | Bin 1237 -> 0 bytes evoke/data/eiconman.png | Bin 1710 -> 0 bytes evoke/data/eworkpanel.png | Bin 1055 -> 0 bytes evoke/data/splash-alpha1.png | Bin 166961 -> 0 bytes evoke/data/splash-alpha1.png.old | Bin 12011 -> 0 bytes evoke/data/startup.ogg | Bin 124445 -> 0 bytes evoke/data/xscreensaver.png | Bin 1725 -> 0 bytes evoke/doc/evoke.txt | 120 --- evoke/ede-settings.xml | 19 - evoke/evoke.conf | 35 - evoke/evoke.cpp | 289 ------- evoke/fl/autostart.fl | 33 - evoke/fl/crash.fl | 28 - evoke/fl/crash_expanded.fl | 39 - evoke/fl/logout.fl | 30 - evoke/icons/core.xpm | 416 --------- evoke/icons/warning.xpm | 319 ------- evoke/test/evoke_test.cpp | 63 -- evoke/test/evoke_test.fl | 28 - evoke/test/opacity_test.cpp | 46 - evoke/test/stress_test.cpp | 63 -- 40 files changed, 5295 deletions(-) delete mode 100644 evoke/Autostart.cpp delete mode 100644 evoke/Autostart.h delete mode 100644 evoke/ClassHack.c delete mode 100644 evoke/ClassHack.h delete mode 100644 evoke/Composite.cpp delete mode 100644 evoke/Composite.h delete mode 100644 evoke/EvokeService.cpp delete mode 100644 evoke/EvokeService.h delete mode 100644 evoke/Jamfile delete mode 100644 evoke/Log.cpp delete mode 100644 evoke/Log.h delete mode 100644 evoke/Logout.cpp delete mode 100644 evoke/Logout.h delete mode 100644 evoke/Spawn.cpp delete mode 100644 evoke/Spawn.h delete mode 100644 evoke/Splash.cpp delete mode 100644 evoke/Splash.h delete mode 100644 evoke/Xsm.cpp delete mode 100644 evoke/Xsm.h delete mode 100644 evoke/data/edewm.png delete mode 100644 evoke/data/eiconman.png delete mode 100644 evoke/data/eworkpanel.png delete mode 100644 evoke/data/splash-alpha1.png delete mode 100644 evoke/data/splash-alpha1.png.old delete mode 100644 evoke/data/startup.ogg delete mode 100644 evoke/data/xscreensaver.png delete mode 100644 evoke/doc/evoke.txt delete mode 100644 evoke/ede-settings.xml delete mode 100644 evoke/evoke.conf delete mode 100644 evoke/evoke.cpp delete mode 100644 evoke/fl/autostart.fl delete mode 100644 evoke/fl/crash.fl delete mode 100644 evoke/fl/crash_expanded.fl delete mode 100644 evoke/fl/logout.fl delete mode 100644 evoke/icons/core.xpm delete mode 100644 evoke/icons/warning.xpm delete mode 100644 evoke/test/evoke_test.cpp delete mode 100644 evoke/test/evoke_test.fl delete mode 100644 evoke/test/opacity_test.cpp delete mode 100644 evoke/test/stress_test.cpp diff --git a/evoke/Autostart.cpp b/evoke/Autostart.cpp deleted file mode 100644 index 83817a6..0000000 --- a/evoke/Autostart.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#include "Autostart.h" -#include "icons/warning.xpm" -#include "EvokeService.h" - -#include -#include -#include - -Fl_Pixmap warnpix(warning_xpm); - -void closeit_cb(Fl_Widget*, void* w) { - AstartDialog* win = (AstartDialog*)w; - win->hide(); -} - -void run_sel_cb(Fl_Widget*, void* w) { - AstartDialog* win = (AstartDialog*)w; - win->run_selected(); -} - -void run_all_cb(Fl_Widget*, void* w) { - AstartDialog* win = (AstartDialog*)w; - win->run_all(); -} - -AstartDialog::AstartDialog(unsigned int sz, bool do_show) : Fl_Window(370, 305, _("Autostart warning")), - curr(0), lst_sz(sz), show_dialog(do_show), lst(0) { - - if(lst_sz) - lst = new AstartItem[lst_sz]; - - if(!show_dialog) - return; - - begin(); - img = new Fl_Box(10, 10, 65, 60); - img->image(warnpix); - txt = new Fl_Box(80, 10, 280, 60, _("The following applications are registered for starting. Please choose what to do next")); - txt->align(FL_ALIGN_INSIDE | FL_ALIGN_LEFT | FL_ALIGN_WRAP); - cbrowser = new Fl_Check_Browser(10, 75, 350, 185); - rsel = new Fl_Button(45, 270, 125, 25, _("Run &selected")); - rsel->callback(run_sel_cb, this); - rall = new Fl_Button(175, 270, 90, 25, _("&Run all")); - rall->callback(run_all_cb, this); - cancel = new Fl_Button(270, 270, 90, 25, _("&Cancel")); - cancel->callback(closeit_cb, this); - cancel->take_focus(); - end(); -} - -AstartDialog::~AstartDialog() { - if(lst_sz) - delete [] lst; -} - -void AstartDialog::add_item(const edelib::String& n, const edelib::String& e) { - if(!lst_sz) - return; - - if(e.empty()) - return; - - AstartItem it; - it.name = n; - it.exec = e; - - lst[curr++] = it; -} -#include -#include - -void AstartDialog::run(void) { - if(!show_dialog) { - run_all(); - return; - } - - for(unsigned int i = 0; i < curr; i++) - cbrowser->add(lst[i].name.c_str()); - - if(!shown()) - show(); - - while(shown()) { - //puts("WAIT WAIT"); - Fl::wait(); - } -} - -void AstartDialog::run_selected(void) { - if(!show_dialog) - return; - - int it = cbrowser->nchecked(); - if(!it) - return; - - for(unsigned int i = 0; i < curr; i++) { - if(cbrowser->checked(i+1)) - EvokeService::instance()->run_program(lst[i].exec.c_str()); - } - - hide(); -} - -void AstartDialog::run_all(void) { - if(!curr) - return; - - for(unsigned int i = 0; i < curr; i++) - EvokeService::instance()->run_program(lst[i].exec.c_str()); - - hide(); -} diff --git a/evoke/Autostart.h b/evoke/Autostart.h deleted file mode 100644 index c083099..0000000 --- a/evoke/Autostart.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __AUTOSTART_H__ -#define __AUTOSTART_H__ - -#include -#include -#include -#include - -#include - -struct AstartItem { - edelib::String name; - edelib::String exec; -}; - -class AstartDialog : public Fl_Window { - private: - unsigned int curr; - unsigned int lst_sz; - bool show_dialog; - AstartItem* lst; - - Fl_Box* img; - Fl_Box* txt; - Fl_Check_Browser* cbrowser; - Fl_Button* rsel; - Fl_Button* rall; - Fl_Button* cancel; - - public: - AstartDialog(unsigned int sz, bool do_show); - ~AstartDialog(); - - unsigned int list_size(void) { return curr; } - void add_item(const edelib::String& n, const edelib::String& e); - void run(void); - - void run_all(void); - void run_selected(void); -}; - -#endif diff --git a/evoke/ClassHack.c b/evoke/ClassHack.c deleted file mode 100644 index e25023a..0000000 --- a/evoke/ClassHack.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#include "ClassHack.h" - -int get_attributes_class_hack(XWindowAttributes* attr) { - return attr->class; -} diff --git a/evoke/ClassHack.h b/evoke/ClassHack.h deleted file mode 100644 index a0d514e..0000000 --- a/evoke/ClassHack.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __CLASSHACK_H__ -#define __CLASSHACK_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A stupid hack to extract value from 'class' member in XWindowAttributes structure. - * Calling it in regular C++ translation unit will yield compilation error (sic) - * so we must force it to be seen as regular C source. - * - * Does X developers ever heard for C++ language ?@#?#!@ - */ - -int get_attributes_class_hack(XWindowAttributes* attr); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/evoke/Composite.cpp b/evoke/Composite.cpp deleted file mode 100644 index a783a66..0000000 --- a/evoke/Composite.cpp +++ /dev/null @@ -1,1362 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * Part of Equinox Desktop Environment (EDE). - * Based on xcompmgr (c) 2003 Keith Packard. - * Copyright (c) 2007 EDE Authors. - * - * This program is licensed under terms of the - * GNU General Public License version 2 or newer. - * See COPYING for details. - */ - -#include "Composite.h" -#include "ClassHack.h" - -#include - -#include -#include - -#include // memcpy -#include // malloc, realloc - -#include -#include - -#define TRANSLUCENT 0xe0000000 -#define OPAQUE 0xffffffff - -#define REFRESH_TIMEOUT 0.05 - -#define WIN_MODE_SOLID 0 -#define WIN_MODE_TRANS 1 -#define WIN_MODE_ARGB 2 - -static int render_error; -static int damage_error; -static int xfixes_error; -static bool have_name_pixmap = false; -static int composite_opcode; -static int damage_event; -static bool another_is_running; - - -Atom _XA_NET_WM_WINDOW_OPACITY; -Atom _XA_NET_WM_WINDOW_TYPE; -Atom _XA_NET_WM_WINDOW_TYPE_DESKTOP; -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_UTILITY; -Atom _XA_NET_WM_WINDOW_TYPE_SPLASH; -Atom _XA_NET_WM_WINDOW_TYPE_DIALOG; -Atom _XA_NET_WM_WINDOW_TYPE_NORMAL; - -static char* backgroundProps[] = { - "_XROOTPMAP_ID", - "_XSETROOT_ID", - 0 -}; - -//#define HAVE_NAME_WINDOW_PIXMAP 1 - -struct CWindow { - Window id; -#if HAVE_NAME_WINDOW_PIXMAP - Pixmap pixmap; -#endif - XWindowAttributes attr; - int mode; - int damaged; - Damage damage; - - Picture picture; - Picture picture_alpha; - Picture picture_shadow; - - XserverRegion border_size; - XserverRegion extents; - - Picture shadow; - int shadow_dx; - int shadow_dy; - int shadow_w; - int shadow_h; - unsigned int opacity; - - Atom window_type; - - unsigned long damage_sequence; // sequence when damage was created - - // for drawing translucent windows - XserverRegion border_clip; -}; - -XserverRegion allDamage; -bool fadeWindows = true; -bool clipChanged = false; -bool excludeDockShadows = true; -Picture rootBuffer = 0; -Picture rootPicture = 0; -Picture rootTile = 0; -Picture blackPicture = 0; - -int shadowRadius = 12; -int shadowOffsetX = -15; -int shadowOffsetY = -15; -double shadowOpacity = .75; - -bool hasNamePixmap = true; - -#define DO_BETTER_REPAINT 1 - -void idle_cb(void* c) { - Composite* comp = (Composite*)c; - -#ifdef DO_BETTER_REPAINT - if(allDamage != None) { - comp->paint_all(allDamage); - - XFixesDestroyRegion(fl_display, allDamage); - allDamage = None; - clipChanged = false; - } -#else - comp->paint_all(allDamage); - - if(allDamage != None) { - XFixesDestroyRegion(fl_display, allDamage); - allDamage = None; - clipChanged = false; - } -#endif - -#ifndef USE_CHECK - Fl::repeat_timeout(REFRESH_TIMEOUT, idle_cb, c); -#endif -} - -int xerror_handler(Display* display, XErrorEvent* xev) { - if(xev->request_code == composite_opcode && xev->minor_code == X_CompositeRedirectSubwindows) { - EWARNING(ESTRLOC ": Another composite manager is running\n"); - another_is_running = true; - return 1; - } - - char* name = NULL; - int o = xev->error_code - xfixes_error; - switch(o) { - case BadRegion: - name = "BadRegion"; - break; - default: - break; - } - - o = xev->error_code - damage_error; - switch(o) { - case BadDamage: - name = "BadDamage"; - break; - default: - break; - } - - o = xev->error_code - render_error; - switch(o) { - case BadPictFormat: - name = "BadPictFormat"; - break; - case BadPicture: - name = "BadPicture"; - break; - case BadPictOp: - name = "BadPictOp"; - break; - case BadGlyphSet: - name = "BadGlyphSet"; - break; - case BadGlyph: - name = "BadGlyph"; - break; - default: - break; - } - - //EDEBUG(ESTRLOC ": (%s) : error %i request %i minor %i serial %i\n", - // (name ? name : "unknown"), xev->error_code, xev->request_code, xev->minor_code, xev->serial); - -#if 0 - char buff[128]; - XGetErrorDatabaseText(fl_display, "XlibMessage", "XError", "", buff, 128); - EDEBUG("%s", buff); - - XGetErrorText(fl_display, xev->error_code, buff, 128); - EDEBUG(" :%s\n", buff); - - XGetErrorDatabaseText(fl_display, "XlibMessage", "MajorCode", "%d", buff, 128); - EDEBUG(" "); - EDEBUG(buff, xev->request_code); - EDEBUG("\n"); - - XGetErrorDatabaseText(fl_display, "XlibMessage", "MinorCode", "%d", buff, 128); - EDEBUG(" "); - EDEBUG(buff, xev->minor_code); - EDEBUG("\n"); - - XGetErrorDatabaseText(fl_display, "XlibMessage", "ResourceID", "%d", buff, 128); - EDEBUG(" "); - EDEBUG(buff, xev->resourceid); - EDEBUG("\n"); -#endif - - return 0; -} - -void set_ignore(unsigned long sequence) { - // TODO -} - -unsigned int get_opacity_property(CWindow* win, unsigned int dflt) { - Atom actual; - int format; - unsigned long n, left; - unsigned char* data = NULL; - - int ret = XGetWindowProperty(fl_display, win->id, _XA_NET_WM_WINDOW_OPACITY, 0L, 1L, False, - XA_CARDINAL, &actual, &format, &n, &left, &data); - - if(ret == Success && data != NULL) { - unsigned int p; - // TODO: replace memcpy call - memcpy(&p, data, sizeof(unsigned int)); - XFree(data); - // EDEBUG(":) Opacity for %i = %i\n", win->id, p); - return p; - } - - //EDEBUG("Opacity for %i = %i\n", win->id, dflt); - - return dflt; -} - -double get_opacity_percent(CWindow* win, double dflt) { - unsigned int opacity = get_opacity_property(win, (unsigned int)(OPAQUE * dflt)); - return opacity * 1.0 / OPAQUE; -} - -Atom get_window_type_property(Window win) { - Atom actual; - int format; - unsigned long n, left; - unsigned char* data = NULL; - - int ret = XGetWindowProperty(fl_display, win, _XA_NET_WM_WINDOW_TYPE, 0L, 1L, False, - XA_ATOM, &actual, &format, &n, &left, &data); - - if(ret == Success && data != NULL) { - Atom a; - // TODO: replace memcpy call - memcpy(&a, data, sizeof(Atom)); - XFree(data); - return a; - } - - return _XA_NET_WM_WINDOW_TYPE_NORMAL; -} - -Atom determine_window_type(Window win) { - Atom type = get_window_type_property(win); - if(type != _XA_NET_WM_WINDOW_TYPE_NORMAL) - return type; - - // scan children - Window root_return, parent_return; - Window* children = NULL; - unsigned int nchildren; - - if(XQueryTree(fl_display, win, &root_return, &parent_return, &children, &nchildren) != 0) { - if(children) - XFree(children); - return _XA_NET_WM_WINDOW_TYPE_NORMAL; - } - - for(unsigned int i = 0; i < nchildren; i++) { - type = determine_window_type(children[i]); - if(type != _XA_NET_WM_WINDOW_TYPE_NORMAL) - return type; - } - - if(children) - XFree(children); - return _XA_NET_WM_WINDOW_TYPE_NORMAL; -} - -void add_damage(XserverRegion damage) { - if(allDamage != None) { - XFixesUnionRegion(fl_display, allDamage, allDamage, damage); - XFixesDestroyRegion(fl_display, damage); - } else - allDamage = damage; -} - -void determine_mode(CWindow* win) { - if(win->picture_alpha) { - XRenderFreePicture(fl_display, win->picture_alpha); - win->picture_alpha = None; - } - - if(win->picture_shadow) { - XRenderFreePicture(fl_display, win->picture_shadow); - win->picture_shadow = None; - } - - XRenderPictFormat* format; - if(get_attributes_class_hack(&win->attr) == InputOnly) - format = 0; - else - format = XRenderFindVisualFormat(fl_display, win->attr.visual); - - if(format && format->type == PictTypeDirect && format->direct.alphaMask) - win->mode = WIN_MODE_ARGB; - else if(win->opacity != OPAQUE) - win->mode = WIN_MODE_TRANS; - else - win->mode = WIN_MODE_SOLID; - - if(win->extents) { - XserverRegion damage = XFixesCreateRegion(fl_display, 0, 0); - XFixesCopyRegion(fl_display, damage, win->extents); - add_damage(damage); - } -} - -// TODO: make this a member -XserverRegion set_border_size(CWindow* win) { - /* - * if window doesn't exist anymore, this will generate an error - * as well as not generate a region. Perhaps a better XFixes - * architecture would be to have a request that copies instead - * of creates, that way you'd just end up with an empty region - * instead of an invalid XID. - */ - set_ignore(NextRequest(fl_display)); - XserverRegion border = XFixesCreateRegionFromWindow(fl_display, win->id, WindowRegionBounding); - - // translate this - set_ignore(NextRequest(fl_display)); - XFixesTranslateRegion(fl_display, border, - win->attr.x + win->attr.border_width, - win->attr.y + win->attr.border_width); - - return border; -} - -// TODO: make this a part of paint_root() -Picture root_tile(void) { - Atom actual_type; - int actual_format; - unsigned long nitems; - unsigned long bytes_after; - unsigned char* prop; - Pixmap pixmap = None; - Atom pixmap_atom = XInternAtom(fl_display, "PIXMAP", False); - Window root = RootWindow(fl_display, fl_screen); - bool fill; - - for(int i = 0; backgroundProps[i]; i++) { - if(XGetWindowProperty(fl_display, root, XInternAtom(fl_display, backgroundProps[i], False), - 0, 4, False, AnyPropertyType, - &actual_type, &actual_format, &nitems, &bytes_after, &prop) == Success && - actual_type == pixmap_atom && - actual_format == 32 && - nitems == 1) { - memcpy(&pixmap, prop, 4); - XFree(prop); - fill = false; - break; - } - } - - if(!pixmap) { - pixmap = XCreatePixmap(fl_display, root, 1, 1, DefaultDepth(fl_display, fl_screen)); - fill = true; - } - - XRenderPictureAttributes pa; - pa.repeat = True; - - Picture picture = XRenderCreatePicture(fl_display, pixmap, - XRenderFindVisualFormat(fl_display, DefaultVisual(fl_display, fl_screen)), - CPRepeat, &pa); - - if(fill) { - XRenderColor c; - c.red = c.green = c.blue = 0x8080; - c.alpha = 0xffff; - XRenderFillRectangle(fl_display, PictOpSrc, picture, &c, 0, 0, 1, 1); - } - - return picture; -} - -Picture solid_picture(bool argb, double a, double r, double g, double b) { - Pixmap pixmap = XCreatePixmap(fl_display, RootWindow(fl_display, fl_screen), 1, 1, argb ? 32 : 8); - if(!pixmap) - return None; - - XRenderPictureAttributes pa; - pa.repeat = True; - - Picture picture = XRenderCreatePicture(fl_display, pixmap, - XRenderFindStandardFormat(fl_display, argb ? PictStandardARGB32 : PictStandardA8), - CPRepeat, &pa); - - if(!picture) { - XFreePixmap(fl_display, pixmap); - return None; - } - - XRenderColor color; - color.alpha = a * 0xffff; - color.red = r * 0xffff; - color.green = g * 0xffff; - color.blue = b * 0xffff; - - XRenderFillRectangle(fl_display, PictOpSrc, picture, &color, 0, 0, 1, 1); - XFreePixmap(fl_display, pixmap); - return picture; -} - - -Composite::Composite() : manual_redirect(true) { -} - -Composite::~Composite() { - EDEBUG("Composite::~Composite()\n"); -#ifdef USE_CHECK - Fl::remove_check(idle_cb); -#else - Fl::remove_timeout(idle_cb); -#endif - - // TODO: this part should call finish_destroy_window() - CWindowListIter it = window_list.begin(), it_end = window_list.end(); - while(it != it_end) { - delete *it; - ++it; - } -} - -bool Composite::init(void) { - another_is_running = false; - - // set error handler first - XSetErrorHandler(xerror_handler); - - int render_event; - if(!XRenderQueryExtension(fl_display, &render_event, &render_error)) { - EWARNING(ESTRLOC ": No render extension\n"); - return false; - } - - // check Composite extension - int composite_event, composite_error; - if(!XQueryExtension(fl_display, COMPOSITE_NAME, &composite_opcode, &composite_event, &composite_error)) { - EWARNING(ESTRLOC ": No composite extension\n"); - return false; - } - - int composite_major, composite_minor; - XCompositeQueryVersion(fl_display, &composite_major, &composite_minor); - EDEBUG(ESTRLOC ": Setting up XComposite version %i.%i\n", composite_major, composite_minor); - - if(composite_major > 0 || composite_minor >= 2) - have_name_pixmap = true; - - // check XDamage extension - if(!XDamageQueryExtension(fl_display, &damage_event, &damage_error)) { - EWARNING(ESTRLOC ": No damage extension\n"); - return false; - } - - // check XFixes extension - int xfixes_event; - if(!XFixesQueryExtension(fl_display, &xfixes_event, &xfixes_error)) { - EWARNING(ESTRLOC ": No XFixes extension\n"); - return false; - } - - _XA_NET_WM_WINDOW_OPACITY = XInternAtom(fl_display, "_NET_WM_WINDOW_OPACITY", False); - _XA_NET_WM_WINDOW_TYPE = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE", False); - _XA_NET_WM_WINDOW_TYPE_DESKTOP = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_DESKTOP", False); - _XA_NET_WM_WINDOW_TYPE_DOCK = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_DOCK", False); - _XA_NET_WM_WINDOW_TYPE_TOOLBAR = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_TOOLBAR", False); - _XA_NET_WM_WINDOW_TYPE_MENU = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_MENU", False); - _XA_NET_WM_WINDOW_TYPE_UTILITY = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_UTILITY", False); - _XA_NET_WM_WINDOW_TYPE_SPLASH = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_SPLASH", False); - _XA_NET_WM_WINDOW_TYPE_DIALOG = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_DIALOG", False); - _XA_NET_WM_WINDOW_TYPE_NORMAL = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_NORMAL", False); - - allDamage = None; - clipChanged = true; - - XRenderPictureAttributes pa; - pa.subwindow_mode = IncludeInferiors; - rootPicture = XRenderCreatePicture(fl_display, RootWindow(fl_display, fl_screen), - XRenderFindVisualFormat(fl_display, DefaultVisual(fl_display, fl_screen)), CPSubwindowMode, &pa); - - blackPicture = solid_picture(true, 1, 0, 0, 0); - - // now redirect all windows to the Composite - XGrabServer(fl_display); - - /* - * If another manager is running, XCompositeRedirectSubwindows() will report it in xerror_handler(). - * This only works if another-manager/evoke are both set in CompositeRedirectManual mode - */ - if(!manual_redirect) - XCompositeRedirectSubwindows(fl_display, RootWindow(fl_display, fl_screen), CompositeRedirectAutomatic); - else { - XCompositeRedirectSubwindows(fl_display, RootWindow(fl_display, fl_screen), CompositeRedirectManual); -#if 0 - // Commented, since already selected in main evoke code (evoke.cpp). - XSelectInput(fl_display, RootWindow(fl_display, fl_screen), - SubstructureNotifyMask | ExposureMask | StructureNotifyMask | PropertyChangeMask); -#endif - - Window root_ret, parent_ret; - Window* children; - unsigned int nchildren; - - XQueryTree(fl_display, RootWindow(fl_display, fl_screen), &root_ret, &parent_ret, &children, &nchildren); - for(unsigned int i = 0; i < nchildren; i++) - add_window(children[i], i ? children[i-1] : None); - - XFree(children); - } - - XUngrabServer(fl_display); - - /* - * draw all windows now, but only if we manualy manage them - * since window_list will be empty - */ - if(manual_redirect) { - paint_all(None); - /* - * Using add_check() instead add_timeout() makes difference in redrawing - * since add_check() callback function will be called before FLTK flushes - * the display which makes it very suitable for smooth redrawing. - * - * On other hand, using add_timeout() will trigger timer each REFRESH_TIMEOUT - * no matter for pending events (especially XDamageNotifyEvent) and due that - * timeout we can miss some XDamage events, yielding little bit non-smooth redrawing. - */ -#ifdef USE_CHECK - Fl::add_check(idle_cb, this); -#else - Fl::add_timeout(REFRESH_TIMEOUT, idle_cb, this); -#endif - } - - return true; -} - -void Composite::add_window(Window id, Window previous) { - CWindow* new_win = new CWindow; - new_win->id = id; - - set_ignore(NextRequest(fl_display)); - - if(!XGetWindowAttributes(fl_display, id, &new_win->attr)) { - delete new_win; - return; - } - - new_win->damaged = 0; -#if HAVE_NAME_WINDOW_PIXMAP - new_win->pixmap = None; -#endif - new_win->picture = None; - - if(get_attributes_class_hack(&(new_win->attr)) == InputOnly) { - new_win->damage_sequence = 0; - new_win->damage = None; - } else { - new_win->damage_sequence = NextRequest(fl_display); - new_win->damage = XDamageCreate(fl_display, new_win->id, XDamageReportNonEmpty); - } - - new_win->picture_alpha = None; - new_win->picture_shadow = None; - new_win->border_size = None; - new_win->extents = None; - new_win->shadow = None; - new_win->shadow_dx = 0; - new_win->shadow_dy = 0; - new_win->shadow_w = 0; - new_win->shadow_h = 0; - new_win->opacity = get_opacity_property(new_win, OPAQUE); - new_win->border_clip = None; - - new_win->window_type = determine_window_type(new_win->id); - determine_mode(new_win); - - // put window at the top - window_list.push_front(new_win); - - // map it if was mapped before - if(new_win->attr.map_state == IsViewable) - map_window(new_win->id, new_win->damage_sequence - 1, true); -} - -void Composite::map_window(Window id, unsigned long sequence, bool fade) { - CWindow* win = find_window(id); - if(!win) - return; - - win->attr.map_state = IsViewable; - - // this needs to be here or we loose transparency messages - //XSelectInput(fl_display, win->id, PropertyChangeMask); - XSelectInput(fl_display, win->id, PropertyChangeMask | win->attr.your_event_mask | StructureNotifyMask); - win->damaged = 0; - - /* - * XXX: a hack, not present in xcompmgr due main event - * loop changes - */ - //repair_window(win); - - // TODO: fading support -} - -void Composite::unmap_window(Window id, bool fade) { - CWindow* win = find_window(id); - if(!win) - return; - win->attr.map_state = IsUnmapped; -#if HAVE_NAME_WINDOW_PIXMAP - if(win->pixmap && fade && fadeWindows) { - // TODO: fading support - } else -#endif - finish_unmap_window(win); -} - -void Composite::finish_unmap_window(CWindow* win) { - win->damaged = 0; - if(win->extents != None) { - add_damage(win->extents); // destroy region - win->extents = None; - } - -#if HAVE_NAME_WINDOW_PIXMAP - if(win->pixmap) { - XFreePixmap(fl_display, win->pixmap); - win->pixmap = None; - } -#endif - - if(win->picture) { - set_ignore(NextRequest(fl_display)); - XRenderFreePicture(fl_display, win->picture); - win->picture = None; - } - - // don't care about properties anymore - set_ignore(NextRequest(fl_display)); - XSelectInput(fl_display, win->id, 0); - - if(win->border_size) { - set_ignore(NextRequest(fl_display)); - XFixesDestroyRegion(fl_display, win->border_size); - win->border_size = None; - } - - if(win->shadow) { - XRenderFreePicture(fl_display, win->shadow); - win->shadow = None; - } - - if(win->border_clip) { - XFixesDestroyRegion(fl_display, win->border_clip); - win->border_clip = None; - } - - clipChanged = true; -} - -void Composite::configure_window(const XConfigureEvent* ce) { - CWindow* win = find_window(ce->window); - if(!win) { - if(ce->window == RootWindow(fl_display, fl_screen)) { - if(rootBuffer) { - XRenderFreePicture(fl_display, rootBuffer); - rootBuffer = None; - } - - // TODO: here should be updated - // root_width and root_height - } - - return; - } - - XserverRegion damage = None; - - damage = XFixesCreateRegion(fl_display, 0, 0); - if(win->extents != None) - XFixesCopyRegion(fl_display, damage, win->extents); - - win->attr.x = ce->x; - win->attr.y = ce->y; - if(win->attr.width != ce->width || win->attr.height != ce->height) { -#if HAVE_NAME_WINDOW_PIXMAP - if(win->pixmap) { - XFreePixmap(fl_display, win->pixmap); - win->pixmap = None; - if(win->picture) { - XRenderFreePicture(fl_display, win->picture); - win->picture = None; - } - } -#endif - if(win->shadow) { - XRenderFreePicture(fl_display, win->shadow); - win->shadow = None; - } - } - - win->attr.width = ce->width; - win->attr.height = ce->height; - win->attr.border_width = ce->border_width; - win->attr.override_redirect = ce->override_redirect; - -#if 0 - EDEBUG("--- before restack() ---\n"); - CWindowListIter first = window_list.begin(); - for(; first != window_list.end(); ++first) - EDEBUG("0x%x ", (*first)->id); - EDEBUG("\n"); - - EDEBUG("ME: 0x%x ABOVE: 0x%x\n", win->id, ce->above); -#endif - restack_window(win, ce->above); - -#if 0 - EDEBUG("--- after restack() ---\n"); - first = window_list.begin(); - for(; first != window_list.end(); ++first) - EDEBUG("0x%x ", (*first)->id); - EDEBUG("\n"); -#endif - - if(damage) { - XserverRegion extents = window_extents(win); - XFixesUnionRegion(fl_display, damage, damage, extents); - XFixesDestroyRegion(fl_display, extents); - add_damage(damage); - } - - clipChanged = true; -} - -void Composite::restack_window(CWindow* win, Window new_above) { - CWindowListIter it = window_list.begin(), it_end = window_list.end(); - while(it != it_end) { - if(*it == win) - break; - ++it; - } - - Window old_above; - if(it == it_end) // not found - old_above = None; - else { - ++it; // get the next one - - // check again - if(it == it_end) - old_above = None; - else - old_above = (*it)->id; - } - - if(old_above != new_above) { - --it; // return to our window - EASSERT(*it == win && "Wrong code"); - window_list.erase(it); - /* - it = window_list.begin(); - it_end = window_list.end(); - - // find our window and remove it from current position - while(it != it_end) { - if(*it == win) { - window_list.erase(it); - break; - } - ++it; - }*/ - - it = window_list.begin(); - - // now found new_above and insert our window - while(it != it_end) { - if((*it)->id == new_above) { - break; - } - ++it; - } - // now insert where iterator was stopped (if not found 'new_above') it will insert at the end - window_list.insert(it, win); - } -} - -void Composite::property_notify(const XPropertyEvent* pe) { - for(int i = 0; backgroundProps[i]; i++) { - if(pe->atom == XInternAtom(fl_display, backgroundProps[i], False)) { - if(rootTile) { - XClearArea(fl_display, RootWindow(fl_display, fl_screen), 0, 0, 0, 0, True); - XRenderFreePicture(fl_display, rootTile); - rootTile = None; - break; - } - } - } - - // check if Trans property was changed - if(pe->atom == _XA_NET_WM_WINDOW_OPACITY) { - // reset mode and redraw window - CWindow* win = find_window(pe->window); - if(win) { - // TODO: fading support - win->opacity = get_opacity_property(win, OPAQUE); - determine_mode(win); - if(win->shadow) { - XRenderFreePicture(fl_display, win->shadow); - win->shadow = None; - win->extents = window_extents(win); - } - } - } -} - -#if 0 -static XRectangle* expose_rects = 0; -static int size_expose = 0; -static int n_expose = 0; -#endif - -void Composite::expose_event(const XExposeEvent* ee) { -#if 0 - if(ee->window != RootWindow(fl_display, fl_screen)) - return; - - int more = ee->count + 1; - - if(n_expose == size_expose) { - if(expose_rects) { - expose_rects = (XRectangle*)realloc(expose_rects, (size_expose + more) * sizeof(XRectangle)); - size_expose += more; - } else { - expose_rects = (XRectangle*)malloc(more * sizeof(XRectangle)); - size_expose = more; - } - } - - expose_rects[n_expose].x = ee->x; - expose_rects[n_expose].y = ee->y; - expose_rects[n_expose].width = ee->width; - expose_rects[n_expose].height = ee->height; - n_expose++; - - if(ee->count == 0) { - // expose root - XserverRegion region = XFixesCreateRegion(fl_display, expose_rects, n_expose); - add_damage(region); - n_expose = 0; - } -#endif - - XRectangle rect[1]; - rect[0].x = ee->x; - rect[0].y = ee->y; - rect[0].width = ee->width; - rect[0].height = ee->height; - - XserverRegion region = XFixesCreateRegion(fl_display, rect, 1); - add_damage(region); -} - -void Composite::reparent_notify(const XReparentEvent* re) { - if(re->parent == RootWindow(fl_display, fl_screen)) - add_window(re->window, 0); - else - destroy_window(re->window, false, true); -} - -void Composite::circulate_window(const XCirculateEvent* ce) { - CWindow* win = find_window(ce->window); - if(!win) - return; - - Window new_above; - if(ce->place == PlaceOnTop) - new_above = (*window_list.begin())->id; - else - new_above = None; - restack_window(win, new_above); - clipChanged = true; -} - -CWindow* Composite::find_window(Window id) { - if(window_list.size() == 0) - return NULL; - - CWindowListIter it = window_list.begin(), it_end = window_list.end(); - - while(it != it_end) { - if((*it)->id == id) - return *it; - ++it; - } - - return NULL; -} - -XserverRegion Composite::window_extents(CWindow* win) { - XRectangle r; - r.x = win->attr.x; - r.y = win->attr.y; - r.width = win->attr.width + win->attr.border_width * 2; - r.height = win->attr.height + win->attr.border_width * 2; - - if(!(win->window_type == _XA_NET_WM_WINDOW_TYPE_DOCK && excludeDockShadows)) { - // TODO: check this in xcompmgr since server shadows are not used, only client one - if(win->mode != WIN_MODE_ARGB) { - win->shadow_dx = shadowOffsetX; - win->shadow_dx = shadowOffsetX; - - // make shadow if not already made - if(!win->shadow) { - double opacity = shadowOpacity; - - if(win->mode == WIN_MODE_TRANS) - opacity = opacity * ((double)win->opacity)/((double)OPAQUE); -/* - win->shadow = shadow_picture(opacity, win->picture_alpha, - win->attr.width + win->attr.border_width * 2, - win->attr.height + win->attr.border_width * 2, - &win->shadow_w, &win->shadow_h); -*/ - } - } - - XRectangle sr; - sr.x = win->attr.x + win->shadow_dx; - sr.y = win->attr.y + win->shadow_dy; - sr.width = win->shadow_w; - sr.height = win->shadow_h; - - if(sr.x < r.x) { - r.width = (r.x + r.width) - sr.x; - r.x = sr.x; - } - - if(sr.y < r.y) { - r.height = (r.y + r.height) - sr.y; - r.y = sr.y; - } - - if(sr.x + sr.width > r.x + r.width) - r.width = sr.x + sr.width - r.x; - if(sr.y + sr.height > r.y + r.height) - r.height = sr.y + sr.height - r.y; - } - - return XFixesCreateRegion(fl_display, &r, 1); -} - -void Composite::paint_root(void) { - if(!rootTile) - rootTile = root_tile(); - - XRenderComposite(fl_display, PictOpSrc, rootTile, None, rootBuffer, 0, 0, 0, 0, 0, 0, - DisplayWidth(fl_display, fl_screen), - DisplayHeight(fl_display, fl_screen)); -} - -void Composite::paint_all(XserverRegion region) { - //EDEBUG(ESTRLOC ": PAINT %i windows\n", window_list.size()); - - // if region is None repaint all screen - if(!region) { - XRectangle r; - r.x = 0; - r.y = 0; - // TODO: DisplayWidth/DisplayHeight should be calculated in init() - r.width = DisplayWidth(fl_display, fl_screen); - r.height = DisplayHeight(fl_display, fl_screen); - - region = XFixesCreateRegion(fl_display, &r, 1); - } - - if(!rootBuffer) { - Pixmap root_pix = XCreatePixmap(fl_display, RootWindow(fl_display, fl_screen), - DisplayWidth(fl_display, fl_screen), - DisplayHeight(fl_display, fl_screen), - DefaultDepth(fl_display, fl_screen)); - - rootBuffer = XRenderCreatePicture(fl_display, root_pix, - XRenderFindVisualFormat(fl_display, DefaultVisual(fl_display, fl_screen)), 0, 0); - - XFreePixmap(fl_display, root_pix); - } - - XFixesSetPictureClipRegion(fl_display, rootPicture, 0, 0, region); - - // paint from top to bottom - CWindowListIter it = window_list.begin(), it_end = window_list.end(); - for(; it != it_end; ++it) { - CWindow* win = *it; - - // never painted, ignore it - if(!win->damaged) - continue; - - // invisible, ignore it - if(win->attr.x + win->attr.width < 1 || win->attr.y + win->attr.height < 1 - || win->attr.x >= DisplayWidth(fl_display, fl_screen) - || win->attr.y >= DisplayHeight(fl_display, fl_screen)) { - continue; - } - - if(!win->picture) { - Drawable draw = win->id; -#ifdef HAVE_NAME_WINDOW_PIXMAP - if(hasNamePixmap && !win->pixmap) - win->pixmap = XCompositeNameWindowPixmap(fl_display, win->id); - if(win->pixmap) - draw = win->pixmap; -#endif - XRenderPictFormat* format = XRenderFindVisualFormat(fl_display, win->attr.visual); - - XRenderPictureAttributes pa; - pa.subwindow_mode = IncludeInferiors; - win->picture = XRenderCreatePicture(fl_display, draw, format, CPSubwindowMode, &pa); - } - - if(clipChanged) { - if(win->border_size) { - set_ignore(NextRequest(fl_display)); - XFixesDestroyRegion(fl_display, win->border_size); - win->border_size = None; - } - - if(win->extents) { - XFixesDestroyRegion(fl_display, win->extents); - win->extents = None; - } - - if(win->border_clip) { - XFixesDestroyRegion(fl_display, win->border_clip); - win->border_clip = None; - } - } - - if(!win->border_size) - win->border_size = set_border_size(win); - - if(!win->extents) - win->extents = window_extents(win); - - // EDEBUG("mode :%i\n", win->mode); - - if(win->mode == WIN_MODE_SOLID) { - int x, y, wid, hei; -#if HAVE_NAME_WINDOW_PIXMAP - x = win->attr.x; - y = win->attr.y; - wid = win->attr.width + win->attr.border_width * 2; - hei = win->attr.height + win->attr.border_width * 2; -#else - x = win->attr.x + win->attr.border_width; - y = win->attr.y + win->attr.border_width; - wid = win->attr.width; - hei = win->attr.height; -#endif - XFixesSetPictureClipRegion(fl_display, rootBuffer, 0, 0, region); - set_ignore(NextRequest(fl_display)); - XFixesSubtractRegion(fl_display, region, region, win->border_size); - set_ignore(NextRequest(fl_display)); - - // EDEBUG(ESTRLOC ": Composite on %i x:%i y:%i w:%i h:%i\n", win->id, x, y, wid, hei); - - XRenderComposite(fl_display, PictOpSrc, win->picture, None, rootBuffer, - 0, 0, 0, 0, x, y, wid, hei); - } - - if(!win->border_clip) { - win->border_clip = XFixesCreateRegion(fl_display, 0, 0); - XFixesCopyRegion(fl_display, win->border_clip, region); - } - } - - XFixesSetPictureClipRegion(fl_display, rootBuffer, 0, 0, region); - paint_root(); - - /* - * paint from bottom to top - * use counter since checking only iterator will not pick up first element - */ - it = window_list.end(); - it_end = window_list.begin(); - --it; // decrease iterator so it pointing to the last element - - for(unsigned int i = 0; i < window_list.size(); i++) { - CWindow* win = *it; - - XFixesSetPictureClipRegion(fl_display, rootBuffer, 0, 0, win->border_clip); - - // TODO: server shadows - // go and directly try to draw client shadows - // don't draw them on desktop -#if 0 - if(win->shadow && win->window_type != _XA_NET_WM_WINDOW_TYPE_DESKTOP) { - XRenderComposite(fl_display, PictOpOver, blackPicture, win->shadow, rootBuffer, - 0, 0, 0, 0, - win->attr.x + win->shadow_dx, - win->attr.y + win->shadow_dy, - win->shadow_w, win->shadow_h); - } -#endif - - if(win->opacity != OPAQUE && !win->picture_alpha) - win->picture_alpha = solid_picture(false, (double)win->opacity / OPAQUE, 0, 0, 0); - - // TODO: check this, xcompmgr have the same code for WIN_MODE_TRANS and WIN_MODE_ARGB - if(win->mode == WIN_MODE_TRANS || win->mode == WIN_MODE_ARGB) { - int x, y, wid, hei; -#if HAVE_NAME_WINDOW_PIXMAP - x = win->attr.x; - y = win->attr.y; - wid = win->attr.width + win->attr.border_width * 2; - hei = win->attr.height + win->attr.border_width * 2; -#else - x = win->attr.x + win->attr.border_width; - y = win->attr.y + win->attr.border_width; - wid = win->attr.width; - hei = win->attr.height; -#endif - set_ignore(NextRequest(fl_display)); - - XRenderComposite(fl_display, PictOpOver, win->picture, win->picture_alpha, rootBuffer, - 0, 0, 0, 0, - x, y, wid, hei); - -#if 0 - XRenderComposite(fl_display, PictOpOver, win->picture, win->picture_alpha, rootBuffer, - 10, 0, - 0, 0, - x+10, y, wid-10, 100); - - // solid - XRenderComposite(fl_display, PictOpSrc, win->picture, None, rootBuffer, - 10, 100, - 0, 0, - x+10, y+100, wid-10, hei-100); - - XRenderComposite(fl_display, PictOpSrc, win->picture, None, rootBuffer, - 0, 0, - 0, 0, - x, y, 10, hei); -#endif - - } - - // XXX: a lot of errors here ? - if(win->border_clip != None) { - XFixesDestroyRegion(fl_display, win->border_clip); - win->border_clip = None; - } - - // this will assure we catch first element too - if(it != it_end) - --it; - } - - XFixesDestroyRegion(fl_display, region); - - if(rootBuffer != rootPicture) { - XFixesSetPictureClipRegion(fl_display, rootBuffer, 0, 0, None); - XRenderComposite(fl_display, PictOpSrc, rootBuffer, None, rootPicture, - 0, 0, 0, 0, 0, 0, - DisplayWidth(fl_display, fl_screen), - DisplayHeight(fl_display, fl_screen)); - } -} - -void Composite::damage_window(XDamageNotifyEvent* de) { - CWindow* win = find_window(de->drawable); - if(!win) - return; -#if 0 - // XXX: addon - while(XPending(fl_display)) { - XEvent ev; - if(XPeekEvent(fl_display, &ev) && ev.type == (damage_event + XDamageNotify) && ev.xany.window == win->id) { - XNextEvent(fl_display, &ev); - repair_window(win); - EDEBUG("XXXXXXXXXXXXX\n"); - continue; - } - - break; - } -#endif - repair_window(win); -} - -void Composite::repair_window(CWindow* win) { - XserverRegion parts; - - if(!win->damaged) { - parts = window_extents(win); - set_ignore(NextRequest(fl_display)); - XDamageSubtract(fl_display, win->damage, None, None); - } else { - parts = XFixesCreateRegion(fl_display, 0, 0); - set_ignore(NextRequest(fl_display)); - XDamageSubtract(fl_display, win->damage, None, parts); - - XFixesTranslateRegion(fl_display, parts, - win->attr.x + win->attr.border_width, - win->attr.y + win->attr.border_width); - - // TODO: server shadows - } - - if(parts == None) - EDEBUG("parts == None\n"); - - add_damage(parts); - win->damaged = 1; -} - -void Composite::destroy_window(Window id, bool gone, bool fade) { -#if HAVE_NAME_WINDOW_PIXMAP - CWindow* win = find_window(id); - - if(win && win->pixmap && fade && fadeWindows) { - // TODO: fading support - } else -#endif - finish_destroy_window(id, gone); -} - -void Composite::finish_destroy_window(Window id, bool gone) { - CWindowListIter it = window_list.begin(), it_end = window_list.end(); - - while(it != it_end) { - if((*it)->id == id) { - CWindow* win = *it; - - if(!gone) - finish_unmap_window(win); - if(win->picture) { - set_ignore(NextRequest(fl_display)); - XRenderFreePicture(fl_display, win->picture); - win->picture = None; - } - - if(win->picture_alpha) { - XRenderFreePicture(fl_display, win->picture_alpha); - win->picture_alpha = None; - } - - if(win->picture_shadow) { - XRenderFreePicture(fl_display, win->picture_shadow); - win->picture_shadow = None; - } - - if(win->damage != None) { - set_ignore(NextRequest(fl_display)); - XDamageDestroy(fl_display, win->damage); - win->damage = None; - } - - // TODO: fading support - window_list.erase(it); - delete win; - break; - } - - ++it; - } -} - -void Composite::update_screen(void) { - if(allDamage != None) { - paint_all(allDamage); - allDamage = None; - clipChanged = false; - } -} - -int Composite::handle_xevents(const XEvent* xev) { - if(another_is_running || !manual_redirect) - return 0; - - switch(xev->type) { - case CreateNotify: - EDEBUG(ESTRLOC ": CreateNotify from composite\n"); - add_window(xev->xcreatewindow.window, 0); - break; - case ConfigureNotify: - EDEBUG(ESTRLOC ": ConfigureNotify from composite\n"); - configure_window(&xev->xconfigure); - break; - case DestroyNotify: - EDEBUG(ESTRLOC ": DestroyNotify from composite\n"); - destroy_window(xev->xdestroywindow.window, true, true); - break; - case MapNotify: - EDEBUG(ESTRLOC ": MapNotify from composite\n"); - map_window(xev->xmap.window, xev->xmap.serial, true); - break; - case UnmapNotify: - EDEBUG(ESTRLOC ": UnmapNotify from composite\n"); - unmap_window(xev->xunmap.window, true); - break; - case ReparentNotify: - EDEBUG(ESTRLOC ": ReparentNotify from composite\n"); - reparent_notify(&xev->xreparent); - break; - case CirculateNotify: - EDEBUG(ESTRLOC ": CirculateNotify from composite\n"); - circulate_window(&xev->xcirculate); - break; - case Expose: - EDEBUG(ESTRLOC ": Expose from composite\n"); - expose_event(&xev->xexpose); - break; - case PropertyNotify: - EDEBUG(ESTRLOC ": PropertyNotify from composite\n"); - property_notify(&xev->xproperty); - break; - default: - if(xev->type == (damage_event + XDamageNotify)) { - //EDEBUG("---------> %i <---------\n", damage_event + XDamageNotify); - damage_window((XDamageNotifyEvent*)xev); - return 0; - } - break; - } - - return 1; -} diff --git a/evoke/Composite.h b/evoke/Composite.h deleted file mode 100644 index 4d13f1e..0000000 --- a/evoke/Composite.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * Part of Equinox Desktop Environment (EDE). - * Based on xcompmgr (c) 2003 Keith Packard. - * 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. - */ - -#ifndef __COMPOSITE_H__ -#define __COMPOSITE_H__ - -#include -#include // XserverRegion already included in Xdamage.h -#include - -struct CWindow; -typedef edelib::list CWindowList; -typedef edelib::list::iterator CWindowListIter; - -class Composite { - private: - bool manual_redirect; - - CWindowList window_list; - void add_window(Window id, Window previous); - void map_window(Window id, unsigned long sequence, bool fade); - void unmap_window(Window id, bool fade); - void finish_unmap_window(CWindow* win); - CWindow* find_window(Window id); - XserverRegion window_extents(CWindow* win); - - void configure_window(const XConfigureEvent* ce); - void restack_window(CWindow* win, Window new_above); - void property_notify(const XPropertyEvent* pe); - void expose_event(const XExposeEvent* ee); - void reparent_notify(const XReparentEvent* re); - void circulate_window(const XCirculateEvent* ce); - - void damage_window(XDamageNotifyEvent* de); - void repair_window(CWindow* win); - void destroy_window(Window id, bool gone, bool fade); - void finish_destroy_window(Window id, bool gone); - - void paint_root(void); - - public: - Composite(); - ~Composite(); - bool init(void); - int handle_xevents(const XEvent* xev); - - void paint_all(XserverRegion region); - void update_screen(void); -}; - -#endif diff --git a/evoke/EvokeService.cpp b/evoke/EvokeService.cpp deleted file mode 100644 index 42d2fee..0000000 --- a/evoke/EvokeService.cpp +++ /dev/null @@ -1,798 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#include // getpid -#include // pipe -#include // fcntl -#include // free -#include // strdup, memset -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Log.h" -#include "Logout.h" -#include "EvokeService.h" -#include "Splash.h" -#include "Spawn.h" -#include "Autostart.h" - -static void resolve_path(const edelib::String& datadir, edelib::String& item, bool have_datadir) { - if(item.empty()) - return; - - const char* i = item.c_str(); - - if(!edelib::file_exists(i) && have_datadir) { - item = edelib::build_filename(datadir.c_str(), i); - i = item.c_str(); - if(!edelib::file_exists(i)) { - // no file, send then empty - item.clear(); - } - } -} - -static char* get_basename(const char* path) { - char* p = strrchr(path, '/'); - if(p) - return (p + 1); - - return (char*)path; -} - -/* - * 'Remove' duplicate entries by looking at their basename - * (aka. filename, but ignoring directory path). Item is not actually removed from - * the list (will mess up list pointers, but this can be resolved), but data it points - * to is cleared, which is a sort of marker to caller to skip it. Dumb yes, but very simple. - * - * It will use brute force for lookup and 'removal' and (hopfully) it should not have - * a large impact on startup since, afaik, no one keeps hundreds of files in autostart - * directories (if keeps them, then that issue is not up to this program :-P). - * - * Alternative would be to sort items (by their basename) and apply consecutive unique on - * them, but... is it worth ? - */ -static void basename_unique(StringList& lst) { - if(lst.empty()) - return; - - StringListIter first, last, first1, last1; - first = lst.begin(); - last = lst.end(); - - if(first == last) - return; - - const char* p1, *p2; - for(; first != last; ++first) { - for(first1 = lst.begin(), last1 = lst.end(); first1 != last1; ++first1) { - p1 = (*first).c_str(); - p2 = (*first1).c_str(); - - if(first != first1 && strcmp(get_basename(p1), get_basename(p2)) == 0) - (*first1).clear(); - } - } -} - -static int get_int_property_value(Atom at) { - Atom real; - int format; - unsigned long n, extra; - unsigned char* prop; - - int status = XGetWindowProperty(fl_display, RootWindow(fl_display, fl_screen), - at, 0L, 0x7fffffff, False, XA_CARDINAL, &real, &format, &n, &extra, - (unsigned char**)&prop); - int ret = -1; - if(status != Success && !prop) - return ret; - ret = int(*(long*)prop); - XFree(prop); - return ret; -} - -#if 0 -static int get_string_property_value(Atom at, char* txt, int txt_len) { - XTextProperty names; - XGetTextProperty(fl_display, RootWindow(fl_display, fl_screen), &names, at); - if(!names.nitems || !names.value) - return 0; - - char** vnames; - int nsz = 0; - if(!XTextPropertyToStringList(&names, &vnames, &nsz)) { - XFree(names.value); - return 0; - } - - strncpy(txt, vnames[0], txt_len); - txt[txt_len] = 0; - XFreeStringList(vnames); - return 1; -} -#endif - -/* - * This is re-implementation of XmuClientWindow() so I don't have to link code with libXmu. - * XmuClientWindow() will return parent window of given window; this is used so we don't - * send delete message to some button or else, but it's parent. - */ -static Window mu_try_children(Display* dpy, Window win, Atom wm_state) { - Atom real; - Window root, parent; - Window* children = 0; - Window ret = 0; - unsigned int nchildren; - unsigned char* prop; - unsigned long n, extra; - int format; - - if(!XQueryTree(dpy, win, &root, &parent, &children, &nchildren)) - return 0; - - for(unsigned int i = 0; (i < nchildren) && !ret; i++) { - prop = NULL; - XGetWindowProperty(dpy, children[i], wm_state, 0, 0, False, AnyPropertyType, - &real, &format, &n, &extra, (unsigned char**)&prop); - if(prop) - XFree(prop); - if(real) - ret = children[i]; - } - - for(unsigned int i = 0; (i < nchildren) && !ret; i++) - ret = mu_try_children(dpy, win, wm_state); - - if(children) - XFree(children); - return ret; -} - -static Window mu_client_window(Display* dpy, Window win, Atom wm_state) { - Atom real; - int format; - unsigned long n, extra; - unsigned char* prop; - int status = XGetWindowProperty(dpy, win, wm_state, 0, 0, False, AnyPropertyType, - &real, &format, &n, &extra, (unsigned char**)&prop); - if(prop) - XFree(prop); - - if(status != Success) - return win; - - if(real) - return win; - - Window w = mu_try_children(dpy, win, wm_state); - if(!w) w = win; - - return w; -} - -void service_watcher_cb(int pid, int signum) { - EvokeService::instance()->service_watcher(pid, signum); -} - -static void wake_up_cb(int fd, void* v) { - EvokeService::instance()->wake_up(fd); -} - -EvokeService::EvokeService() : - is_running(0), logfile(NULL), xsm(NULL), -#ifdef HAVE_COMPOSITE - composite(NULL), -#endif - pidfile(NULL), lockfile(NULL) { - - wake_up_pipe[0] = wake_up_pipe[1] = -1; -} - -EvokeService::~EvokeService() { - if(logfile) - delete logfile; - -#ifdef HAVE_COMPOSITE - delete composite; -#endif - - stop_xsettings_manager(true); - - if(lockfile) { - edelib::file_remove(lockfile); - free(lockfile); - } - - if(pidfile) { - edelib::file_remove(pidfile); - free(pidfile); - } - - processes.clear(); - - if(wake_up_pipe[0] != -1) - close(wake_up_pipe[0]); - if(wake_up_pipe[1] != -1) - close(wake_up_pipe[1]); -} - -EvokeService* EvokeService::instance(void) { - static EvokeService es; - return &es; -} - -bool EvokeService::setup_channels(void) { - if(pipe(wake_up_pipe) != 0) - return false; - - fcntl(wake_up_pipe[1], F_SETFL, fcntl(wake_up_pipe[1], F_GETFL) | O_NONBLOCK); - Fl::add_fd(wake_up_pipe[0], FL_READ, wake_up_cb); - return true; -} - -bool EvokeService::setup_logging(const char* file) { - if(!file) - logfile = new DummyLog(); - else - logfile = new RealLog(); - - if(!logfile->open(file)) { - delete logfile; - logfile = NULL; - return false; - } - - return true; -} - -bool EvokeService::setup_pid(const char* file, const char* lock) { - if(!file) - return false; - - if(edelib::file_exists(lock)) - return false; - - FILE* l = fopen(lock, "w"); - if(!l) - return false; - fprintf(l, " "); - fclose(l); - lockfile = strdup(lock); - - FILE* f = fopen(file, "w"); - if(!f) - return false; - - fprintf(f, "%i", getpid()); - fclose(f); - - pidfile = strdup(file); - return true; -} - -bool EvokeService::init_splash(const char* config, bool no_splash, bool dry_run) { - edelib::Config c; - if(!c.load(config)) - return false; - - char buff[1024]; - bool have_datadir = false; - - c.get("evoke", "DataDirectory", buff, sizeof(buff)); - - // no evoke section - if(c.error() == edelib::CONF_ERR_SECTION) - return false; - - edelib::String datadir; - if(c.error() == edelib::CONF_SUCCESS) { - datadir = buff; - have_datadir = true; - } - - edelib::String splashimg; - if(c.get("evoke", "Splash", buff, sizeof(buff))) - splashimg = buff; - - // Startup key must exists - if(!c.get("evoke", "Startup", buff, sizeof(buff))) - return false; - - StringList vs; - edelib::stringtok(vs, buff, ","); - - // nothing, fine, do nothing - unsigned int sz = vs.size(); - if(sz == 0) - return true; - - EvokeClient ec; - const char* key_name; - - for(StringListIter it = vs.begin(); it != vs.end(); ++it) { - key_name = (*it).c_str(); - edelib::str_trim((char*)key_name); - - // probably listed but not the same key; also Exec value must exists - if(!c.get(key_name, "Exec", buff, sizeof(buff))) - continue; - else - ec.exec = buff; - - if(c.get(key_name, "Description", buff, sizeof(buff))) - ec.desc = buff; - - if(c.get(key_name, "Icon", buff, sizeof(buff))) - ec.icon = buff; - - clients.push_back(ec); - } - - /* - * Now, before data is send to Splash, resolve directories - * since Splash expects that. - */ - resolve_path(datadir, splashimg, have_datadir); - - ClientListIter it, it_end; - for(it = clients.begin(), it_end = clients.end(); it != it_end; ++it) - resolve_path(datadir, (*it).icon, have_datadir); - - Splash sp(no_splash, dry_run); - sp.set_clients(&clients); - sp.set_background(&splashimg); - - sp.run(); - - return true; -} - -/* - * This is implementation of Autostart Spec (http://standards.freedesktop.org/autostart-spec/autostart-spec-0.5.html). - * The Autostart Directories are $XDG_CONFIG_DIRS/autostart. - * If the same filename is located under multiple Autostart Directories - * only the file under the most important directory should be used. - * Example: If $XDG_CONFIG_HOME is not set the Autostart Directory in the user's home - * directory is ~/.config/autostart/ - * Example: If $XDG_CONFIG_DIRS is not set the system wide Autostart Directory - * is /etc/xdg/autostart/ - * Example: If $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS are not set and the two - * files /etc/xdg/autostart/foo.desktop and ~/.config/autostart/foo.desktop exist - * then only the file ~/.config/autostart/foo.desktop will be used because ~/.config/autostart/ - * is more important than /etc/xdg/autostart/ - * If Hidden key is set true in .desktop file, file MUST be ignored. - * OnlyShowIn and NotShowIn (list of strings identifying desktop environments) if (or if not) - * contains environment name, MUST not be started/not started. - * TryExec is same as for .desktop spec. - */ -void EvokeService::init_autostart(bool safe) { - const char* autostart_dirname = "/autostart/"; - - edelib::String adir = edelib::user_config_dir(); - adir += autostart_dirname; - - StringList dfiles, sysdirs, tmp; - StringListIter it, it_end, tmp_it, tmp_it_end; - - edelib::dir_list(adir.c_str(), dfiles, true); - - edelib::system_config_dirs(sysdirs); - if(!sysdirs.empty()) { - for(it = sysdirs.begin(), it_end = sysdirs.end(); it != it_end; ++it) { - *it += autostart_dirname; - - /* - * append content - * FIXME: too much of copying. There should be some way to merge list items - * probably via merge() member - */ - edelib::dir_list((*it).c_str(), tmp, true); - for(tmp_it = tmp.begin(), tmp_it_end = tmp.end(); tmp_it != tmp_it_end; ++tmp_it) - dfiles.push_back(*tmp_it); - } - } - - if(dfiles.empty()) - return; - - /* - * Remove duplicates where first one seen have priority to be keept. - * This way is required by spec. - * - * Also handle this case (noted in spec): - * if $XDG_CONFIG_HOME/autostart/foo.desktop and $XDG_CONFIG_DIRS/autostart/foo.desktop - * exists, but $XDG_CONFIG_HOME/autostart/foo.desktop have 'Hidden = true', - * $XDG_CONFIG_DIRS/autostart/foo.autostart is ignored too. - * - * Latter is implied via basename_unique(). - */ - basename_unique(dfiles); - - const char* name; - char buff[1024]; - edelib::DesktopFile df; - edelib::String item_name; - - AstartDialog dlg(dfiles.size(), safe); - - for(it = dfiles.begin(), it_end = dfiles.end(); it != it_end; ++it) { - if((*it).empty()) - continue; - - name = (*it).c_str(); - if(!edelib::str_ends(name, ".desktop")) - continue; - - if(!df.load(name)) { - EVOKE_LOG("Can't load %s. Skipping...\n", name); - continue; - } - - // If Hidden key is set true in .desktop file, file MUST be ignored. - if(df.hidden()) - continue; - - if(df.name(buff, sizeof(buff))) - item_name = buff; - else - item_name = name; - - if(df.try_exec(buff, sizeof(buff)) || df.exec(buff, sizeof(buff))) - dlg.add_item(item_name, buff); - } - - if(dlg.list_size() > 0) - dlg.run(); -} - -void EvokeService::init_xsettings_manager(void) { - xsm = new Xsm; - - if(Xsm::manager_running(fl_display, fl_screen)) { - int ret = edelib::ask(_("XSETTINGS manager already running on this screen. Would you like to replace it?")); - if(ret < 1) { - stop_xsettings_manager(false); - return; - } else - goto do_it; - } - -do_it: - if(!xsm->init(fl_display, fl_screen)) { - edelib::alert(_("Unable to load XSETTINGS manager properly")); - stop_xsettings_manager(false); - } - - if(!xsm) return; - - if(xsm->load_serialized("ede-settings.xml")) - xsm->notify(); -} - -void EvokeService::stop_xsettings_manager(bool serialize) { - if(!xsm) - return; - - if(serialize) - xsm->save_serialized("ede-settings.xml"); - - delete xsm; - xsm = NULL; -} - -void EvokeService::init_composite(void) { -#ifdef HAVE_COMPOSITE - composite = new Composite(); - - if(!composite->init()) { - delete composite; - composite = NULL; - } -#endif -} - -void EvokeService::setup_atoms(Display* d) { - // with them must be send '1' or property will be ignored (except _EDE_EVOKE_SPAWN) - _ede_shutdown_all = XInternAtom(d, "_EDE_EVOKE_SHUTDOWN_ALL", False); - _ede_evoke_quit = XInternAtom(d, "_EDE_EVOKE_QUIT", False); - - _ede_spawn = XInternAtom(d, "_EDE_EVOKE_SPAWN", False); -} - -void EvokeService::quit_x11(void) { - Window dummy, *wins; - Window root = RootWindow(fl_display, fl_screen); - unsigned int n; - - if(!XQueryTree(fl_display, root, &dummy, &dummy, &wins, &n)) - return; - - Atom _wm_protocols = XInternAtom(fl_display, "WM_PROTOCOLS", False); - Atom _wm_delete_window = XInternAtom(fl_display, "WM_DELETE_WINDOW", False); - Atom _wm_state = XInternAtom(fl_display, "WM_STATE", False); - XWindowAttributes attr; - XEvent ev; - - for(unsigned int i = 0; i < n; i++) { - if(XGetWindowAttributes(fl_display, wins[i], &attr) && (attr.map_state == IsViewable)) - wins[i] = mu_client_window(fl_display, wins[i], _wm_state); - else - wins[i] = 0; - } - - /* - * Hm... probably we should first quit known processes started by us - * then rest of the X familly - */ - for(unsigned int i = 0; i < n; i++) { - if(wins[i]) { - EVOKE_LOG("closing %i window\n", i); - - // FIXME: check WM_PROTOCOLS before sending WM_DELETE_WINDOW ??? - memset(&ev, 0, sizeof(ev)); - ev.xclient.type = ClientMessage; - ev.xclient.window = wins[i]; - ev.xclient.message_type = _wm_protocols; - ev.xclient.format = 32; - ev.xclient.data.l[0] = (long)_wm_delete_window; - ev.xclient.data.l[1] = CurrentTime; - XSendEvent(fl_display, wins[i], False, 0L, &ev); - - EVOKE_LOG("%i window closed\n", i); - } - } - - XSync(fl_display, False); - sleep(1); - - // kill remaining windows - for(unsigned int i = 0; i < n; i++) { - if(wins[i]) { - EVOKE_LOG("killing remaining %i window\n", i); - XKillClient(fl_display, wins[i]); - } - } - - XSync(fl_display, False); - - XFree(wins); - EVOKE_LOG("now close myself\n"); - stop(); -} - -/* - * This is run each time when some of the managed childs quits. - * Instead directly running wake_up(), it will be notified wia - * wake_up_pipe[] channel, via add_fd() monitor. - */ -void EvokeService::service_watcher(int pid, int ret) { - write(wake_up_pipe[1], &pid, sizeof(int)); - write(wake_up_pipe[1], &ret, sizeof(int)); -} - -void EvokeService::wake_up(int fd) { - puts("=== wake_up() ==="); - - int child_pid = -1; - // child can return anything so there is no default value - int child_ret; - if(read(wake_up_pipe[0], &child_pid, sizeof(int)) == -1 || child_pid == -1) { - puts("unable to read from channel"); - return; - } - - if(read(wake_up_pipe[0], &child_ret, sizeof(int)) == -1) { - puts("unable to read from channel"); - return; - } - - Mutex mutex; - - if(child_ret == SPAWN_CHILD_CRASHED) { - EvokeProcess pc; - bool ret; - - mutex.lock(); - ret = find_and_unregister_process(child_pid, pc); - mutex.unlock(); - - if(ret) { - printf("%s crashed with core dump\n", pc.cmd.c_str()); - } - } else { - mutex.lock(); - unregister_process(child_pid); - mutex.unlock(); - - switch(child_ret) { - case SPAWN_CHILD_KILLED: - printf("child %i killed\n", child_pid); - break; - case 127: - edelib::alert(_("Program not found")); - break; - case 126: - edelib::alert(_("Program not executable")); - break; - default: - printf("child %i exited with %i\n", child_pid, child_ret); - break; - } - } -} - -/* - * Execute program. It's return status - * will be reported via service_watcher() - */ -void EvokeService::run_program(const char* cmd, bool enable_vars) { - EASSERT(cmd != NULL); - - edelib::String scmd(cmd); - pid_t child; - - if(enable_vars && scmd.length() > 6) { - if(scmd.substr(0, 6) == "$TERM ") { - char* term = getenv("TERM"); - if(!term) - term = "xterm"; - - edelib::String tmp(term); - tmp += " -e "; - tmp += scmd.substr(6, scmd.length()); - - scmd = tmp; - } - } - - int r = spawn_program_with_core(scmd.c_str(), service_watcher_cb, &child); - - if(r != 0) - edelib::alert("Unable to start %s. Got code %i", cmd, r); - else { - Mutex mutex; - - mutex.lock(); - register_process(scmd.c_str(), child); - mutex.unlock(); - } -} - -void EvokeService::register_process(const char* cmd, pid_t pid) { - EvokeProcess pc; - pc.cmd = cmd; - pc.pid = pid; - printf("registering %s with %i\n", cmd, pid); - processes.push_back(pc); -} - -void EvokeService::unregister_process(pid_t pid) { - if(processes.empty()) - return; - - ProcessListIter it = processes.begin(); - ProcessListIter it_end = processes.end(); - - while(it != it_end) { - if((*it).pid == pid) { - printf("Found %s with pid %i, cleaning...\n", (*it).cmd.c_str(), pid); - processes.erase(it); - return; - } - ++it; - } -} - -bool EvokeService::find_and_unregister_process(pid_t pid, EvokeProcess& pc) { - if(processes.empty()) - return 0; - - ProcessListIter it = processes.begin(); - ProcessListIter it_end = processes.end(); - - while(it != it_end) { - if((*it).pid == pid) { - printf("Found %s with pid %i, cleaning...\n", (*it).cmd.c_str(), pid); - pc.cmd = (*it).cmd; - pc.pid = pid; - - processes.erase(it); - return 1; - } - ++it; - } - - return 0; -} - -int EvokeService::composite_handle(const XEvent* xev) { -#ifdef HAVE_COMPOSITE - if(composite) - return composite->handle_xevents(xev); -#endif - return 1; -} - -/* - * Main loop for processing got X events. - * - * Great care must be taken to route this events to FLTK too (via fl_handle()), since - * add_fd() (in evoke.cpp) will not do that. If events are not routed to fltk, popped - * dialogs, especially from service_watcher() will not be correctly drawn and will hang - * whole program. - */ -int EvokeService::handle(const XEvent* xev) { - if(xsm && xsm->should_terminate(xev)) { - EVOKE_LOG("XSETTINGS manager shutdown\n"); - stop_xsettings_manager(true); - return 1; - } - - if(xev->type == PropertyNotify) { -#if 0 - if(xev->xproperty.atom == _ede_spawn) { - char buff[1024]; - if(get_string_property_value(_ede_spawn, buff, sizeof(buff))) { - EVOKE_LOG("Got _EDE_EVOKE_SPAWN with %s. Starting client...\n", buff); - run_program(buff); - } else { - EVOKE_LOG("Got _EDE_EVOKE_SPAWN with malformed data. Ignoring...\n"); - } - } -#endif - - if(xev->xproperty.atom == _ede_evoke_quit) { - int val = get_int_property_value(_ede_evoke_quit); - if(val == 1) { - EVOKE_LOG("Got accepted _EDE_EVOKE_QUIT\n"); - stop(); - } else - EVOKE_LOG("Got _EDE_EVOKE_QUIT with bad code (%i). Ignoring...\n", val); - } - - if(xev->xproperty.atom == _ede_shutdown_all) { - int val = get_int_property_value(_ede_shutdown_all); - if(val == 1) { - EVOKE_LOG("Got accepted _EDE_EVOKE_SHUTDOWN_ALL\n"); - - int dw = DisplayWidth(fl_display, fl_screen); - int dh = DisplayHeight(fl_display, fl_screen); - - // TODO: add XDM service permissions - printf("got %i\n", logout_dialog(dw, dh, LOGOUT_OPT_SHUTDOWN | LOGOUT_OPT_RESTART)); - //quit_x11(); - } else - EVOKE_LOG("Got _EDE_EVOKE_SHUTDOWN_ALL with bad code (%i). Ignoring...\n", val); - } - } - -#ifdef USE_FLTK_LOOP_EMULATION - // let FLTK handle the rest - fl_handle(*xev); - return 0; -#else - // let composite manager do the rest - return composite_handle(xev); -#endif -} diff --git a/evoke/EvokeService.h b/evoke/EvokeService.h deleted file mode 100644 index 82c9c57..0000000 --- a/evoke/EvokeService.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __EVOKESERVICE_H__ -#define __EVOKESERVICE_H__ - -#include -#include - -#include -#include - -#include "Log.h" -#include "Xsm.h" -#ifdef HAVE_COMPOSITE -#include "Composite.h" -#endif - -struct EvokeClient { - edelib::String desc; // short program description (used in Starting... message) - edelib::String icon; // icon for this client - edelib::String exec; // program name/path to run -}; - -struct EvokeProcess { - edelib::String cmd; - pid_t pid; -}; - -struct QueuedSignal { - pid_t pid; - int signum; -}; - -typedef edelib::list ClientList; -typedef edelib::list::iterator ClientListIter; - -typedef edelib::list StringList; -typedef edelib::list::iterator StringListIter; - -typedef edelib::list ProcessList; -typedef edelib::list::iterator ProcessListIter; - -typedef edelib::list SignalQueue; -typedef edelib::list::iterator SignalQueueIter; - -class EvokeService { - private: - bool is_running; - Log* logfile; - Xsm* xsm; -#ifdef HAVE_COMPOSITE - Composite* composite; -#endif - char* pidfile; - char* lockfile; - - Atom _ede_shutdown_all; - Atom _ede_spawn; - Atom _ede_evoke_quit; - - ClientList clients; - ProcessList processes; - int wake_up_pipe[2]; - - public: - EvokeService(); - ~EvokeService(); - static EvokeService* instance(void); - - void start(void) { is_running = true; } - void stop(void) { is_running = false; } - bool running(void) { return is_running; } - - bool setup_channels(void); - bool setup_logging(const char* file); - bool setup_pid(const char* file, const char* lock); - void setup_atoms(Display* d); - bool init_splash(const char* config, bool no_splash, bool dry_run); - void init_autostart(bool safe); - - void init_xsettings_manager(void); - void stop_xsettings_manager(bool serialize); - - void init_composite(void); - - int handle(const XEvent* ev); - int composite_handle(const XEvent* ev); - - Log* log(void) { return logfile; } - - void service_watcher(int pid, int signum); - void wake_up(int fd); - - void run_program(const char* cmd, bool enable_vars = 1); - void register_process(const char* cmd, pid_t pid); - void unregister_process(pid_t pid); - bool find_and_unregister_process(pid_t pid, EvokeProcess& pc); - - void quit_x11(void); - - //void update_screen(void); -}; - -#define EVOKE_LOG EvokeService::instance()->log()->printf - -/* - * FIXME: This should be probably declared somewhere outside - * or in edelib as separate class - */ -class Mutex { - private: - pthread_mutex_t mutex; - Mutex(const Mutex&); - Mutex& operator=(const Mutex&); - public: - Mutex() { pthread_mutex_init(&mutex, 0); } - ~Mutex() { pthread_mutex_destroy(&mutex); } - void lock(void) { pthread_mutex_lock(&mutex); } - void unlock(void) { pthread_mutex_unlock(&mutex); } -}; - -#endif diff --git a/evoke/Jamfile b/evoke/Jamfile deleted file mode 100644 index d2bac31..0000000 --- a/evoke/Jamfile +++ /dev/null @@ -1,43 +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 evoke ; - -# use SIGHUP for now as default -ObjectC++Flags evoke.cpp : -DUSE_SIGHUP ; -# relay on FLTK loop emulation for now -ObjectC++Flags EvokeService.cpp evoke.cpp : -DUSE_FLTK_LOOP_EMULATION ; -# for smooth repainting -#ObjectC++Flags Composite.cpp : -DUSE_CHECK ; - -SOURCE = evoke.cpp - EvokeService.cpp - ClassHack.c - Xsm.cpp - Spawn.cpp - Splash.cpp - Log.cpp - Logout.cpp - Autostart.cpp ; - -# for composite -SOURCE += Composite.cpp ; -ObjectC++Flags $(SOURCE) : -DHAVE_COMPOSITE ; -LinkAgainst evoke : -lXcomposite -lXdamage -lXfixes -lXrender ; - -#LinkAgainst evoke : -lpthread ; - -EdeProgram evoke : $(SOURCE) ; -FltkProgramBare test/evoke_test : test/evoke_test.cpp : "noinstall" ; -FltkProgramBare test/stress_test : test/stress_test.cpp : "noinstall" ; -FltkProgramBare test/opacity_test : test/opacity_test.cpp : "noinstall" ; - -#TranslationStrings locale : $(SOURCE) ; -EdeManual doc/evoke.txt ; diff --git a/evoke/Log.cpp b/evoke/Log.cpp deleted file mode 100644 index 1a833d6..0000000 --- a/evoke/Log.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#include "Log.h" -#include -#include -#include -#include - -RealLog::RealLog() : f(NULL), buff(NULL), tbuff(NULL), bufflen(256), tbufflen(20), - to_stdout(false), to_stderr(false) { -} - -RealLog::~RealLog() { - if(f) { - puts("RealLog::~RealLog()\n"); - fclose(f); - } - - if(buff) - delete [] buff; - if(tbuff) - delete [] tbuff; -} - -bool RealLog::open(const char* file) { - EASSERT(file != NULL); - - if(strcmp(file, "stdout") == 0) - to_stdout = true; - else if(strcmp(file, "stderr") == 0) - to_stderr = true; - else { - f = fopen(file, "a"); - if(!f) - return false; - } - - buff = new char[bufflen]; - tbuff = new char[tbufflen]; - return true; -} - -void RealLog::printf(const char* fmt, ...) { - EASSERT(buff != NULL); - EASSERT(tbuff != NULL); - - va_list ap; - va_start(ap, fmt); - vsnprintf(buff, bufflen, fmt, ap); - va_end(ap); - - time_t t = time(NULL); - strftime(tbuff, tbufflen, "%F %T", localtime(&t)); - - if(to_stdout) - fprintf(stdout, "[%s] %s", tbuff, buff); - else if(to_stderr) - fprintf(stderr, "[%s] %s", tbuff, buff); - else { - fprintf(f, "[%s] %s", tbuff, buff); - fflush(f); - } -} diff --git a/evoke/Log.h b/evoke/Log.h deleted file mode 100644 index 16b4209..0000000 --- a/evoke/Log.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __LOG_H__ -#define __LOG_H__ - -#include - -class Log { - public: - Log() { } - virtual ~Log() { } - virtual bool open(const char* file) = 0; - virtual void printf(const char* fmt, ...) = 0; -}; - -class DummyLog : public Log { - public: - DummyLog() { } - virtual ~DummyLog() { } - virtual bool open(const char* file) { return true; } - virtual void printf(const char* fmt, ...) { } -}; - -class RealLog : public Log { - private: - FILE* f; - char* buff; - char* tbuff; - int bufflen; - int tbufflen; - bool to_stdout; - bool to_stderr; - - public: - RealLog(); - virtual ~RealLog(); - virtual bool open(const char* file); - virtual void printf(const char* fmt, ...); -}; - -#endif diff --git a/evoke/Logout.cpp b/evoke/Logout.cpp deleted file mode 100644 index a21e7fc..0000000 --- a/evoke/Logout.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * Part of Equinox Desktop Environment (EDE). - * Copyright (c) 2008 EDE Authors. - * - * This program is licensed under terms of the - * GNU General Public License version 2 or newer. - * See COPYING for details. - */ - -#include -#include -#include -#include -#include -#include - -#include "Logout.h" - -// Note that order of initialized items is important so LOGOUT_OPT_XXX can work -struct LogoutOptions { - const char* opt_short; - const char* opt_long; -} logout_options[] = { - { _("Logout"), _("This option will close all programs and logs out from the current session") }, - { _("Restart"), _("This option will restart the computer closing all running programs") }, - { _("Shut down"), _("This option will shut down the computer closing all running programs") } -}; - -static Fl_Window* win; -static Fl_Box* description; -static int ret_option; - -static void ok_cb(Fl_Widget*, void*) { - win->hide(); -} - -static void cancel_cb(Fl_Widget*, void*) { - ret_option = LOGOUT_RET_CANCEL; - win->hide(); -} - -static void option_cb(Fl_Widget*, void* o) { - Fl_Choice* c = (Fl_Choice*)o; - int v = c->value(); - - description->label(logout_options[v].opt_long); - ret_option = v; -} - -int logout_dialog(int screen_w, int screen_h, int opt) { - ret_option = LOGOUT_RET_LOGOUT; - - win = new Fl_Window(335, 180, _("Quit EDE?")); - win->begin(); - Fl_Box* b1 = new Fl_Box(10, 9, 315, 25, _("How do you want to quit?")); - b1->labelfont(1); - b1->align(196|FL_ALIGN_INSIDE); - - Fl_Choice* c = new Fl_Choice(10, 45, 315, 25); - c->down_box(FL_BORDER_BOX); - - // fill choice menu - c->add(logout_options[0].opt_short, 0, option_cb, c); - if(opt & LOGOUT_OPT_RESTART) - c->add(logout_options[1].opt_short, 0, option_cb, c); - if(opt & LOGOUT_OPT_SHUTDOWN) - c->add(logout_options[2].opt_short, 0, option_cb, c); - - description = new Fl_Box(10, 80, 315, 55); - description->align(197|FL_ALIGN_INSIDE); - - // set to first menu item - c->value(0); - description->label(logout_options[0].opt_long); - - Fl_Button* ok = new Fl_Button(140, 145, 90, 25, _("&OK")); - ok->callback(ok_cb, c); - Fl_Button* cancel = new Fl_Button(235, 145, 90, 25, _("&Cancel")); - cancel->callback(cancel_cb); - win->end(); - - // so when X in titlebar was clicked, we can get LOGOUT_RET_CANCEL - win->callback(cancel_cb); - - win->position(screen_w / 2 - win->w() / 2, screen_h / 2 - win->h() / 2); - win->show(); - - while(win->shown()) - Fl::wait(); - - return ret_option; -} diff --git a/evoke/Logout.h b/evoke/Logout.h deleted file mode 100644 index 6f79d1d..0000000 --- a/evoke/Logout.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * Part of Equinox Desktop Environment (EDE). - * Copyright (c) 2008 EDE Authors. - * - * This program is licensed under terms of the - * GNU General Public License version 2 or newer. - * See COPYING for details. - */ - -#ifndef __LOGOUT_H__ -#define __LOGOUT_H__ - -#define LOGOUT_RET_CANCEL -1 -#define LOGOUT_RET_LOGOUT 0 -#define LOGOUT_RET_RESTART 1 -#define LOGOUT_RET_SHUTDOWN 2 - -#define LOGOUT_OPT_RESTART (1 << 1) -#define LOGOUT_OPT_SHUTDOWN (1 << 2) - -int logout_dialog(int screen_w, int screen_h, int opt); - -#endif diff --git a/evoke/Spawn.cpp b/evoke/Spawn.cpp deleted file mode 100644 index 02b8a3c..0000000 --- a/evoke/Spawn.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - - -#include // fork -#include // fork, open, close, dup -#include -#include -#include -#include -#include -#include -#include -#include // getrlimit, setrlimit -#include // - -#include "Spawn.h" - -extern char** environ; -SignalWatch* global_watch = 0; - -void sigchld_handler(int sig) { - int pid, status; - do { - errno = 0; - pid = waitpid(WAIT_ANY, &status, WNOHANG | WUNTRACED); - - if(global_watch != 0) { - if(WIFEXITED(status)) - status = WEXITSTATUS(status); - else if(WIFSIGNALED(status) && WTERMSIG(status) == SIGSEGV) - status = SPAWN_CHILD_CRASHED; - else - status = SPAWN_CHILD_KILLED; - - global_watch(pid, status); - } - - } while(pid <= 0 && errno == EINTR); -} - -int spawn_program(const char* cmd, SignalWatch wf, pid_t* child_pid_ret, const char* ofile) { - if(!cmd) - return SPAWN_EMPTY; - - int nulldev = -1; - int status_ret = 0; - -#if 0 - struct sigaction sa; - sa.sa_handler = sigchld_handler; - sa.sa_flags = SA_NOCLDSTOP; - /*sa.sa_flags = SA_NOCLDWAIT;*/ - sigemptyset(&sa.sa_mask); - sigaction(SIGCHLD, &sa, (struct sigaction*)0); -#endif - - struct sigaction sa; - sigset_t chld_mask, old_mask; - - sa.sa_handler = sigchld_handler; - sa.sa_flags = SA_NOCLDSTOP; - sigemptyset(&sa.sa_mask); - sigaction(SIGCHLD, &sa, (struct sigaction*)0); - - // block SIGCHLD until we set up stuff - sigemptyset(&chld_mask); - sigaddset(&chld_mask, SIGCHLD); - sigprocmask(SIG_BLOCK, &chld_mask, &old_mask); - - global_watch = wf; - - pid_t pid = fork(); - if(pid == -1) - return SPAWN_FORK_FAILED; - - if(pid == 0) { - // child - char* argv[4]; - argv[0] = "/bin/sh"; - argv[1] = "-c"; - argv[2] = (char*)cmd; - argv[3] = NULL; - - /* - * The following is to avoid X locking when executing - * terminal based application that requires user input - */ - if(ofile) - nulldev = open(ofile, O_WRONLY | O_TRUNC | O_CREAT, 0770); - else - nulldev = open("/dev/null", O_RDWR); - - if(nulldev == -1) - return SPAWN_OPEN_FAILED; - - /* TODO: redirect these to EvokeService log */ - close(0); dup(nulldev); - close(1); dup(nulldev); - close(2); dup(nulldev); - - errno = 0; - if(execve(argv[0], argv, environ) == -1) { - // should not get here - return SPAWN_EXECVE_FAILED; - } - } - - // parent - if(nulldev != -1) - close(nulldev); - /* - * Record child pid; it is returned by fork(), but since this - * function does not wait until child quits, it will return - * immediately, filling (if) requested child pid - */ - if(child_pid_ret) - *child_pid_ret = pid; - - // unblock SIGCHLD - sigprocmask(SIG_SETMASK, &old_mask, NULL); - - return status_ret; -} - -int spawn_program_with_core(const char* cmd, SignalWatch* wf, pid_t* child_pid_ret) { - struct rlimit r; - if(getrlimit(RLIMIT_CORE, &r) == -1) - return -1; - - rlim_t old = r.rlim_cur; - r.rlim_cur = RLIM_INFINITY; - - // FIXME: add own core limit ? - if(setrlimit(RLIMIT_CORE, &r) == -1) - return -1; - - int ret = spawn_program(cmd, wf, child_pid_ret); - - r.rlim_cur = old; - if(setrlimit(RLIMIT_CORE, &r) == -1) - return -1; - - return ret; -} diff --git a/evoke/Spawn.h b/evoke/Spawn.h deleted file mode 100644 index 9973a03..0000000 --- a/evoke/Spawn.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __SPAWN_H__ -#define __SPAWN_H__ - -#include // pid_t - -/* - * This is little bit modified code from edelib run_program() - * so evoke specific stuff can be added. Also, possible option - * is that edelib run_program(), at some time, consult evoke - * for running programs. - */ - -#define SPAWN_OK 0 -#define SPAWN_FORK_FAILED 1 -#define SPAWN_EMPTY 2 -#define SPAWN_EXECVE_FAILED 3 -#define SPAWN_OPEN_FAILED 4 -#define SPAWN_PIPE_FAILED 5 - -#define SPAWN_CHILD_CRASHED -2 -#define SPAWN_CHILD_KILLED -3 - -typedef void (SignalWatch)(int pid, int status); - -int spawn_program(const char* cmd, SignalWatch* wf = 0, pid_t* child_pid_ret = 0, const char* ofile = 0); -int spawn_program_with_core(const char* cmd, SignalWatch* wf = 0, pid_t* child_pid_ret = 0); - -#endif diff --git a/evoke/Splash.cpp b/evoke/Splash.cpp deleted file mode 100644 index ae14460..0000000 --- a/evoke/Splash.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#include // snprintf - -#include -#include - -#include -#include -#include - -#include "Splash.h" -#include "Spawn.h" - -#define TIMEOUT_START 0.5 // timeout when splash is first time shown (also for first client) -#define TIMEOUT_CONTINUE 2.0 // timeout between starting rest of the cliens - -extern void service_watcher_cb(int pid, int signum); - -#ifndef EDEWM_HAVE_NET_SPLASH -static Splash* global_splash = NULL; - -static int splash_xmessage_handler(int e) { - if(fl_xevent->type == MapNotify) { - XRaiseWindow(fl_display, fl_xid(global_splash)); - return 1; - } - - if(fl_xevent->type == ConfigureNotify) { - if(fl_xevent->xconfigure.event == DefaultRootWindow(fl_display)) { - XRaiseWindow(fl_display, fl_xid(global_splash)); - return 1; - } - } - - return 0; -} -#endif - -/* - * repeatedly call runner() untill all clients are - * started then hide splash window - */ -static void runner_cb(void* s) { - Splash* sp = (Splash*)s; - - if(sp->next_client()) - Fl::repeat_timeout(TIMEOUT_CONTINUE, runner_cb, sp); - else - sp->hide(); -} - -Splash::Splash(bool sp, bool dr) : Fl_Double_Window(480, 364), clist(NULL), bkg(NULL), - counter(0), no_splash(sp), dry_run(dr) { - icons = NULL; -} - -Splash::~Splash() { - EVOKE_LOG("Cleaning splash data\n"); - // elements of icons cleans Fl_Group - delete [] icons; - Fl::remove_timeout(runner_cb); -} - - -// after edewm got _NET_WM_WINDOW_TYPE_SPLASH support -#if EDEWM_HAVE_NET_SPLASH -void Splash::show(void) { - if(shown()) - return; - - Fl_X::make_xid(this); - /* - * Edewm does not implement this for now. Alternative, working solution - * is used via register_top()/unregister_top(); also looks like later - * is working on othe wm's too. - */ - Atom win_type = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE", False); - Atom win_splash = XInternAtom(fl_display, "_NET_WM_WINDOW_TYPE_SPLASH", False); - XChangeProperty(fl_display, fl_xid(this), win_type, XA_ATOM, 32, PropModeReplace, - (unsigned char*)&win_splash, sizeof(Atom)); -} -#endif - -void Splash::run(void) { - E_ASSERT(clist != NULL); - - if(no_splash) { - while(next_client_nosplash()) - ; - return; - } - - fl_register_images(); - - // setup widgets - begin(); - Fl_Box* bimg = new Fl_Box(0, 0, w(), h()); - Fl_Image* splash_img = 0; - - if(bkg) - splash_img = Fl_Shared_Image::get(bkg->c_str()); - - if(splash_img) { - int W = splash_img->w(); - int H = splash_img->h(); - // update window and Box sizes - size(W, H); - bimg->size(W, H); - - bimg->image(splash_img); - } - - /* - * place message box at the bottom with - * nice offset (10 px) from window borders - */ - msgbox = new Fl_Box(10, h() - 25 - 10, w() - 20, 25); - - /* - * Setup icons positions, based on position of msgbox assuming someone - * will not abuse splash to start hundrets of programs, since icons will - * be placed only in horizontal order, one line, so in case their large - * number, some of them will go out of window borders. - * - * Icon box will be 64x64 so larger icons can fit too. - * - * This code will use Fl_Group (moving group, later, will move all icons - * saving me from code mess), but will not update it's w() for two reasons: - * icons does not use it, and will be drawn correctly, and second, setting - * width will initiate fltk layout engine which will mess everything up. - */ - Fl_Group* icon_group = new Fl_Group(10, msgbox->y() - 10 - 64, 0, 64); - int X = icon_group->x(); - int Y = icon_group->y(); - // offset between icons - int ioffset = 5; - - // FIXME: use malloc/something instead this - icons = new Fl_Box*[clist->size()]; - - icon_group->begin(); - const char* imgpath; - Fl_Image* iconimg; - int i = 0; - for(ClientListIter it = clist->begin(); it != clist->end(); ++it, ++i) { - Fl_Box* bb = new Fl_Box(X, Y, 64, 64); - - imgpath = (*it).icon.c_str(); - iconimg = Fl_Shared_Image::get(imgpath); - if(!iconimg) { - bb->label(_("No image")); - bb->align(FL_ALIGN_INSIDE | FL_ALIGN_WRAP); - } else - bb->image(iconimg); - - bb->hide(); - - X += bb->w() + ioffset; - icons[i] = bb; - } - icon_group->end(); - - // see X as width of all icons - int gx = w()/2 - X/2; - // gx can be negative - gx = (gx > 10) ? gx : 10; - icon_group->position(gx, Y); - end(); - - clear_border(); - - /* - * If set_override() is used, message boxes will be - * popped behind splash. Using it or not ??? - */ - set_override(); - - // make sure window is centered - int sw = DisplayWidth(fl_display, fl_screen); - int sh = DisplayHeight(fl_display, fl_screen); - position(sw/2 - w()/2, sh/2 - h()/2); - - show(); - Fl::add_timeout(TIMEOUT_START, runner_cb, this); - - // to keep splash at the top -#ifndef HAVE_NET_SPLASH - global_splash = this; - XSelectInput(fl_display, RootWindow(fl_display, fl_screen), SubstructureNotifyMask); - Fl::add_handler(splash_xmessage_handler); -#endif - - while(shown()) - Fl::wait(); - -#ifndef EDEWM_HAVE_NET_SPLASH - Fl::remove_handler(splash_xmessage_handler); -#endif -} - -// called when splash option is on -bool Splash::next_client(void) { - if(clist->empty()) - return false; - - if(counter == 0) - clist_it = clist->begin(); - - if(clist_it == clist->end()) { - counter = 0; - return false; - } - - - E_ASSERT(counter < clist->size() && "Internal error; 'counter' out of bounds"); - - char buff[1024]; - const char* msg = (*clist_it).desc.c_str(); - const char* cmd = (*clist_it).exec.c_str(); - snprintf(buff, sizeof(buff), _("Starting %s..."), msg); - - icons[counter]->show(); - msgbox->copy_label(buff); - redraw(); - - if(!dry_run) { - spawn_program(cmd, service_watcher_cb); - //spawn_program(cmd); - } - - ++clist_it; - ++counter; - return true; -} - -// called when splash option is off -bool Splash::next_client_nosplash(void) { - if(clist->empty()) - return false; - - if(counter == 0) - clist_it = clist->begin(); - - if(clist_it == clist->end()) { - counter = 0; - return false; - } - - E_ASSERT(counter < clist->size() && "Internal error; 'counter' out of bounds"); - - char buff[1024]; - const char* msg = (*clist_it).desc.c_str(); - const char* cmd = (*clist_it).exec.c_str(); - snprintf(buff, sizeof(buff), _("Starting %s..."), msg); - - printf("%s\n", buff); - - if(!dry_run) - spawn_program(cmd, service_watcher_cb); - //spawn_program(cmd); - - ++clist_it; - ++counter; - return true; -} diff --git a/evoke/Splash.h b/evoke/Splash.h deleted file mode 100644 index 1c1d80b..0000000 --- a/evoke/Splash.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __SPLASH_H__ -#define __SPLASH_H__ - -#include -#include - -#include "EvokeService.h" - -class Splash : public Fl_Double_Window { - private: - ClientList* clist; - const edelib::String* bkg; - unsigned int counter; - bool no_splash; - bool dry_run; - - ClientListIter clist_it; - - Fl_Box* msgbox; - Fl_Box** icons; - - public: - Splash(bool sp, bool dr); - ~Splash(); - - /* - * NOTE: clients() and set_background() uses address of passed data, - * so make sure passed data does not destroys. - */ - void set_clients(ClientList* cl) { clist = cl; } - void set_background(const edelib::String* s) { bkg = s; } - - const ClientList* get_clients(void) const { return clist; } - bool next_client(void); - bool next_client_nosplash(void); - - void run(void); - -#if EDEWM_HAVE_NET_SPLASH - virtual void show(void); -#endif -}; - -#endif diff --git a/evoke/Xsm.cpp b/evoke/Xsm.cpp deleted file mode 100644 index ff3732c..0000000 --- a/evoke/Xsm.cpp +++ /dev/null @@ -1,332 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Xsm.h" - -#define USER_XRESOURCE ".Xdefaults" -#define USER_XRESOURCE_TMP ".Xdefaults-tmp" -#define USER_XRESOURCE_SAVED ".Xdefaults-ede-saved" - -struct ResourceMap { - char* name; - char* xresource_key; - char* xresource_klass; -}; - -/* - * Make sure xresource_klass with '*' is listed last since it have - * highest priority and will override all previous classes (X Resource class, not C++ one :P) - * with the same xresource_key. - */ -static ResourceMap resource_map [] = { - { "Fltk/Background2", "background", "*Text" }, - { "Fltk/Background", "background", "*" }, - { "Fltk/Foreground", "foreground", "*" } -}; - -#define RESOURCE_MAP_SIZE(x) (sizeof(x)/sizeof(x[0])) - -static int ignore_xerrors(Display* display, XErrorEvent* xev) { - return True; -} - -Xsm::Xsm() { -} - -Xsm::~Xsm() { - EDEBUG("Xsm::~Xsm()\n"); -} - -/* - * This is a short explaination how evoke's XSETTINGS part is combined - * with X Resource database (xrdb). First of all, why mess with this? Almost - * all pure X apps (xterm, xedit, rxvt) reads color (and more) from xrdb, not to say - * that FLTK apps do that too, at least those not linked with edelib::Window. On other - * hand since edelib::Window already have builtin XSETTINGS and FLTK backend, you will - * that colors for edelib::Window will be specified twice, but this is not a big deal - * since painting is done only once. - * - * Here, in the code, we look for XSETTINGS names listed in resource_map[] and they should - * be colors only; when they are found, their equivalents will be created in xrdb as class/key - * (see X Resource manual about these). - * - * Values picked up from XSETTINGS color items will be converted to html since because clients - * who reads xrdb expects html colors (or X11 ones, like red/green/blue names, but let we not - * complicate). After conversion, everything is stored in ~/.Xdefaults file. If this file - * already exists (someone else made it), it will be first merged, picking old values and backed up. - * - * After evoke quits, file is restored, if existed before or deleted if not. This is also a - * workaround for missing functions to delete key/value pairs from xrdb (what was they thinking for??). - */ -void Xsm::xresource_replace(void) { - // with inheritance we got manager_data - if(!manager_data->settings) - return; - - edelib::String home = edelib::dir_home(); - - // try to open ~/.Xdefaults; if failed, X Resource will not complain - edelib::String db_file = edelib::build_filename(home.c_str(), USER_XRESOURCE); - - // initialize XResource manager - XrmInitialize(); - - // load XResource database - XrmDatabase db = XrmGetFileDatabase(db_file.c_str()); - - edelib::XSettingsSetting* s; - int status; - char* type, *value; - XrmValue xrmv; - char color_val[8]; - - edelib::String tmp; - - /* - * XSETTINGS does not contains duplicate entries so there is no need to - * check for them. We only scan ResourceMap table for XSETTINGS name and - * its X Resource equivalent. - */ - for(unsigned int i = 0; i < RESOURCE_MAP_SIZE(resource_map); i++) { - s = edelib::xsettings_list_find(manager_data->settings, resource_map[i].name); - if(!s) - continue; - - // assure that XSETTINGS key is color type - if(s->type != edelib::XSETTINGS_TYPE_COLOR) { - EWARNING(ESTRLOC ": Expected color type in %s, but it is not, skipping...\n", s->name); - continue; - } - - // check if resource is present - status = XrmGetResource(db, resource_map[i].xresource_key, resource_map[i].xresource_klass, &type, &xrmv); - - if(status && strcmp(type, "String") == 0) { - EDEBUG(ESTRLOC ": %s.%s found in database\n", - resource_map[i].xresource_klass, resource_map[i].xresource_key); - - value = xrmv.addr; - } - - /* - * Now convert color from XSETTINGS to html value. First convert to fltk color. - * TODO: Strange, didn't implemented something like color_rgb_to_html in edelib ? - */ - int fltk_color = edelib::color_rgb_to_fltk(s->data.v_color.red, s->data.v_color.green, s->data.v_color.blue); - edelib::color_fltk_to_html(fltk_color, color_val); - - // and save it - tmp.clear(); - tmp.printf("%s.%s: %s", resource_map[i].xresource_klass, resource_map[i].xresource_key, color_val); - XrmPutLineResource(&db, tmp.c_str()); - } - - edelib::String tmp_db_file = edelib::build_filename(home.c_str(), USER_XRESOURCE_TMP); - - /* - * Try to merge existing ~/.Xdefaults (if present) with our changes. If there is existing - * key/values, they will be replaced with our. If XrmCombineFileDatabase() fails, this means - * there is no ~/.Xdefaults, so we don't need to backup it; opposite, backup it before we do - * final rename. - */ - status = XrmCombineFileDatabase(db_file.c_str(), &db, 0); - XrmPutFileDatabase(db, tmp_db_file.c_str()); - //XrmSetDatabase(fl_display, db); - XrmDestroyDatabase(db); - if(status) { - edelib::String db_backup = edelib::build_filename(home.c_str(), USER_XRESOURCE_SAVED); - edelib::file_rename(db_file.c_str(), db_backup.c_str()); - } - - edelib::file_rename(tmp_db_file.c_str(), db_file.c_str()); -} - -void Xsm::xresource_undo(void) { - edelib::String home, db_file_backup, db_file; - - home = edelib::dir_home(); - db_file_backup = edelib::build_filename(home.c_str(), USER_XRESOURCE_SAVED); - db_file = edelib::build_filename(home.c_str(), USER_XRESOURCE); - - /* - * If we have backup, restore it; otherwise delete ~/.Xdefaults. - * TODO: what if user something write in it? Changes will be lost... - */ - if(edelib::file_exists(db_file_backup.c_str())) - edelib::file_rename(db_file_backup.c_str(), db_file.c_str()); - else - edelib::file_remove(db_file.c_str()); -} - -bool Xsm::load_serialized(const char* file) { - TiXmlDocument doc(file); - if(!doc.LoadFile()) - return false; - - const char* name = NULL, *type = NULL; - const char* v_string = NULL; - int v_int = 0; - int v_red = 0, v_green = 0, v_blue = 0, v_alpha = 0; - int cmp = 0; - - TiXmlNode* elem = doc.FirstChild("ede-settings"); - if(!elem) - return false; - - for(elem = elem->FirstChildElement(); elem; elem = elem->NextSibling()) { - if(strcmp(elem->Value(), "setting") != 0) { - EWARNING(ESTRLOC ": Got unknown child in 'ede-setting' %s\n", elem->Value()); - continue; - } - - name = elem->ToElement()->Attribute("name"); - if(!name) { - EWARNING(ESTRLOC ": Missing name key\n"); - continue; - } - - type = elem->ToElement()->Attribute("type"); - if(!type) { - EWARNING(ESTRLOC ": Missing type key\n"); - continue; - } - - if(strcmp(type, "int") == 0) - cmp = 1; - else if(strcmp(type, "string") == 0) - cmp = 2; - else if(strcmp(type, "color") == 0) - cmp = 3; - else { - EWARNING(ESTRLOC ": Unknown type %s\n", type); - continue; - } - - switch(cmp) { - case 1: - if(elem->ToElement()->QueryIntAttribute("value", &v_int) == TIXML_SUCCESS) - set(name, v_int); - else - EWARNING(ESTRLOC ": Unable to query integer value\n"); - break; - case 2: - v_string = elem->ToElement()->Attribute("value"); - if(v_string) - set(name, v_string); - break; - case 3: - if((elem->ToElement()->QueryIntAttribute("red", &v_red) == TIXML_SUCCESS) && - (elem->ToElement()->QueryIntAttribute("green", &v_green) == TIXML_SUCCESS) && - (elem->ToElement()->QueryIntAttribute("blue", &v_blue) == TIXML_SUCCESS) && - (elem->ToElement()->QueryIntAttribute("alpha", &v_alpha) == TIXML_SUCCESS)) { - set(name, v_red, v_green, v_blue, v_alpha); - } - break; - default: - break; - } - } - - xresource_replace(); - return true; -} - -bool Xsm::save_serialized(const char* file) { - // FIXME: a lot of this code could be in edelib - Atom type; - int format; - unsigned long n_items, bytes_after; - unsigned char* data; - int result; - edelib::XSettingsList* settings = NULL, *iter = NULL; - - int (*old_handler)(Display*, XErrorEvent*); - - // possible ? - if(!manager_data->manager_win) - return false; - - old_handler = XSetErrorHandler(ignore_xerrors); - result = XGetWindowProperty(manager_data->display, manager_data->manager_win, manager_data->xsettings_atom, - 0, LONG_MAX, False, manager_data->xsettings_atom, - &type, &format, &n_items, &bytes_after, (unsigned char**)&data); - - XSetErrorHandler(old_handler); - if(result == Success && type != None) { - if(type != manager_data->xsettings_atom) - EWARNING(ESTRLOC ": Invalid type for XSETTINGS property\n"); - else if(format != 8) - EWARNING(ESTRLOC ": Invalid format for XSETTINGS property\n"); - else - settings = edelib::xsettings_decode(data, n_items, NULL); - XFree(data); - } - - if(!settings) - return false; - - edelib::File setting_file; - if(!setting_file.open(file, edelib::FIO_WRITE)) { - EWARNING(ESTRLOC ": Unable to write to %s\n", file); - edelib::xsettings_list_free(settings); - return false; - } - - setting_file.printf("\n"); - setting_file.printf("\n"); - - iter = settings; - while(iter) { - setting_file.printf("\tsetting->name); - switch(iter->setting->type) { - case edelib::XSETTINGS_TYPE_INT: - setting_file.printf("type=\"int\" value=\"%i\" />\n", iter->setting->data.v_int); - break; - case edelib::XSETTINGS_TYPE_STRING: - setting_file.printf("type=\"string\" value=\"%s\" />\n", iter->setting->data.v_string); - break; - case edelib::XSETTINGS_TYPE_COLOR: - setting_file.printf("type=\"color\" red=\"%i\" green=\"%i\" blue=\"%i\" alpha=\"%i\" />\n", - iter->setting->data.v_color.red, - iter->setting->data.v_color.green, - iter->setting->data.v_color.blue, - iter->setting->data.v_color.alpha); - break; - } - - iter = iter->next; - } - - setting_file.printf("\n"); - - setting_file.close(); - edelib::xsettings_list_free(settings); - - xresource_undo(); - - return true; -} diff --git a/evoke/Xsm.h b/evoke/Xsm.h deleted file mode 100644 index 7c355f6..0000000 --- a/evoke/Xsm.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * 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. - */ - -#ifndef __XSM_H__ -#define __XSM_H__ - -#include - -/* - * XSETTINGS manager with serialization capability. - * Also it will write/undo to xrdb (X Resource database). - */ -class Xsm : public edelib::XSettingsManager { - public: - Xsm(); - ~Xsm(); - bool load_serialized(const char* file); - bool save_serialized(const char* file); - - // replace XResource values from one from XSETTINGS - void xresource_replace(void); - // undo old XResource values - void xresource_undo(void); -}; - -#endif diff --git a/evoke/data/edewm.png b/evoke/data/edewm.png deleted file mode 100644 index 2ee792ddde5109296c8702d44d3e31aa81455d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1237 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9FbRv^syA!U*m0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa|%L7py-ArY-_r}^fHq)HsGfB&W=y?poImey?wdN;VXw0Lnh@v16Har<6S^1Qg& z@^t#Sxz_1c zOnZJFoA+$jv2F6Fv*vvdc5!MEs1TJ@WI1HEMtc9(dfqq1EFY%)y8UNs?^DmqU!PoL z?0=JV`B&5wA<0OgOGkPe)0UT~Feu(!w0JAubd|?ty9;;Ub$PZpBs44`Qf%_#`rysa zBE7u4xR_Rb@(hb(V5pnlKfg|1F+go|O{D4Jg_7HHcoy}wMojfHC@pRL_12n;Dd5hg zf=v^R#GN=+owoh4M{Z9Xf82D}(p1Z-rKLURj%)C;aBmQN-MHN zo2_;BUZt^=D?9EMU&Ahg@Cl!-H*XKFWImFt)wWPv z$!YluLHsF!Y+;Oh_STCp%M|oqwnM0UFS7-+MBBkzQ&UaYvNvy?XsLhg+_S1EGxJM3 zSGUI3$v(I>-(3Eq=-l1Sxy)u$Jc6z{`Y|-L&Yly$mgKT{ zMm4@7_c{w*mlzkK=f_T015I|~1DabH~89kx4q-rMb$CW-N9)|ffIn06{g zLP+;{f&MH=(w?2|Q4xc%YN zwW^?B##5&MTp1~;uwji*Q>lyE@|BT-3$|SGw~%2=C@7fl?OWNd-McMof0;ho7EDWgyM1T>&wa_;&3@fnspY`qk3w9noBDU}+GSDoMMG3nROON3 zs#Vh;fBw1YvAAB$g->h+lb-C_-q3nDkx$m@$cYmiyu7?ywrw+#-`TwI`8(Ijs}6cQ zmsH;`cyxsG+#JipA0HpLEPW-iF@h(uEN)L1+liC~n>SB(iCMaMadU#fiIbDnH4C5X z9azrvpy=e1AgQd9X%#wNMl&DW*qHp~>sLijJ&}I>=f7QOc;bwqd*B>2T5y}T#*Ew?Os!m)Sn-U^$zJC+J64O`NDeEt2^OmvSva=y+x zFXj3iGn1;Ss*J2GC85p-Uw_JHYcns&IWO+qJl$SGPAV(fX2t7Yo36*b&suiCM^(7+ zPFMfu=jSK;9P>PK^$x@L?dRUx*;ITuaL;zqlV36)#F!Y&qMTHhEi=6A=68CL^u@g!|*i&0|SGntDnm{r-UW|v}!qL diff --git a/evoke/data/eiconman.png b/evoke/data/eiconman.png deleted file mode 100644 index 056bde3376ec6d5c9f6c3282455589f934e80d5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1710 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9FbRv^syA!U*m0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}i+MX_sArY-dr~mbjzAky({`swAKUjt42=V-2?ONav#uVwPY-+zGX#17MEZ?=K zR^9TvZIV0doBbR8o69_Bi`;3+IqR_}E&8%cbd;3GE*7_I3z)7u2+g+GbMv~{_j#M; zC+#vc)4qD`>BM>R?@oWVng6`{obB_Ng;O47&iWRzn)zG4R-ukmA@h2TrENK8Z&fv~ z_CH$O>Ax?qA;Lt6t*u31J@fHBrKNpU`Fl@2+mw`>`!(Hxwc$tpGY1{1jg0OMiN2Tp zyfo(*@4S2I_1CO+wzvna2M_d~C3n=@EC~RM!35m^Nml=zq}qFiRjQ zLNoOJ*DCJZ+}v{s1|6s0URt*N-^pjs)XdJdO+0<6dckz*`F`(CKL6aD6Py^%urXuF z^TO%tnf198TkgN#?zC{i;pd+>?%MV&#&h}1IeX4^3a>Bv^1^$`<;=S8x8sGgs;4=( z^F1uu8DckI{uWNw zYcz5kaTh+lRI$TVS=Xs!f92kL-=d~R|D65j(ZObu+S*zcrp8$xKNg0C$$hAaw?BM1 zKOj1~J4k4$$h6dHj1@MePd*>za%~m(!p~EXo#o}F>Cdpgrif1_JLk^*f0O6`lZkKk zU$bV3MfEq6#skWdx~Ctdn6zDg?W)&&x8krmvnhXJTs38{1#M=IOKkn*I0Ao=WD^M%#CWR-QL``O@;hqf16t zbws!_4`^@9I1F<*% zMxl&N2Nk?lM#=epn8YOEmX}iWNNT!%{G#>i*XyiUcC0fo<>oD|H(soox_9)&}B zI`H`8g$oxpu<}f2WY|Az?%w9Z4-dR731fMepOfe%CtEJ+tVoH-TjW@%_G)qAxoFO2zv`OlfxpKp{a&!}zX zlIw5(+PgJq&y-0wZ$`55@9&s0DZzl{!?$mDKis*yyFA|5S9tf{KNHWUIdeGbO+Wmw z;LQ#pFU`nE&&98~Q;OMwqB3Un&YUU9_l;kHAvXTNCY?8B$E|NO>Un5xUAk2D(8GdO zuEu9+&z{*WU%Ys6j-{Shw~n6PB%fDLKC^y%d)wVWV$uG3hK8h#C%$|!IXknx=Fi2@ ztvh#iCQ5i+-m+Qr_Q&XazPm5pys@eH@*;4f?12+cXUv%Mm(>q9JtYmFffXjolwF9&tO`=;HPI&Y?qx z4yMn`T(Ww#ucTHEVsY)|_ zHf`9jVe774uLPV#8ur_~`*LXI<>#yQJFS@uZ0DPE<-UD;Zr(e&bul}Su*?6M%Dngf zqLcTJT)QUb?d|&t+&9^~-tUmLuX)1Z zrsw_aA=mQzy_1cLvTAcDbL>hR>X|osewR-Ax9|-E0|SGntDnm{r-UW|au`QJ diff --git a/evoke/data/eworkpanel.png b/evoke/data/eworkpanel.png deleted file mode 100644 index 781209ae61b7563d263937bb0049eadd836d4aa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1055 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

jmel-1}rZCl+{d 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

SL@D;%JmV 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 F1OVW7#Ge2F diff --git a/evoke/data/splash-alpha1.png.old b/evoke/data/splash-alpha1.png.old deleted file mode 100644 index 3b6912110262e63e47414b664ddccbcfe82ff71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12011 zcmeAS@N?(olHy`uVBq!ia0y~yV0^&9z?i|o#=yYPZ?2)hz`($k|H*Y zfq{Xuz$3Dlfq`2Xgc%uT&5>YWU|=ut^mS#w&Mqs!W431Mng#|22H6tVh!W@g+}zZ> z5(ej@)Wnk16ovB4k_?5Aj8p}8Pv3y|DXMu43f#E=JU}&i7>s_Un>divi)+w*~{1W>3tE0hX4P07p-6KZ(a5#ptja_b$mjb zr3{~|lHk;-Q#DmpUDGztn+IXZJU8TP|jVO!RQMnDJ%O_vO8J zoo}WX`R-b8#L&R-SSv}IuU(X@RfLC4l!wjK&MxmyM{RCWQc_Thui9iGA)%D*w^O&@ zo;qPd!k-N{bB_Jr9--4B$-rTdbWm1W`tper9c}IHS1(^)yl$NyD-&aBNy&=Mn}hG( zy(=XnW71T!lfinf-_E;vKWpqByJuyss zFZz0VR;*v|9~&E+m6LPj<>lp|px?I5jF+E3J1NOYSXkJt;PAr_p>LbaW}n>@p>yoi z^{lO0hK7N8+oS9D$G5h&YH4Z)=H;!sbouhrj}=dfc21cv!J&t-f#JOUL=TtbmX=YwN>+;L$E~?@CuZrAB^sKVol^}N1Rm_% zf2-F;NlH#GOhMqn%gf8RW?$EnwW$cOwY8O!lDhQb#S7K&Ez^zeD$Mdxb6p(R+uN%t z!J{SByK3*=*yVn6FU_;9e)9cyXh6UM>vubxmo8m;>dcub*I!S)n`a(&je&v5X8EDp z*RCyVX6IkEYgg2AzqvvF{{3z3?V_D7X*wG&cb1t*nTFlHd-rZuM#hDIe}7M%K7IM^ zyxqRv?-ciQadAzVH&1W*<&&!<7&r=Q+ReqbUAq=`_1d*nn>JnI$TyJKqp@eR;1=(< z*X-<%ef|3N*2d)aX}ZzNo}Qkb{qoY%QzuRYBqb>+vN15p)PI~iV@802z=ea&?4faS z>p%|LygB&s?OBzw`czR^i)e%H?*v5+Z;dj z=_ZT}jPw3}I96sp->x<)dV5}IY3bHmw{Dr3nU!5VUjEqdn6k2RR#sM!g207^&g~`F zW6Lw2o|>wqt2_1n`{{S{)DJN@G^DHVTNvQc=-^;#YWnNRWdD*kHw?di`zEz}*7K@4 zNs4(nIU(uk%l+ottp$bW_j}dr#dM>VJb98*=FQB&xNl=37hAJc^|v+Ka&9itjo!9m z=gyyt6eT~uJa27dvj*g;l`B2Je*L=Z`@QPWu&`xw=Ezvi^-C5}V-QG)xh^4VS>z&L z^P#cq{k^q)eSMXiU+uj#fA9MB{?*^!7&`4KdmA-%+O$)zzn)6leD-%P0|QHin2VAi zFAq<~`FXZg@ArN$d2vCJmxm|j)22l~pZ!_k=i{?t=g!F4=J{dS*{iRui(NfcJ6ua$ z-JO$@b4?qgK*E`vn%}>Eg~Z0LEx%tIuI@MI!i^g@e0M+Uc3UhZArau~+soA0aO?K% z(*J+IXCG{0E!r95BEi6T?97qv+qZ{{ii-YvEdPInar!w85w4AiDy>e6bFE6f_U_&L z>eZ`D&HQ#Ntl#emmg_%m;mFOvVX#c}{=a{9p&=nJzFv>NKGQfouj}#N;Ja>(4h~PB zK7IB2_2mZ-7KE*dSh!`2$+<~v4h@E-7c)Ydo11U#tKI$YL%Y3Cmww5`_6ZXw3ckIy z)mvFvSxQFc%B`*0QzuS5SeVGbA`#sE{=|unZ}0AAzbWHuKkVkxadK&^lcKCe!GRs8 zFYhXSJ!SfI_1$;%x{n?zV>ZYyd_7CDE8jrk%EQC$U(Z>;fAQqxy74@w1+Pf1caFzOc}_(DuCLy(4|! z+YTq1nwq|R+;4yF+S=$&gNDlf*bBx256+$Q%e}eD)zs8fN=iy;&-D#Ld3kx)md~%t z$~in~lF-e!Wqq8?3I}G$++Vm*5#%*cjHRcmuilz1(&=*L(xpXbXPci++IS*s>#79{ z9QfLs`OO%fiIzFWJJ%dPe!TS25zg9AC)KkuGXqtG6b~4SJbd;nE%)xOP*G9QtnBPy z4UweVObQ2P?0Nn3$H&J!w`L?hEQna{KmXc1+v+XF&;3fv%ZqI!4(vIk_agIHc}j}Q z@9*!g_sLpcxqn~3^X}s7$*OzG-^WGjh%H^VEbHs5tDh=tWcb+}8uFiAjZ98nye;qU zs&C)Q)M8`VH|9!qx`c#>FTZjnL{vm1m!rdQ)kRrapsIq<=!~g#euDdAMU8HWnj>L@LEBHYvsm`fm5eWef8>9($ng> zH*(B=*4V9$*mx-7=d$I?PbY0W5?iqN;tDr+cTo-&5gs;4d#(nC`1M!c-`iV#^}>Y( zot>O!r+79;=zOZ$d+cu$H#hgx>C@Hs-`DRyE*#F-HNb?(K!=(-{;F82?yiZDO)y*DkBM*5!St z`_ej2rcAp0^2#jJ>?faphQ!3IS+qzgH6`W5h$TYsJNyyrc?QzV=OyN-b|mra^XV9+S=NfD3%6>^T(t=A2`tP?fw1pugba3$uF5W zefsjICZ?xPpK99L#_CPi&g=Vpj4hL;*>UUEtuMRv_XSi|?(CDZUFD!qaFH{t<^z*M zL;eI0l|}2;>4A#L#fum3VT?ccv)N?R=FK3_%$XyzblEbg)%Pl_&RN^pty{NF4^$(F zii)mUy*jwMdbeTHl>PY(EEUsw`ubKaT<8c&3$xAgPl>m`32HV;N;lhmH_uY0&vW&? zn|1ph7DVjbyVt7p)s$7MS8uKTUAA@m_UxRT9^o|%0uL$-jEojdR`<^;DVfq+$XQ%C z;n;%*3#6o_LxY1CpE~7bYGSft|Ni-pe=~3t*sOii*49??>4|4=PtS*EHH__t6L~J3 zIDfwXwWHKVX|*lewq@PlSG#J(iVK~>>Q^pbKCHmYz+!Q)<#1wYdHL$Sd*?3Xe!f3r zP1w@q%d?MmiHhGfP?Tc_g;Qx+*{cf+ok2PeHnU&7dGq9bO$H{J^-TvCSXo*1Tz!9b zpZS3tGi_DXqY_I5tq;CB|5c6RHoT?_N| z@i~!VbazYst&NUS+1J(ty1BJ=b#;YAL`Yn3Heq9DFa7o=GBiAV^{Q1~XV0FMl9GC4 zq0hi%Bi_^7yK?E$r_1)Lq^{$=)Zw;RN>Vb=+q?VQo12T*MsHuWZ(m$(Z7o;(;XMl& z1s?2Fkm}9K$;r9&@&4@2vuVbD8)k7gn;biS{OY}Xpteia=VxcF%HGV_wR^Xzp`l^s zc~Ekei3*Z1nF zsoGN~PhPxeky7#mHygRlK!ZQ0!0+g=`MWIpzFkBhjumx|EE7cW*6E~_mq z-5OW%koE6p`~REgRX&>;Szni%n_KneqWjkR|NlJW-@kqx?CaZ`m6i47(`o(Jf4|?q z9$S9b^yzVVY3a+?_kA-B4Gs1ERTUmS-7Np!nzOUbUr!B>yZG$v?57_qDh?j8+p&>T zPgjO7J0rtGSy`E@{qW~sKl0z4fA+EB%hmODq5XEhR-8I@YD>{mFWu;EIhP!GXP-@D zsW6+LuOSi?9zH!QJNxS~>HHTDMn+J+ zd%ySlJh{3biLA|zw!hzOuKM+IdH#*!-z6$ z_*=JMuKrJ9?PKZt7k+(x9U2|IT0E}8asSV=`Rjgt{Qc_}C^Al`ZC<%+S5*1E%H<#L zcXf4rIUWBmsQhl}bh*kWf_s0xT3z+9Rs2bTMa9JpO#5mY+}+)ue|_QEet6-cMM}1x zPAKpC`|b8tQ1f%@)Xay6THP9C`Pu~^+`PlL(OPt_WwG1*x?d~nzVE*O^6mEf*B%~j zSHHWIt3%xW&qMyN`TxJ=Pg=5keqGfywtag(pR=B{B>w-e>+!pOUw>PceR-Mhq$T|J ze+s<%|37S(&&tX1>9_rMW66(s?_bCN-vx@Muiw9CzrMD1k3|Gy{7>Hhe;Cd$H~+!S zo+%@4E5(VkTX=bH`@s@%8K0O;f3Tn;pOV&G*{Rv+rLy zE?>Xqyxnh~ew$Am`g}|^rP>dEeo(9br_g(Kb-1>+_URc3qSpJQ*EgH^&9PVrDv|E( zjh2;_1zDVEHv8*g`F{cbzxe-O^8e@j|1+mDuroET{(s3{eA`BUQ=&js?*hMjvZ?Yg4S%gQaLp{=d`&Tm6k?F&gs z$-v^`&7i{X)2C0Ch8~Brww`+a`Q zT-n*XYhPSY1hv52`(y&c!^7|JUFvvy>3h}QsI6I3i;9Y#l-Mr{C`gI?eL==Vm)>8WT1h>l|EVP3dN*J74|(}<^O+_|8+LMZt zZ`&v;I@axv*A80~5EnO3OebOiWIRIR_Kwx7yEktxoH$wC-)mA=clYC0m3x1`+x_bx zf8ByTdu*mopRR3fT^-dwdD^sP6DJCO{r)}P?7-i@evq@`-$>f1 zp{sj#Mz8GdlGE?MYinwHmhHZKV{w7;{Y^sgdS>!F*R0XWn-`qp6&@EiPfJTHBqGA% z?Qty)jSD-ApM!c%Jv}}8fA>wBCgvG#7d?wXc^z}k)+lw?g^<>Kp}ogrPzz+unk(Y* zH4D$3JGW!++2l7Y+Wp6qWuEKm>4oLxt@~5=Usb*3Z2Re}2A>Z-+z?m)x771ea=)$F z>+|U~H8J-8f1dw(N_+i_KI?ZE+U4t3%$YMMyXp*Rn8dp5&4q`D+x4rJ+Yh(%dr$K6 z_O476c%aR0vCUdl&X28YZoQpy|LuT{`>#FZC|y1{q?om@2&d!`uh1-#hH0|*S7EfoBQ_W zX7~E9;q^<+@7DzDO@BR0zWnX2tyMptPXGFH`TSSw|NmOQ|I2T?pHGB6!{?oFZBSf& zHEYk!bI)vE+{n_=)bv~(zJ6YCvx$_nbg!e-^K)~%e>+O?wL42nN@{6q2Rk}8dU<(G znLIgpj;);kbsyz_pd?WBY-W0j(abNGy!Fq%%6@jBk@?rJ>-*Q8JLhNn{Z8?%4T*<) zZ0EPj*G2d(5B~o({{PbYAMN!QR)wzC`!z3iciGGR|9|g)T3{jJ?AfsXOwz^^k3XJy z)fu5S+0$=%aAjrXuHWx=_i7yZtoHx4$&)5M%9?KXC|E`4;)f3#qN1X<<>9kHEv^B!A#=)ISkwfSbx)rh>jbzNOuQzlPVo_~J% zkt0WTSc6;g-@cWBM(v(HeQH(nV*^v8Lk#~VgPA_ZOfTQOc@xwpDl6Lt?i2aPoIQ4I zYyFJ5=dzzf$!V*qy6*pVb^Vv^^}n~9zu6gkYV&!!Y@gM;Zbe=Zx2t<&S$FgO?!w1z zpwkfn>l8W&skr$=Gy2e zr5(P`L@na!vu9eiws&vbmB}~vdGYSuwUd+8LBnsgzrP**s?dAmbLZJ(=gyo7DJGNlGS?}i-`pXXGm}wgt2F{#0bJy2v(O)k(^S}Ik|9@S~ns3Xhst>;O@b|xdZ*TS2 z`Tu{;M;enl@wV(WsMYd)|Nq**KaSf^JDc|Ss8hrGzPowhX=%%ZgoM^*H|WbOnK*Z@ z?aMRIDs0Y4^R=5A7%ceps|wU$-?b}h?b@|cl9HXj9i>1$Np0=m#KeW5qNr@TUD~s) zQvLm)Y&qR{5vOC@u1ODc+I6tmwMjH=ugjMR5b6&Eu+@sP7$A0|S!PM9QYL%Qi<#qMy)s>4EE9bFi#=L3{NlID- zYV9BG7MGqbI(PqE#s-GtmyiAQ)(8#?O4)pKUFOpAm5x%buCB*;g&);Ua0?BcTK4Xa zQwgc?Q0_= zqmZDWMSuSMu{88ZetvH5s#U9kf`ccsv9Ud>nsDstKRI8u$!o$^=a|jjm@Uu1Q6N*i zGe%2ObK>EL25OeExiv}YckdM*m(|kI2?-3G*wx)Vb>>XT>6fRTlV7s2{QW)8W|K#M zE#6;U(~x|7MkuI@#UAG8w>+4YmDS73D@Z|L$E$eh-L?`&7a%X zcgMb)G=Kj3FJDTMH-+i!`Do(t_(-Slt!=rt=SVCu3>E7>DzS!++r&>Y`DOY zZ_{gPQ$OL@&f@1^ema^;N;}RzkdCCcDCz#P_=53@m^oG%WLl4-(==yY?8T=f>ODK~2-v*4D{+@y`n^9=)@8f8)lCsOaeDcNBWF{}%uLTX*wq znW~D4KpX>0#k!AGdqGnOpy7sv3l*0xT`HN(3m@{zzq3-K?2`YUISE(q-d*e5&X;+6 zTkfw%-TFO_QpJB+R*bdzS5z37Y^KjRo2II+{`%eS_hGTIbAy6{dScJs zym`~h-``wMyX&~4l)C@C5Kyvvdu!>pZ{IwdO`cWv=!kW%30u7}yya&KI6s%ZZ4N_IB3D;F*-h}~Vba@8uY=jY~LK5)Px=Dxwh zDi05j3721*xYgYAsV`$-skrx{YOj{IwsBb4#@MqTOO`MC%$^w%7WV4O%HZO<3CFh9 z6@03&DYB3`BF?}#uiHm$a*o;TNs}k{-rc@2yYg{jd9i^6XuST_t5;icZ*TK#Hp#p8 z!DVrvs)~xl?)jGgxEmPGUu2l=qc-#GvmHBoRHb^gWcXIEUhRFnPd3=qwe{P(yVmOY zGYa-@JHILQ^pr`H4sk{>aD1rg{Fu|OYUZ(c;X+5yP}7PP0nyR7mpDq9SLY;|$9ees zPe1)MNl1)=sVAHJJ)|ZI2@YPY8@(;Y#Dn?&@s}l9s;aJsJOBNXvS&dgr5F>Z2^uKA08eCjcvuo-t{&1NZ#e6 zHu>F-$9z9)>~`MG3)|1YVX)3_&qK)2PvN5@zSbVeyJYyynJ|g`1Ha# z+qZ2Cn>%-|%=5Wy(@(3ezrOm+86QXA0I#8Z?4tSQ>VP%-r0HC;@s(X&t874+6!ugXJxH=Q)az;exu}u>hF1f zfA9ZqE#1U$zILOunu(cN7Q7g{yhK_p;gyh(P|w}-Cr_SyQ^%I(5E?pl-`BPInKddh)C3CYdPy|uf1z1{CO#&hjze@!y?Nw{iOs;Q}Y>eMNtcW2MMOHcU4 zCu6ZdJiaC{fA3eZ-Luy-Ph&HmbYxyP0|TEkXf1%oo{1hV2NMF$o;|y2)v8OU_4ls{ zkFO2gx^=7g+?1nwmow{TZHX#9Z~I-t-ah{2%a@yOzm56dt;x;8^y{d8-NM`X`(r&l zJ&k6c_44rnm8Reh{lA~jgRA!3*q=W6klKjvYo@@#g#P<+^dV)K2Vp^SI$u5}8l zhXe*L{QLX+>a}ZoUst9_WM!?|v}qHl(b9ihdG^_3@6vrd)6A+hJ{T74H`**+H*H=JE$e~_f5L}W7k7m6?rY@B3vt%FLy63 zEvfc}bI!t-r^VKU?UX=g;SIIMe6T&ze(b&xXdu z&6_lNa^&BnsC)JQ|9aZjzukHrG-%Gu&gb*%*SWdY%fJ43SP=35NB{p74mhI-=Eihc@dazsxS%et4m%cG!vy8v^X+_g~dtwsz^#qZW}y5eQuMTeCr(%4N&cm}+e89A}-4+ML$Q#mxBMO8&*!>^-TYJWUz2U%A3=ElMV z1B=D|xtniJnKetx^V9FYlmFd*>UZQ*)!y(w4wbg^%{e~InLKCCn(Fs^!}spp`|HKx z{wud`d9|cRL`BU44X|fiRQmb1&T_8bxte2J{{B2)e{K7|uey()gGTfA{l5D?>*uGZ zQF|&rn%e(6a-^lIs%pxtS*sir3|{V6Ra2{bxqkPh*FUT5^JA8?vdn&9Rkv$n)YO?X zSN?v#KmPmu`u%_E?6o&b3iZ0BZoj=X?W~k;+@1(aOUt6&cQ-|?z4Mdf^0!~F*Zcqa zx&Pnm{jV;%%U_lM_n}?#x9z;@cb2_I8CQf>0d4wuBlh41$N zuk-cs$#{KjEokydwWe1`toz#f`1O+}2~C|cMMG7!HTL|BiK4H5=I#A@P4d63S?;YR zzO&6@zkK~1zTxAKJqNie&bi)5F*^COBnwmrzF62^a=-SwrmgMVfSA+W*K$C;%1@s^ zZ%sKVl>BPy&78E|k7m`pufD(g$#rjU@2yo|UwOvQe#hyn9kyo2i)`;{Iy;x0uE{&{ znT>JYWWhe)C6Sv_IzeM&cgyeBe)?H+Bx%-dV_jX}@AsAqFf7g0> zd8KTOc=Gw@m&x=0xJ;cowdz45yIO6&tLxD%b^ZNzzdZbHKDJDnGzk>y`+v^fA6Qzt zHAXKy#yUmdU&Yy)6beYUwIlBlCuQk zHY7Bz30p10*Z%G8?d7$Q=V4eul@e=T6F$ZP?bJ)s_ORJzBP;j2|oIV z_}ZN-D=R@k1WN7w#}}Ws{~vSr?%g+&{+*tG_ifp0?f9Qvc{`tq=|*q!xq0*E5%FR! z`4x^0k4+Al&GxmM@4q^1ZBSIytV@?JZAm`PXKHHdyUYE<*<(3or(b`~`upo^)TWe9 zFK_Qokn?7C7rbdd{x~o*bES=3|DU@3S=rfJ^Y7d7^77sdakgG`amAUm&7d5Vch?G( zth>ea)3zHkF!j6^PU=3o=*STlQE~Cpk3VXttGi1|O5WOAy*(-_N^e$)aen-Su+^aC z`sYv0-J;XFT3T9@&OcY)2WlI{x13GeEF>f}W#UA|?YGyiS)=px`SaD=wuSxv{yscE z|NS0YvmCS8Q|HWCW14*pG%e;mT`x2*Z{4KHlc&y@;QK0Eq#i|SP;>1VZzS(5 zA2mxEzSNWyiQP-4>qIWPb0-Egn(W>ubMeH96La`B9!(0&%32k+Hfm{86O*W@s3v&8 z*Wc6A^H_zaTN!9hd+XH=haU!1Rqg8P?k@fFqfk^-bmhvGp6-1zGfNg-i{U8DDgWFh zstszVOqwJFnyk~+_0`nWEV7V!Qv_;#{odHsdiC)~4MW2~NlD45Eg2JEy?z}U6trmB zGBwcHVsmpd7hCgWB{}~bv)Om@wx2q63bdpqBxK2-KQ%x9)>Ycbf!1(LH(njbz#>s7 z{^-e*l$|kpsp;vU_HR~BPDp0vO3>Uu@Nz#*0gjA{ii&IQ(QbmcaSRFvJ{unawU$nvym+XU`|ADs>-X)m z`}*a}iru?GgW<2?a8F29^|H*fmsr$&pa>k2sa83Z0wYMMpg$}!WH z>OGaTQA4Wt)XS1nk3VXdnub0sxbef#%xu}ihl#y?eNyq=N5B8c?n!>Qr$97k`|YVS zW@zlbn^!acX3n&$S#!U{bm%b%JeaL_%bn>m z8VWlVyp7so=g2=@T{(yQzx_s52BscOx0wx02YQe1P$YgWC$n;cFM=YZvWx`#Jl_nl2Y55OQ0*M~?B#d4~S}{_KPV2VP!YDJiK*ck`y7OnH(i3q`@Fp)QoPqql&>AsU-nQr#Kvgw zpGk(VeQWjiyvNVi)Cu-i#4^n&XMA>+m%*W-Q=ft1@}X1@$Z}M2)?k9xW`ftYGVy@I z#z1|hkJ@AQhMlLaCiAClzWL<)Z&NF)RT(CyuCb;~xSJQAl(Z1~#*9M`4WcDybk?s4TU}!}|I(#PDQ2@H89@tCcgE;V zoi+{BRXBY3Fc(`hXrXBk`?`ssrIk6;F29^|{PD!AS*eQ|SSmhg-N@U1I&15xmnA~+ z32n+b8zWM-MuDb#&5F6$9UA_BdM5BYe)36`)mOc08ea=M{QO^>f$^Cy6GMY$g1i{+ zm6C0+m_|UQsN884L+{h+9?8*VjfLpT@xOfNkZfRhRxV$#G?C VscTBSXJBAp@O1TaS?83{1OTnD!{-11 diff --git a/evoke/data/startup.ogg b/evoke/data/startup.ogg deleted file mode 100644 index 2fca9715b162806a0204144052f9ab7af208647a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124445 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%0D~l^i40hEb-jy%U1u5_Fapc%{*5&%YG{l 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 T816h5-f@1pqa#BA13Mo8ET`JU diff --git a/evoke/data/xscreensaver.png b/evoke/data/xscreensaver.png deleted file mode 100644 index 511d0c44b87b1f310c156c558aa97062b1737193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1725 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9FbRv^syA!U*m0|SF(iEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$ zQVa}iR-P`7ArY--r$=|hhD#o=&whJ)=lPjFM(UGJ#>_GiUVTa6iXEp`=1Rt;Qr1lW)cs9+pRWxzW zn~x{N<&*v$Dco|+$KT)g+Uu{H;tttsgOBa6dZ^Ur6S(#VXMvZ)O2r4~EPkuWu9lso ze4d#{B<9cE(|79s*fG?czufSA)AG{Yiha-3yBD-shdKv_Zo6DkCsJd-$XT#pihyKy zgyRIAQprY>1tCE*9}B0ZrSo6rPd@SU$5q2wYx!1p%NxF6H(1rMD^!%>xS&mL;g$y( ziPGJoyC-iCWXg095#h4j_wB3x#yf8|-FtWOt$PC7m1E3lcJr0FIf4mpK^b(+VGkGnTE#=*A|#WJbdB9>FRUicFOKbWyOU&N$t{8qeVP| zC)}uhyx8>C`^r$W<~+sawZef}$GHouvckMH?KdkbAO`TQc(yjNFP9lFjqkMBci z$9kq3*@RVs>%Xk#;Bx0YCgH*&Xzk_DcJPP-S44E&!(UTZpRu<&`Kze=dHuzvJ&jr2 zrJGOOc;c9q{Q1T;!GFKrvCWrwf3ZI{>#5!8wL({$oGqUlc6|ELceIqn{dP~o*2P>L zyNfQrS{rP!xAWKT5C5{gZ!{iKoqk8g%i&dL?ULhSk2WlGpjIPE%Wn=#ZSq^ zk3rUzXI4Gw*vz%YDN{yB&YsfH6O|PsjXkGRG!om*0g|fPrIh6W# zPM)*&?1LAKv;j+rw{jB#&f=bM@^6 zL94G5$7JS>lq}tW@_Vf0)r+3Wb zza=T;A+q~o#sX%3VXdZwhON_X98qRznaF%dA!)O9;(fCM2lek$I64iJTc1xo=zB_} z?W4!ywwGF!m2Az7N+&BfXtNg1(fDv9IlW@vSEjjZAMoi*J3k4S)Wu=C=;{XxzibhK zRx#IeA1x-FHmrXWvFv~zlaiB(iTl!^M}L0iU$}GQkd$){tMu&@_>Cp%S7IaRG% z>B5!lkhqa4Nw+Vo!8N;&Xm=X0>AYI;e^4Z+{?^Oq8abI}*ZC>ryt>$un-n?Yj?o|3ORU(qI|NWNwZ`%By zuibuM^y^Cci?3A?**D&OQR!N2ucxE)CAPt$uYT{29}mCV#l>01>xl40X7gM3l?h7j z+jHVWYRIH7n~P^Indk9NsO-3Fz^$iORtD#6+qLZGE0dm$(Hl4FAKUoTF=@4J*!t_Q zcLo{$zo!2Dx!=8oZ0~mcP0n0;@kU0iqh@JoVxl7R-d2VKJB#nv9V`8Er+%_Sj>@fD tw|>2A^;9If4KH diff --git a/evoke/doc/evoke.txt b/evoke/doc/evoke.txt deleted file mode 100644 index 9ab1267..0000000 --- a/evoke/doc/evoke.txt +++ /dev/null @@ -1,120 +0,0 @@ -Evoke documentation -=================== - -Evoke is EDE head service responsible for starting environment, running -requested applications and shutting down environment respectively. - -It is usually started at EDE startup, placing in 'startede' script and -will allow only one instance of itself to be running. - -Options -------- - --s, --startup:: - Run in starup mode. Startup mode should be used when environment is - starting and it will read evoke.conf file looking for compontents to - be started. - --n, --no-splash:: - Do not display splash during startup. Only usefull if in startup mode - (given '-s' or '--startup'). - --d, --dry-run:: - Only valid in startup or autostart mode. It will show what will be started, - but will not start anything. Usefull for testing. - --a, --autostart:: - Run in autostart mode. It will check 'autostart' directory and run .desktop - files from it. This will be done according to freedesktop.org autostart specification. - --u, --autostart-safe:: - Same as '-a' or '--autostart' option, but display dialog with items that should - be run. - --c, --config [FILE]:: - Read [FILE] as config file. This file is only used in startup mode to read - components to be started. - --p, --pid [FILE]:: - Store session pid to [FILE]. - --l, --log [FILE]:: - Log events to [FILE]. [FILE] can be 'stdout' or 'stderr' (literally) where logging - will be to standard output or standard error output. - --h, --help:: - This help. - - -Details -------- - -Evoke can be started with or without options. If started without options, it will do nothing -until external application send request to start something or to quit (here 'quit' means -to quit evoke, not some running application). - -As you can see from options, there are two 'modes' (if parameteres for them are given): - - * autstart mode - * startup mode - -*Autostart mode* is used to run applications from 'autostart' directory. This directory is -usually located at $HOME/.config/autostart or if not exists, in /etc/xdg/autostart. Of course, -both directories can exists and evoke will run applications from both, but with one exception: -if application with the same .desktop name exists in both (and is valid desktop file), it will -be run only from prefered directory, which is $HOME/.config/autostart. - -If you want some application to be run at EDE startup (implying evoke is started with '-a' option), -just copy it's .desktop file to autostart directory. Before that, make sure that .desktop file -confirms to http://freedesktop.org specification for Desktop Files. - -On other hand if you want to disable running some application from autostart directory, you can -simply delete that file, or set this: ---------------- -Hidden = true ---------------- -Make sure that 'Hidden' key is under '[Desktop Entry]' section. - -Autostart mode can be run in two ways: safe and unsafe. Safe way ('-u' or '--autostart-safe') will -popup window with programs that are 'registered' for starting, from where you can choose either to -start some of them, start all of them or to start nothing. On other hand, unsafe way ('-a' or '--autostart') -will simply run all 'registered' items without any questioning (should I say that this can be very insecure). - -These options are intentionally provided so you can choose startup policy depending on your security -options. - -*Startup mode* is meant to be used when EDE is starting, running each component (or program) -from evoke.conf (or file specified with '-c' option). This configuration file must be in the following form: --------------- -# [evoke] section must be present -[evoke] - # Startup key is used to notify evoke what to start - # and program keys must be separated with comma (if multiple ones are given) - Startup = program1, program2, program3 - - # ImagesDirectory is directory with icons used for splash screen - ImagesDirectory = /some/path/some_dir_name - - # Splash is image used for splash screen (it will be searched in ImagesDirectory) - Splash = image.png - -# now comes each value from Startup key as separate key -[program1] - # Icon is icon used in splash screen progress (searched in ImagesDirectory) - Icon = icon1.png - - # Exec is program executable to be run - Exec = program1 - - # Description is used to describe what is starting - Description = my cool program - -[program2] - Icon = icon2.png - Exec = program2 - Description = my cool second program - -... --------------- - - diff --git a/evoke/ede-settings.xml b/evoke/ede-settings.xml deleted file mode 100644 index 419f3b1..0000000 --- a/evoke/ede-settings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/evoke/evoke.conf b/evoke/evoke.conf deleted file mode 100644 index 37adbf8..0000000 --- a/evoke/evoke.conf +++ /dev/null @@ -1,35 +0,0 @@ -# evoke configuration sample -# main section; must be present -[evoke] - Startup = edewm,eiconman,eworkpanel,xscreensaver -# DataDirectory = data - DataDirectory = /home/sanel/programs/EDE/ede2/evoke/data - Splash = splash-alpha1.png - -[edewm] - Icon = edewm.png -# Exec = gvim - Exec = edewm -# Exec = fluxbox - Description = window manager - -[eiconman] - Icon = eiconman.png -# Exec = mozilla -# Exec = /home/sanel/blentavo/EDE/ede2/eiconman/eiconman - Exec = eiconman -# Exec = /home/sanel/abc - Description = desktop - -[eworkpanel] - Icon = eworkpanel.png -# Exec = mrxvt -bg black - Exec = eworkpanel - Description = panel - -[xscreensaver] - Icon = xscreensaver.png -# Exec = rxvt -# Exec = /home/sanel/abc - Exec = xscreensaver -nosplash - Description = screensaver diff --git a/evoke/evoke.cpp b/evoke/evoke.cpp deleted file mode 100644 index f4f0ab0..0000000 --- a/evoke/evoke.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/* - * $Id$ - * - * Evoke, head honcho of everything - * Part of Equinox Desktop Environment (EDE). - * Copyright (c) 2007-2008 EDE Authors. - * - * This program is licensed under terms of the - * GNU General Public License version 2 or newer. - * See COPYING for details. - */ - -#include -#include - -#include -#include -#include - -#include -#include - -#include "EvokeService.h" - -#define FOREVER 1e20 -#define CONFIG_FILE "evoke.conf" -#define DEFAULT_PID "/tmp/evoke.pid" -/* - * Used to assure unique instance, even if is given another - * path for pid. This option can't be modified by user. - * TODO: add lock on file so it can't be removed ? - */ -#define LOCK_FILE "/tmp/.evoke.lock" - -#define CHECK_ARGV(argv, pshort, plong) ((strcmp(argv, pshort) == 0) || (strcmp(argv, plong) == 0)) - -static void quit_signal(int sig) { - EVOKE_LOG("Got quit signal %i\n", sig); - EvokeService::instance()->stop(); -} - -static int xmessage_handler(int) { -#ifdef USE_FLTK_LOOP_EMULATION - XEvent xev; - while(XEventsQueued(fl_display, QueuedAfterReading)) { - XNextEvent(fl_display, &xev); - EvokeService::instance()->handle((const XEvent*)&xev); - } - return 1; -#else - return EvokeService::instance()->handle(fl_xevent); -#endif -} - -#ifdef USE_FLTK_LOOP_EMULATION -static void xmessage_handler_fd(int, void*) { - xmessage_handler(0); -} - -static int composite_handler(int ev) { - return EvokeService::instance()->composite_handle(fl_xevent); -} -#endif - -static const char* next_param(int curr, char** argv, int argc) { - int j = curr + 1; - if(j >= argc) - return NULL; - if(argv[j][0] == '-') - return NULL; - return argv[j]; -} - -static void help(void) { - puts("Usage: evoke [OPTIONS]"); - puts("EDE startup manager responsible for starting, quitting and tracking"); - puts("various pieces of desktop environment and external programs."); - puts("...and to popup a nice window when something crashes...\n"); - puts("Options:"); - puts(" -h, --help this help"); - puts(" -s, --startup run in starup mode"); - puts(" -n, --no-splash do not show splash screen in starup mode"); - puts(" -d, --dry-run run in starup mode, but don't execute anything"); - puts(" -a, --autostart read autostart directory and run all items"); - puts(" -u, --autostart-safe read autostart directory and display dialog what will be run"); - puts(" -c, --config [FILE] use FILE as config file"); - puts(" -p, --pid [FILE] use FILE to store PID number"); - puts(" -l, --log [FILE] log traffic to FILE (FILE can be stdout/stderr for console output)\n"); -} - -int main(int argc, char** argv) { - const char* config_file = NULL; - const char* pid_file = NULL; - const char* log_file = NULL; - - bool do_startup = 0; - bool do_dryrun = 0; - bool no_splash = 0; - bool do_autostart = 0; - bool do_autostart_safe = 0; - - if(argc > 1) { - const char* a; - for(int i = 1; i < argc; i++) { - a = argv[i]; - if(CHECK_ARGV(a, "-h", "--help")) { - help(); - return 0; - } else if(CHECK_ARGV(a, "-c", "--config")) { - config_file = next_param(i, argv, argc); - if(!config_file) { - puts("Missing configuration filename"); - return 1; - } - i++; - } else if(CHECK_ARGV(a, "-p", "--pid")) { - pid_file = next_param(i, argv, argc); - if(!pid_file) { - puts("Missing pid filename"); - return 1; - } - i++; - } else if(CHECK_ARGV(a, "-l", "--log")) { - log_file = next_param(i, argv, argc); - if(!log_file) { - puts("Missing log filename"); - return 1; - } - i++; - } - else if(CHECK_ARGV(a, "-s", "--startup")) - do_startup = 1; - else if(CHECK_ARGV(a, "-d", "--dry-run")) - do_dryrun = 1; - else if(CHECK_ARGV(a, "-n", "--no-splash")) - no_splash = 1; - else if(CHECK_ARGV(a, "-a", "--autostart")) - do_autostart = 1; - else if(CHECK_ARGV(a, "-u", "--autostart-safe")) - do_autostart_safe = 1; - else { - printf("Unknown parameter '%s'. Run 'evoke -h' for options\n", a); - return 1; - } - } - } - - // make sure X11 is running before rest of code is called - fl_open_display(); - - // initialize main service object - EvokeService* service = EvokeService::instance(); - - if(!service->setup_logging(log_file)) { - printf("Can't open %s for logging. Please choose some writeable place\n", log_file); - return 1; - } - - if(!service->setup_channels()) { - printf("Can't setup internal channels\n"); - return 1; - } - - EVOKE_LOG("= evoke started =\n"); - - if(!pid_file) - pid_file = DEFAULT_PID; - - if(!service->setup_pid(pid_file, LOCK_FILE)) { - printf("Either another evoke instance is running or can't create pid file. Please correct this\n"); - printf("Note: if program abnormaly crashed before, just remove '%s' and start it again\n", LOCK_FILE); - printf("= evoke abrupted shutdown =\n"); - return 1; - } - - if(!config_file) - config_file = CONFIG_FILE; // TODO: XDG paths - - if(do_startup) { - if(!service->init_splash(config_file, no_splash, do_dryrun)) { - EVOKE_LOG("Unable to read correctly %s. Please check it is correct config file\n", config_file); - EVOKE_LOG("= evoke abrupted shutdown =\n"); - return 1; - } - } - - service->setup_atoms(fl_display); - service->init_xsettings_manager(); - - /* - * Run autostart code after XSETTINGS manager since some Gtk apps (mozilla) will eats a lot - * of cpu during runtime settings changes - */ - if(do_autostart || do_autostart_safe) - service->init_autostart(do_autostart_safe); - - /* - * Let composite manager be run the latest. Running autostart after it will not deliver - * X events to possible shown autostart window, and I'm not sure why. Probably due event - * throttle from XDamage ? - */ - service->init_composite(); - - signal(SIGINT, quit_signal); - signal(SIGTERM, quit_signal); - signal(SIGKILL, quit_signal); - signal(SIGQUIT, quit_signal); - -#ifdef USE_SIGHUP - /* - * This is mostly used when we get request to shutdown session and close/kill all windows. - * If evoke is started from gui console (xterm, rxvt), closing that window we will get - * SIGHUP since terminal will disconnect all controlling processes. On other hand, if evoke - * is started as session carrier (eg. run from xinitrc), this is not needed. - */ - signal(SIGHUP, quit_signal); -#endif - -#if 0 - XSelectInput(fl_display, RootWindow(fl_display, fl_screen), PropertyChangeMask | SubstructureNotifyMask | ClientMessage); -#endif - // composite engine included too - XSelectInput(fl_display, RootWindow(fl_display, fl_screen), - SubstructureNotifyMask | ExposureMask | StructureNotifyMask | PropertyChangeMask | ClientMessage); - - /* - * Register event listener and run in infinite loop. Loop will be - * interrupted from one of the received signals. - * - * I choose to use fltk for this since wait() will nicely poll events - * and pass expecting ones to xmessage_handler(). Other (non-fltk) solution would - * be to manually pool events via select() and that code could be very messy. - * So stick with the simplicity :) - * - * Also note that '1' in add_fd (when USE_FLTK_LOOP_EMULATION is defined) parameter - * means POLLIN, and for the details see Fl_x.cxx - * - * Let me explaint what these USE_FLTK_LOOP_EMULATION parts means. It was introduced - * since FLTK eats up SelectionClear event and so other parts (evoke specific atoms, splash etc.) - * could be used and tested. FLTK does not have event handler that could be registered - * _before_ it process events, but only add_handler() which will be called _after_ FLTK process - * all events and where will be reported ones that FLTK does not understainds or for those - * windows it already don't know. - */ -#ifdef USE_FLTK_LOOP_EMULATION - Fl::add_fd(ConnectionNumber(fl_display), 1, xmessage_handler_fd); - Fl::add_handler(composite_handler); -#else - /* - * NOTE: composite_handler() is not needed since it will be included - * within xmessage_handler() call - */ - Fl::add_handler(xmessage_handler); -#endif - - service->start(); - - while(service->running()) { -#ifdef USE_FLTK_LOOP_EMULATION - /* - * Seems that when XQLength() is not used, damage events will not be correctly - * send to xmessage_handler() and composite will wrongly draw the screen. - */ - if(XQLength(fl_display)) { - xmessage_handler(0); - continue; - } -#else - /* - * FLTK will not report SelectionClear needed for XSETTINGS manager - * so we must catch it first before FLTK discards it (if we can :P) - * This can be missed greatly due a large number of XDamage events - * and using this method is not quite safe. - */ - if(fl_xevent && fl_xevent->type == SelectionClear) - service->handle(fl_xevent); -#endif - - Fl::wait(FOREVER); - -#ifndef USE_FLTK_LOOP_EMULATION - if(fl_xevent && fl_xevent->type == SelectionClear) - service->handle(fl_xevent); -#endif - } - - EVOKE_LOG("= evoke nice shutdown =\n"); - return 0; -} diff --git a/evoke/fl/autostart.fl b/evoke/fl/autostart.fl deleted file mode 100644 index dee328e..0000000 --- a/evoke/fl/autostart.fl +++ /dev/null @@ -1,33 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0108 -header_name {.h} -code_name {.cxx} -Function {} {open selected -} { - Fl_Window {} {open - xywh {344 264 370 305} type Double visible - } { - Fl_Box {} { - label {The following applications are registered to be started. Please choose what to do next} - xywh {80 10 280 61} align 148 - } - Fl_Check_Browser {} { - xywh {10 75 350 185} labelsize 14 - } - Fl_Button {} { - label {&Cancel} - xywh {270 270 90 25} - } - Fl_Button {} { - label {&Run all} - xywh {175 270 90 25} - } - Fl_Button {} { - label {Run &selected} - xywh {45 270 125 25} - } - Fl_Box {} { - image {../icons/warning.xpm} xywh {10 10 65 61} labelsize 14 - } - } -} diff --git a/evoke/fl/crash.fl b/evoke/fl/crash.fl deleted file mode 100644 index 45a973a..0000000 --- a/evoke/fl/crash.fl +++ /dev/null @@ -1,28 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0108 -header_name {.h} -code_name {.cxx} -Function {} {open -} { - Fl_Window {} {open - xywh {354 160 380 130} type Double visible - } { - Fl_Box {} { - image {icons/core.xpm} xywh {10 10 70 75} labelsize 14 - } - Fl_Box {} { - label {Program foo just crashed !!! - -You can inspect details about this crash by clicking on 'Show details' below} selected - xywh {85 10 285 75} align 148 - } - Fl_Button {} { - label {&Close} - xywh {280 95 90 25} - } - Fl_Button {} { - label {@> Show details} - xywh {10 95 265 25} box FLAT_BOX align 20 - } - } -} diff --git a/evoke/fl/crash_expanded.fl b/evoke/fl/crash_expanded.fl deleted file mode 100644 index 1d41e22..0000000 --- a/evoke/fl/crash_expanded.fl +++ /dev/null @@ -1,39 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0108 -header_name {.h} -code_name {.cxx} -Function {} {open selected -} { - Fl_Window {} {open - xywh {354 160 380 340} type Double visible - } { - Fl_Box {} { - image {icons/core.xpm} xywh {10 10 70 75} labelsize 14 - } - Fl_Box {} { - label {Program foo just crashed !!! - -You can inspect details about this crash by clicking on 'Show details' below} - xywh {85 10 285 75} align 148 - } - Fl_Button {} { - label {&Close} - xywh {280 95 90 25} - } - Fl_Button {} { - label {@< Hide details} - xywh {10 95 265 25} box FLAT_BOX align 20 - } - Fl_Text_Display {} { - xywh {10 130 360 165} labelsize 14 textsize 14 - } - Fl_Button {} { - label {&Save As...} - xywh {280 305 90 25} - } - Fl_Button {} { - label {&Copy} - xywh {185 305 90 25} - } - } -} diff --git a/evoke/fl/logout.fl b/evoke/fl/logout.fl deleted file mode 100644 index 7c74ae6..0000000 --- a/evoke/fl/logout.fl +++ /dev/null @@ -1,30 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0108 -header_name {.h} -code_name {.cxx} -Function {} {open -} { - Fl_Window {} {open - xywh {479 284 335 180} type Double visible - } { - Fl_Box {} { - label {How do you want to quit?} - xywh {10 9 315 25} labelfont 1 align 212 - } - Fl_Choice {} {open - xywh {10 45 315 25} down_box BORDER_BOX labelsize 14 textsize 14 - } {} - Fl_Box {} { - label {This option will close all programs and logs out from the current session} - xywh {10 80 315 55} align 213 - } - Fl_Button {} { - label {&OK} selected - xywh {140 145 90 25} - } - Fl_Button {} { - label {&Cancel} - xywh {235 145 90 25} - } - } -} diff --git a/evoke/icons/core.xpm b/evoke/icons/core.xpm deleted file mode 100644 index da539ee..0000000 --- a/evoke/icons/core.xpm +++ /dev/null @@ -1,416 +0,0 @@ -/* XPM */ -static char * core_xpm[] = { -"48 48 365 2", -" c None", -". c #FAE601", -"+ c #FCF001", -"@ c #FEF800", -"# c #F9E202", -"$ c #F2BE04", -"% c #F2BD04", -"& c #F5CC03", -"* c #FBE901", -"= c #FBEC01", -"- c #EB9A06", -"; c #EEAA05", -"> c #FEFC00", -", c #F7D506", -"' c #E78808", -") c #E88D06", -"! c #D1B46D", -"~ c #C7AF75", -"{ c #C2994A", -"] c #F1BB04", -"^ c #F5CF03", -"/ c #FCEE01", -"( c #EDD426", -"_ c #DCBC76", -": c #E3C06E", -"< c #CCAB4F", -"[ c #E7C16F", -"} c #ECC36B", -"| c #CCB34C", -"1 c #FCFB04", -"2 c #D1C652", -"3 c #D0B76B", -"4 c #DDBA6C", -"5 c #DAB96E", -"6 c #CFBB40", -"7 c #A7A7A7", -"8 c #A8A8A8", -"9 c #A9A9A9", -"0 c #A4A4A4", -"a c #9F9F9F", -"b c #999999", -"c c #919191", -"d c #A5B4BE", -"e c #E7E7E1", -"f c #C3C2C7", -"g c #B3AB9B", -"h c #B5A679", -"i c #C5AF6A", -"j c #D6B86A", -"k c #CDB16B", -"l c #C9B05B", -"m c #B7A27C", -"n c #EBDC19", -"o c #AFAFAF", -"p c #B8B8B8", -"q c #BBBBBB", -"r c #BCBCBC", -"s c #BABABA", -"t c #B4B4B4", -"u c #888888", -"v c #7B7B7B", -"w c #102032", -"x c #808285", -"y c #FBF5F2", -"z c #D9D0BF", -"A c #C6AD71", -"B c #DFBB69", -"C c #D9B86B", -"D c #C0AC7C", -"E c #BBA785", -"F c #AAAAAA", -"G c #ADADAD", -"H c #D6D6D6", -"I c #EBEBEB", -"J c #FCFCFC", -"K c #FEFEFE", -"L c #FFFFFF", -"M c #FBFBFB", -"N c #F5F5F5", -"O c #E7E7E7", -"P c #D2D2D2", -"Q c #868686", -"R c #636363", -"S c #616161", -"T c #6E6E6E", -"U c #3E3E3D", -"V c #3B3A3A", -"W c #161311", -"X c #65605D", -"Y c #C3BCB7", -"Z c #D8CFB0", -"` c #D1B873", -" . c #DFBD6A", -".. c #C8B37E", -"+. c #AAAEBF", -"@. c #FFFD00", -"#. c #B1B1B1", -"$. c #CACACA", -"%. c #E9E9E9", -"&. c #F0F0F0", -"*. c #E5E5E5", -"=. c #E3E3E3", -"-. c #E1E1E1", -";. c #DFDFDF", -">. c #898989", -",. c #3C3C3C", -"'. c #393939", -"). c #262626", -"!. c #1D1D1E", -"~. c #0F0F0F", -"{. c #5A5857", -"]. c #5A5955", -"^. c #4D4D45", -"/. c #918E7A", -"(. c #D3CBA7", -"_. c #E5DCB3", -":. c #E0DECD", -"<. c #AEAEAE", -"[. c #D3D3D3", -"}. c #FAFAFA", -"|. c #FDFDFD", -"1. c #EFEFEF", -"2. c #EAEAEA", -"3. c #DDDDDD", -"4. c #D7D7D7", -"5. c #D0D0D0", -"6. c #C9C9C9", -"7. c #C1C1C1", -"8. c #BDBDBD", -"9. c #7D7D7D", -"0. c #333333", -"a. c #131313", -"b. c #4F4F4F", -"c. c #484848", -"d. c #5F5F60", -"e. c #393C3A", -"f. c #080C09", -"g. c #1F1F1B", -"h. c #817F74", -"i. c #D8D6C6", -"j. c #F2F2E8", -"k. c #DFE7F0", -"l. c #F9F9F9", -"m. c #F3F3F3", -"n. c #EDEDED", -"o. c #E8E8E8", -"p. c #E4E4E4", -"q. c #DEDEDE", -"r. c #CCCCCC", -"s. c #C3C3C3", -"t. c #B9B9B9", -"u. c #ABABAB", -"v. c #A1A1A1", -"w. c #151515", -"x. c #4B4B4B", -"y. c #6B6B6B", -"z. c #3F3F3F", -"A. c #1B1B1B", -"B. c #121211", -"C. c #050604", -"D. c #000000", -"E. c #0C0707", -"F. c #433F37", -"G. c #7E7F79", -"H. c #F7F7F7", -"I. c #ECECEC", -"J. c #E2E2E2", -"K. c #DCDCDC", -"L. c #B0B0B0", -"M. c #A5A5A5", -"N. c #979797", -"O. c #969696", -"P. c #434343", -"Q. c #191919", -"R. c #010101", -"S. c #060001", -"T. c #0C0203", -"U. c #050002", -"V. c #0B0D14", -"W. c #EEEEEE", -"X. c #DADADA", -"Y. c #C6C6C6", -"Z. c #BEBEBE", -"`. c #B6B6B6", -" + c #9C9C9C", -".+ c #909090", -"++ c #848484", -"@+ c #6C6C6C", -"#+ c #1A1A1A", -"$+ c #060606", -"%+ c #020101", -"&+ c #010403", -"*+ c #020405", -"=+ c #010202", -"-+ c #D8D8D8", -";+ c #CFCFCF", -">+ c #C2C2C2", -",+ c #A2A2A2", -"'+ c #878787", -")+ c #787878", -"!+ c #656565", -"~+ c #252525", -"{+ c #080C0D", -"]+ c #F4F4F4", -"^+ c #D9D9D9", -"/+ c #D4D4D4", -"(+ c #CECECE", -"_+ c #C5C5C5", -":+ c #BFBFBF", -"<+ c #B2B2B2", -"[+ c #A0A0A0", -"}+ c #989898", -"|+ c #8E8E8E", -"1+ c #737373", -"2+ c #6D6D6D", -"3+ c #585858", -"4+ c #202020", -"5+ c #070707", -"6+ c #4B4C4C", -"7+ c #767676", -"8+ c #D1D1D1", -"9+ c #A3A3A3", -"0+ c #9B9B9B", -"a+ c #949494", -"b+ c #8C8C8C", -"c+ c #838383", -"d+ c #797979", -"e+ c #6F6F6F", -"f+ c #676767", -"g+ c #4A4A4A", -"h+ c #030303", -"i+ c #181818", -"j+ c #040404", -"k+ c #565656", -"l+ c #D5D5D5", -"m+ c #C7C7C7", -"n+ c #C4C4C4", -"o+ c #ACACAC", -"p+ c #9E9E9E", -"q+ c #7E7E7E", -"r+ c #666666", -"s+ c #606060", -"t+ c #575757", -"u+ c #353535", -"v+ c #383738", -"w+ c #777677", -"x+ c #494949", -"y+ c #CBCBCB", -"z+ c #B5B5B5", -"A+ c #9A9A9A", -"B+ c #939393", -"C+ c #8B8B8B", -"D+ c #7C7C7C", -"E+ c #5E5E5E", -"F+ c #595959", -"G+ c #424242", -"H+ c #171717", -"I+ c #0C0C0C", -"J+ c #5D5D5D", -"K+ c #2F2F2F", -"L+ c #8F8F8F", -"M+ c #8A8A8A", -"N+ c #858585", -"O+ c #7F7F7F", -"P+ c #757575", -"Q+ c #686868", -"R+ c #5B5B5B", -"S+ c #4D4D4D", -"T+ c #6F6D6E", -"U+ c #3B3B3B", -"V+ c #9D9D9D", -"W+ c #959595", -"X+ c #8D8D8D", -"Y+ c #828282", -"Z+ c #6A6A6A", -"`+ c #646464", -" @ c #555555", -".@ c #2E2E2E", -"+@ c #0B0B0B", -"@@ c #020202", -"#@ c #222222", -"$@ c #1D1D1D", -"%@ c #080808", -"&@ c #808080", -"*@ c #7A7A7A", -"=@ c #707070", -"-@ c #5F5F5F", -";@ c #545454", -">@ c #525252", -",@ c #2B2B2B", -"'@ c #0D0D0D", -")@ c #050505", -"!@ c #111111", -"~@ c #5A5A5A", -"{@ c #929292", -"]@ c #717171", -"^@ c #515151", -"/@ c #3D3D3D", -"(@ c #272727", -"_@ c #323232", -":@ c #6D6C6C", -"<@ c #1C1C1C", -"[@ c #535353", -"}@ c #414141", -"|@ c #0A0A0A", -"1@ c #646363", -"2@ c #161616", -"3@ c #696969", -"4@ c #313131", -"5@ c #1F1F1F", -"6@ c #0E0E0E", -"7@ c #090909", -"8@ c #121212", -"9@ c #444444", -"0@ c #464646", -"a@ c #282828", -"b@ c #5C5C5C", -"c@ c #141414", -"d@ c #212121", -"e@ c #101010", -"f@ c #616061", -"g@ c #626262", -"h@ c #232323", -"i@ c #373737", -"j@ c #5B5959", -"k@ c #1E1E1E", -"l@ c #2C2C2C", -"m@ c #505050", -"n@ c #494646", -"o@ c #303030", -"p@ c #626162", -"q@ c #292929", -"r@ c #2A2A2A", -"s@ c #616060", -"t@ c #2D2D2D", -"u@ c #575656", -"v@ c #363636", -"w@ c #3E3E3E", -"x@ c #5F5E5E", -"y@ c #3A3A3A", -"z@ c #242424", -"A@ c #343434", -"B@ c #383838", -"C@ c #474747", -"D@ c #4F4D4D", -"E@ c #737272", -"F@ c #404040", -"G@ c #5B5A5A", -"H@ c #696869", -"I@ c #4E4E4E", -"J@ c #3D3C3C", -"K@ c #5D5B5C", -"L@ c #6A696A", -"M@ c #454545", -"N@ c #5B595A", -"O@ c #6A6969", -"P@ c #515050", -"Q@ c #595859", -"R@ c #656464", -"S@ c #413F3F", -"T@ c #747373", -"U@ c #5F5E5F", -"V@ c #605F5F", -"W@ c #595858", -"X@ c #545252", -" . + ", -" @ # $ % & * ", -" = - ; $ ", -" > , ' ) ", -" > ! ~ { ] ^ ", -" / ( _ : < . ", -" [ } | ", -" 1 2 3 4 5 6 ", -" 7 8 9 0 a b c d e f g h i j k l m n ", -" 8 o p q r s t 8 b u v w x y z A B C D E ", -" F G s H I J K L M N O P t Q R S T U V W X Y Z ` ...+. @. ", -" 7 #.$.%.L L L M N &.%.*.=.-.;.$.>.,.'.).!.~.{.].^./.(._.:. ", -" <.[.}.L L |.N 1.2.=.3.4.5.6.7.8.7.s 9.0.a.b.c.d.e.f.g.h.i.j.k. ", -" #.I L L l.m.n.I o.p.q.4.[.r.s.t.u.v.G u w.x.y.z.A.B.C.D.E.F.G. ", -" #.m.L H.1.I.I.o.*.J.K.H 5.6.7.t.L.M.N.O.u P.S P.Q.R.D.S.T.U.D.V. ", -" 8 W.L &.%.o.O *.J.3.X.[.r.Y.Z.`.G 0 +.+Q ++@+0.#+$+D.R.%+&+*+=+ ", -" c q.L I.-.=.-.;.3.-+[.;+$.>+r t u.,+b c '+9.)+!+~+R.D.R.R.D.D.{+ ", -" )+L.]+o.^+X.^+H /+P (+6._+:+t.<+8 [+}+|+++v 1+2+3+4+D.D.D.D.D.5+6+ ", -" 7+8+%.4.8+8+5.(+$.Y.s.Z.p <+u.9+0+a+b+c+d+e+f+R g+w.D.D.D.h+i+j+k+ ", -" y.>.l+H 6.m+m+n+7.Z.q `.L.o+M.p+O..+u q+7+e+r+s+t+u+5+D.D.D.D.D.D.v+w+ ", -" x+a+y+_+q r q p z+<+<.9 0 a A+B+C+c+D+1+2+!+E+F+G+H+R.D.D.D.D.D.D.I+r+ ", -" J+K+L+Z.z+<.o G F 7 M.[+ +N.c M+N+O+P+e+Q+S R+F+S+~+h+D.D.D.D.D.D.D.D.c.T+ ", -" U+i+2+t 9 a [+V+A+}+W+c X+>.Y+v )+1+Z+`+J+t+ @x..@+@@@h+@@@@D.D.D.D.D.#@P+ ", -" $@%@U+O.0 B+X+|+b+M+'+c+&@*@P+=@@+`+-@F+;@>@c.,@'@j+j+j+j+j+@@D.D.D.D.)@t+ ", -"@++@D.!@~@{@.+&@O+O+v d+7+]@@+Q+!+s+3+ @^@g+/@(@'@)@$+$+j+j+$+$+h+R.D.D.D._@:@ ", -"J+@@D.D.<@~@D+D+7+1+=@T y.r+S -@R+3+[@x.}@K+#+|@)@$+$+$+)@$+5+%@%@h+D.D.D.$@1@ ", -"3+@@D.D.D.2@G+s+3@Q+r+`+S J+F+[@S+g+}@4@5@6@)@$+)@5+5+5+5+%@7@|@+@5+@@D.D.8@E+ ", -";@@@D.D.D.D.|@~+U+9@c.g+g+0@P.U+4@a@$@~.5+$+5+5+5+%@%@7@7@|@+@I+'@'@$+D.D.'@b@ ", -"b.@@D.D.D.D.R.@@+@c@$@d@#@5@<@H+!@7@$+5+5+5+%@|@+@+@7@+@I+'@6@6@e@a.6@h+D.I+~@ ", -"-@)@D.D.D.D.h+h+@@h+j+)@j+$+$+5+$+$+$+5+5+5+7@+@I+I+I+'@~.e@8@a.a.2@2@5+D.e@E+ ", -"-@+@D.D.D.D.h+@@h+j+j+)@)@$+$+5+%@%@%@%@7@|@|@+@'@'@6@~.!@!@a.w.w.2@<@7@D.a.f@ ", -"g@!@D.D.D.D.h+j+$+$+$+$+$+5+5+%@7@7@7@|@+@I+I+'@~.~.e@!@a.c@2@i+Q.#+h@I+D.#@!+ ", -" 5@@@D.D.D.$+$+$+$+5+5+5+%@7@7@|@|@|@+@I+'@e@8@8@c@2@2@H+#+A.<@$@4+a@~.D.i@j@ ", -" P.h+D.D.D.5+%@5+%@|@|@+@|@I+I+'@6@~.~.~.e@8@8@c@H+i+Q.#+<@k@4+d@).l@a.@@m@n@ ", -" Q+I+D.D.D.$+%@7@|@|@+@I+I+'@'@~.e@e@e@e@8@c@2@H+Q.A.$@k@4+h@~+).l@o@c@6@p@ ", -" ++q@@@D.D.%@|@+@I+I++@I+6@e@!@!@8@c@c@c@w.i+A.A.$@5@#@h@~+a@r@l@u+4@a._@s@ ", -" k+5+D.D.%@I+~.6@6@6@~.8@8@a.c@w.H+i+H+Q.<@5@5@d@h@).a@l@t@o@0.,.t@6@u@ ", -" =@).D.D.)@+@8@!@!@a.c@c@w.2@H+i+#+A.<@k@4+#@h@).q@,@.@_@0.v@z.w@<@4@x@ ", -" 3+6@D.R.$+8@2@w.2@H+i+Q.#+#+A.$@5@d@h@~+).a@,@.@o@0.v@y@P.x+K+2@x@ ", -" 9@j+D.@@6@Q.A.Q.Q.A.k@5@k@4+#@h@z@(@r@l@K+_@A@v@B@U+C@S+U+w.x.D@ ", -" E@i@R.D.)@8@k@#@d@5@d@h@z@~+(@q@a@l@K+4@A@B@'.,.P.x.b./@Q.F@G@ ", -" H@4@D.D.$+c@h@r@r@q@(@(@q@,@.@K+_@A@v@y@w@P.g+^@I@B@<@J@K@ ", -" L@0.)@D.)@8@#@o@0.0._@_@_@A@v@i@y@F@M@g+m@^@M@l@k@P.N@ ", -" O@z.6@D.@@|@A.r@i@w@/@w@F@}@P.0@x+x.x.P..@4+).P@Q@ ", -" F+(@+@j+j++@c@#@t@'.}@9@0@G+'..@#@H+z@^@R@S@ ", -" R@k+0.|@5+j+)@@@R.D.D.R.R.j+c@u+F+T@ ", -" U@s@;@,.z@|@'@)@5+i+d@,.E@ ", -" E+V@W@R+W@X@ "}; diff --git a/evoke/icons/warning.xpm b/evoke/icons/warning.xpm deleted file mode 100644 index 447467b..0000000 --- a/evoke/icons/warning.xpm +++ /dev/null @@ -1,319 +0,0 @@ -/* XPM */ -static char * warning_xpm[] = { -"32 32 284 2", -" c None", -". c #D04D00", -"+ c #D24E00", -"@ c #C64900", -"# c #E37B00", -"$ c #D14E00", -"% c #D55600", -"& c #FCBF00", -"* c #EE9A00", -"= c #FFC700", -"- c #DA6500", -"; c #FFD32E", -"> c #FFFDCB", -", c #CB4C00", -"' c #F4AA02", -") c #FFF3AB", -"! c #FFFFE1", -"~ c #B44300", -"{ c #E37C00", -"] c #FFDE58", -"^ c #FFFFE0", -"/ c #FFFFDF", -"( c #FFDE56", -"_ c #F9BF0D", -": c #FFF9C3", -"< c #C6C6B8", -"[ c #969696", -"} c #FFF8C1", -"| c #BD4600", -"1 c #E99002", -"2 c #FFEA7C", -"3 c #EDEDD4", -"4 c #979797", -"5 c #989898", -"6 c #949494", -"7 c #D9D9C6", -"8 c #FFEA7A", -"9 c #E98F01", -"0 c #D85F00", -"a c #FFDA26", -"b c #FFFCCD", -"c c #E5E5C8", -"d c #C9C9B6", -"e c #FFFCCB", -"f c #FFD924", -"g c #C94B00", -"h c #F1AB01", -"i c #FFF292", -"j c #FFFFD3", -"k c #EBEBC7", -"l c #959595", -"m c #929292", -"n c #DCDCBC", -"o c #FFFFD1", -"p c #FFF28C", -"q c #DD7100", -"r c #FFE43F", -"s c #FFFEC5", -"t c #FFFFCB", -"u c #FFFFCC", -"v c #989894", -"w c #919191", -"x c #909090", -"y c #8E8E8E", -"z c #F8F8C6", -"A c #FFFFC7", -"B c #FFFEBF", -"C c #FFE236", -"D c #F9CC0A", -"E c #FFF99D", -"F c #FFFFC4", -"G c #FFFFC3", -"H c #B7B7A1", -"I c #8B8B8B", -"J c #8A8A8A", -"K c #9E9E93", -"L c #FFFFC1", -"M c #FFFFBE", -"N c #FFFFBC", -"O c #FFF892", -"P c #F9CB06", -"Q c #B84500", -"R c #E68D00", -"S c #FFEC51", -"T c #FFFFBA", -"U c #FFFFB9", -"V c #FFFFBB", -"W c #D1D1A6", -"X c #838383", -"Y c #B8B898", -"Z c #FFFFB6", -"` c #FFFFB3", -" . c #FFFFAF", -".. c #FFFFAB", -"+. c #FFEA43", -"@. c #D55700", -"#. c #FCDB13", -"$. c #FFFB97", -"%. c #FFFFAE", -"&. c #EEEEA8", -"*. c #7A7A7A", -"=. c #797979", -"-. c #DCDC9E", -";. c #FFFFA9", -">. c #FFFFA5", -",. c #FFFFA1", -"'. c #FFFF9E", -"). c #FFFB82", -"!. c #FCDA0C", -"~. c #EEAC00", -"{. c #FFF356", -"]. c #FFFFA4", -"^. c #FFFFA2", -"/. c #FFFFA3", -"(. c #8B8B79", -"_. c #6E6E6E", -":. c #FFFF9D", -"<. c #FFFF9B", -"[. c #FFFF98", -"}. c #FFFF93", -"|. c #FFFF8D", -"1. c #FFFF8B", -"2. c #FFF243", -"3. c #DA6B00", -"4. c #FFEB18", -"5. c #FFFE8A", -"6. c #FFFF92", -"7. c #FFFF94", -"8. c #A7A776", -"9. c #88886C", -"0. c #FFFF8A", -"a. c #FFFF87", -"b. c #FFFF82", -"c. c #FFFF7C", -"d. c #FFFF78", -"e. c #FFFD6D", -"f. c #FFEA0E", -"g. c #F4C400", -"h. c #FFF854", -"i. c #FFFF81", -"j. c #FFFF80", -"k. c #F4F47C", -"l. c #E9E978", -"m. c #FFFF7A", -"n. c #FFFF77", -"o. c #FFFF73", -"p. c #FFFF6F", -"q. c #FFFF6B", -"r. c #FFFF65", -"s. c #FFFF62", -"t. c #FFF73A", -"u. c #E38A00", -"v. c #FFF21E", -"w. c #FFFF69", -"x. c #FFFF6E", -"y. c #FFFF6C", -"z. c #FFFF66", -"A. c #FFFF5F", -"B. c #FFFF5C", -"C. c #FFFF57", -"D. c #FFFF53", -"E. c #FFFF4D", -"F. c #FFFF4A", -"G. c #FFF111", -"H. c #D55800", -"I. c #F9DD01", -"J. c #FFFC43", -"K. c #FFFF58", -"L. c #FFFF5B", -"M. c #B5B54D", -"N. c #46463C", -"O. c #373737", -"P. c #9A9A44", -"Q. c #FFFF50", -"R. c #FFFF4C", -"S. c #FFFF49", -"T. c #FFFF45", -"U. c #FFFF40", -"V. c #FFFF3D", -"W. c #FFFF3A", -"X. c #FFFB29", -"Y. c #F9DD00", -"Z. c #E9A100", -"`. c #FFF819", -" + c #FFFF41", -".+ c #FFFF43", -"++ c #FFFF48", -"@+ c #FFFF47", -"#+ c #FFFF46", -"$+ c #3C3C31", -"%+ c #2E2E2E", -"&+ c #2C2C2C", -"*+ c #292929", -"=+ c #E4E43A", -"-+ c #FFFF39", -";+ c #FFFF37", -">+ c #FFFF33", -",+ c #FFFF30", -"'+ c #FFFF2C", -")+ c #FFFF29", -"!+ c #FFFF27", -"~+ c #FFF70D", -"{+ c #D86300", -"]+ c #FCED05", -"^+ c #FFFE25", -"/+ c #FFFF2D", -"(+ c #FFFF32", -"_+ c #FFFF31", -":+ c #323225", -"<+ c #232323", -"[+ c #202020", -"}+ c #1E1E1E", -"|+ c #E3E326", -"1+ c #FFFF25", -"2+ c #FFFF22", -"3+ c #FFFF20", -"4+ c #FFFF1E", -"5+ c #FFFF1B", -"6+ c #FFFF19", -"7+ c #FFFF17", -"8+ c #FFFE13", -"9+ c #FCED02", -"0+ c #C54900", -"a+ c #F1C500", -"b+ c #FFFB0E", -"c+ c #FFFF1A", -"d+ c #FFFF1D", -"e+ c #FFFF1F", -"f+ c #A9A91C", -"g+ c #191919", -"h+ c #181818", -"i+ c #6E6E16", -"j+ c #FFFF14", -"k+ c #FFFF13", -"l+ c #FFFF11", -"m+ c #FFFF0F", -"n+ c #FFFF0D", -"o+ c #FFFF0B", -"p+ c #FFFF0A", -"q+ c #FFFF08", -"r+ c #FFFB04", -"s+ c #DD7A00", -"t+ c #FFFE00", -"u+ c #FFFE0F", -"v+ c #FFFF15", -"w+ c #FFFF16", -"x+ c #FFFF12", -"y+ c #FFFF10", -"z+ c #FFFF0E", -"A+ c #FFFF0C", -"B+ c #FFFF09", -"C+ c #FFFF07", -"D+ c #FFFF06", -"E+ c #FFFF05", -"F+ c #FFFE02", -"G+ c #E08500", -"H+ c #F4D300", -"I+ c #F5D50C", -"J+ c #F5D50D", -"K+ c #F5D50E", -"L+ c #F5D60F", -"M+ c #F5D610", -"N+ c #F4D50B", -"O+ c #F4D509", -"P+ c #F4D408", -"Q+ c #F4D407", -"R+ c #F4D406", -"S+ c #F4D405", -"T+ c #F4D404", -"U+ c #F4D403", -"V+ c #F4D302", -"W+ c #F4D301", -"X+ c #CA4B00", -"Y+ c #D35104", -"Z+ c #D35307", -"`+ c #D35408", -" @ c #D45409", -".@ c #D4550A", -"+@ c #D35206", -"@@ c #D35105", -"#@ c #D35003", -"$@ c #D24F02", -"%@ c #D24F01", -"&@ c #B14200", -" ", -" ", -" . + + @ ", -" + # # + ", -" $ % & & % @ ", -" + * = = * + ", -" $ - ; > > ; - , ", -" . + ' ) ! ! ) ' + ~ ", -" $ { ] ^ / / / ( { . ", -" . % _ : < [ [ < } _ % | ", -" + 1 2 3 [ 4 5 6 7 8 9 + ", -" $ 0 a b c [ [ [ 6 d e f 0 g ", -" + h i j k l l 6 m n o p h + ", -" + q r s t u v w x y z A B C q . ", -" . + D E F G F H I J K L M N O P + Q ", -" + R S T U T V W X X Y Z ` ...+.R + ", -" $ @.#.$. .%. . .&.*.=.-.;.>.,.'.).!.@.@ ", -" + ~.{.].,.,.^./.,.(._.:.<.[.}.|.1.2.~.+ ", -" $ 3.4.5.6.6.7.7.7.6.8.9.|.0.a.b.c.d.e.f.3., ", -" . + g.h.i.j.i.b.b.i.i.k.l.m.n.o.p.q.r.s.t.g.+ ~ ", -" $ u.v.w.q.x.x.p.x.x.y.q.w.z.s.A.B.C.D.E.F.G.u.. ", -" . H.I.J.C.K.L.B.B.L.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.H.| ", -" + Z.`. +.+T.++++++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+Z.+ ", -" $ {+]+^+/+,+(+(+(+(+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+{+0+ ", -" + a+b+c+5+d+e+e+3+3+e+e+f+g+h+i+7+j+k+l+m+n+o+p+q+r+a++ ", -"$ s+t+u+k+j+v+w+7+w+7+v+v+j+k+x+y+m+z+A+A+B+q+C+D+E+F+t+s+, ", -"+ G+H+I+J+K+L+L+M+M+M+L+L+K+J+J+N+O+O+P+Q+R+S+T+U+V+W+H+G++ ", -"X++ + Y+Z+`+`+ @.@.@ @ @ @`+`+Z++@@@+@@@Y+Y+#@$@%@%@%@+ + &@ ", -" ", -" ", -" ", -" "}; diff --git a/evoke/test/evoke_test.cpp b/evoke/test/evoke_test.cpp deleted file mode 100644 index a365064..0000000 --- a/evoke/test/evoke_test.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include -#include -#include -#include - -#include - -Fl_Input* inp; -Fl_Double_Window* win; - -void run_cb(Fl_Widget*, void*) { - Atom _XA_EDE_EVOKE_SPAWN = XInternAtom(fl_display, "_EDE_EVOKE_SPAWN", False); - // max size - unsigned char txt_send[8192]; - int i; - const char* txt_val = inp->value() ? inp->value() : "(none)"; - int len = strlen(txt_val); - - for(i = 0; i < 8192-2 && i < len; i++) - txt_send[i] = txt_val[i]; - - txt_send[i] = '\0'; - - // send text - XChangeProperty(fl_display, RootWindow(fl_display, fl_screen), - _XA_EDE_EVOKE_SPAWN, XA_STRING, 8, PropModeReplace, - txt_send, i + 1); -} - -void evoke_quit_cb(Fl_Widget*, void*) { - Atom _XA_EDE_EVOKE_QUIT = XInternAtom(fl_display, "_EDE_EVOKE_QUIT", False); - - int dummy = 1; - XChangeProperty(fl_display, RootWindow(fl_display, fl_screen), - _XA_EDE_EVOKE_QUIT, XA_CARDINAL, 32, PropModeReplace, - (unsigned char*)&dummy, sizeof(int)); -} - -void quit_all_cb(Fl_Widget*, void*) { - Atom _XA_EDE_EVOKE_SHUTDOWN_ALL = XInternAtom(fl_display, "_EDE_EVOKE_SHUTDOWN_ALL", False); - - int dummy = 1; - XChangeProperty(fl_display, RootWindow(fl_display, fl_screen), - _XA_EDE_EVOKE_SHUTDOWN_ALL, XA_CARDINAL, 32, PropModeReplace, - (unsigned char*)&dummy, sizeof(int)); -} - -int main(int argc, char **argv) { - win = new Fl_Double_Window(355, 94, "Evoke test"); - win->begin(); - inp = new Fl_Input(10, 25, 335, 25, "Program to run:"); - inp->align(FL_ALIGN_TOP_LEFT); - Fl_Button* b1 = new Fl_Button(255, 60, 90, 25, "&Run"); - b1->callback(run_cb); - Fl_Button* b2 = new Fl_Button(150, 60, 90, 25, "&Quit evoke"); - b2->callback(evoke_quit_cb); - Fl_Button* b3 = new Fl_Button(55, 60, 90, 25, "&Quit all"); - b3->callback(quit_all_cb); - win->end(); - win->show(argc, argv); - return Fl::run(); -} diff --git a/evoke/test/evoke_test.fl b/evoke/test/evoke_test.fl deleted file mode 100644 index 4f2d3bc..0000000 --- a/evoke/test/evoke_test.fl +++ /dev/null @@ -1,28 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0108 -header_name {.h} -code_name {.cxx} -Function {} {open -} { - Fl_Window {} { - label {Evoke test} open - xywh {493 478 355 94} type Double visible - } { - Fl_Input {} { - label {Program to run:} selected - xywh {10 25 335 25} labelsize 14 align 5 textsize 14 - } - Fl_Button {} { - label {&Run} - xywh {255 60 90 25} labelsize 14 - } - Fl_Button {} { - label {&Quit evoke} - xywh {150 60 90 25} labelsize 14 - } - Fl_Button {} { - label {&Quit all} - xywh {55 60 90 25} labelsize 14 - } - } -} diff --git a/evoke/test/opacity_test.cpp b/evoke/test/opacity_test.cpp deleted file mode 100644 index 7311164..0000000 --- a/evoke/test/opacity_test.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include -#include -#include - -#include - -Fl_Window* win; -Fl_Value_Slider* slider; -Atom opacity_atom; - -void slider_cb(Fl_Widget*, void*) { - printf("callback %i\n", (int)slider->value()); - //int v = (int)slider->value(); - //unsigned int v = (unsigned int)0xe0000000; - unsigned int v = (unsigned int)4; - XChangeProperty(fl_display, fl_xid(win), opacity_atom, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)&v, 1); - XFlush(fl_display); -} - -int main(void) { - fl_open_display(); - - opacity_atom = XInternAtom(fl_display, "_NET_WM_WINDOW_OPACITY", False); - - win = new Fl_Window(240, 175, "Opacity test"); - win->begin(); - Fl_Box* sbox = new Fl_Box(10, 9, 220, 102, "sample text"); - sbox->box(FL_ENGRAVED_BOX); - sbox->color((Fl_Color)186); - sbox->labelcolor((Fl_Color)23); - - slider = new Fl_Value_Slider(10, 142, 220, 18, "Opacity percent:"); - slider->type(1); - slider->step(1); - slider->maximum(100); - slider->minimum(1); - slider->value(100); - slider->callback(slider_cb); - slider->align(FL_ALIGN_TOP_LEFT); - win->end(); - win->show(); - slider_cb(0,0); - return Fl::run(); -} diff --git a/evoke/test/stress_test.cpp b/evoke/test/stress_test.cpp deleted file mode 100644 index b641f22..0000000 --- a/evoke/test/stress_test.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#define CMDS_NUM 11 - -const char* cmds[] = { - "fluid", - "/this/command/does/not/exists", - "ls", - "ls -la", - "/home/sanel/abc", - "/home/sanel/readme.txt", - "mozilla", - "firefox", - "xedit", - "/usr/bin/xedit", - "gvim" -}; - -void run_cmd(const char* cmd, Atom _XA_EDE_EVOKE_SPAWN) { - // max size - unsigned char txt_send[8192]; - int i; - int len = strlen(cmd); - - for(i = 0; i < 8192-2 && i < len; i++) - txt_send[i] = cmd[i]; - - txt_send[i] = '\0'; - - // send text - if(XChangeProperty(fl_display, RootWindow(fl_display, fl_screen), - _XA_EDE_EVOKE_SPAWN, XA_STRING, 8, PropModeReplace, - txt_send, i + 1) == Success) { - puts("Success"); - } else { - puts("Fail"); - } -} - -int main(int argc, char **argv) { - fl_open_display(); - srand(time(0)); - - Atom _XA_EDE_EVOKE_SPAWN = XInternAtom(fl_display, "_EDE_EVOKE_SPAWN", False); - - for(int i = 0, j = 0; i < 5; i++) { - j = rand() % CMDS_NUM; - - printf("%i (%s)\n", i, cmds[j]); - sleep(1); - run_cmd(cmds[j], _XA_EDE_EVOKE_SPAWN); - - XFlush(fl_display); - } - - return 0; -}