1/* 2 * Copyright 2001-2020 Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Stephan A��mus, superstippi@gmx.de 7 * DarkWyrm, bpmagic@columbus.rr.com 8 * Ryan Leavengood, leavengood@gmail.com 9 * Philippe Saint-Pierre, stpere@gmail.com 10 * John Scipione, jscipione@gmail.com 11 * Ingo Weinhold, ingo_weinhold@gmx.de 12 * Clemens Zeidler, haiku@clemens-zeidler.de 13 * Joseph Groover, looncraz@looncraz.net 14 * Tri-Edge AI 15 * Jacob Secunda, secundja@gmail.com 16 */ 17#ifndef DEFAULT_DECORATOR_H 18#define DEFAULT_DECORATOR_H 19 20 21#include "TabDecorator.h" 22 23 24class Desktop; 25class ServerBitmap; 26 27 28class DefaultDecorator: public TabDecorator { 29public: 30 DefaultDecorator(DesktopSettings& settings, 31 BRect frame, Desktop* desktop); 32 virtual ~DefaultDecorator(); 33 34 virtual void GetComponentColors(Component component, 35 uint8 highlight, ComponentColors _colors, 36 Decorator::Tab* tab = NULL); 37 38 virtual void UpdateColors(DesktopSettings& settings); 39 40protected: 41 virtual void _DrawFrame(BRect rect); 42 43 virtual void _DrawTab(Decorator::Tab* tab, BRect r); 44 virtual void _DrawTitle(Decorator::Tab* tab, BRect r); 45 virtual void _DrawClose(Decorator::Tab* tab, bool direct, 46 BRect rect); 47 virtual void _DrawZoom(Decorator::Tab* tab, bool direct, 48 BRect rect); 49 virtual void _DrawMinimize(Decorator::Tab* tab, bool direct, 50 BRect rect); 51 virtual void _DrawResizeKnob(BRect r, bool full, 52 const ComponentColors& color); 53 54private: 55 void _DrawButtonBitmap(ServerBitmap* bitmap, 56 bool direct, BRect rect); 57 void _DrawBlendedRect(DrawingEngine *engine, 58 const BRect rect, bool down, 59 const ComponentColors& colors); 60 ServerBitmap* _GetBitmapForButton(Decorator::Tab* tab, 61 Component item, bool down, int32 width, 62 int32 height); 63 64 void _GetComponentColors(Component component, 65 ComponentColors _colors, 66 Decorator::Tab* tab = NULL); 67}; 68 69 70#endif // DEFAULT_DECORATOR_H 71