Initial community commit
This commit is contained in:
469
Src/resources/skins/Big Bento/scripts/mcvcore.m
Normal file
469
Src/resources/skins/Big Bento/scripts/mcvcore.m
Normal file
@@ -0,0 +1,469 @@
|
||||
/*---------------------------------------------------
|
||||
-----------------------------------------------------
|
||||
Filename: mcvcore.m
|
||||
Version: 4.5
|
||||
|
||||
Type: maki
|
||||
Date: 13. Aug. 2007 - 11:22
|
||||
Author: Martin Poehlmann aka Deimos
|
||||
E-Mail: martin@skinconsortium.com
|
||||
Internet: www.skinconsortium.com
|
||||
www.martin.deimos.de.vu
|
||||
|
||||
Note: This script is based on drawer.m
|
||||
from Winamp Modern, but extended to
|
||||
5 components presets!
|
||||
Like in drawer.m I warn everybody not
|
||||
to modify this script, cause it can be
|
||||
harmed very fast! And you don't want
|
||||
a buggy winamp skin, want you?
|
||||
|
||||
Since script version 3.1
|
||||
(onesie build #022)
|
||||
the script is devided into subscripts
|
||||
for better debugging.
|
||||
-----------------------------------------------------
|
||||
---------------------------------------------------*/
|
||||
|
||||
#include <lib/std.mi>
|
||||
#include attribs/init_windowpage.m
|
||||
#include attribs/init_vis.m
|
||||
#include attribs/init_appearance.m
|
||||
|
||||
//define DEBUG
|
||||
#define FILE_NAME "infocompcore.m"
|
||||
#include <lib/com/debug.m>
|
||||
|
||||
#define VIS_GUID "{0000000A-000C-0010-FF7B-01014263450C}"
|
||||
|
||||
#ifndef DOHIDEMCV
|
||||
#define updateSaving //
|
||||
#endif
|
||||
|
||||
//define FIT_W2_COMP fit(sui_fi, 159, 0, 2, 0, -162, 1, 76, 0)
|
||||
#define FIT_W2_COMP fit(sui_fi, 234, 0, 2, 0, -236, 1, 117, 0)
|
||||
//define FIT_W_COMP fit(sui_fi, 81, 0, 2, 0, -84, 1, 76, 0)
|
||||
#define FIT_W_COMP fit(sui_fi, 119, 0, 2, 0, -121, 1, 117, 0)
|
||||
#define FIT_WO_COMP fit(sui_fi, 4, 0, 2, 0, -6, 1, 117, 0)
|
||||
|
||||
Global Boolean bypasscancel;
|
||||
Global Timer callbackTimer, tempDisable;
|
||||
|
||||
#define CURR_COMP plsc
|
||||
#include mcvcore/defs.m
|
||||
|
||||
#ifdef IC_COVERFLOW
|
||||
#undef CURR_COMP
|
||||
#define CURR_COMP cflow
|
||||
#include mcvcore/defs.m
|
||||
#endif
|
||||
|
||||
Function fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh);
|
||||
|
||||
Function switchToIcOnly();
|
||||
Function switchToCover();
|
||||
Function switchToVisCover();
|
||||
Function switchToVis();
|
||||
Function switchToEQ();
|
||||
Function switchToCfg();
|
||||
Function switchToVis_Full();
|
||||
Function updateFileInfo();
|
||||
|
||||
Function hideFi();
|
||||
Function showFi();
|
||||
Function hideCover();
|
||||
Function showCover();
|
||||
Function hideVis();
|
||||
Function showVis();
|
||||
Function hideVis_Full();
|
||||
Function showVis_Full();
|
||||
Function hideEq();
|
||||
Function showEq();
|
||||
Function hideCfg();
|
||||
Function showCfg();
|
||||
Function openIC();
|
||||
Function closeIC();
|
||||
Function openLC();
|
||||
Function closeLC();
|
||||
#ifdef DOHIDEMCV
|
||||
Function hideMCV();
|
||||
#endif
|
||||
|
||||
Function onHideFi();
|
||||
Function onShowFi();
|
||||
Function onHideCover();
|
||||
Function onShowCover();
|
||||
Function onHideVis();
|
||||
Function onShowVis();
|
||||
Function onHideVis_Full();
|
||||
Function onShowVis_Full();
|
||||
Function onHideEq();
|
||||
Function onShowEq();
|
||||
Function onHideCfg();
|
||||
Function onShowCfg();
|
||||
Function onCloseIC();
|
||||
Function onOpenIC();
|
||||
Function onhideMCV();
|
||||
|
||||
Function dc_hideFi();
|
||||
Function dc_showFi();
|
||||
Function dc_showEq();
|
||||
Function dc_hideEq();
|
||||
Function dc_showCfg();
|
||||
Function dc_hideCfg();
|
||||
Function dc_hideCover();
|
||||
Function dc_showCover();
|
||||
Function dc_hideVis();
|
||||
Function dc_showVis();
|
||||
Function dc_hideVis_Full();
|
||||
Function dc_showVis_Full();
|
||||
|
||||
Function updateFooter();
|
||||
|
||||
Function ProcessMenuResult (int a);
|
||||
|
||||
#ifdef DOHIDEMCV
|
||||
function updateSaving (int l);
|
||||
#endif
|
||||
|
||||
Global Group sg, sui_cover, sui_vis_full, sui_vis, sui_fi, sui_eq, sui_cfg, g_footer, g_visbtns;
|
||||
Global WindowHolder sui_vis_wdh, sui_vis_full_wdh;
|
||||
Global Layout main;
|
||||
Global Boolean callback_showing_vis, callback_hiding_vis, callback_showing_vis_full, callback_hiding_vis_full, callback_showing_cover, callback_hiding_cover, callback_showing_fi, callback_hiding_fi, callback_hiding_eq, callback_showing_eq, callback_hiding_cfg, callback_showing_cfg;
|
||||
Global Boolean showing_vis, hiding_vis, showing_vis_full, hiding_vis_full, showing_cover, hiding_cover, hiding_fi, showing_fi, showing_eq, hiding_eq, showing_cfg, hiding_cfg;
|
||||
Global Boolean Mychange;
|
||||
Global Boolean prevent_vis = 1;
|
||||
Global Frame dualwnd, mainframe;
|
||||
Global GuiObject footerGrid, sendToBtn;
|
||||
|
||||
Global Popupmenu compMenu;
|
||||
// Global Button compChoose, nowPlayingBtn, webSearchBtn;
|
||||
Global Button compChoose;
|
||||
Global Boolean startup_done;
|
||||
Global Int substract = 0;
|
||||
|
||||
#ifdef DOHIDEMCV
|
||||
Global Int last_menu_sel;
|
||||
#endif
|
||||
|
||||
// script loading/unloading goes here
|
||||
#include mcvcore/load_handles.m
|
||||
|
||||
// open / hiding components not caused by button clicks
|
||||
#include mcvcore/external_handles.m
|
||||
|
||||
// showing and hiding the components
|
||||
#include mcvcore/show_hide.m
|
||||
|
||||
|
||||
/* Switching menu */
|
||||
compChoose.onRightButtonUp(int x, int y)
|
||||
{
|
||||
complete;
|
||||
}
|
||||
|
||||
compChoose.onRightClick () {
|
||||
compChoose.onLeftClick ();
|
||||
}
|
||||
|
||||
compChoose.onLeftClick ()
|
||||
{
|
||||
compMenu = new Popupmenu;
|
||||
popupmenu fiSub = new Popupmenu;
|
||||
compMenu.addCommand("File Info", 1, ic_fileinfo.getData() == "1", 0);
|
||||
#ifdef IC_COVERFLOW
|
||||
compMenu.addCommand("Cover Flow", 7, _cflow_ic_attrib.getData() == "1", 0);
|
||||
#endif
|
||||
// System.isSafeMode() is not recognized by mc.exe
|
||||
// if(!System.isSafeMode())
|
||||
// {
|
||||
compMenu.addCommand("Visualization", 2, ic_vis.getData() == "1", 0);
|
||||
// }
|
||||
compMenu.addCommand("Stored Playlists", 3, _plsc_ic_attrib.getData() == "1", 0);
|
||||
compMenu.addCommand("Equalizer", 4, ic_eq.getData() == "1", 0);
|
||||
compMenu.addCommand("Skin Settings", 5, ic_config.getData() == "1", 0);
|
||||
#ifdef DOHIDEMCV
|
||||
compMenu.addCommand("Hide Multi Content View", 6, ic_hidden.getData() == "1", 0);
|
||||
#endif
|
||||
compMenu.addSeparator();
|
||||
compMenu.addSubmenu(fiSub, "File Info Components");
|
||||
|
||||
// System.isSafeMode() is not recognized by mc.exe
|
||||
// if(!System.isSafeMode())
|
||||
// {
|
||||
fiSub.addCommand("Visualization", 12, ic_vis_fileinfo.getData() == "1", 0);
|
||||
// }
|
||||
fiSub.addCommand("Album Art", 11, ic_cover_fileinfo.getData() == "1", 0);
|
||||
fiSub.addSeparator();
|
||||
fiSub.addCommand("Show Track #", 24, infocomp_show_track.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Year", 21, infocomp_show_year.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Genre", 22, infocomp_show_genre.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Disc", 28, infocomp_show_disc.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Album Artist", 25, infocomp_show_albumartist.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Composer", 26, infocomp_show_composer.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Publisher", 23, infocomp_show_publisher.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Decoder", 27, infocomp_show_format.getData() == "1", 0);
|
||||
fiSub.addCommand("Show Song Rating", 20, infocomp_show_rating.getData() == "1", 0);
|
||||
fiSub.addSeparator();
|
||||
fiSub.addCommand("Cycle File Info", 30, infocomp_cycle.getData() == "1", 0);
|
||||
fiSub.addSeparator();
|
||||
//fiSub.addCommand("Open Links in Now Playing", 40, infocomp_nowplaying.getData() == "1", 0);
|
||||
//fiSub.addCommand("Open Links in Browser", 41, infocomp_browser.getData() == "1", 0);
|
||||
|
||||
ProcessMenuResult (compMenu.popAtXY(clientToScreenX(compChoose.getLeft()), clientToScreenY(compChoose.getTop() + compChoose.getHeight())));
|
||||
delete compMenu;
|
||||
delete fiSub;
|
||||
complete;
|
||||
}
|
||||
|
||||
ProcessMenuResult (int a)
|
||||
{
|
||||
if (a < 1) return;
|
||||
if (a == 1)
|
||||
{
|
||||
ic_fileinfo.setData("1");
|
||||
}
|
||||
else if (a == 2)
|
||||
{
|
||||
ic_vis.setData("1");
|
||||
}
|
||||
else if (a == 3)
|
||||
{
|
||||
_plsc_ic_attrib.setData("1");
|
||||
}
|
||||
#ifdef IC_COVERFLOW
|
||||
else if (a == 7)
|
||||
{
|
||||
_cflow_ic_attrib.setData("1");
|
||||
}
|
||||
#endif
|
||||
else if (a == 4)
|
||||
{
|
||||
ic_eq.setData("1");
|
||||
}
|
||||
else if (a == 5)
|
||||
{
|
||||
ic_config.setData("1");
|
||||
}
|
||||
#ifdef DOHIDEMCV
|
||||
else if (a == 6)
|
||||
{
|
||||
ic_hidden.setData("1");
|
||||
}
|
||||
#endif
|
||||
else if (a == 11)
|
||||
{
|
||||
toggleAttrib(ic_cover_fileinfo);
|
||||
}
|
||||
else if (a == 12)
|
||||
{
|
||||
toggleAttrib(ic_vis_fileinfo);
|
||||
}
|
||||
else if (a == 20)
|
||||
{
|
||||
toggleAttrib(infocomp_show_rating);
|
||||
}
|
||||
else if (a == 21)
|
||||
{
|
||||
toggleAttrib(infocomp_show_year);
|
||||
}
|
||||
else if (a == 22)
|
||||
{
|
||||
toggleAttrib(infocomp_show_genre);
|
||||
}
|
||||
else if (a == 23)
|
||||
{
|
||||
toggleAttrib(infocomp_show_publisher);
|
||||
}
|
||||
else if (a == 24)
|
||||
{
|
||||
toggleAttrib(infocomp_show_track);
|
||||
}
|
||||
else if (a == 25)
|
||||
{
|
||||
toggleAttrib(infocomp_show_albumartist);
|
||||
}
|
||||
else if (a == 26)
|
||||
{
|
||||
toggleAttrib(infocomp_show_composer);
|
||||
}
|
||||
else if (a == 27)
|
||||
{
|
||||
toggleAttrib(infocomp_show_format);
|
||||
}
|
||||
else if (a == 28)
|
||||
{
|
||||
toggleAttrib(infocomp_show_disc);
|
||||
}
|
||||
else if (a == 30)
|
||||
{
|
||||
toggleAttrib(infocomp_cycle);
|
||||
}
|
||||
/* else if (a == 40)
|
||||
{
|
||||
toggleAttrib(infocomp_nowplaying);
|
||||
}
|
||||
else if (a == 41)
|
||||
{
|
||||
toggleAttrib(infocomp_browser);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// Hiding footer buttons (for file info view)
|
||||
|
||||
/* artist_info_buttons_attrib.onDataChanged ()
|
||||
{
|
||||
|
||||
updateFooter ();
|
||||
}
|
||||
*/
|
||||
g_footer.onResize (int x, int y, int w, int h)
|
||||
{
|
||||
if (substract == 1)
|
||||
w += stringToInteger(dualwnd.getXmlParam("maxwidth")) + 78;
|
||||
else if (substract == 2)
|
||||
w += stringToInteger(dualwnd.getXmlParam("maxwidth")) + 102;
|
||||
|
||||
/* if (artist_info_buttons_attrib.getData() == "1")
|
||||
{
|
||||
if (w < 132) footerGrid.hide();
|
||||
else footerGrid.show();
|
||||
|
||||
if (w < 125) nowPlayingBtn.hide();
|
||||
else nowPlayingBtn.show();
|
||||
|
||||
if (w < 94) webSearchBtn.hide();
|
||||
else webSearchBtn.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (w < 70) footerGrid.hide();
|
||||
else footerGrid.show();
|
||||
nowPlayingBtn.hide();
|
||||
webSearchBtn.hide();
|
||||
}
|
||||
*/
|
||||
if (w < 63) sendToBtn.hide();
|
||||
else sendToBtn.show();
|
||||
|
||||
if (w < 32) compChoose.hide();
|
||||
else compChoose.show();
|
||||
}
|
||||
|
||||
updateFooter ()
|
||||
{
|
||||
g_footer.onResize (0, 0, g_footer.getWidth(), 0);
|
||||
}
|
||||
|
||||
#ifdef DOHIDEMCV
|
||||
// Switching back from no comp
|
||||
|
||||
sg.onResize (int x, int y, int w, int h)
|
||||
{
|
||||
|
||||
if (ic_hidden.getData() == "0" || last_menu_sel == 0 || w == 0)// && dualwnd.getXmlParam("from") == "left")
|
||||
{
|
||||
return;
|
||||
}
|
||||
ProcessMenuResult (getPrivateInt(getSkinName(), "MCV last sel", 1));
|
||||
}
|
||||
|
||||
// save last pos
|
||||
|
||||
updateSaving (int l)
|
||||
{
|
||||
if (last_menu_sel == l)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (last_menu_sel != 0) setPrivateInt(getSkinName(), "MCV last sel", last_menu_sel);
|
||||
last_menu_sel = l;
|
||||
}
|
||||
#endif
|
||||
|
||||
/** OSD */
|
||||
/*
|
||||
Global boolean mouse_is_over = FALSE;
|
||||
|
||||
osd_trigger.onEnterArea ()
|
||||
{
|
||||
//setXmlParam("ghost", "1");
|
||||
}
|
||||
|
||||
osd_trigger.onMouseMove (int x, int y)
|
||||
{
|
||||
if (!isMouseOverRect() && mouse_is_over)
|
||||
{
|
||||
mouse_is_over = 0;
|
||||
component c = sui_vis_full.findObject("vis");
|
||||
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
|
||||
c = sui_vis.findObject("vis");
|
||||
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
|
||||
}
|
||||
else if (isMouseOverRect() && !mouse_is_over)
|
||||
{
|
||||
mouse_is_over = 1;
|
||||
component c = sui_vis_full.findObject("vis");
|
||||
c.sendAction("setregion", "vis.button.region", 0, 0, 0, 0);
|
||||
c = sui_vis.findObject("vis");
|
||||
c.sendAction("setregion", "vis.button.region", 0, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
osd_trigger.onLeaveArea ()
|
||||
{
|
||||
component c = sui_vis_full.findObject("vis");
|
||||
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
|
||||
}*/
|
||||
|
||||
/** Calls after comp is shown */
|
||||
|
||||
onCloseIC() {}
|
||||
onOpenIC() {}
|
||||
|
||||
onShowCover() {}
|
||||
|
||||
onHideCover() {}
|
||||
|
||||
onShowFi() {}
|
||||
|
||||
onHideFi() {}
|
||||
|
||||
onShowEq() {}
|
||||
|
||||
onHideEq() {}
|
||||
|
||||
onShowCfg() {}
|
||||
|
||||
onHideCfg() {}
|
||||
|
||||
onShowVis()
|
||||
{
|
||||
g_visbtns.show();
|
||||
}
|
||||
onHideVis()
|
||||
{
|
||||
g_visbtns.hide();
|
||||
}
|
||||
|
||||
onShowVis_Full() {}
|
||||
|
||||
onHideVis_Full() {}
|
||||
|
||||
#ifdef DOHIDEMCV
|
||||
onhideMCV() {}
|
||||
#endif
|
||||
|
||||
fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh)
|
||||
{
|
||||
if (!g) return;
|
||||
g.setXmlParam("x", integerToString(x));
|
||||
g.setXmlParam("y", integerToString(y));
|
||||
g.setXmlParam("w", integerToString(w));
|
||||
g.setXmlParam("h", integerToString(h));
|
||||
g.setXmlParam("relatx", integerToString(rx));
|
||||
g.setXmlParam("relaty", integerToString(ry));
|
||||
g.setXmlParam("relatw", integerToString(rw));
|
||||
g.setXmlParam("relath", integerToString(rh));
|
||||
}
|
||||
Reference in New Issue
Block a user