123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- /*---------------------------------------------------
- -----------------------------------------------------
- Filename: mcvcore.m
- Version: 4.5
- Type: maki
- Date: 13. Aug. 2007 - 11:22
- Author: Martin Poehlmann aka Deimos
- E-Mail: [email protected]
- 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));
- }
|