127f5d579SClemens Zeidler /* 2*7f9368caSlooncraz * Copyright 2010-2015, Haiku, Inc. 327f5d579SClemens Zeidler * Distributed under the terms of the MIT License. 427f5d579SClemens Zeidler * 527f5d579SClemens Zeidler * Authors: 627f5d579SClemens Zeidler * Clemens Zeidler <haiku@clemens-zeidler.de> 727f5d579SClemens Zeidler */ 827f5d579SClemens Zeidler #ifndef SAT_DECORATOR_H 927f5d579SClemens Zeidler #define SAT_DECORATOR_H 1027f5d579SClemens Zeidler 1127f5d579SClemens Zeidler 1227f5d579SClemens Zeidler #include "DecorManager.h" 1327f5d579SClemens Zeidler #include "DefaultDecorator.h" 1427f5d579SClemens Zeidler #include "DefaultWindowBehaviour.h" 1527f5d579SClemens Zeidler #include "StackAndTile.h" 1627f5d579SClemens Zeidler 1727f5d579SClemens Zeidler 18*7f9368caSlooncraz class Desktop; 19*7f9368caSlooncraz 20*7f9368caSlooncraz 2127f5d579SClemens Zeidler class SATDecorator : public DefaultDecorator { 2227f5d579SClemens Zeidler public: 2327f5d579SClemens Zeidler enum { 2427f5d579SClemens Zeidler HIGHLIGHT_STACK_AND_TILE = HIGHLIGHT_USER_DEFINED 2527f5d579SClemens Zeidler }; 2627f5d579SClemens Zeidler 2727f5d579SClemens Zeidler public: 2827f5d579SClemens Zeidler SATDecorator(DesktopSettings& settings, 29*7f9368caSlooncraz BRect frame, Desktop* desktop); 3027f5d579SClemens Zeidler 3127f5d579SClemens Zeidler protected: 32*7f9368caSlooncraz virtual void UpdateColors(DesktopSettings& settings); 3327f5d579SClemens Zeidler virtual void GetComponentColors(Component component, 3427f5d579SClemens Zeidler uint8 highlight, ComponentColors _colors, 3527f5d579SClemens Zeidler Decorator::Tab* tab = NULL); 36ae0218edSAdrien Destugues 37ae0218edSAdrien Destugues private: 38*7f9368caSlooncraz rgb_color fHighlightTabColor; 39*7f9368caSlooncraz rgb_color fHighlightTabColorLight; 40*7f9368caSlooncraz rgb_color fHighlightTabColorBevel; 41*7f9368caSlooncraz rgb_color fHighlightTabColorShadow; 4227f5d579SClemens Zeidler }; 4327f5d579SClemens Zeidler 4427f5d579SClemens Zeidler 4527f5d579SClemens Zeidler class SATWindowBehaviour : public DefaultWindowBehaviour { 4627f5d579SClemens Zeidler public: 4727f5d579SClemens Zeidler SATWindowBehaviour(Window* window, 4827f5d579SClemens Zeidler StackAndTile* sat); 4927f5d579SClemens Zeidler 5027f5d579SClemens Zeidler protected: 5127f5d579SClemens Zeidler virtual bool AlterDeltaForSnap(Window* window, BPoint& delta, 5227f5d579SClemens Zeidler bigtime_t now); 5327f5d579SClemens Zeidler 5427f5d579SClemens Zeidler private: 5527f5d579SClemens Zeidler StackAndTile* fStackAndTile; 5627f5d579SClemens Zeidler }; 5727f5d579SClemens Zeidler 5827f5d579SClemens Zeidler 5927f5d579SClemens Zeidler #endif 60