kdecore Library API Documentation

netwm_def.h

00001 /* 00002 00003 Copyright (c) 2000 Troll Tech AS 00004 Copyright (c) 2003 Lubos Lunak <l.lunak@kde.org> 00005 00006 Permission is hereby granted, free of charge, to any person obtaining a 00007 copy of this software and associated documentation files (the "Software"), 00008 to deal in the Software without restriction, including without limitation 00009 the rights to use, copy, modify, merge, publish, distribute, sublicense, 00010 and/or sell copies of the Software, and to permit persons to whom the 00011 Software is furnished to do so, subject to the following conditions: 00012 00013 The above copyright notice and this permission notice shall be included in 00014 all copies or substantial portions of the Software. 00015 00016 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00017 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00018 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00019 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00020 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00021 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00022 DEALINGS IN THE SOFTWARE. 00023 00024 */ 00025 00026 #ifndef __netwm_def_h 00027 #define __netwm_def_h 00028 00029 #include <kdelibs_export.h> 00030 00044 struct NETPoint { 00048 NETPoint() : x(0), y(0) { } 00049 00050 /* 00051 Public data member. 00052 **/ 00053 int x, 00054 y; 00055 }; 00056 00057 00071 struct NETSize { 00075 NETSize() : width(0), height(0) { } 00076 00077 /* 00078 Public data member. 00079 **/ 00080 int width, 00081 height; 00082 }; 00083 00094 struct NETRect { 00100 NETPoint pos; 00101 00107 NETSize size; 00108 }; 00109 00110 00122 struct NETIcon { 00126 NETIcon() : data(0) { } 00127 00133 NETSize size; 00134 00140 unsigned char *data; 00141 }; 00142 00143 00153 struct NETExtendedStrut { 00157 NETExtendedStrut() : left_width(0), left_start(0), left_end(0), 00158 right_width(0), right_start(0), right_end(0), top_width(0), top_start(0), top_end(0), 00159 bottom_width(0), bottom_start(0), bottom_end(0) {} 00160 00164 int left_width, left_start, left_end; 00165 00169 int right_width, right_start, right_end; 00170 00174 int top_width, top_start, top_end; 00175 00179 int bottom_width, bottom_start, bottom_end; 00180 00181 }; 00182 00183 00195 struct NETStrut { 00199 NETStrut() : left(0), right(0), top(0), bottom(0) { } 00200 00204 int left; 00205 00209 int right; 00210 00214 int top; 00215 00219 int bottom; 00220 }; 00221 00222 00235 class KDECORE_EXPORT NET { 00236 public: 00247 enum Role { 00248 Client, 00249 WindowManager 00250 }; 00251 00282 enum WindowType { 00283 Unknown = -1, 00284 Normal = 0, 00285 Desktop = 1, 00286 Dock = 2, 00287 Toolbar = 3, 00288 Menu = 4, 00289 Dialog = 5, 00290 Override = 6, // NON STANDARD 00291 TopMenu = 7, // NON STANDARD 00292 Tool = Toolbar, // This will go away soon, COMPAT (How soon? :) 00293 Utility = 8, 00294 Splash = 9 00295 }; 00296 00302 enum WindowTypeMask { 00303 NormalMask = 1<<0, 00304 DesktopMask = 1<<1, 00305 DockMask = 1<<2, 00306 ToolbarMask = 1<<3, 00307 MenuMask = 1<<4, 00308 DialogMask = 1<<5, 00309 OverrideMask = 1<<6, 00310 TopMenuMask = 1<<7, 00311 UtilityMask = 1<<8, 00312 SplashMask = 1<<9 00313 }; 00314 00315 // KDE4 move to WindowTypeMask 00316 enum { AllTypesMask = 0LU-1 }; 00317 00322 static bool typeMatchesMask( WindowType type, unsigned long mask ); 00323 00365 enum State { 00366 Modal = 1<<0, 00367 Sticky = 1<<1, 00368 MaxVert = 1<<2, 00369 MaxHoriz = 1<<3, 00370 Max = MaxVert | MaxHoriz, 00371 Shaded = 1<<4, 00372 SkipTaskbar = 1<<5, 00373 KeepAbove = 1<<6, 00374 StaysOnTop = KeepAbove, // NOT STANDARD 00375 SkipPager = 1<<7, 00376 Hidden = 1<<8, 00377 FullScreen = 1<<9, 00378 KeepBelow = 1<<10, 00379 DemandsAttention = 1<<11 00380 }; 00381 00401 enum Direction { 00402 TopLeft = 0, 00403 Top = 1, 00404 TopRight = 2, 00405 Right = 3, 00406 BottomRight = 4, 00407 Bottom = 5, 00408 BottomLeft = 6, 00409 Left = 7, 00410 Move = 8, // movement only 00414 KeyboardSize = 9, // size via keyboard 00418 KeyboardMove = 10 // move via keyboard 00419 }; 00420 00435 // KDE4 aaarghl, this doesn't map correctly to Xlib #defines 00436 enum MappingState { 00437 Visible, // ie. NormalState 00438 Withdrawn, 00439 Iconic 00440 }; 00441 00446 enum Action { 00447 ActionMove = 1<<0, 00448 ActionResize = 1<<1, 00449 ActionMinimize = 1<<2, 00450 ActionShade = 1<<3, 00451 ActionStick = 1<<4, 00452 ActionMaxVert = 1<<5, 00453 ActionMaxHoriz = 1<<6, 00454 ActionMax = ActionMaxVert | ActionMaxHoriz, 00455 ActionFullScreen = 1<<7, 00456 ActionChangeDesktop = 1<<8, 00457 ActionClose = 1<<9 00458 }; 00459 00506 enum Property { 00507 // root 00508 Supported = 1<<0, 00509 ClientList = 1<<1, 00510 ClientListStacking = 1<<2, 00511 NumberOfDesktops = 1<<3, 00512 DesktopGeometry = 1<<4, 00513 DesktopViewport = 1<<5, 00514 CurrentDesktop = 1<<6, 00515 DesktopNames = 1<<7, 00516 ActiveWindow = 1<<8, 00517 WorkArea = 1<<9, 00518 SupportingWMCheck = 1<<10, 00519 VirtualRoots = 1<<11, 00520 KDESystemTrayWindows = 1<<12, // NOT STANDARD 00521 CloseWindow = 1<<13, 00522 WMMoveResize = 1<<14, 00523 00524 // window 00525 WMName = 1<<15, 00526 WMVisibleName = 1<<16, 00527 WMDesktop = 1<<17, 00528 WMWindowType = 1<<18, 00529 WMState = 1<<19, 00530 WMStrut = 1<<20, 00531 WMIconGeometry = 1<<21, 00532 WMIcon = 1<<22, 00533 WMPid = 1<<23, 00534 WMHandledIcons = 1<<24, 00535 WMPing = 1<<25, 00536 WMKDESystemTrayWinFor = 1<<26, // NOT STANDARD 00537 XAWMState = 1<<27, // NOT STANDARD 00538 WMKDEFrameStrut = 1<<28, // NOT STANDARD 00539 00540 // Need to be reordered 00541 WMIconName = 1<<29, 00542 WMVisibleIconName = 1<<30, 00543 WMGeometry = 1<<31 00544 }; 00545 00568 enum Property2 { 00569 WM2UserTime = 1<<0, 00570 WM2StartupId = 1<<1, 00571 WM2TransientFor = 1<<2, 00572 WM2GroupLeader = 1<<3, 00573 WM2AllowedActions = 1<<4, 00574 WM2RestackWindow = 1<<5, 00575 WM2MoveResizeWindow = 1<<6, 00576 WM2ExtendedStrut = 1<<7, 00577 WM2TakeActivity = 1<<8, 00578 WM2KDETemporaryRules = 1<<9, // NOT STANDARD 00579 WM2WindowClass = 1<<10, 00580 WM2WindowRole = 1<<11, 00581 WM2ClientMachine = 1<<12 00582 }; 00583 00589 enum { OnAllDesktops = -1 }; 00590 00597 // must match the values for data.l[0] field in _NET_ACTIVE_WINDOW message 00598 enum RequestSource { 00599 FromUnknown, // internal 00600 FromApplication, 00601 FromTool 00602 }; 00603 }; 00604 00605 00606 #endif // __netwm_def_h
KDE Logo
This file is part of the documentation for kdecore Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 22:47:44 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003