31 #include <tqiconset.h>
32 #include <netwm_def.h>
33 #include <kdeversion.h>
35 class KDecorationOptionsPrivate;
36 class KDecorationBridge;
37 class KDecorationPrivate;
38 class KDecorationFactory;
40 #define KWIN_EXPORT KDE_EXPORT
55 PositionCenter = 0x00,
59 PositionBottom = 0x08,
60 PositionTopLeft = PositionLeft | PositionTop,
61 PositionTopRight = PositionRight | PositionTop,
62 PositionBottomLeft = PositionLeft | PositionBottom,
63 PositionBottomRight = PositionRight | PositionBottom
73 MaximizeHorizontal = 2,
75 MaximizeFull = MaximizeVertical | MaximizeHorizontal
94 ToggleStoreSettingsOp = WindowRulesOp,
101 SetupWindowShortcutOp,
127 SettingDecoration = 1 << 0,
128 SettingColors = 1 << 1,
129 SettingFont = 1 << 2,
130 SettingButtons = 1 << 3,
131 SettingTooltips = 1 << 4,
132 SettingBorder = 1 << 5
157 AbilityAnnounceButtons = 0,
158 AbilityButtonMenu = 1000,
159 AbilityButtonOnAllDesktops = 1001,
160 AbilityButtonSpacer = 1002,
161 AbilityButtonHelp = 1003,
162 AbilityButtonMinimize = 1004,
163 AbilityButtonMaximize = 1005,
164 AbilityButtonClose = 1006,
165 AbilityButtonAboveOthers = 1007,
166 AbilityButtonBelowOthers = 1008,
167 AbilityButtonShade = 1009,
168 AbilityButtonResize = 1010,
169 ABILITY_DUMMY = 10000000
172 enum Requirement { REQUIREMENT_DUMMY = 1000000 };
175 class KDecorationProvides
179 virtual bool provides( Requirement req ) = 0;
200 const TQColor& color(
ColorType type,
bool active=
true)
const;
208 const TQColorGroup& colorGroup(
ColorType type,
bool active=
true)
const;
216 const TQFont& font(
bool active=
true,
bool small =
false)
const;
224 bool customButtonPositions()
const;
246 TQString titleButtonsLeft()
const;
258 TQString titleButtonsRight()
const;
264 bool showTooltips()
const;
276 BorderSize preferredBorderSize( KDecorationFactory* factory )
const;
284 bool moveResizeMaximizedWindows()
const;
289 WindowOperation operationMaxButtonClick( TQt::ButtonState button )
const;
294 virtual unsigned long updateSettings() = 0;
300 KDecorationOptionsPrivate* d;
321 KDecoration( KDecorationBridge* bridge, KDecorationFactory* factory );
337 bool isActive()
const;
341 bool isCloseable()
const;
345 bool isMaximizable()
const;
355 bool isMinimizable()
const;
360 bool providesContextHelp()
const;
371 bool isOnAllDesktops()
const;
375 bool isModal()
const;
379 bool isShadeable()
const;
388 bool isShade()
const;
396 bool isSetShade()
const;
400 bool keepAbove()
const;
404 bool keepBelow()
const;
408 bool isMovable()
const;
412 bool isResizable()
const;
436 NET::WindowType windowType(
unsigned long supported_types )
const;
440 TQIconSet icon()
const;
444 TQString caption()
const;
471 void showWindowMenu(
const TQRect &pos );
476 void showWindowMenu( TQPoint pos );
490 void setMask(
const TQRegion& reg,
int mode = 0 );
500 bool isPreview()
const;
504 TQRect geometry()
const;
510 TQRect iconGeometry()
const;
519 TQRegion unobscuredRegion(
const TQRegion& r )
const;
524 TQWidget* workspaceWidget()
const;
538 WId windowId()
const;
552 void processMousePressEvent( TQMouseEvent* e );
561 virtual void init() = 0;
568 virtual Position mousePosition(
const TQPoint& p )
const = 0;
583 virtual void borders(
int& left,
int& right,
int& top,
int& bottom )
const = 0;
591 virtual void resize(
const TQSize& s ) = 0;
597 virtual TQSize minimumSize()
const = 0;
602 virtual void activeChange() = 0;
606 virtual void captionChange() = 0;
610 virtual void iconChange() = 0;
615 virtual void maximizeChange() = 0;
621 virtual void desktopChange() = 0;
626 virtual void shadeChange() = 0;
627 #if KDE_IS_VERSION( 3, 90, 0 )
628 #warning Redo all the XYZChange() virtuals as signals.
635 void keepAboveChanged(
bool );
640 void keepBelowChanged(
bool );
655 virtual bool drawbound(
const TQRect& geom,
bool clear );
666 virtual bool animateMinimize(
bool minimize );
671 virtual bool windowDocked(
Position side );
678 virtual void reset(
unsigned long changed );
688 void setMainWidget( TQWidget* );
698 void createMainWidget( TQt::WFlags flags = 0 );
702 TQWidget* initialParentWidget()
const;
709 TQt::WFlags initialWFlags()
const;
716 void helperShowHide(
bool show );
724 const TQWidget* widget()
const;
728 KDecorationFactory* factory()
const;
736 void ungrabXServer();
769 #if KDE_IS_VERSION( 3, 90, 0 )
770 #warning Update the docs.
772 void maximize( ButtonState button );
786 void showContextHelp();
791 void setDesktop(
int desktop );
795 void toggleOnAllDesktops();
800 void titlebarDblClickOperation();
807 void titlebarMouseWheelOperation(
int delta );
812 void setShade(
bool set );
817 void setKeepAbove(
bool set );
822 void setKeepBelow(
bool set );
826 void emitKeepAboveChanged(
bool above ) { emit keepAboveChanged( above ); }
830 void emitKeepBelowChanged(
bool below ) { emit keepBelowChanged( below ); }
832 KDecorationBridge* bridge_;
834 KDecorationFactory* factory_;
837 KDecorationPrivate* d;
875 return desktop() == NET::OnAllDesktops;