summaryrefslogtreecommitdiffstats
path: root/vcl/inc/WidgetThemeLibrary.hxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vcl/inc/WidgetThemeLibrary.hxx159
1 files changed, 159 insertions, 0 deletions
diff --git a/vcl/inc/WidgetThemeLibrary.hxx b/vcl/inc/WidgetThemeLibrary.hxx
new file mode 100644
index 000000000..ace74a49a
--- /dev/null
+++ b/vcl/inc/WidgetThemeLibrary.hxx
@@ -0,0 +1,159 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_INC_WIDGETTHEME_HXX
+#define INCLUDED_VCL_INC_WIDGETTHEME_HXX
+
+#include <cstdint>
+
+namespace vcl
+{
+struct WidgetDrawStyle
+{
+ uint32_t nSize;
+ uint32_t maFaceColor;
+ uint32_t maCheckedColor;
+ uint32_t maLightColor;
+ uint32_t maLightBorderColor;
+ uint32_t maShadowColor;
+ uint32_t maDarkShadowColor;
+ uint32_t maDefaultButtonTextColor;
+ uint32_t maButtonTextColor;
+ uint32_t maDefaultActionButtonTextColor;
+ uint32_t maActionButtonTextColor;
+ uint32_t maFlatButtonTextColor;
+ uint32_t maDefaultButtonRolloverTextColor;
+ uint32_t maButtonRolloverTextColor;
+ uint32_t maDefaultActionButtonRolloverTextColor;
+ uint32_t maActionButtonRolloverTextColor;
+ uint32_t maFlatButtonRolloverTextColor;
+ uint32_t maDefaultButtonPressedRolloverTextColor;
+ uint32_t maButtonPressedRolloverTextColor;
+ uint32_t maDefaultActionButtonPressedRolloverTextColor;
+ uint32_t maActionButtonPressedRolloverTextColor;
+ uint32_t maFlatButtonPressedRolloverTextColor;
+ uint32_t maRadioCheckTextColor;
+ uint32_t maGroupTextColor;
+ uint32_t maLabelTextColor;
+ uint32_t maWindowColor;
+ uint32_t maWindowTextColor;
+ uint32_t maDialogColor;
+ uint32_t maDialogTextColor;
+ uint32_t maWorkspaceColor;
+ uint32_t maMonoColor;
+ uint32_t maFieldColor;
+ uint32_t maFieldTextColor;
+ uint32_t maFieldRolloverTextColor;
+ uint32_t maActiveColor;
+ uint32_t maActiveTextColor;
+ uint32_t maActiveBorderColor;
+ uint32_t maDeactiveColor;
+ uint32_t maDeactiveTextColor;
+ uint32_t maDeactiveBorderColor;
+ uint32_t maMenuColor;
+ uint32_t maMenuBarColor;
+ uint32_t maMenuBarRolloverColor;
+ uint32_t maMenuBorderColor;
+ uint32_t maMenuTextColor;
+ uint32_t maMenuBarTextColor;
+ uint32_t maMenuBarRolloverTextColor;
+ uint32_t maMenuBarHighlightTextColor;
+ uint32_t maMenuHighlightColor;
+ uint32_t maMenuHighlightTextColor;
+ uint32_t maHighlightColor;
+ uint32_t maHighlightTextColor;
+ uint32_t maActiveTabColor;
+ uint32_t maInactiveTabColor;
+ uint32_t maTabTextColor;
+ uint32_t maTabRolloverTextColor;
+ uint32_t maTabHighlightTextColor;
+ uint32_t maDisableColor;
+ uint32_t maHelpColor;
+ uint32_t maHelpTextColor;
+ uint32_t maLinkColor;
+ uint32_t maVisitedLinkColor;
+ uint32_t maToolTextColor;
+ uint32_t maFontColor;
+};
+
+struct ControlDrawParameters
+{
+ typedef struct _cairo cairo_t;
+ ControlDrawParameters(cairo_t* i_pCairo, ControlPart i_ePart, ControlState i_eState)
+ : nSize(sizeof(ControlDrawParameters))
+ , pCairo(i_pCairo)
+ , ePart(i_ePart)
+ , eState(i_eState)
+ , eButtonValue(ButtonValue::DontKnow)
+ , bIsAction(false)
+ , nValue(0)
+ {
+ }
+
+ uint32_t nSize;
+ cairo_t* pCairo;
+ ControlPart ePart;
+ ControlState eState;
+ ButtonValue eButtonValue;
+ bool bIsAction;
+ int64_t nValue;
+};
+
+typedef struct WidgetThemeLibrary_t WidgetThemeLibrary;
+
+typedef struct _rectangle
+{
+ long x, y;
+ long width, height;
+} rectangle_t;
+
+struct WidgetThemeLibrary_t
+{
+ uint32_t nSize;
+
+ bool (*isNativeControlSupported)(ControlType eType, ControlPart ePart);
+ bool (*getRegion)(ControlType eType, ControlPart ePart, ControlState eState,
+ const rectangle_t& rBoundingControlRegion, rectangle_t& rNativeBoundingRegion,
+ rectangle_t& rNativeContentRegion);
+
+ bool (*drawPushButton)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawRadiobutton)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawCheckbox)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawCombobox)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawEditbox)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawScrollbar)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawSpinButtons)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawSpinbox)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawTabItem)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawTabPane)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawTabHeader)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawTabBody)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawSlider)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawFixedline)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawToolbar)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawProgress)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawWindowsBackground)(ControlDrawParameters const& rParameters, long nWidth,
+ long nHeight);
+ bool (*drawListbox)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawFrame)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawListNode)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawListNet)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+ bool (*drawListHeader)(ControlDrawParameters const& rParameters, long nWidth, long nHeight);
+
+ bool (*updateSettings)(WidgetDrawStyle& rStyle);
+};
+
+extern "C" vcl::WidgetThemeLibrary* CreateWidgetThemeLibrary();
+
+} // end vcl namespace
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */