00001
00002
00003
00004
00005
00006
00007
00008
00009
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
#include "placement.h"
00022
00023
namespace KWinInternal
00024 {
00025
00026
class Client;
00027
00028
class Options :
public KDecorationOptions
00029 {
00030
public:
00031
00032 Options();
00033 ~Options();
00034
00035
virtual unsigned long updateSettings();
00036
00068
enum FocusPolicy { ClickToFocus, FocusFollowsMouse, FocusUnderMouse, FocusStrictlyUnderMouse };
00069 FocusPolicy focusPolicy;
00070
00071
00076
bool clickRaise;
00077
00081
bool autoRaise;
00082
00086
int autoRaiseInterval;
00087
00091
bool delayFocus;
00092
00096
int delayFocusInterval;
00097
00101
bool shadeHover;
00102
00106
int shadeHoverInterval;
00107
00125
enum AltTabStyle { KDE, CDE };
00126 AltTabStyle altTabStyle;
00127
00131
bool xineramaEnabled;
00132
bool xineramaPlacementEnabled;
00133
bool xineramaMovementEnabled;
00134
bool xineramaMaximizeEnabled;
00135
bool xineramaFullscreenEnabled;
00136
00140
enum MoveResizeMode { Transparent, Opaque };
00141
00142 MoveResizeMode resizeMode;
00143 MoveResizeMode moveMode;
00144
00145
static MoveResizeMode stringToMoveResizeMode(
const QString& s );
00146
static const char* moveResizeModeToString( MoveResizeMode mode );
00147
00148 Placement::Policy placement;
00149
00150
bool focusPolicyIsReasonable()
00151 {
00152
return focusPolicy == ClickToFocus || focusPolicy == FocusFollowsMouse;
00153 }
00154
00158
bool animateShade;
00159
00163
int borderSnapZone;
00164
00168
int windowSnapZone;
00169
00170
00174
bool snapOnlyWhenOverlapping;
00175
00179
bool animateMinimize;
00180
00184
int animateMinimizeSpeed;
00185
00189
bool rollOverDesktops;
00190
00191
00192
int focusStealingPreventionLevel;
00193
00197 QStringList ignorePositionClasses;
00198
00199
bool checkIgnoreFocusStealing(
const Client* c );
00200
00201
WindowOperation operationTitlebarDblClick() {
return OpTitlebarDblClick; }
00202
00203
enum MouseCommand
00204 {
00205 MouseRaise, MouseLower, MouseOperationsMenu, MouseToggleRaiseAndLower,
00206 MouseActivateAndRaise, MouseActivateAndLower, MouseActivate,
00207 MouseActivateRaiseAndPassClick, MouseActivateAndPassClick,
00208 MouseMove, MouseUnrestrictedMove,
00209 MouseActivateRaiseAndMove, MouseActivateRaiseAndUnrestrictedMove,
00210 MouseResize, MouseUnrestrictedResize,
00211 MouseShade,
00212 MouseMinimize,
00213 MouseNothing
00214 };
00215
00216 MouseCommand commandActiveTitlebar1() {
return CmdActiveTitlebar1; }
00217 MouseCommand commandActiveTitlebar2() {
return CmdActiveTitlebar2; }
00218 MouseCommand commandActiveTitlebar3() {
return CmdActiveTitlebar3; }
00219 MouseCommand commandInactiveTitlebar1() {
return CmdInactiveTitlebar1; }
00220 MouseCommand commandInactiveTitlebar2() {
return CmdInactiveTitlebar2; }
00221 MouseCommand commandInactiveTitlebar3() {
return CmdInactiveTitlebar3; }
00222 MouseCommand commandWindow1() {
return CmdWindow1; }
00223 MouseCommand commandWindow2() {
return CmdWindow2; }
00224 MouseCommand commandWindow3() {
return CmdWindow3; }
00225 MouseCommand commandAll1() {
return CmdAll1; }
00226 MouseCommand commandAll2() {
return CmdAll2; }
00227 MouseCommand commandAll3() {
return CmdAll3; }
00228 uint keyCmdAllModKey() {
return CmdAllModKey; }
00229
00230
00231
static WindowOperation windowOperation(
const QString &name,
bool restricted );
00232
static MouseCommand mouseCommand(
const QString &name,
bool restricted );
00233
00238
bool showGeometryTip();
00239
00240
enum { ElectricDisabled = 0, ElectricMoveOnly = 1, ElectricAlways = 2 };
00246
int electricBorders();
00247
00251
int electricBorderDelay();
00252
00253
bool topMenuEnabled()
const {
return topmenus; }
00254
bool desktopTopMenu()
const {
return desktop_topmenu; }
00255
00256
00257
int killPingTimeout;
00258
00259
private:
00260
WindowOperation OpTitlebarDblClick;
00261
00262
00263 MouseCommand CmdActiveTitlebar1;
00264 MouseCommand CmdActiveTitlebar2;
00265 MouseCommand CmdActiveTitlebar3;
00266 MouseCommand CmdInactiveTitlebar1;
00267 MouseCommand CmdInactiveTitlebar2;
00268 MouseCommand CmdInactiveTitlebar3;
00269 MouseCommand CmdWindow1;
00270 MouseCommand CmdWindow2;
00271 MouseCommand CmdWindow3;
00272 MouseCommand CmdAll1;
00273 MouseCommand CmdAll2;
00274 MouseCommand CmdAll3;
00275 uint CmdAllModKey;
00276
00277
int electric_borders;
00278
int electric_border_delay;
00279
bool show_geometry_tip;
00280
bool topmenus;
00281
bool desktop_topmenu;
00282
00283 QStringList ignoreFocusStealingClasses;
00284 };
00285
00286
extern Options* options;
00287
00288 }
00289
00290
#endif