/*
The text box widget was contributed by Christian Schueller.
NanoGUI was developed by Wenzel Jakob <wenzel.jakob@epfl.ch>.
The widget drawing code is based on the NanoVG demo application
by Mikko Mononen.
All rights reserved. Use of this source code is governed by a
BSD-style license that can be found in the LICENSE.txt file.
*/
#pragma once
#include <nanogui/common.h>
#include <nanogui/object.h>
NAMESPACE_BEGIN(nanogui)
class NANOGUI_EXPORT Theme : public Object {
public:
Theme(NVGcontext *ctx);
/* Fonts */
int mFontNormal;
int mFontBold;
int mFontIcons;
float mIconScale;
/* Spacing-related parameters */
int mStandardFontSize;
int mButtonFontSize;
int mTextBoxFontSize;
int mWindowCornerRadius;
int mWindowHeaderHeight;
int mWindowDropShadowSize;
int mButtonCornerRadius;
float mTabBorderWidth;
int mTabInnerMargin;
int mTabMinButtonWidth;
int mTabMaxButtonWidth;
int mTabControlWidth;
int mTabButtonHorizontalPadding;
int mTabButtonVerticalPadding;
/* Generic colors */
Color mDropShadow;
Color mTransparent;
Color mBorderDark;
Color mBorderLight;
Color mBorderMedium;
Color mTextColor;
Color mDisabledTextColor;
Color mTextColorShadow;
Color mIconColor;
/* Button colors */
Color mButtonGradientTopFocused;
Color mButtonGradientBotFocused;
Color mButtonGradientTopUnfocused;
Color mButtonGradientBotUnfocused;
Color mButtonGradientTopPushed;
Color mButtonGradientBotPushed;
/* Window colors */
Color mWindowFillUnfocused;
Color mWindowFillFocused;
Color mWindowTitleUnfocused;
Color mWindowTitleFocused;
Color mWindowHeaderGradientTop;
Color mWindowHeaderGradientBot;
Color mWindowHeaderSepTop;
Color mWindowHeaderSepBot;
Color mWindowPopup;
Color mWindowPopupTransparent;
int mCheckBoxIcon;
int mMessageInformationIcon;
int mMessageQuestionIcon;
int mMessageWarningIcon;
int mMessageAltButtonIcon;
int mMessagePrimaryButtonIcon;
int mPopupChevronRightIcon;
int mPopupChevronLeftIcon;
int mTabHeaderLeftIcon;
int mTabHeaderRightIcon;
int mTextBoxUpIcon;
int mTextBoxDownIcon;
protected:
virtual ~Theme() { };
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
};
NAMESPACE_END(nanogui)