kdecore Library API Documentation

netwm_p.h

00001 /*
00002 
00003   Copyright (c) 2000 Troll Tech AS
00004 
00005   Permission is hereby granted, free of charge, to any person obtaining a
00006   copy of this software and associated documentation files (the "Software"),
00007   to deal in the Software without restriction, including without limitation
00008   the rights to use, copy, modify, merge, publish, distribute, sublicense,
00009   and/or sell copies of the Software, and to permit persons to whom the
00010   Software is furnished to do so, subject to the following conditions:
00011 
00012   The above copyright notice and this permission notice shall be included in
00013   all copies or substantial portions of the Software.
00014 
00015   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00016   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00017   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00018   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00019   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00020   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00021   DEALINGS IN THE SOFTWARE.
00022 
00023 */
00024 
00025 
00026 #ifndef   __net_wm_p_h
00027 #define   __net_wm_p_h
00028 
00038 template <class Z> class RArray {
00039 public:
00044     RArray();
00045 
00050     ~RArray();
00051 
00057     Z &operator[](int);
00058 
00063     int size() const { return sz; }
00064 
00065 private:
00066     int sz;
00067     Z *d;
00068 };
00069 
00070 
00076 struct NETRootInfoPrivate {
00077     // information about the X server
00078     Display *display;
00079     NETSize rootSize;
00080     Window root;
00081     Window supportwindow;
00082     const char *name;
00083     int screen;
00084 
00085     // data that changes (either by the window manager or by a client)
00086     // and requires updates
00087     RArray<NETPoint> viewport;
00088     RArray<NETRect> workarea;
00089     NETSize geometry;
00090     Window active;
00091     Window *clients, *stacking, *virtual_roots, *kde_system_tray_windows;
00092     RArray<const char *> desktop_names;
00093     int number_of_desktops;
00094     int current_desktop;
00095 
00096     unsigned long clients_count, stacking_count, virtual_roots_count,
00097     kde_system_tray_windows_count;
00098 
00099     // the list of supported protocols shouldn't change, but NET clients will
00100     // need to read this property to know what is supported...
00101     unsigned long protocols;
00102 
00103     int ref;
00104 };
00105 
00106 
00112 struct NETWinInfoPrivate {
00113     Display *display;
00114     Window window, root;
00115     NET::MappingState mapping_state;
00116     Bool mapping_state_dirty;
00117 
00118     RArray<NETIcon> icons;
00119     int icon_count;
00120 
00121     NETRect icon_geom, win_geom;
00122     unsigned long state;
00123     NETStrut strut, frame_strut;
00124     NET::WindowType type;
00125     char *name, *visible_name, *icon_name, *visible_icon_name;
00126     int desktop;
00127     int pid;
00128     int handled_icons;
00129     Window kde_system_tray_win_for;
00130 
00131     unsigned long properties;
00132 
00133     int ref;
00134 };
00135 
00136 
00137 #endif // __net_wm_p_h
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.0.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Oct 8 12:20:43 2003 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001