kdecore Library API Documentation

netwm_def.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 #ifndef   __netwm_def_h
00026 #define   __netwm_def_h
00027 
00028 
00042 struct NETPoint {
00046     NETPoint() : x(0), y(0) { }
00047 
00048     /*
00049        Public data member.
00050     **/
00051     int x, 
00052       y;   
00053 };
00054 
00055 
00069 struct NETSize {
00073     NETSize() : width(0), height(0) { }
00074 
00075     /*
00076        Public data member.
00077     **/
00078     int width,  
00079       height;   
00080 };
00081 
00092 struct NETRect {
00098     NETPoint pos;
00099 
00105     NETSize size;
00106 };
00107 
00108 
00120 struct NETIcon {
00124     NETIcon() : data(0) { }
00125 
00131     NETSize size;
00132 
00138     unsigned char *data;
00139 };
00140 
00141 
00150 struct NETStrut {
00154     NETStrut() : left(0), right(0), top(0), bottom(0) { }
00155 
00159     int left;
00160 
00164     int right;
00165 
00169     int top;
00170 
00174     int bottom;
00175 };
00176 
00177 
00190 class NET {
00191 public:
00202     enum Role {
00203         Client,
00204         WindowManager
00205     };
00206 
00237     enum WindowType {
00238         Unknown  = -1,
00239         Normal   = 0,
00240         Desktop  = 1,
00241         Dock     = 2,
00242         Toolbar  = 3,
00243         Menu     = 4,
00244         Dialog   = 5,
00245         Override = 6, // NON STANDARD
00246         TopMenu  = 7, // NON STANDARD
00247         Tool     = Toolbar // This will go away soon, COMPAT
00248     };
00249 
00274     enum State {
00275         Modal        = 1<<0,
00276         Sticky       = 1<<1,
00277         MaxVert      = 1<<2,
00278         MaxHoriz     = 1<<3,
00279         Max = MaxVert | MaxHoriz,
00280         Shaded       = 1<<4,
00281         SkipTaskbar  = 1<<5,
00282         StaysOnTop   = 1<<6,
00283         SkipPager    = 1<<7
00284     };
00285 
00303     enum Direction {
00304         TopLeft      = 0,
00305         Top          = 1,
00306         TopRight     = 2,
00307         Right        = 3,
00308         BottomRight  = 4,
00309         Bottom       = 5,
00310         BottomLeft   = 6,
00311         Left         = 7,
00312         Move         = 8  // movement only
00313     };
00314 
00327     enum MappingState {
00328         Visible, // ie. NormalState
00329         Withdrawn,
00330         Iconic
00331     };
00332 
00377     enum Property {
00378         // root
00379         Supported             = 1<<0,
00380         ClientList            = 1<<1,
00381         ClientListStacking    = 1<<2,
00382         NumberOfDesktops      = 1<<3,
00383         DesktopGeometry       = 1<<4,
00384         DesktopViewport       = 1<<5,
00385         CurrentDesktop        = 1<<6,
00386         DesktopNames          = 1<<7,
00387         ActiveWindow          = 1<<8,
00388         WorkArea              = 1<<9,
00389         SupportingWMCheck     = 1<<10,
00390         VirtualRoots          = 1<<11,
00391         KDESystemTrayWindows  = 1<<12, // NOT STANDARD
00392         CloseWindow           = 1<<13,
00393         WMMoveResize          = 1<<14,
00394 
00395         // window
00396         WMName                = 1<<15,
00397         WMVisibleName         = 1<<16,
00398         WMDesktop             = 1<<17,
00399         WMWindowType          = 1<<18,
00400         WMState               = 1<<19,
00401         WMStrut               = 1<<20,
00402         WMIconGeometry        = 1<<21,
00403         WMIcon                = 1<<22,
00404         WMPid                 = 1<<23,
00405         WMHandledIcons        = 1<<24,
00406         WMPing                = 1<<25,
00407         WMKDESystemTrayWinFor = 1<<26, // NOT STANDARD
00408         XAWMState             = 1<<27, // NOT STANDARD
00409         WMKDEFrameStrut       = 1<<28, // NOT STANDARD
00410 
00411         // Need to be reordered
00412         WMIconName            = 1<<29,
00413         WMVisibleIconName     = 1<<30,
00414         WMGeometry            = 1<<31
00415     };
00416 };
00417 
00418 
00419 #endif // __netwm_def_h
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 12:47:01 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001