aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_devices/widgetStyle.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_devices/widgetStyle.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Plugins/Library/ml_devices/widgetStyle.h')
-rw-r--r--Src/Plugins/Library/ml_devices/widgetStyle.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_devices/widgetStyle.h b/Src/Plugins/Library/ml_devices/widgetStyle.h
new file mode 100644
index 00000000..bb2a010a
--- /dev/null
+++ b/Src/Plugins/Library/ml_devices/widgetStyle.h
@@ -0,0 +1,159 @@
+#ifndef _NULLSOFT_WINAMP_ML_DEVICES_WIDGETSTYLE_HEADER
+#define _NULLSOFT_WINAMP_ML_DEVICES_WIDGETSTYLE_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#include <wtypes.h>
+
+typedef struct WidgetStyle WidgetStyle;
+typedef enum WidgetStyleFlags WidgetStyleFlags;
+typedef enum WidgetStyleAssignFlags WidgetStyleAssignFlags;
+
+enum WidgetStyleFlags
+{
+ WIDGETSTYLE_OWN_TEXT_FONT = (1 << 0),
+ WIDGETSTYLE_OWN_TITLE_FONT = (1 << 1),
+ WIDGETSTYLE_OWN_CATEGORY_FONT = (1 << 2),
+ WIDGETSTYLE_OWN_BACK_BRUSH = (1 << 3),
+ WIDGETSTYLE_OWN_CATEGORY_BRUSH = (1 << 4),
+};
+DEFINE_ENUM_FLAG_OPERATORS(WidgetStyleFlags);
+
+enum WidgetStyleAssignFlags
+{
+ WIDGETSTYLE_LINK_OBJECT = 0,
+ WIDGETSTYLE_COPY_OBJECT = (1 << 0),
+ WIDGETSTYLE_OWN_OBJECT = (1 << 1),
+};
+DEFINE_ENUM_FLAG_OPERATORS(WidgetStyleAssignFlags);
+
+
+struct WidgetStyle
+{
+ WidgetStyleFlags flags;
+ HFONT textFont;
+ HFONT titleFont;
+ HFONT categoryFont;
+ HBRUSH backBrush;
+ HBRUSH categoryBrush;
+ COLORREF titleColor;
+ COLORREF textColor;
+ COLORREF backColor;
+ COLORREF borderColor;
+ COLORREF imageBackColor;
+ COLORREF imageFrontColor;
+ COLORREF selectBackColor;
+ COLORREF selectFrontColor;
+ COLORREF inactiveSelectBackColor;
+ COLORREF inactiveSelectFrontColor;
+ COLORREF categoryTextColor;
+ COLORREF categoryLineColor;
+ COLORREF categoryBackColor;
+ COLORREF categoryEmptyTextColor;
+ COLORREF textEditorBorderColor;
+ SIZE unitSize;
+};
+
+#define DLU_TO_PX_VALIDATE_MIN(_value, _dlu, _min)\
+ {if (0 != (_dlu) && ((_value) < (_min))) (_value) = (_min);}
+
+#define WIDGETSTYLE_DLU_TO_HORZ_PX(_style, _dlu) MulDiv((_dlu), ((WidgetStyle*)(_style))->unitSize.cx, 4)
+#define WIDGETSTYLE_DLU_TO_VERT_PX(_style, _dlu) MulDiv((_dlu), ((WidgetStyle*)(_style))->unitSize.cy, 8)
+
+#define WIDGETSTYLE_DLU_TO_HORZ_PX_MIN(_value, _style, _dlu, _min)\
+ {_value = WIDGETSTYLE_DLU_TO_HORZ_PX(_style, _dlu); DLU_TO_PX_VALIDATE_MIN(_value, _dlu, _min);}
+
+#define WIDGETSTYLE_DLU_TO_VERT_PX_MIN(_value, _style, _dlu, _min)\
+ {_value = WIDGETSTYLE_DLU_TO_VERT_PX(_style, _dlu); DLU_TO_PX_VALIDATE_MIN(_value, _dlu, _min);}
+
+#define WIDGETSTYLE_TITLE_FONT(_style) (((WidgetStyle*)(_style))->titleFont)
+#define WIDGETSTYLE_TEXT_FONT(_style) (((WidgetStyle*)(_style))->textFont)
+#define WIDGETSTYLE_CATEGORY_FONT(_style) (((WidgetStyle*)(_style))->categoryFont)
+#define WIDGETSTYLE_BACK_BRUSH(_style) (((WidgetStyle*)(_style))->backBrush)
+#define WIDGETSTYLE_CATEGORY_BRUSH(_style) (((WidgetStyle*)(_style))->categoryBrush)
+#define WIDGETSTYLE_TITLE_COLOR(_style) (((WidgetStyle*)(_style))->titleColor)
+#define WIDGETSTYLE_TEXT_COLOR(_style) (((WidgetStyle*)(_style))->textColor)
+#define WIDGETSTYLE_BACK_COLOR(_style) (((WidgetStyle*)(_style))->backColor)
+#define WIDGETSTYLE_BORDER_COLOR(_style) (((WidgetStyle*)(_style))->borderColor)
+#define WIDGETSTYLE_IMAGE_BACK_COLOR(_style) (((WidgetStyle*)(_style))->imageBackColor)
+#define WIDGETSTYLE_IMAGE_FRONT_COLOR(_style) (((WidgetStyle*)(_style))->imageFrontColor)
+#define WIDGETSTYLE_SELECT_BACK_COLOR(_style) (((WidgetStyle*)(_style))->selectBackColor)
+#define WIDGETSTYLE_SELECT_FRONT_COLOR(_style) (((WidgetStyle*)(_style))->selectFrontColor)
+#define WIDGETSTYLE_INACTIVE_SELECT_BACK_COLOR(_style) (((WidgetStyle*)(_style))->inactiveSelectBackColor)
+#define WIDGETSTYLE_INACTIVE_SELECT_FRONT_COLOR(_style) (((WidgetStyle*)(_style))->inactiveSelectFrontColor)
+#define WIDGETSTYLE_CATEGORY_TEXT_COLOR(_style) (((WidgetStyle*)(_style))->categoryTextColor)
+#define WIDGETSTYLE_CATEGORY_BACK_COLOR(_style) (((WidgetStyle*)(_style))->categoryBackColor)
+#define WIDGETSTYLE_CATEGORY_LINE_COLOR(_style) (((WidgetStyle*)(_style))->categoryLineColor)
+#define WIDGETSTYLE_CATEGORY_EMPTY_TEXT_COLOR(_style) (((WidgetStyle*)(_style))->categoryEmptyTextColor)
+#define WIDGETSTYLE_TEXT_EDITOR_BORDER_COLOR(_style) (((WidgetStyle*)(_style))->textEditorBorderColor)
+#define WIDGETSTYLE_SET_UNIT_SIZE(_style, _width, _height)\
+ {(((WidgetStyle*)(_style))->unitSize).cx = _width;\
+ (((WidgetStyle*)(_style))->unitSize).cy = _height;}
+
+#define WIDGETSTYLE_SET_TITLE_FONT(_style, _font, _flags)\
+ WidgetStyle_SetTitleFont(((WidgetStyle*)(_style)), (_font), (_flags))
+#define WIDGETSTYLE_SET_TEXT_FONT(_style, _font, _flags)\
+ WidgetStyle_SetTextFont(((WidgetStyle*)(_style)), (_font), (_flags))
+#define WIDGETSTYLE_SET_CATEGORY_FONT(_style, _font, _flags)\
+ WidgetStyle_SetCategoryFont(((WidgetStyle*)(_style)), (_font), (_flags))
+#define WIDGETSTYLE_SET_BACK_BRUSH(_style, _brush, _flags)\
+ WidgetStyle_SetBackBrush(((WidgetStyle*)(_style)), (_brush), (_flags))
+#define WIDGETSTYLE_SET_CATEGORY_BRUSH(_style, _brush, _flags)\
+ WidgetStyle_SetCategoryBrush(((WidgetStyle*)(_style)), (_brush), (_flags))
+
+#define WIDGETSTYLE_SET_TITLE_COLOR(_style, _color) (((WidgetStyle*)(_style))->titleColor = (_color))
+#define WIDGETSTYLE_SET_TEXT_COLOR(_style, _color) (((WidgetStyle*)(_style))->textColor = (_color))
+#define WIDGETSTYLE_SET_BACK_COLOR(_style, _color) (((WidgetStyle*)(_style))->backColor = (_color))
+#define WIDGETSTYLE_SET_BORDER_COLOR(_style, _color) (((WidgetStyle*)(_style))->borderColor = (_color))
+#define WIDGETSTYLE_SET_IMAGE_BACK_COLOR(_style, _color) (((WidgetStyle*)(_style))->imageBackColor = (_color))
+#define WIDGETSTYLE_SET_IMAGE_FRONT_COLOR(_style, _color) (((WidgetStyle*)(_style))->imageFrontColor = (_color))
+#define WIDGETSTYLE_SET_SELECT_BACK_COLOR(_style, _color) (((WidgetStyle*)(_style))->selectBackColor = (_color))
+#define WIDGETSTYLE_SET_SELECT_FRONT_COLOR(_style, _color) (((WidgetStyle*)(_style))->selectFrontColor = (_color))
+#define WIDGETSTYLE_SET_INACTIVE_SELECT_BACK_COLOR(_style, _color) (((WidgetStyle*)(_style))->inactiveSelectBackColor = (_color))
+#define WIDGETSTYLE_SET_INACTIVE_SELECT_FRONT_COLOR(_style, _color) (((WidgetStyle*)(_style))->inactiveSelectFrontColor = (_color))
+#define WIDGETSTYLE_SET_CATEGORY_TEXT_COLOR(_style, _color) (((WidgetStyle*)(_style))->categoryTextColor = (_color))
+#define WIDGETSTYLE_SET_CATEGORY_BACK_COLOR(_style, _color) (((WidgetStyle*)(_style))->categoryBackColor = (_color))
+#define WIDGETSTYLE_SET_CATEGORY_LINE_COLOR(_style, _color) (((WidgetStyle*)(_style))->categoryLineColor = (_color))
+#define WIDGETSTYLE_SET_CATEGORY_EMPTY_TEXT_COLOR(_style, _color) (((WidgetStyle*)(_style))->categoryEmptyTextColor = (_color))
+#define WIDGETSTYLE_SET_TEXT_EDITOR_BORDER_COLOR(_style, _color) (((WidgetStyle*)(_style))->textEditorBorderColor = (_color))
+void
+WidgetStyle_Free(WidgetStyle *self);
+
+BOOL
+WidgetStyle_SetBackBrush(WidgetStyle *self,
+ HBRUSH brush,
+ WidgetStyleAssignFlags flags);
+
+BOOL
+WidgetStyle_SetCategoryBrush(WidgetStyle *self,
+ HBRUSH brush,
+ WidgetStyleAssignFlags flags);
+
+BOOL
+WidgetStyle_SetTextFont(WidgetStyle *self,
+ HFONT font,
+ WidgetStyleAssignFlags flags);
+
+BOOL
+WidgetStyle_SetTitleFont(WidgetStyle *self,
+ HFONT font,
+ WidgetStyleAssignFlags flags);
+
+BOOL
+WidgetStyle_SetCategoryFont(WidgetStyle *self,
+ HFONT font,
+ WidgetStyleAssignFlags flags);
+
+BOOL
+WidgetStyle_UpdateDefaultColors(WidgetStyle *style);
+
+BOOL
+WidgetStyle_UpdateDefaultFonts(WidgetStyle *style,
+ HFONT baseFont,
+ long unitWidth,
+ long unitHeight);
+
+
+#endif //_NULLSOFT_WINAMP_ML_DEVICES_WIDGETSTYLE_HEADER