* Copyright 2001-2020 Haiku, Inc.
* Distributed under the terms of the MIT License.
*
* Authors:
* Stephan Aßmus, superstippi@gmx.de
* DarkWyrm, bpmagic@columbus.rr.com
* Ryan Leavengood, leavengood@gmail.com
* Philippe Saint-Pierre, stpere@gmail.com
* John Scipione, jscipione@gmail.com
* Ingo Weinhold, ingo_weinhold@gmx.de
* Clemens Zeidler, haiku@clemens-zeidler.de
* Joseph Groover, looncraz@looncraz.net
* Tri-Edge AI
* Jacob Secunda, secundja@gmail.com
*/
#ifndef DEFAULT_DECORATOR_H
#define DEFAULT_DECORATOR_H
#include "TabDecorator.h"
class Desktop;
class ServerBitmap;
class DefaultDecorator: public TabDecorator {
public:
DefaultDecorator(DesktopSettings& settings,
BRect frame, Desktop* desktop);
virtual ~DefaultDecorator();
virtual void GetComponentColors(Component component,
uint8 highlight, ComponentColors _colors,
Decorator::Tab* tab = NULL);
virtual void UpdateColors(DesktopSettings& settings);
protected:
virtual void _DrawFrame(BRect rect);
virtual void _DrawTab(Decorator::Tab* tab, BRect r);
virtual void _DrawTitle(Decorator::Tab* tab, BRect r);
virtual void _DrawClose(Decorator::Tab* tab, bool direct,
BRect rect);
virtual void _DrawZoom(Decorator::Tab* tab, bool direct,
BRect rect);
virtual void _DrawMinimize(Decorator::Tab* tab, bool direct,
BRect rect);
virtual void _DrawResizeKnob(BRect r, bool full,
const ComponentColors& color);
private:
void _DrawButtonBitmap(ServerBitmap* bitmap,
bool direct, BRect rect);
void _DrawBlendedRect(DrawingEngine *engine,
const BRect rect, bool down,
const ComponentColors& colors);
ServerBitmap* _GetBitmapForButton(Decorator::Tab* tab,
Component item, bool down, int32 width,
int32 height);
void _GetComponentColors(Component component,
ComponentColors _colors,
Decorator::Tab* tab = NULL);
};
#endif