aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/config/uioptions.cpp
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/Wasabi/api/config/uioptions.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Wasabi/api/config/uioptions.cpp')
-rw-r--r--Src/Wasabi/api/config/uioptions.cpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/Src/Wasabi/api/config/uioptions.cpp b/Src/Wasabi/api/config/uioptions.cpp
new file mode 100644
index 00000000..0ccc33f7
--- /dev/null
+++ b/Src/Wasabi/api/config/uioptions.cpp
@@ -0,0 +1,109 @@
+#include <precomp.h>
+
+#include "uioptions.h"
+
+#include <api/wndmgr/layout.h>
+
+#include <api/config/items/attribs.h>
+#include <api/config/items/attrcb.h>
+
+#include <api/skin/skinparse.h>
+#include <api/wndmgr/alphamgr.h>
+
+// {9149C445-3C30-4e04-8433-5A518ED0FDDE}
+const GUID uioptions_guid =
+{ 0x9149c445, 0x3c30, 0x4e04, { 0x84, 0x33, 0x5a, 0x51, 0x8e, 0xd0, 0xfd, 0xde } };
+
+_bool cfg_uioptions_desktopalpha(L"Enable desktop alpha", DEFAULT_DESKTOPALPHA);
+_bool cfg_uioptions_linkratio(L"Link layouts scale", DEFAULT_LINKLAYOUTSCALE);
+_bool cfg_uioptions_linkalpha(L"Link layouts alpha", DEFAULT_LINKLAYOUTSALPHA);
+_bool cfg_uioptions_linkallalpha(L"Link All layouts alpha", DEFAULT_LINKALLALPHA);
+_bool cfg_uioptions_linkallratio(L"Link All layouts scale", DEFAULT_LINKALLRATIO);
+_int cfg_uioptions_linkedalpha(L"Linked layouts alpha", DEFAULT_LINKEDALPHA);
+_int cfg_uioptions_autoopacitytime(L"Auto Opacity hold time", DEFAULT_AUTOOPACITYTIME);
+_int cfg_uioptions_autoopacityfadein(L"Auto Opacity fade in time", DEFAULT_AUTOOPACITYFADEIN);
+_int cfg_uioptions_autoopacityfadeout(L"Auto Opacity fade out time", DEFAULT_AUTOOPACITYFADEOUT);
+_int cfg_uioptions_autoopacitylinked(L"Use Auto Opacity", DEFAULT_AUTOOPACITYTYPE);
+_int cfg_uioptions_extendautoopacity(L"Auto Opacity extend by", DEFAULT_EXTENDAUTOOPACITY);
+_bool cfg_uioptions_uselocks(L"Use layout scale locks", DEFAULT_USERATIOLOCKS);
+_int cfg_uioptions_timerresolution(L"Multiplexed timers resolution", DEFAULT_TIMERRESOLUTION);
+_bool cfg_uioptions_tooltips(L"Enable tooltips", DEFAULT_TOOLTIPS);
+_float cfg_uioptions_textspeed(L"Text Ticker Speed", DEFAULT_TEXTSPEED);
+_int cfg_uioptions_textincrement(L"Text Ticker Increment", DEFAULT_TEXTINCREMENT);
+_int cfg_uioptions_appbarshidetime(L"Appbar Hide Time", DEFAULT_APPBARHIDETIME);
+_int cfg_uioptions_appbarsshowtime(L"Appbar Show Time", DEFAULT_APPBARSHOWTIME);
+
+void onSetOpacityTime(int n) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setHoldTime(n);
+}
+
+void onSetOpacityFadeIn(int n) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setFadeInTime(n);
+}
+
+void onSetOpacityFadeOut(int n) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setFadeOutTime(n);
+}
+
+void onSetAllRatio(int on) {
+ if (on) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->setRenderRatio(l->getRenderRatio());
+ }
+}
+
+void onSetAllAlpha(int on) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setAllLinked(on);
+}
+
+void onSetLinkedAlpha(int a) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setGlobalAlpha(a);
+}
+
+void onSetLinkedAuto100(int v) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setAutoOpacify(v);
+}
+
+void onSetExtendAutoOpacity(int v) {
+ Layout *l = SkinParser::getMainLayout();
+ if (l) l->getAlphaMgr()->setExtendAutoOpacity(v);
+}
+
+UIOptions::UIOptions(const wchar_t *name) : CfgItemI(name ? name : L"Skins and UI Tweaks", uioptions_guid)
+{
+ registerAttribute(&cfg_uioptions_linkratio);
+ registerAttribute(&cfg_uioptions_linkalpha);
+ registerAttribute(&cfg_uioptions_uselocks);
+ registerAttribute(&cfg_uioptions_autoopacitylinked, new int_attrCB(onSetLinkedAuto100));
+ registerAttribute(&cfg_uioptions_linkallratio, new int_attrCB(onSetAllRatio));
+ registerAttribute(&cfg_uioptions_linkallalpha, new int_attrCB(onSetAllAlpha));
+ registerAttribute(&cfg_uioptions_desktopalpha, new int_attrCB(Layout::onGlobalEnableDesktopAlpha));
+ registerAttribute(&cfg_uioptions_linkedalpha, new int_attrCB(onSetLinkedAlpha));
+ registerAttribute(&cfg_uioptions_tooltips);
+ registerAttribute(&cfg_uioptions_timerresolution);
+ registerAttribute(&cfg_uioptions_textspeed);
+ registerAttribute(&cfg_uioptions_textincrement);
+ registerAttribute(&cfg_uioptions_appbarshidetime);
+ registerAttribute(&cfg_uioptions_appbarsshowtime);
+ registerAttribute(&cfg_uioptions_autoopacitytime, new int_attrCB(onSetOpacityTime));
+ registerAttribute(&cfg_uioptions_autoopacityfadein, new int_attrCB(onSetOpacityFadeIn));
+ registerAttribute(&cfg_uioptions_autoopacityfadeout, new int_attrCB(onSetOpacityFadeOut));
+ registerAttribute(&cfg_uioptions_extendautoopacity, new int_attrCB(onSetExtendAutoOpacity));
+ registerAttribute(new _int(L"Timer refresh rate", 30), new int_attrCB(onTimerRefreshRate));
+ registerAttribute(new _int(L"Popup menu alpha", 240));
+ registerAttribute(new _int(L"Spectrum analyzer mode",1));
+}
+
+void UIOptions::onTimerRefreshRate(int rate) {
+ if(rate==0 || rate<9 || rate>70) return;
+ int res=1000/rate;
+ CfgItem *ci=WASABI_API_CONFIG->config_getCfgItemByGuid(uioptions_guid);
+ if(!ci) return;
+ ci->setDataAsInt(L"Multiplexed timers resolution",res);
+}