summaryrefslogtreecommitdiffstats
path: root/kwin/lib/kdecoration.h
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/lib/kdecoration.h')
-rw-r--r--kwin/lib/kdecoration.h888
1 files changed, 0 insertions, 888 deletions
diff --git a/kwin/lib/kdecoration.h b/kwin/lib/kdecoration.h
deleted file mode 100644
index ae3c58e28..000000000
--- a/kwin/lib/kdecoration.h
+++ /dev/null
@@ -1,888 +0,0 @@
-/*****************************************************************
-This file is part of the KDE project.
-
-Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-******************************************************************/
-
-#ifndef KDECORATION_H
-#define KDECORATION_H
-
-#include <tqcolor.h>
-#include <tqfont.h>
-#include <tqobject.h>
-#include <tqiconset.h>
-#include <netwm_def.h>
-#include <kdeversion.h>
-
-class KDecorationOptionsPrivate;
-class KDecorationBridge;
-class KDecorationPrivate;
-class KDecorationFactory;
-
-#define KWIN_EXPORT KDE_EXPORT
-
-/**
- * This class provides a namespace for all decoration related classes.
- * All shared types are defined here.
- * @since 3.2
- */
-class KWIN_EXPORT KDecorationDefines
-{
-public:
- /**
- * These values represent positions inside an area
- */
- enum Position
- { // without prefix, they'd conflict with Qt::TopLeft etc. :(
- PositionCenter = 0x00,
- PositionLeft = 0x01,
- PositionRight = 0x02,
- PositionTop = 0x04,
- PositionBottom = 0x08,
- PositionTopLeft = PositionLeft | PositionTop,
- PositionTopRight = PositionRight | PositionTop,
- PositionBottomLeft = PositionLeft | PositionBottom,
- PositionBottomRight = PositionRight | PositionBottom
- };
- /**
- * Maximize mode. These values specify how a window is maximized.
- */
- // these values are written to session files, don't change the order
- enum MaximizeMode
- {
- MaximizeRestore = 0, ///< The window is not maximized in any direction.
- MaximizeVertical = 1, ///< The window is maximized vertically.
- MaximizeHorizontal = 2, ///< The window is maximized horizontally.
- /// Equal to @p MaximizeVertical | @p MaximizeHorizontal
- MaximizeFull = MaximizeVertical | MaximizeHorizontal
- };
-
- enum WindowOperation
- {
- MaximizeOp = 5000,
- RestoreOp,
- MinimizeOp,
- MoveOp,
- UnrestrictedMoveOp,
- ResizeOp,
- UnrestrictedResizeOp,
- CloseOp,
- OnAllDesktopsOp,
- ShadeOp,
- KeepAboveOp,
- KeepBelowOp,
- OperationsOp,
- WindowRulesOp,
- ToggleStoreSettingsOp = WindowRulesOp, ///< @obsolete
- HMaximizeOp,
- VMaximizeOp,
- LowerOp,
- FullScreenOp,
- NoBorderOp,
- ShadowOp,
- NoOp,
- SetupWindowShortcutOp,
- ApplicationRulesOp ///< @since 3.5
- };
- /**
- * Basic color types that should be recognized by all decoration styles.
- * Decorations are not required to implement all the colors, but for the ones that
- * are implemented the color setting for them should be obeyed.
- */
- enum ColorType
- {
- ColorTitleBar, ///< The color for the titlebar
- ColorTitleBlend, ///< The blend color for the titlebar
- ColorFont, ///< The titlebar text color
- ColorButtonBg, ///< The color to use for the titlebar buttons
- ColorFrame, ///< The color for the window frame (border)
- ColorHandle, ///< The color for the resize handle
- NUM_COLORS
- };
-
- /**
- * These flags specify which settings changed when rereading settings.
- * Each setting in class KDecorationOptions specifies its matching flag.
- */
- enum
- {
- SettingDecoration = 1 << 0, ///< The decoration was changed
- SettingColors = 1 << 1, ///< The color palette was changed
- SettingFont = 1 << 2, ///< The titlebar font was changed
- SettingButtons = 1 << 3, ///< The button layout was changed
- SettingTooltips = 1 << 4, ///< The tooltip setting was changed
- SettingBorder = 1 << 5 ///< The border size setting was changed
- };
-
- /**
- * Border size. KDecorationOptions::preferredBorderSize() returns
- * one of these values.
- */
- enum BorderSize
- {
- BorderTiny, ///< Minimal borders
- BorderNormal, ///< Standard size borders, the default setting
- BorderLarge, ///< Larger borders
- BorderVeryLarge, ///< Very large borders
- BorderHuge, ///< Huge borders
- BorderVeryHuge, ///< Very huge borders
- BorderOversized, ///< Oversized borders
- BordersCount ///< @internal
- };
-
- /**
- * Used to find out which features the decoration supports.
- * @see KDecorationFactory::supports()
- */
- enum Ability
- {
- AbilityAnnounceButtons = 0, ///< decoration supports AbilityButton* values (always use)
- AbilityButtonMenu = 1000, ///< decoration supports the menu button
- AbilityButtonOnAllDesktops = 1001, ///< decoration supports the on all desktops button
- AbilityButtonSpacer = 1002, ///< decoration supports inserting spacers between buttons
- AbilityButtonHelp = 1003, ///< decoration supports what's this help button
- AbilityButtonMinimize = 1004, ///< decoration supports a minimize button
- AbilityButtonMaximize = 1005, ///< decoration supports a maximize button
- AbilityButtonClose = 1006, ///< decoration supports a close button
- AbilityButtonAboveOthers = 1007, ///< decoration supports an above button
- AbilityButtonBelowOthers = 1008, ///< decoration supports a below button
- AbilityButtonShade = 1009, ///< decoration supports a shade button
- AbilityButtonResize = 1010, ///< decoration supports a resize button
- ABILITY_DUMMY = 10000000
- };
-
- enum Requirement { REQUIREMENT_DUMMY = 1000000 };
-};
-
-class KDecorationProvides
- : public KDecorationDefines
- {
- public:
- virtual bool provides( Requirement req ) = 0;
- };
-
-/**
- * This class holds various configuration settings for the decoration.
- * It is accessible from the decorations either as KDecoration::options()
- * or KDecorationFactory::options().
- * @since 3.2
- */
-class KWIN_EXPORT KDecorationOptions : public KDecorationDefines
- {
-public:
- KDecorationOptions();
- virtual ~KDecorationOptions();
- /**
- * Returns the color that should be used for the given part of the decoration.
- * The changed flags for this setting is SettingColors.
- *
- * @param type The requested color type.
- * @param active Whether the color should be for active or inactive windows.
- */
- const TQColor& color(ColorType type, bool active=true) const;
- /**
- * Returns a colorgroup using the given decoration color as the background.
- * The changed flags for this setting is SettingColors.
- *
- * @param type The requested color type.
- * @param active Whether to return the color for active or inactive windows.
- */
- const TQColorGroup& tqcolorGroup(ColorType type, bool active=true) const;
- /**
- * Returns the active or inactive decoration font.
- * The changed flags for this setting is SettingFont.
- *
- * @param active Whether to return the color for active or inactive windows.
- * @param small If @a true, returns a font that's suitable for tool windows.
- */
- const TQFont& font(bool active=true, bool small = false) const;
- /**
- * Returns @a true if the style should use custom button positions
- * The changed flags for this setting is SettingButtons.
- *
- * @see titleButtonsLeft
- * @see titleButtonsRight
- */
- bool customButtonPositions() const;
- /**
- * If customButtonPositions() returns true, titleButtonsLeft
- * returns which buttons should be on the left side of the titlebar from left
- * to right. Characters in the returned string have this meaning :
- * @li 'M' menu button
- * @li 'S' on_all_desktops button
- * @li 'H' quickhelp button
- * @li 'I' minimize ( iconify ) button
- * @li 'A' maximize button
- * @li 'X' close button
- * @li 'F' keep_above_others button
- * @li 'B' keep_below_others button
- * @li 'L' shade button
- * @li 'R' resize button
- * @li '_' spacer
- *
- * The default ( which is also returned if customButtonPositions returns false )
- * is "MS".
- * Unknown buttons in the returned string must be ignored.
- * The changed flags for this setting is SettingButtons.
- */
- TQString titleButtonsLeft() const;
- /**
- * If customButtonPositions() returns true, titleButtonsRight
- * returns which buttons should be on the right side of the titlebar from left
- * to right. Characters in the return string have the same meaning like
- * in titleButtonsLeft().
- *
- * The default ( which is also returned if customButtonPositions returns false )
- * is "HIAX".
- * Unknown buttons in the returned string must be ignored.
- * The changed flags for this setting is SettingButtons.
- */
- TQString titleButtonsRight() const;
-
- /**
- * @returns true if the style should use tooltips for window buttons
- * The changed flags for this setting is SettingTooltips.
- */
- bool showTooltips() const;
-
- /**
- * The preferred border size selected by the user, e.g. for accessibility
- * reasons, or when using high resolution displays. It's up to the decoration
- * to decide which borders or if any borders at all will obey this setting.
- * It is guaranteed that the returned value will be one of those
- * returned by KDecorationFactory::borderSizes(), so if that one hasn't been
- * reimplemented, BorderNormal is always returned.
- * The changed flags for this setting is SettingBorder.
- * @param factory the decoration factory used
- */
- BorderSize preferredBorderSize( KDecorationFactory* factory ) const;
-
- /*
- * When this functions returns false, moving and resizing of maximized windows
- * is not allowed, and therefore the decoration is allowed to turn off (some of)
- * its borders.
- * The changed flags for this setting is SettingButtons.
- */
- bool moveResizeMaximizedWindows() const;
-
- /**
- * @internal
- */
- WindowOperation operationMaxButtonClick( TQt::ButtonState button ) const;
-
- /**
- * @internal
- */
- virtual unsigned long updateSettings() = 0; // returns SettingXYZ mask
-
-protected:
- /**
- * @internal
- */
- KDecorationOptionsPrivate* d;
- };
-
-
-/**
- * This is the base class for a decoration object. It provides functions
- * that give various information about the decorated window, and also
- * provides pure virtual functions for controlling the decoration that
- * every decoration should implement.
- * @since 3.2
- */
-class KWIN_EXPORT KDecoration
- : public TQObject, public KDecorationDefines
- {
- Q_OBJECT
- public:
- /**
- * Constructs a KDecoration object. Both the arguments are passed from
- * KDecorationFactory. Note that the initialization code of the decoration
- * should be done in the init() method.
- */
- KDecoration( KDecorationBridge* bridge, KDecorationFactory* factory );
- /**
- * Destroys the KDecoration.
- */
- virtual ~KDecoration();
-
- // requests from decoration
-
- /**
- * Returns the KDecorationOptions object, which is used to access
- * configuration settings for the decoration.
- */
- static const KDecorationOptions* options();
- /**
- * Returns @a true if the decorated window is currently active.
- */
- bool isActive() const;
- /**
- * Returns @a true if the decoration window can be closed by the user.
- */
- bool isCloseable() const;
- /**
- * Returns @a true if the decorated window can be maximized.
- */
- bool isMaximizable() const;
- /**
- * Returns the current maximization mode of the decorated window.
- * Note that only fully maximized windows should be treated
- * as "maximized" (e.g. if the maximize button has only two states).
- */
- MaximizeMode maximizeMode() const;
- /**
- * Returns @a true if the decorated window can be minimized by the user.
- */
- bool isMinimizable() const;
- /**
- * Return @a true if the decorated window can show context help
- * (i.e. the decoration should provide the context help button).
- */
- bool providesContextHelp() const;
- /**
- * Returns the number of the virtual desktop the decorated window
- * is currently on (including NET::OnAllDesktops for being on all
- * desktops).
- */
- int desktop() const;
- /**
- * Convenience function that returns @a true if the window is on all
- * virtual desktops.
- */
- bool isOnAllDesktops() const; // convenience
- /**
- * Returns @a true if the decoration window is modal (usually a modal dialog).
- */
- bool isModal() const;
- /**
- * Returns @a true if the decorated window can be shaded.
- */
- bool isShadeable() const;
- /**
- * Returns @a true if the decorated window is currently shaded.
- * If the window is e.g. hover unshaded, it's not considered to be shaded.
- * This function should not be used for the shade titlebar button, use
- * @ref isSetShade() instead.
- *
- * @see isSetShade
- */
- bool isShade() const;
- /**
- * Returns @a true if the decorated window was set to be shaded. This function
- * returns also true if the window is e.g. hover unshaded, so it doesn't
- * always correspond to the actual window state.
- *
- * @see isShade
- */
- bool isSetShade() const;
- /**
- * Returns @a true if the decorated window should be kept above other windows.
- */
- bool keepAbove() const;
- /**
- * Returns @a true if the decorated window should be kept below other windows.
- */
- bool keepBelow() const;
- /**
- * Returns @a true if the decorated window can be moved by the user.
- */
- bool isMovable() const;
- /**
- * Returns @a true if the decorated window can be resized by the user.
- */
- bool isResizable() const;
- /**
- * This function returns the window type of the decorated window.
- * The argument to this function is a mask of all window types
- * the decoration knows about (as the list of valid window types
- * is extended over time, and fallback types are specified in order
- * to support older code). For a description of all window types,
- * see the definition of the NET::WindowType type. Note that
- * some window types never have decorated windows.
- *
- * An example of usage:
- * @code
- * const unsigned long supported_types = NET::NormalMask | NET::DesktopMask
- * | NET::DockMask | NET::ToolbarMask | NET::MenuMask | NET::DialogMask
- * | NET::OverrideMask | NET::TopMenuMask | NET::UtilityMask | NET::SplashMask;
- *
- * NET::WindowType type = windowType( supported_types );
- *
- * if( type == NET::Utility || type == NET::Menu || type == NET::Toolbar )
- * // ... use smaller decorations for tool window types
- * else
- * // ... use normal decorations
- * @endcode
- */
- NET::WindowType windowType( unsigned long supported_types ) const;
- /**
- * Returns an icon set with the decorated window's icon.
- */
- TQIconSet icon() const;
- /**
- * Returns the decorated window's caption that should be shown in the titlebar.
- */
- TQString caption() const;
- /**
- * This function invokes the window operations menu.
- * \param pos specifies the place on the screen where the menu should
- * show up. The menu pops up at the bottom-left corner of the specified
- * rectangle, unless there is no space, in which case the menu is
- * displayed above the rectangle.
- *
- * \note Decorations that enable a double-click operation for the menu
- * button must ensure to call \a showWindowMenu() with the \a pos
- * rectangle set to the menu button geometry.
- * IMPORTANT: As a result of this function, the decoration object that
- * called it may be destroyed after the function returns. This means
- * that the decoration object must either return immediately after
- * calling showWindowMenu(), or it must use
- * KDecorationFactory::exists() to check it's still valid. For example,
- * the code handling clicks on the menu button should look similarly
- * like this:
- *
- * \code
- * KDecorationFactory* f = factory(); // needs to be saved before
- * showWindowMenu( button[MenuButton]->mapToGlobal( menuPoint ));
- * if( !f->exists( this )) // destroyed, return immediately
- * return;
- * button[MenuButton]->setDown(false);
- * \endcode
- */
- void showWindowMenu( const TQRect &pos );
-
- /**
- * Overloaded version of the above.
- */
- void showWindowMenu( TQPoint pos );
- /**
- * This function performs the given window operation. This function may destroy
- * the current decoration object, just like showWindowMenu().
- */
- void performWindowOperation( WindowOperation op );
- /**
- * If the decoration is non-rectangular, this function needs to be called
- * to set the tqshape of the decoration.
- *
- * @param reg The tqshape of the decoration.
- * @param mode The X11 values Unsorted, YSorted, YXSorted and YXBanded that specify
- * the sorting of the rectangles, default value is Unsorted.
- */
- void setMask( const TQRegion& reg, int mode = 0 );
- /**
- * This convenience function resets the tqshape mask.
- */
- void clearMask(); // convenience
- /**
- * If this function returns @a true, the decorated window is used as a preview
- * e.g. in the configuration module. In such case, the decoration can e.g.
- * show some information in the window area.
- */
- bool isPreview() const;
- /**
- * Returns the geometry of the decoration.
- */
- TQRect geometry() const;
- /**
- * Returns the icon geometry for the window, i.e. the geometry of the taskbar
- * entry. This is used mainly for window minimize animations. Note that
- * the geometry may be null.
- */
- TQRect iconGeometry() const;
- /**
- * Returns the intersection of the given region with the region left
- * unobscured by the windows stacked above the current one. You can use
- * this function to, for example, try to keep the titlebar visible if
- * there is a hole available. The region returned is in the coordinate
- * space of the decoration.
- * @param r The region you want to check for holes
- */
- TQRegion unobscuredRegion( const TQRegion& r ) const;
- /**
- * Returns the main workspace widget. The main purpose of this function is to
- * allow painting the minimize animation or the transparent move bound on it.
- */
- TQWidget* workspaceWidget() const;
- /**
- * Returns the handle of the window that is being decorated. It is possible
- * the returned value will be 0.
- * IMPORTANT: This function is meant for special purposes, and it
- * usually should not be used. The main purpose is finding out additional
- * information about the window's state. Also note that different kinds
- * of windows are decorated: Toplevel windows managed by the window manager,
- * test window in the window manager decoration module, and possibly also
- * other cases.
- * Careless abuse of this function will usually sooner or later lead
- * to problems.
- * @since 3.4
- */
- WId windowId() const;
- /**
- * Convenience function that returns the width of the decoration.
- */
- int width() const; // convenience
- /**
- * Convenience function that returns the height of the decoration.
- */
- int height() const; // convenience
- /**
- * This function is the default handler for mouse events. All mouse events
- * that are not handled by the decoration itself should be passed to it
- * in order to make work operations like window resizing by dragging borders etc.
- */
- void processMousePressEvent( TQMouseEvent* e );
-
- // requests to decoration
-
- /**
- * This function is called immediately after the decoration object is created.
- * Due to some technical reasons, initialization should be done here
- * instead of in the constructor.
- */
- virtual void init() = 0; // called once right after created
-
- /**
- * This function should return mouse cursor position in the decoration.
- * Positions at the edge will result in window resizing with mouse button
- * pressed, center position will result in moving.
- */
- virtual Position mousePosition( const TQPoint& p ) const = 0;
-
- /**
- * This function should return the distance from each window side to the inner
- * window. The sizes may depend on the state of the decorated window, such as
- * whether it's shaded. Decorations often turn off their bottom border when the
- * window is shaded, and turn off their left/right/bottom borders when
- * the window is maximized and moving and resizing of maximized windows is disabled.
- * This function mustn't do any repaints or resizes. Also, if the sizes returned
- * by this function don't match the real values, this may result in drawing errors
- * or other problems.
- *
- * @see KDecorationOptions::moveResizeMaximizedWindows()
- */
- // mustn't do any repaints, resizes or anything like that
- virtual void borders( int& left, int& right, int& top, int& bottom ) const = 0;
- /**
- * This method is called by twin when the style should resize the decoration window.
- * The usual implementation is to resize the main widget of the decoration to the
- * given size.
- *
- * @param s Specifies the new size of the decoration window.
- */
- virtual void resize( const TQSize& s ) = 0;
- /**
- * This function should return the minimum required size for the decoration.
- * Note that the returned size shouldn't be too large, because it will be
- * used to keep the decorated window at least as large.
- */
- virtual TQSize tqminimumSize() const = 0;
- /**
- * This function is called whenever the window either becomes or stops being active.
- * Use isActive() to find out the current state.
- */
- virtual void activeChange() = 0;
- /**
- * This function is called whenever the caption changes. Use caption() to get it.
- */
- virtual void captionChange() = 0;
- /**
- * This function is called whenever the window icon changes. Use icon() to get it.
- */
- virtual void iconChange() = 0;
- /**
- * This function is called whenever the maximalization state of the window changes.
- * Use maximizeMode() to get the current state.
- */
- virtual void maximizeChange() = 0;
- /**
- * This function is called whenever the desktop for the window changes. Use
- * desktop() or isOnAllDesktops() to find out the current desktop
- * on which the window is.
- */
- virtual void desktopChange() = 0;
- /**
- * This function is called whenever the window is shaded or unshaded. Use
- * isShade() to get the current state.
- */
- virtual void shadeChange() = 0;
-#if KDE_IS_VERSION( 3, 90, 0 )
-#warning Redo all the XYZChange() virtuals as signals.
-#endif
- signals:
- /**
- * This signal is emitted whenever the window's keep-above state changes.
- * @since 3.3
- */
- void keepAboveChanged( bool );
- /**
- * This signal is emitted whenever the window's keep-below state changes.
- * @since 3.3
- */
- void keepBelowChanged( bool );
- public:
- /**
- * This function may be reimplemented to provide custom bound drawing
- * for transparent moving or resizing of the window.
- * @a False should be returned if the default implementation should be used.
- * Note that if you e.g. paint the outline using a 5 pixels wide line,
- * you should compensate for the 2 pixels that would make the window
- * look larger.
- *
- * @param geom The geometry at this the bound should be drawn
- * @param clear @a true if the bound should be cleared
- *
- * @see workspaceWidget() and geometry().
- */
- virtual bool drawbound( const TQRect& geom, bool clear );
- /**
- * This function may be reimplemented to provide custom minimize/restore animations
- * The reimplementation is allowed to perform X server grabs if necessary
- * (only using the functions provided by this API, no direct Xlib calls), but no
- * futher event processing is allowed (i.e. no kapp->processEvents()).
- * @a False should be returned if the default implementation should be used.
- * Note that you should not use this function to force disabling of the animation.
- *
- * @see workspaceWidget(), geometry() and helperShowHide().
- */
- virtual bool animateMinimize( bool minimize );
- /**
- * @internal Reserved.
- */
- // TODO position will need also values for top+left+bottom etc. docking ?
- virtual bool windowDocked( Position side );
- /**
- * This function is called to reset the decoration on settings changes.
- * It is usually invoked by calling KDecorationFactory::resetDecorations().
- *
- * @param changed Specifies which settings were changed, given by the SettingXXX masks
- */
- virtual void reset( unsigned long changed );
-
- // special
-
- /**
- * This should be the first function called in init() to specify
- * the main widget of the decoration. The widget should be created
- * with parent specified by initialParentWidget() and flags
- * specified by initialWFlags().
- */
- void setMainWidget( TQWidget* );
- /**
- * Convenience functions that creates and sets a main widget as necessary.
- * In such case, it's usually needed to install an event filter
- * on the main widget to receive important events on it.
- *
- * @param flags Additional widget flags for the main widget. Note that only
- * flags that affect widget drawing are allowed. Window type flags
- * like WX11BypassWM or WStyle_NoBorder are forbidden.
- */
- void createMainWidget( TQt::WFlags flags = 0 );
- /**
- * The parent widget that should be used for the main widget.
- */
- TQWidget* initialParentWidget() const;
- /**
- * The flags that should be used when creating the main widget.
- * It is possible to add more flags when creating the main widget, but only flags
- * that affect widget drawing are allowed. Window type flags like WX11BypassWM
- * or WStyle_NoBorder are forbidden.
- */
- TQt::WFlags initialWFlags() const;
- /**
- * This function is only allowed to be called once from animateMinimize().
- * It can be used if the window should be shown or hidden at a specific
- * time during the animation. It is forbidden to use this function
- * for other purposes.
- */
- void helperShowHide( bool show );
- /**
- * Returns the main widget for the decoration.
- */
- TQWidget* widget();
- /**
- * Returns the main widget for the decoration.
- */
- const TQWidget* widget() const;
- /**
- * Returns the factory that created this decoration.
- */
- KDecorationFactory* factory() const;
- /**
- * Performs X server grab. It is safe to call it several times in a row.
- */
- void grabXServer();
- /**
- * Ungrabs X server (if the number of ungrab attempts matches the number of grab attempts).
- */
- void ungrabXServer();
- public slots:
- // requests from decoration
-
- /**
- * This function can be called by the decoration to request
- * closing of the decorated window. Note that closing the window
- * also involves destroying the decoration.
- * IMPORTANT: This function may destroy the current decoration object,
- * just like showWindowMenu().
- */
- void closeWindow();
- /*
- * Changes the maximize mode of the decorated window. This function should
- * be preferred to the other maximize() overload for reacting on clicks
- * on the maximize titlebar button.
- * NOTE: This function is new in KDE3.3. In order to support also KDE3.2,
- * it is recommended to use code like this:
- * \code
- * ButtonState button = ... ;
- * #if KDE_IS_VERSION( 3, 3, 0 )
- * maximize( button );
- * #else
- * if( button == MidButton )
- * maximize( maximizeMode() ^ MaximizeVertical );
- * else if( button == RightButton )
- * maximize( maximizeMode() ^ MaximizeHorizontal );
- * else
- * maximize( maximizeMode() == MaximizeFull ? MaximizeRestore : MaximizeFull );
- * #endif
- * \endcode
- * @since 3.3
- */
-#if KDE_IS_VERSION( 3, 90, 0 )
-#warning Update the docs.
-#endif
- void maximize( ButtonState button );
- /**
- * Set the maximize mode of the decorated window.
- * @param mode The maximization mode to be set.
- */
- void maximize( MaximizeMode mode );
- /**
- * Minimize the decorated window.
- */
- void minimize();
- /**
- * Start showing context help in the window (i.e. the mouse will enter
- * the what's this mode).
- */
- void showContextHelp();
- /**
- * Moves the window to the given desktop. Use NET::OnAllDesktops for making
- * the window appear on all desktops.
- */
- void setDesktop( int desktop );
- /**
- * This function toggles the on-all-desktops state of the decorated window.
- */
- void toggleOnAllDesktops(); // convenience
- /**
- * This function performs the operation configured as titlebar double click
- * operation.
- */
- void titlebarDblClickOperation();
- /**
- * This function performs the operation configured as titlebar wheel mouse
- * operation.
- * @param delta the mouse wheel delta
- * @since 3.5
- */
- void titlebarMouseWheelOperation( int delta );
- /**
- * Shades or unshades the decorated window.
- * @param set Whether the window should be shaded
- */
- void setShade( bool set );
- /**
- * Sets or reset keeping this window above others.
- * @param set Whether to keep the window above others
- */
- void setKeepAbove( bool set );
- /**
- * Sets or reset keeping this window below others.
- * @param set Whether to keep the window below others
- */
- void setKeepBelow( bool set );
- /**
- * @internal
- */
- void emitKeepAboveChanged( bool above ) { emit keepAboveChanged( above ); }
- /**
- * @internal
- */
- void emitKeepBelowChanged( bool below ) { emit keepBelowChanged( below ); }
- private:
- KDecorationBridge* bridge_;
- TQWidget* w_;
- KDecorationFactory* factory_;
- friend class KDecorationOptions; // for options_
- static KDecorationOptions* options_;
- KDecorationPrivate* d;
- };
-
-inline
-KDecorationDefines::MaximizeMode operator^( KDecorationDefines::MaximizeMode m1, KDecorationDefines::MaximizeMode m2 )
- {
- return KDecorationDefines::MaximizeMode( int(m1) ^ int(m2) );
- }
-
-inline
-KDecorationDefines::MaximizeMode operator&( KDecorationDefines::MaximizeMode m1, KDecorationDefines::MaximizeMode m2 )
- {
- return KDecorationDefines::MaximizeMode( int(m1) & int(m2) );
- }
-
-inline
-KDecorationDefines::MaximizeMode operator|( KDecorationDefines::MaximizeMode m1, KDecorationDefines::MaximizeMode m2 )
- {
- return KDecorationDefines::MaximizeMode( int(m1) | int(m2) );
- }
-
-inline TQWidget* KDecoration::widget()
- {
- return w_;
- }
-
-inline const TQWidget* KDecoration::widget() const
- {
- return w_;
- }
-
-inline KDecorationFactory* KDecoration::factory() const
- {
- return factory_;
- }
-
-inline bool KDecoration::isOnAllDesktops() const
- {
- return desktop() == NET::OnAllDesktops;
- }
-
-inline int KDecoration::width() const
- {
- return geometry().width();
- }
-
-inline int KDecoration::height() const
- {
- return geometry().height();
- }
-
-#endif