mirror of
https://github.com/aseprite/aseprite.git
synced 2024-10-05 14:29:45 +00:00
92 lines
2.5 KiB
C++
92 lines
2.5 KiB
C++
// Aseprite UI Library
|
|
// Copyright (C) 2001-2013 David Capello
|
|
//
|
|
// This file is released under the terms of the MIT license.
|
|
// Read LICENSE.txt for more information.
|
|
|
|
#ifndef UI_THEME_H_INCLUDED
|
|
#define UI_THEME_H_INCLUDED
|
|
#pragma once
|
|
|
|
#include "ui/base.h"
|
|
#include "ui/cursor_type.h"
|
|
|
|
namespace gfx {
|
|
class Region;
|
|
}
|
|
|
|
namespace she {
|
|
class Font;
|
|
}
|
|
|
|
namespace ui {
|
|
|
|
class Cursor;
|
|
class PaintEvent;
|
|
class Widget;
|
|
|
|
class Theme
|
|
{
|
|
public:
|
|
const char* name;
|
|
she::Font* default_font;
|
|
int scrollbar_size;
|
|
int guiscale;
|
|
|
|
Theme();
|
|
virtual ~Theme();
|
|
|
|
void regenerate();
|
|
|
|
virtual Cursor* getCursor(CursorType type) = 0;
|
|
virtual void initWidget(Widget* widget) = 0;
|
|
virtual void getWindowMask(Widget* widget, gfx::Region& region) = 0;
|
|
virtual void setDecorativeWidgetBounds(Widget* widget) = 0;
|
|
|
|
virtual void paintDesktop(PaintEvent& ev) = 0;
|
|
virtual void paintBox(PaintEvent& ev) = 0;
|
|
virtual void paintButton(PaintEvent& ev) = 0;
|
|
virtual void paintCheckBox(PaintEvent& ev) = 0;
|
|
virtual void paintEntry(PaintEvent& ev) = 0;
|
|
virtual void paintGrid(PaintEvent& ev) = 0;
|
|
virtual void paintLabel(PaintEvent& ev) = 0;
|
|
virtual void paintLinkLabel(PaintEvent& ev) = 0;
|
|
virtual void paintListBox(PaintEvent& ev) = 0;
|
|
virtual void paintListItem(PaintEvent& ev) = 0;
|
|
virtual void paintMenu(PaintEvent& ev) = 0;
|
|
virtual void paintMenuItem(PaintEvent& ev) = 0;
|
|
virtual void paintSplitter(PaintEvent& ev) = 0;
|
|
virtual void paintRadioButton(PaintEvent& ev) = 0;
|
|
virtual void paintSeparator(PaintEvent& ev) = 0;
|
|
virtual void paintSlider(PaintEvent& ev) = 0;
|
|
virtual void paintComboBoxEntry(PaintEvent& ev) = 0;
|
|
virtual void paintComboBoxButton(PaintEvent& ev) = 0;
|
|
virtual void paintTextBox(PaintEvent& ev) = 0;
|
|
virtual void paintView(PaintEvent& ev) = 0;
|
|
virtual void paintViewScrollbar(PaintEvent& ev) = 0;
|
|
virtual void paintViewViewport(PaintEvent& ev) = 0;
|
|
virtual void paintWindow(PaintEvent& ev) = 0;
|
|
virtual void paintPopupWindow(PaintEvent& ev) = 0;
|
|
virtual void paintTooltip(PaintEvent& ev) = 0;
|
|
|
|
protected:
|
|
virtual void onRegenerate() = 0;
|
|
};
|
|
|
|
namespace CurrentTheme
|
|
{
|
|
void set(Theme* theme);
|
|
Theme* get();
|
|
}
|
|
|
|
// This value is a factor to multiply every screen size/coordinate.
|
|
// Every icon/graphics/font should be scaled to this factor.
|
|
inline int jguiscale()
|
|
{
|
|
return CurrentTheme::get() ? CurrentTheme::get()->guiscale: 1;
|
|
}
|
|
|
|
} // namespace ui
|
|
|
|
#endif
|