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.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