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, //NOT STANDARD
00283     SkipPager    = 1<<7,
00284     //Hidden       = 1<<8,
00285     FullScreen   = 1<<9
00286     };
00287 
00305     enum Direction {
00306     TopLeft      = 0,
00307     Top          = 1,
00308     TopRight     = 2,
00309     Right        = 3,
00310     BottomRight  = 4,
00311     Bottom       = 5,
00312     BottomLeft   = 6,
00313     Left         = 7,
00314     Move         = 8  // movement only
00315     };
00316 
00329     enum MappingState {
00330     Visible, // ie. NormalState
00331     Withdrawn,
00332     Iconic
00333     };
00334 
00379     enum Property {
00380     // root
00381     Supported             = 1<<0,
00382     ClientList            = 1<<1,
00383     ClientListStacking    = 1<<2,
00384     NumberOfDesktops      = 1<<3,
00385     DesktopGeometry       = 1<<4,
00386     DesktopViewport       = 1<<5,
00387     CurrentDesktop        = 1<<6,
00388     DesktopNames          = 1<<7,
00389     ActiveWindow          = 1<<8,
00390     WorkArea              = 1<<9,
00391     SupportingWMCheck     = 1<<10,
00392     VirtualRoots          = 1<<11,
00393     KDESystemTrayWindows  = 1<<12, // NOT STANDARD
00394     CloseWindow           = 1<<13,
00395     WMMoveResize          = 1<<14,
00396 
00397     // window
00398     WMName                = 1<<15,
00399     WMVisibleName         = 1<<16,
00400     WMDesktop             = 1<<17,
00401     WMWindowType          = 1<<18,
00402     WMState               = 1<<19,
00403     WMStrut               = 1<<20,
00404     WMIconGeometry        = 1<<21,
00405     WMIcon                = 1<<22,
00406     WMPid                 = 1<<23,
00407     WMHandledIcons        = 1<<24,
00408     WMPing                = 1<<25,
00409     WMKDESystemTrayWinFor = 1<<26, // NOT STANDARD
00410     XAWMState             = 1<<27, // NOT STANDARD
00411     WMKDEFrameStrut       = 1<<28, // NOT STANDARD
00412 
00413     // Need to be reordered
00414     WMIconName            = 1<<29,
00415     WMVisibleIconName     = 1<<30,
00416     WMGeometry        = 1<<31
00417     };
00418 };
00419 
00420 
00421 #endif // __netwm_def_h
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.4.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 27 22:14:48 2005 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001