diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_devices/widgetStyle.h | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-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.h | 159 |
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 |