123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661 |
- #include <precomp.h>
- #include "alphamgr.h"
- #include <api/wndmgr/layout.h>
- #include <api/skin/skinparse.h>
- #ifdef _WIN32
- #include <tataki/blending/blending.h>
- #endif
- #include <bfc/util/profiler.h>
- #include <bfc/wasabi_std_wnd.h>
- #ifndef PI
- #define PI 3.1415926536
- #endif
- #define ALPHAMGR_HOVERCHECK 100
- #define ALPHAMGR_UPDATEALPHA 200
- AlphaMgr::AlphaMgr() {
- overlayout = NULL;
- timerclient_setTimer(ALPHAMGR_HOVERCHECK, 200);
- alllinked = 0;
- autoopacify = 0;
- fast_timer_on = 0;
- big_curtransparency = 0;
- big_status = STATUS_UNKNOWN;
- big_startalpha = 0;
- big_lasttimein = 0;
- extend_px = 0;
- global_alpha = 0;
- big_enterleave_time = 0;
- fadein_ms = 1;
- fadeout_ms = 1;
- holdtime_ms = 1;
- }
- AlphaMgr::~AlphaMgr()
- {
- timerclient_killTimer(ALPHAMGR_HOVERCHECK);
- }
- void AlphaMgr::addLayout(Layout *l)
- {
- checkTimer();
- if (layouts.findItem((const wchar_t *)l))
- return;
- layouts.addItem(new AlphaMgrEntry(l));
- }
- void AlphaMgr::removeLayout(Layout *l) {
- int p=-1;
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l, &p);
- if (p != -1) {
- if (e->getStatus() == STATUS_IN_FADINGON || e->getStatus() == STATUS_IN_ON) {
- updateInList(e, 0);
- checkTimer();
- }
- layouts.removeByPos(p);
- in_layouts.removeItem(e);
- delete e;
- checkTimer();
- }
- }
- // gets the currently needed transparency, according to layout overrides and global link, and then applies this
- // transparency to the layout, it does not change anything in any data structure, this is only a visual update function
- void AlphaMgr::updateTransparency(Layout *l) {
- if (!l) return;
- if (l->isInited()) {
- if (l->isTransparencySafe()) {
- int a = l->getTransparencyOverride();
- if (a == -1) {
- if (l->getNoParent()!=1) {
- if (a == -1 && hasAutoOpacity(l))
- a = getTransparency(l);
- else if (a == -1 && getAllLinked())
- a = getGlobalAlpha();
- }
- if (a == -1) {
- /* why the hell would it care if it's alllinked if it's an independent window ?? (noparent=1)
- if (getAllLinked())
- a = getGlobalAlpha();
- else
- */
- a = l->getPaintingAlpha();
- }
- }
- l->setTransparency(a);
- } else {
- l->setTransparency(255);
- }
- }
- }
- // returns the alpha value for this slot, that's not necessarily the transparency that should be applied to the layout
- // since overrides & calculations in updateTransparency and getTransparency should apply.
- int AlphaMgr::getAlpha(AlphaMgrEntry *e) {
- if (alllinked && e->getLayout()->getNoParent() != 1) return getGlobalAlpha();
- return e->getLayout()->getAlpha();
- }
- int AlphaMgr::getAlpha(Layout *l) {
- int p=-1;
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l, &p);
- if (p != -1) return getAlpha(e);
- return l->getAlpha();
- }
- int AlphaMgr::getGlobalAlpha() {
- return global_alpha;
- }
- void AlphaMgr::updateAllTransparency() {
- foreach(layouts)
- updateTransparency(layouts.getfor()->getLayout());
- endfor;
- }
- void AlphaMgr::setGlobalAlpha(int a) {
- global_alpha = a;
- updateAllTransparency();
- }
- int AlphaMgr::getCurve(AlphaMgrEntry *e) {
- int n;
- int status = e ? e->getStatus() : getBigStatus();
- if (e == NULL) {
- n = MulDiv(Wasabi::Std::getTickCount()-getBigEnterLeaveTime(),256,status == STATUS_IN_FADINGON ? fadein_ms : fadeout_ms);
- if (n > 255) n = 255; if (n < 0) n = 0;
- } else {
- if (e->getEnterLeaveTime() == -1) return -1;
- n = MulDiv(Wasabi::Std::getTickCount()-e->getEnterLeaveTime(),256,status == STATUS_IN_FADINGON ? fadein_ms : fadeout_ms);
- if (n > 255) n = 255; if (n < 0) n = 0;
- }
- return n;
- }
- // returns the value of the transparency if no override applies, you still need to check overrides (see updatetransparency)
- int AlphaMgr::getTransparency(Layout *l) {
- if (getAutoOpacify())
- l = NULL;
- if (l == NULL) {
- if (getBigStatus() == STATUS_UNKNOWN) {
- setBigStatus(STATUS_OUT_OFF);
- Layout *main = SkinParser::getMainLayout();
- if (main)
- big_curtransparency = main->getTransparency();
- else
- big_curtransparency = 255;
- }
- }
- AlphaMgrEntry *e = NULL;
- if (l) e = layouts.findItem((const wchar_t *)l);
- int s = e ? e->getStatus() : getBigStatus();
- if (e && s == STATUS_UNKNOWN) {
- initStatus(e);
- s = e->getStatus();
- }
- switch (s) {
- case STATUS_IN_OFF: return e ? getAlpha(e) : getGlobalAlpha();
- case STATUS_OUT_OFF: return e ? getAlpha(e) : getGlobalAlpha();
- case STATUS_IN_ON: return 255;
- case STATUS_OUT_FADINGOUT: {
- int n = e ? getCurve(e) : getCurve(NULL);
- float sintrans = (float)(sin(((float)n/255)*PI-PI/2)/2+0.5);
- int na;
- if (e)
- na = (int)(((float)(getAlpha(e) - e->getStartAlpha()) * sintrans) + e->getStartAlpha());
- else
- na = (int)(((float)(getGlobalAlpha() - getBigStartAlpha()) * sintrans) + getBigStartAlpha());
- return na;
- }
- case STATUS_IN_FADINGON: {
- int n = e ? getCurve(e) : getCurve(NULL);
- float sintrans = (float)(sin(((float)n/255)*PI-PI/2)/2+0.5);
- int na;
- if (e)
- na = (int)(((float)(255 - e->getStartAlpha()) * sintrans) + e->getStartAlpha());
- else
- na = (int)(((float)(255 - getBigStartAlpha()) * sintrans) + getBigStartAlpha());
- return na;
- }
- default: return e ? getAlpha(e) : getGlobalAlpha();
- }
- }
- int AlphaMgr::hasAutoOpacityOnHover(Layout *l) {
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l);
- if (e) return hasAutoOpacityOnHover(e);
- return 0;
- }
- int AlphaMgr::hasAutoOpacity(Layout *l) {
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l);
- if (e) return hasAutoOpacity(e);
- return 0;
- }
- int AlphaMgr::hasAutoOpacityOnFocus(Layout *l) {
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l);
- if (e) return hasAutoOpacityOnFocus(e);
- return 0;
- }
- int AlphaMgr::hasAutoOpacityOnFocus(AlphaMgrEntry *e) {
- if (alllinked) return autoopacify == 2;
- return e->getLayout()->getAutoOpacify() == 2 && e->getLayout()->getNoParent() != 1;
- }
- int AlphaMgr::hasAutoOpacityOnHover(AlphaMgrEntry *e) {
- if (alllinked) return autoopacify == 1;
- return e->getLayout()->getAutoOpacify() == 1 && e->getLayout()->getNoParent() != 1;
- }
- int AlphaMgr::hasAutoOpacity(AlphaMgrEntry *e) {
- if (alllinked) return autoopacify;
- return e->getLayout()->getAutoOpacify() && e->getLayout()->getNoParent() != 1;
- }
- // we got a new layout to manage, and its status flags is not set, we should init it to something safe
- void AlphaMgr::initStatus(AlphaMgrEntry *l, int applytransparency) {
- if (isMouseInLayout(l->getLayout())) {
- l->setEnterLeaveTime((uint32_t)-1);
- if (hasAutoOpacity(l)) {
- l->setStatus(STATUS_IN_FADINGON);
- l->onEnterLeave();
- l->setStartAlpha(l->getLayout()->getTransparency());
- checkTimer();
- } else {
- l->setStatus(STATUS_IN_OFF);
- }
- l->getLayout()->onMouseEnterLayout();
- } else {
- if (hasAutoOpacityOnHover(l)) {
- l->setStartAlpha(l->getLayout()->getTransparency());
- l->onEnterLeave();
- l->setStatus(STATUS_OUT_FADINGOUT);
- checkTimer();
- } else {
- l->setStatus(STATUS_OUT_OFF);
- }
- l->getLayout()->onMouseLeaveLayout();
- }
- if (applytransparency) updateTransparency(l->getLayout());
- }
- int AlphaMgr::isPointInLayout(Layout *l, int x, int y, api_region **rgn)
- {
- api_region *rg = NULL;
- if (!l) return 0;
- if (!l->isVisible()) return 0;
- RECT r,r2;
- l->getClientRect(&r);
- if (l->renderRatioActive()) l->multRatio(&r);
- l->getWindowRect(&r2);
- Wasabi::Std::offsetRect(&r, r2.left, r2.top);
- // OffsetRect(&r, r2.left, r2.top);
- if (x < r.left || x > r.right || y < r.top || y > r.bottom) return 0;
- if (rgn) {
- if (!*rgn) {
- rg = l->getComposedRegion();
- *rgn = rg;
- } else {
- rg = *rgn;
- }
- } else {
- rg = l->getComposedRegion();
- }
- if (!rgn) return 1;
- x -= r.left; y -= r.top;
- POINT pt={x,y};
- if (l->renderRatioActive()) l->divRatio((int*)&pt.x, (int*)&pt.y);
- if (l->getComposedRegion()->ptInRegion(&pt)) return 1;
- return 0;
- }
- int AlphaMgr::isFocusInLayout(Layout *l) {
- if (l->gotFocus()) return 1;
- OSWINDOWHANDLE fw = Wasabi::Std::Wnd::getFocus();
- while (fw)
- {
- if (fw == l->gethWnd()) return 1;
- fw = Wasabi::Std::Wnd::getParent(fw);
- }
- return 0;
- }
- int AlphaMgr::isMouseInLayout(Layout *l) {
- int isin = 0;
- if (hasAutoOpacityOnFocus(l)) {
- return isFocusInLayout(l);
- } else {
- int x, y;
- api_region *r = NULL;
- Wasabi::Std::getMousePos(&x, &y);
- isin = isPointInLayout(l, x, y, &r);
- int ext = getExtendAutoOpacity();
- if (!isin && ext > 0) {
- isin = isPointInLayout(l, x-ext, y, &r);
- if (!isin) isin = isPointInLayout(l, x-ext, y-ext, &r);
- if (!isin) isin = isPointInLayout(l, x, y-ext, &r);
- if (!isin) isin = isPointInLayout(l, x+ext, y-ext, &r);
- if (!isin) isin = isPointInLayout(l, x+ext, y, &r);
- if (!isin) isin = isPointInLayout(l, x+ext, y+ext, &r);
- if (!isin) isin = isPointInLayout(l, x, y+ext, &r);
- if (!isin) isin = isPointInLayout(l, x-ext, y+ext, &r);
- if (!isin) isin = isPointInLayout(l, x-ext, y, &r);
- }
- }
- return isin;
- }
- int AlphaMgr::needForcedTransparencyFlag(Layout *l) {
- if (!l->isTransparencySafe()) return 0;
- if (l->isAlphaForced()) return 1;
- if (l->getTransparencyOverride() > 0) return 1; // should not be testing for < 255 here
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l);
- if (hasAutoOpacity(e) && getAlpha(e) < 255) return 1;
- return 0;
- }
- void AlphaMgr::checkTimer() {
- int fading = 0;
- foreach(layouts)
- AlphaMgrEntry *e = layouts.getfor();
- if (e->getStatus() == STATUS_IN_FADINGON || e->getStatus() == STATUS_OUT_FADINGOUT) { fading++; break; }
- endfor;
- if (getAutoOpacify() && getBigStatus() == STATUS_IN_FADINGON || getBigStatus() == STATUS_OUT_FADINGOUT)
- fading++;
- if (fading && !fast_timer_on) {
- timerclient_setTimer(ALPHAMGR_UPDATEALPHA, 20);
- fast_timer_on = 1;
- } else if (!fading && fast_timer_on) {
- timerclient_killTimer(ALPHAMGR_UPDATEALPHA);
- fast_timer_on = 0;
- }
- }
- void AlphaMgr::doEndCheck(AlphaMgrEntry *e) {
- if (getCurve(e) == 255) {
- switch (e ? e->getStatus() : getBigStatus()) {
- case STATUS_IN_FADINGON:
- if (e) e->setStatus(STATUS_IN_ON); else setBigStatus(STATUS_IN_ON);
- break;
- case STATUS_OUT_FADINGOUT:
- if (e) e->setStatus(STATUS_OUT_OFF); else setBigStatus(STATUS_OUT_OFF);
- break;
- }
- checkTimer();
- }
- }
- void AlphaMgr::updateInList(AlphaMgrEntry *e, int isin) {
- if (isin) {
- if (in_layouts.searchItem(e) == -1)
- in_layouts.addItem(e);
- } else {
- in_layouts.removeItem(e);
- }
-
- int big_isin = in_layouts.getNumItems() > 0;
-
- if (getAutoOpacify()) {
- if (big_isin) {
- // mouse is in a layout, autoopacity is on
- switch (getBigStatus()) {
- case STATUS_OUT_OFF:
- case STATUS_OUT_FADINGOUT:
- case STATUS_IN_OFF: {
- setBigStartAlpha(e->getLayout()->getTransparency());
- onBigEnterLeave();
- setBigStatus(STATUS_IN_FADINGON);
- checkTimer();
- break;
- }
- case STATUS_IN_FADINGON:
- doEndCheck(NULL);
- break;
- }
- } else {
- // mouse out of all layouts, autoopacity is on
- switch (getBigStatus()) {
- case STATUS_IN_FADINGON:
- case STATUS_IN_ON: {
- setBigStartAlpha(getTransparency(NULL));
- onBigEnterLeave();
- setBigStatus(STATUS_OUT_FADINGOUT);
- checkTimer();
- break;
- }
- case STATUS_OUT_FADINGOUT:
- doEndCheck(NULL);
- break;
- }
- }
- } else {
- if (big_isin) {
- // mouse is in a layout, no autoopacity
- setBigStatus(STATUS_IN_OFF);
- } else {
- // mouse is out of all layouts, no autoopacity
- setBigStatus(STATUS_OUT_OFF);
- }
- }
- }
- int AlphaMgr::isFocusingExternalWindow()
- {
- OSWINDOWHANDLE fw = Wasabi::Std::Wnd::getFocus();
- if (isOurExternalWindow(fw)) return 1;
- return 0;
- }
- int AlphaMgr::isOverExternalWindow()
- {
- int x, y;
- Wasabi::Std::getMousePos(&x, &y);
- int ext = getExtendAutoOpacity();
- POINT pt;
- pt.x = x; pt.y = y;
- OSWINDOWHANDLE w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x-ext; pt.y = y-ext;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x; pt.y = y-ext;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x+ext; pt.y = y-ext;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x+ext; pt.y = y;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x+ext; pt.y = y+ext;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x; pt.y = y+ext;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x-ext; pt.y = y+ext;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- pt.x = x-ext; pt.y = y;
- w = Wasabi::Std::Wnd::getWindowFromPoint(pt);
- if (isOurExternalWindow(w)) return 1;
- return 0;
- }
- int AlphaMgr::isWasabiWindow(OSWINDOWHANDLE w)
- {
- #ifdef _WIN32
- wchar_t classname[256]=L"";
- GetClassNameW(w, classname, 255);
- return (w == WASABI_API_WND->main_getRootWnd()->gethWnd() || !wcscmp(classname, BASEWNDCLASSNAME));
- #else
- #warning port me
- return 1;
- #endif
- }
- int AlphaMgr::isMenuWindow(OSWINDOWHANDLE w)
- {
- #ifdef _WIN32
- char classname[256]="";
- GetClassNameA(w, classname, 255);
- return STRCASEEQL(classname, "#32768");
- #else
- return 0;
- #warning port me
- #endif
- }
- int AlphaMgr::isOurExternalWindow(OSWINDOWHANDLE w)
- {
- OSWINDOWHANDLE wnd = w;
- if (isWasabiWindow(w))
- return 0;
- if (isMenuWindow(wnd)) {
- wnd = Wasabi::Std::Wnd::getFocus();
- if (isWasabiWindow(wnd) || isOurExternalWindow(wnd))
- return 1;
- }
-
- while (wnd)
- {
- if (Wasabi::Std::Wnd::isPopup(wnd))
- {
- if (isWasabiWindow(wnd))
- return 0;
- OSWINDOWHANDLE _w = Wasabi::Std::Wnd::getParent(wnd);
- #ifdef _WIN32
- if (!_w) _w = GetWindow(wnd, GW_OWNER);
- #else
- #warning port me
- #endif
- if (!wnd) _w = wnd;
- return (_w == WASABI_API_WND->main_getRootWnd()->gethWnd() || isWasabiWindow(_w) || isOurExternalWindow(_w));
- }
- wnd = Wasabi::Std::Wnd::getParent(wnd);
- }
- return 0;
- }
- void AlphaMgr::preHoverCheck(AlphaMgrEntry *e) {
- int isin = isMouseInLayout(e->getLayout());
- uint32_t last = e->getLastTimeIn();
- uint32_t lastbig = getBigLastTimeIn();
- if (isin) { e->onLastIn(); onBigLastIn(); }
- if (!getAutoOpacify()) {
- if (!isin && last != 0 && (last > Wasabi::Std::getTickCount() - holdtime_ms))
- isin = 1;
- } else {
- if (!isin && lastbig != 0 && (lastbig > Wasabi::Std::getTickCount() - holdtime_ms))
- isin = 1;
- }
- if (!isin) {
- if (hasAutoOpacityOnFocus(e)) {
- if (isFocusingExternalWindow()) isin = 1;
- } else {
- if (isOverExternalWindow()) isin = 1;
- }
- }
- e->setNextIn(isin);
- updateInList(e, isin);
- }
- void AlphaMgr::hoverCheck(Layout *l) {
- AlphaMgrEntry *e = layouts.findItem((const wchar_t *)l);
- if (e) hoverCheck(e);
- }
- void AlphaMgr::hoverCheck(AlphaMgrEntry *e, int applytransparency) {
- if (e->getStatus() == STATUS_UNKNOWN)
- initStatus(e);
- int isin = e->getNextIn();
-
- if (getAutoOpacify()) {
- isin = big_status == STATUS_IN_FADINGON || big_status == STATUS_IN_ON || big_status == STATUS_IN_OFF;
- }
- if (hasAutoOpacity(e)) {
- if (isin) {
- // mouse is in, autoopacity is on
- switch (e->getStatus()) {
- case STATUS_OUT_OFF:
- case STATUS_OUT_FADINGOUT:
- case STATUS_IN_OFF:
- e->setStartAlpha(e->getLayout()->getTransparency());
- e->onEnterLeave();
- e->setStatus(STATUS_IN_FADINGON);
- checkTimer();
- e->getLayout()->onMouseEnterLayout();
- break;
- case STATUS_IN_FADINGON:
- doEndCheck(e);
- break;
- }
- } else {
- // mouse is out, autoopacity is on
- switch (e->getStatus()) {
- case STATUS_IN_FADINGON:
- case STATUS_IN_ON:
- e->setStartAlpha(e->getLayout()->getTransparency());
- e->onEnterLeave();
- e->setStatus(STATUS_OUT_FADINGOUT);
- checkTimer();
- e->getLayout()->onMouseLeaveLayout();
- break;
- case STATUS_OUT_FADINGOUT:
- doEndCheck(e);
- break;
- }
- }
- } else {
- if (isin) {
- // mouse is in, no autoopacity
- e->setStatus(STATUS_IN_OFF);
- } else {
- // mouse is out, no autoopacity
- e->setStatus(STATUS_OUT_OFF);
- }
- }
- // if (applytransparency) updateTransparency(e->getLayout());
- }
- void AlphaMgr::timerclient_timerCallback(int id) {
- switch(id) {
- case ALPHAMGR_HOVERCHECK: {
- foreach(layouts)
- AlphaMgrEntry *e = layouts.getfor();
- preHoverCheck(e);
- endfor;
- foreach(layouts)
- AlphaMgrEntry *e = layouts.getfor();
- hoverCheck(e);
- endfor;
- }
- break;
- case ALPHAMGR_UPDATEALPHA: {
- foreach(layouts)
- AlphaMgrEntry *e = layouts.getfor();
- if (e->getStatus() == STATUS_IN_FADINGON || e->getStatus() == STATUS_OUT_FADINGOUT) updateTransparency(e->getLayout());
- endfor;
- }
- break;
- }
- }
- int AlphaMgr::getBigCurTransparency() {
- switch (getBigStatus()) {
- case STATUS_IN_FADINGON:
- case STATUS_OUT_FADINGOUT:
- return getTransparency(NULL);
- case STATUS_IN_ON:
- return 255;
- case STATUS_IN_OFF:
- case STATUS_OUT_OFF:
- return getGlobalAlpha();
- default: return getTransparency(NULL);
- }
- }
- void AlphaMgr::setBigStartAlpha(int a) {
- big_startalpha = a;
- }
- void AlphaMgr::setBigStatus(int s) {
- big_status = s;
- }
- void AlphaMgr::onBigEnterLeave() {
- big_enterleave_time = Wasabi::Std::getTickCount();
- }
- uint32_t AlphaMgr::getBigEnterLeaveTime() {
- return big_enterleave_time;
- }
- void AlphaMgr::setAutoOpacify(int l) {
- autoopacify = l;
- resetTimer();
- if (l == 0) {
- foreach(layouts)
- if (layouts.getfor()->getStatus() == STATUS_IN_FADINGON) layouts.getfor()->setStatus(STATUS_IN_OFF);
- if (layouts.getfor()->getStatus() == STATUS_OUT_FADINGOUT) layouts.getfor()->setStatus(STATUS_OUT_OFF);
- endfor;
- }
- updateAllTransparency();
- }
- void AlphaMgr::resetTimer() {
- timerclient_killTimer(ALPHAMGR_HOVERCHECK);
- if (autoopacify == 1 && alllinked)
- timerclient_setTimer(ALPHAMGR_HOVERCHECK, 99);
- else
- timerclient_setTimer(ALPHAMGR_HOVERCHECK, 300);
- }
|