kwin Library API Documentation

options.h

00001 /***************************************************************** 00002 KWin - the KDE window manager 00003 This file is part of the KDE project. 00004 00005 Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org> 00006 Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org> 00007 00008 You can Freely distribute this program under the GNU General Public 00009 License. See the file "COPYING" for the exact licensing terms. 00010 ******************************************************************/ 00011 00012 #ifndef KWIN_OPTIONS_H 00013 #define KWIN_OPTIONS_H 00014 00015 #include <qobject.h> 00016 #include <qfont.h> 00017 #include <qpalette.h> 00018 #include <qstringlist.h> 00019 #include <kdecoration_p.h> 00020 00021 namespace KWinInternal 00022 { 00023 00024 class Client; 00025 00026 class Options : public KDecorationOptions 00027 { 00028 public: 00029 00030 Options(); 00031 ~Options(); 00032 00033 virtual unsigned long updateSettings(); 00034 00066 enum FocusPolicy { ClickToFocus, FocusFollowsMouse, FocusUnderMouse, FocusStrictlyUnderMouse }; 00067 FocusPolicy focusPolicy; 00068 00069 00074 bool clickRaise; 00075 00079 bool autoRaise; 00080 00084 int autoRaiseInterval; 00085 00089 bool shadeHover; 00090 00094 int shadeHoverInterval; 00095 00113 enum AltTabStyle { KDE, CDE }; 00114 AltTabStyle altTabStyle; 00115 00119 bool xineramaEnabled; 00120 bool xineramaPlacementEnabled; 00121 bool xineramaMovementEnabled; 00122 bool xineramaMaximizeEnabled; 00123 00127 enum MoveResizeMode { Transparent, Opaque }; 00128 00129 MoveResizeMode resizeMode; 00130 MoveResizeMode moveMode; 00131 00138 enum PlacementPolicy { Random, Smart, Cascade, Centered, ZeroCornered }; 00139 PlacementPolicy placement; 00140 00141 bool focusPolicyIsReasonable() 00142 { 00143 return focusPolicy == ClickToFocus || focusPolicy == FocusFollowsMouse; 00144 } 00145 00149 bool animateShade; 00150 00154 int borderSnapZone; 00155 00159 int windowSnapZone; 00160 00161 00165 bool snapOnlyWhenOverlapping; 00166 00170 bool animateMinimize; 00171 00175 int animateMinimizeSpeed; 00176 00180 bool rollOverDesktops; 00181 00182 // 0 - 4 , see Workspace::allowClientActivation() 00183 int focusStealingPreventionLevel; 00184 00188 QStringList ignorePositionClasses; 00189 00190 bool checkIgnoreFocusStealing( const Client* c ); 00191 00192 WindowOperation operationTitlebarDblClick() { return OpTitlebarDblClick; } 00193 00194 enum MouseCommand 00195 { 00196 MouseRaise, MouseLower, MouseOperationsMenu, MouseToggleRaiseAndLower, 00197 MouseActivateAndRaise, MouseActivateAndLower, MouseActivate, 00198 MouseActivateRaiseAndPassClick, MouseActivateAndPassClick, 00199 MouseMove, MouseUnrestrictedMove, 00200 MouseActivateRaiseAndMove, MouseActivateRaiseAndUnrestrictedMove, 00201 MouseResize, MouseUnrestrictedResize, 00202 MouseShade, 00203 MouseMinimize, 00204 MouseNothing 00205 }; 00206 00207 MouseCommand commandActiveTitlebar1() { return CmdActiveTitlebar1; } 00208 MouseCommand commandActiveTitlebar2() { return CmdActiveTitlebar2; } 00209 MouseCommand commandActiveTitlebar3() { return CmdActiveTitlebar3; } 00210 MouseCommand commandInactiveTitlebar1() { return CmdInactiveTitlebar1; } 00211 MouseCommand commandInactiveTitlebar2() { return CmdInactiveTitlebar2; } 00212 MouseCommand commandInactiveTitlebar3() { return CmdInactiveTitlebar3; } 00213 MouseCommand commandWindow1() { return CmdWindow1; } 00214 MouseCommand commandWindow2() { return CmdWindow2; } 00215 MouseCommand commandWindow3() { return CmdWindow3; } 00216 MouseCommand commandAll1() { return CmdAll1; } 00217 MouseCommand commandAll2() { return CmdAll2; } 00218 MouseCommand commandAll3() { return CmdAll3; } 00219 uint keyCmdAllModKey() { return CmdAllModKey; } 00220 00221 00222 static WindowOperation windowOperation(const QString &name, bool restricted ); 00223 static MouseCommand mouseCommand(const QString &name, bool restricted ); 00224 00229 bool showGeometryTip(); 00230 00231 enum { ElectricDisabled = 0, ElectricMoveOnly = 1, ElectricAlways = 2 }; 00237 int electricBorders(); 00238 00242 int electricBorderDelay(); 00243 00244 bool topMenuEnabled() const { return topmenus; } 00245 bool desktopTopMenu() const { return desktop_topmenu; } 00246 00247 private: 00248 WindowOperation OpTitlebarDblClick; 00249 00250 // mouse bindings 00251 MouseCommand CmdActiveTitlebar1; 00252 MouseCommand CmdActiveTitlebar2; 00253 MouseCommand CmdActiveTitlebar3; 00254 MouseCommand CmdInactiveTitlebar1; 00255 MouseCommand CmdInactiveTitlebar2; 00256 MouseCommand CmdInactiveTitlebar3; 00257 MouseCommand CmdWindow1; 00258 MouseCommand CmdWindow2; 00259 MouseCommand CmdWindow3; 00260 MouseCommand CmdAll1; 00261 MouseCommand CmdAll2; 00262 MouseCommand CmdAll3; 00263 uint CmdAllModKey; 00264 00265 int electric_borders; 00266 int electric_border_delay; 00267 bool show_geometry_tip; 00268 bool topmenus; 00269 bool desktop_topmenu; 00270 // List of window classes for which not to use focus stealing prevention 00271 QStringList ignoreFocusStealingClasses; 00272 }; 00273 00274 extern Options* options; 00275 00276 } // namespace 00277 00278 #endif
KDE Logo
This file is part of the documentation for kwin Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Aug 31 00:02:14 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003