mirror of
https://github.com/edeproject/ede.git
synced 2023-08-10 21:13:03 +03:00
d7db3f0d0f
A lot of things are pending for implementation like region translucency, shadows, fading... Per window translucency is in, but now working as expected.
61 lines
1.6 KiB
C++
61 lines
1.6 KiB
C++
/*
|
|
* $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 <X11/Xlib.h>
|
|
#include <X11/extensions/Xdamage.h> // XserverRegion already included in Xdamage.h
|
|
#include <edelib/List.h>
|
|
|
|
struct CWindow;
|
|
typedef edelib::list<CWindow*> CWindowList;
|
|
typedef edelib::list<CWindow*>::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);
|
|
void handle_xevents(const XEvent* xev);
|
|
|
|
void paint_all(XserverRegion region);
|
|
};
|
|
|
|
#endif
|