1 /* 2 * SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org> 3 * 4 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 */ 6 #include "mockclient.h" 7 #include <decoratedclient.h> 8 9 #include <QPalette> 10 MockClient(KDecoration2::DecoratedClient * client,KDecoration2::Decoration * decoration)11MockClient::MockClient(KDecoration2::DecoratedClient *client, KDecoration2::Decoration *decoration) 12 : QObject() 13 , ApplicationMenuEnabledDecoratedClientPrivate(client, decoration) 14 { 15 } 16 adjacentScreenEdges() const17Qt::Edges MockClient::adjacentScreenEdges() const 18 { 19 return Qt::Edges(); 20 } 21 caption() const22QString MockClient::caption() const 23 { 24 return QString(); 25 } 26 decorationId() const27WId MockClient::decorationId() const 28 { 29 return 0; 30 } 31 desktop() const32int MockClient::desktop() const 33 { 34 return 1; 35 } 36 height() const37int MockClient::height() const 38 { 39 return m_height; 40 } 41 icon() const42QIcon MockClient::icon() const 43 { 44 return QIcon(); 45 } 46 isActive() const47bool MockClient::isActive() const 48 { 49 return false; 50 } 51 isCloseable() const52bool MockClient::isCloseable() const 53 { 54 return m_closeable; 55 } 56 isKeepAbove() const57bool MockClient::isKeepAbove() const 58 { 59 return m_keepAbove; 60 } 61 isKeepBelow() const62bool MockClient::isKeepBelow() const 63 { 64 return m_keepBelow; 65 } 66 isMaximizeable() const67bool MockClient::isMaximizeable() const 68 { 69 return m_maximizable; 70 } 71 isMaximized() const72bool MockClient::isMaximized() const 73 { 74 return isMaximizedHorizontally() && isMaximizedVertically(); 75 } 76 isMaximizedHorizontally() const77bool MockClient::isMaximizedHorizontally() const 78 { 79 return m_maximizedHorizontally; 80 } 81 isMaximizedVertically() const82bool MockClient::isMaximizedVertically() const 83 { 84 return m_maximizedVertically; 85 } 86 isMinimizeable() const87bool MockClient::isMinimizeable() const 88 { 89 return m_minimizable; 90 } 91 isModal() const92bool MockClient::isModal() const 93 { 94 return false; 95 } 96 isMoveable() const97bool MockClient::isMoveable() const 98 { 99 return false; 100 } 101 isOnAllDesktops() const102bool MockClient::isOnAllDesktops() const 103 { 104 return m_onAllDesktops; 105 } 106 isResizeable() const107bool MockClient::isResizeable() const 108 { 109 return false; 110 } 111 isShadeable() const112bool MockClient::isShadeable() const 113 { 114 return m_shadeable; 115 } 116 isShaded() const117bool MockClient::isShaded() const 118 { 119 return m_shaded; 120 } 121 palette() const122QPalette MockClient::palette() const 123 { 124 return QPalette(); 125 } 126 hasApplicationMenu() const127bool MockClient::hasApplicationMenu() const 128 { 129 return true; 130 } 131 isApplicationMenuActive() const132bool MockClient::isApplicationMenuActive() const 133 { 134 return false; 135 } 136 providesContextHelp() const137bool MockClient::providesContextHelp() const 138 { 139 return m_contextHelp; 140 } 141 requestClose()142void MockClient::requestClose() 143 { 144 Q_EMIT closeRequested(); 145 } 146 requestContextHelp()147void MockClient::requestContextHelp() 148 { 149 Q_EMIT quickHelpRequested(); 150 } 151 requestToggleMaximization(Qt::MouseButtons buttons)152void MockClient::requestToggleMaximization(Qt::MouseButtons buttons) 153 { 154 bool maximizedHorizontally = m_maximizedHorizontally; 155 bool maximizedVertically = m_maximizedVertically; 156 if (buttons.testFlag(Qt::LeftButton)) { 157 maximizedHorizontally = !m_maximizedHorizontally; 158 maximizedVertically = !m_maximizedVertically; 159 } 160 if (buttons.testFlag(Qt::MiddleButton)) { 161 maximizedHorizontally = !m_maximizedHorizontally; 162 } 163 if (buttons.testFlag(Qt::RightButton)) { 164 maximizedVertically = !m_maximizedVertically; 165 } 166 const bool wasMaximized = isMaximized(); 167 if (m_maximizedHorizontally != maximizedHorizontally) { 168 m_maximizedHorizontally = maximizedHorizontally; 169 Q_EMIT client()->maximizedHorizontallyChanged(m_maximizedHorizontally); 170 } 171 if (m_maximizedVertically != maximizedVertically) { 172 m_maximizedVertically = maximizedVertically; 173 Q_EMIT client()->maximizedVerticallyChanged(m_maximizedVertically); 174 } 175 if (wasMaximized != isMaximized()) { 176 Q_EMIT client()->maximizedChanged(isMaximized()); 177 } 178 } 179 requestMinimize()180void MockClient::requestMinimize() 181 { 182 Q_EMIT minimizeRequested(); 183 } 184 requestShowWindowMenu(const QRect & rect)185void MockClient::requestShowWindowMenu(const QRect &rect) 186 { 187 Q_EMIT menuRequested(); 188 } 189 requestShowApplicationMenu(const QRect & rect,int actionId)190void MockClient::requestShowApplicationMenu(const QRect &rect, int actionId) 191 { 192 Q_UNUSED(rect); 193 Q_UNUSED(actionId); 194 Q_EMIT applicationMenuRequested(); // FIXME TODO pass geometry 195 } 196 requestToggleKeepAbove()197void MockClient::requestToggleKeepAbove() 198 { 199 m_keepAbove = !m_keepAbove; 200 Q_EMIT client()->keepAboveChanged(m_keepAbove); 201 } 202 requestToggleKeepBelow()203void MockClient::requestToggleKeepBelow() 204 { 205 m_keepBelow = !m_keepBelow; 206 Q_EMIT client()->keepBelowChanged(m_keepBelow); 207 } 208 requestToggleOnAllDesktops()209void MockClient::requestToggleOnAllDesktops() 210 { 211 m_onAllDesktops = !m_onAllDesktops; 212 Q_EMIT client()->onAllDesktopsChanged(m_onAllDesktops); 213 } 214 requestToggleShade()215void MockClient::requestToggleShade() 216 { 217 m_shaded = !m_shaded; 218 Q_EMIT client()->shadedChanged(m_shaded); 219 } 220 requestShowToolTip(const QString & text)221void MockClient::requestShowToolTip(const QString &text) 222 { 223 Q_UNUSED(text); 224 } 225 requestHideToolTip()226void MockClient::requestHideToolTip() 227 { 228 } 229 size() const230QSize MockClient::size() const 231 { 232 return QSize(m_width, m_height); 233 } 234 width() const235int MockClient::width() const 236 { 237 return m_width; 238 } 239 windowId() const240WId MockClient::windowId() const 241 { 242 return 0; 243 } 244 setCloseable(bool set)245void MockClient::setCloseable(bool set) 246 { 247 m_closeable = set; 248 Q_EMIT client()->closeableChanged(set); 249 } 250 setMinimizable(bool set)251void MockClient::setMinimizable(bool set) 252 { 253 m_minimizable = set; 254 Q_EMIT client()->minimizeableChanged(set); 255 } 256 setProvidesContextHelp(bool set)257void MockClient::setProvidesContextHelp(bool set) 258 { 259 m_contextHelp = set; 260 Q_EMIT client()->providesContextHelpChanged(set); 261 } 262 setShadeable(bool set)263void MockClient::setShadeable(bool set) 264 { 265 m_shadeable = set; 266 Q_EMIT client()->shadeableChanged(set); 267 } 268 setMaximizable(bool set)269void MockClient::setMaximizable(bool set) 270 { 271 m_maximizable = set; 272 Q_EMIT client()->maximizeableChanged(set); 273 } 274 setWidth(int w)275void MockClient::setWidth(int w) 276 { 277 m_width = w; 278 Q_EMIT client()->widthChanged(w); 279 } 280 setHeight(int h)281void MockClient::setHeight(int h) 282 { 283 m_height = h; 284 Q_EMIT client()->heightChanged(h); 285 } 286 showApplicationMenu(int actionId)287void MockClient::showApplicationMenu(int actionId) 288 { 289 Q_UNUSED(actionId) 290 } 291