1 /* 2 * Copyright © 2008 Dennis Kasprzyk <onestone@opencompositing.org> 3 * Copyright © 2006 Novell, Inc. 4 * Copyright © 2006 Volker Krause <vkrause@kde.org> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 19 * MA 02110-1301, USA. 20 * 21 * Author: David Reveman <davidr@novell.com> 22 */ 23 24 #ifndef _OPTIONS_H 25 #define _OPTIONS_H 26 27 #include <kdecoration.h> 28 29 class KConfig; 30 31 namespace KWD 32 { 33 34 class Options : public KDecorationOptions 35 { 36 public: 37 enum MouseCommand 38 { 39 MouseRaise, 40 MouseLower, 41 MouseOperationsMenu, 42 MouseToggleRaiseAndLower, 43 MouseActivateAndRaise, 44 MouseActivateAndLower, 45 MouseActivate, 46 MouseActivateRaiseAndPassClick, 47 MouseActivateAndPassClick, 48 MouseMove, 49 MouseUnrestrictedMove, 50 MouseActivateRaiseAndMove, 51 MouseActivateRaiseAndUnrestrictedMove, 52 MouseResize, 53 MouseUnrestrictedResize, 54 MouseShade, 55 MouseSetShade, 56 MouseUnsetShade, 57 MouseMaximize, 58 MouseRestore, 59 MouseMinimize, 60 MouseNextDesktop, 61 MousePreviousDesktop, 62 MouseAbove, 63 MouseBelow, 64 MouseOpacityMore, 65 MouseOpacityLess, 66 MouseNothing 67 }; 68 enum MouseWheelCommand 69 { 70 MouseWheelRaiseLower, 71 MouseWheelShadeUnshade, 72 MouseWheelMaximizeRestore, 73 MouseWheelAboveBelow, 74 MouseWheelPreviousNextDesktop, 75 MouseWheelChangeOpacity, 76 MouseWheelNothing 77 }; 78 79 Options (KConfig *config); 80 81 virtual unsigned long updateSettings (void); 82 operationTitlebarDblClick(void)83 WindowOperation operationTitlebarDblClick (void) 84 { 85 return OpTitlebarDblClick; 86 } 87 commandActiveTitlebar1(void)88 MouseCommand commandActiveTitlebar1 (void) 89 { 90 return CmdActiveTitlebar1; 91 } commandActiveTitlebar2(void)92 MouseCommand commandActiveTitlebar2 (void) 93 { 94 return CmdActiveTitlebar2; 95 } commandActiveTitlebar3(void)96 MouseCommand commandActiveTitlebar3 (void) 97 { 98 return CmdActiveTitlebar3; 99 } commandInactiveTitlebar1(void)100 MouseCommand commandInactiveTitlebar1 (void) 101 { 102 return CmdInactiveTitlebar1; 103 } commandInactiveTitlebar2(void)104 MouseCommand commandInactiveTitlebar2 (void) 105 { 106 return CmdInactiveTitlebar2; 107 } commandInactiveTitlebar3(void)108 MouseCommand commandInactiveTitlebar3 (void) 109 { 110 return CmdInactiveTitlebar3; 111 } 112 operationTitlebarMouseWheel(int delta)113 MouseCommand operationTitlebarMouseWheel (int delta) 114 { 115 return wheelToMouseCommand (CmdTitlebarWheel, delta); 116 } 117 118 private: 119 static KDecorationDefines::WindowOperation 120 windowOperation (const QString &name, bool restricted); 121 MouseCommand mouseCommand (const QString &name, bool restricted); 122 MouseWheelCommand mouseWheelCommand (const QString &name); 123 MouseCommand wheelToMouseCommand (MouseWheelCommand com, int delta); 124 125 private: 126 KDecorationDefines::WindowOperation OpTitlebarDblClick; 127 MouseCommand CmdActiveTitlebar1; 128 MouseCommand CmdActiveTitlebar2; 129 MouseCommand CmdActiveTitlebar3; 130 MouseCommand CmdInactiveTitlebar1; 131 MouseCommand CmdInactiveTitlebar2; 132 MouseCommand CmdInactiveTitlebar3; 133 MouseWheelCommand CmdTitlebarWheel; 134 135 KConfig *mConfig; 136 }; 137 138 } 139 140 #endif 141