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/resources/skins/Bento/scripts/pledit.m | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/resources/skins/Bento/scripts/pledit.m')
-rw-r--r-- | Src/resources/skins/Bento/scripts/pledit.m | 619 |
1 files changed, 619 insertions, 0 deletions
diff --git a/Src/resources/skins/Bento/scripts/pledit.m b/Src/resources/skins/Bento/scripts/pledit.m new file mode 100644 index 00000000..87b2cf31 --- /dev/null +++ b/Src/resources/skins/Bento/scripts/pledit.m @@ -0,0 +1,619 @@ +/*--------------------------------------------------- +----------------------------------------------------- +Filename: pledit.m +Version: 3.1 + +Type: maki +Date: 18. Sep. 2007 - 19:42 +Author: Martin Poehlmann aka Deimos +E-Mail: martin@skinconsortium.com +Internet: www.skinconsortium.com + www.martin.deimos.de.vu +----------------------------------------------------- +---------------------------------------------------*/ + +#include <lib/std.mi> + +//#define DEBUG +#define FILE_NAME "pledit.m" +#include <lib/com/debug.m> + +#define PL_GUID "{45F3F7C1-A6F3-4EE6-A15E-125E92FC3F8D}" +#define PLC_POPPLER_POS 200 + +#include "../../Big Bento/scripts/attribs/init_playlist.m" + +Function fitContent (int playlistw, int playlistx); +Function fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh); +Function int updatePoppler(int w); +Function int updateMainPoppler(int w); + +Global Frame dualwnd, pl_dualwnd, mainframe; + +Global Group g_playlist, g_player, g_sui, g_buttons, g_mcv, g_cover, g_upper, wdh_pl; +Global Button p_enlarge, p_small; +Global Button p_resize; +Global int down_x, down_gx, isresizing; +Global layout normal; +Global Container player; +//Global WindowHolder wdh_pl; +Global Text pl_time; + +Global Button pe_add, pe_rem, pe_sel, pe_misc, pe_manage; + +Global Boolean startup, isBig, bypass_nocomp; + +Global Timer dc_openPl, dc_closePl, dc_loadWnd; + +Global Int COMP_Y, COMP_H, SUI_Y, SUI_H, BOTTOMSPACER, MAX_PL_H; +Global Int DEF_PL_W, SIDESPACER; + +Global Int min_infowidth; + + +System.onScriptLoaded () +{ + initAttribs_Playlist(); + normal = getScriptGroup(); + player = normal.getContainer(); + + isBig = (getParam() == "big"); + if (isBig) + { + mainframe = normal.getObject("player.mainframe.big"); + } + else + { + mainframe = normal.getObject("player.mainframe"); + } + + dualwnd = mainframe.findObject("player.dualwnd"); + g_mcv = dualwnd.findObject("player.component.fileinfo"); + g_upper = dualwnd.findObject("player.component.playlist.frame"); + pl_dualwnd = dualwnd.findObject("playlist.dualwnd"); + g_playlist = pl_dualwnd.findObject("player.component.playlist"); + g_cover = pl_dualwnd.findObject("player.component.playlist.albumart"); + g_player = dualwnd.findObject("player.layout"); + g_sui = normal.getObject("sui.content"); + g_buttons = g_playlist.getObject("player.component.playlist.buttons"); + p_enlarge = g_buttons.getObject("player.playlist.enlarge"); + p_small = g_buttons.getObject("player.playlist.small"); + p_resize = g_playlist.getObject("player.resize"); + wdh_pl = g_playlist.getObject("playlistpro"); + pl_time = g_buttons.getObject("PLTime"); + + pe_add = g_buttons.getObject("player.playlist.add"); + pe_rem = g_buttons.getObject("player.playlist.rem"); + pe_sel = g_buttons.getObject("player.playlist.sel"); + pe_misc = g_buttons.getObject("player.playlist.misc"); + pe_manage = g_buttons.getObject("player.playlist.manage"); + + min_infowidth = stringtoInteger(dualwnd.getXmlParam("maxwidth")); + + dc_openPl = new Timer; + dc_openPl.setDelay(1); + + dc_closePl = new Timer; + dc_closePl.setDelay(1); + + dc_loadWnd = new Timer; + dc_loadWnd.setDelay(1); + + // Global Definitions: + + DEF_PL_W = g_playlist.getGuiW(); // (-) + SIDESPACER = g_sui.getGuiX(); // (+) + COMP_Y = mainframe.getGuiY(); // (+) + COMP_H = mainframe.getGuiH(); // (+) + SUI_Y = g_sui.getGuiY(); // (+) + SUI_H = g_sui.getGuiH(); // (-) + BOTTOMSPACER = SUI_Y + SUI_H; // (-) + MAX_PL_H = BOTTOMSPACER - COMP_Y; // (-) + + startup = 1; + + // show playlist album art if checked + playlist_cover_attrib.onDataChanged(); + + //Bento v0.8 hack + if (mainframe.getPosition() < stringToInteger(mainframe.getXmlParam("minwidth"))) + { + mainframe.setPosition(stringToInteger(mainframe.getXmlParam("minwidth"))); + } +} + +system.onScriptUnloading () +{ + int pos = pl_dualwnd.getPosition(); + if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos); + delete dc_loadWnd; +} + +dc_loadWnd.onTimer () +{ + stop(); + int pos = dualwnd.getPosition(); + if (pos > 0) updatePoppler(pos); + playlist_enlarge_attrib.onDataChanged(); + + if (dualwnd.getPosition() > 0 +#ifdef DOHIDEMCV + || dualwnd.getXMlParam("from") == "left" +#endif + ) dc_openPL.start(); + + + else wdh_pl.hide(); //hideWa2Component(PL_GUID); +} + +playlist_enlarge_attrib.onDataChanged () +{ + int pl_w = dualwnd.getPosition(); + +#ifdef DOHIDEMCV + if (dualwnd.getXmlParam("from") == "left") + { + pl_w = dualwnd.getWidth() - 8; + } +#endif + + int pl_x = 0 - ( pl_w + SIDESPACER ); // (-) + + if (getData() == "1") + { + int sui_w = pl_x - SIDESPACER; // (-) + + dualwnd.setXmlParam("relath", "1"); + dualwnd.setXmlParam("h", integerToString(0)); + mainframe.setXmlParam("relath", "1"); + mainframe.setXmlParam("h", integerToString(MAX_PL_H)); + + g_sui.setXmlParam("w", integerToString(sui_w-8)); + + int pos = getPrivateInt(getSkinName(), "playlist_cover_poppler", PLC_POPPLER_POS); + if (playlist_cover_attrib.getData() == "1" && pos > 0 && getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden") + { + g_cover.show(); + pl_dualwnd.setPosition (pos); + } + else + { + pl_dualwnd.setPosition (0); + g_cover.hide(); + } + + p_enlarge.hide(); + p_small.show(); + } + else + { + int sui_w = 0 - SIDESPACER - SIDESPACER; // (-) + int pc_w = pl_x - SIDESPACER; // (-) + + g_cover.hide(); + + if (playlist_cover_attrib.getData() == "1") + { + int pos = pl_dualwnd.getPosition(); + if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos); + } + pl_dualwnd.setPosition (0); + + dualwnd.setXmlParam("h", integerToString(COMP_H-3)); + dualwnd.setXmlParam("relath", "0"); + mainframe.setXmlParam("h", integerToString(COMP_H)); + mainframe.setXmlParam("relath", "0"); + + g_sui.setXmlParam("w", integerToString(sui_w)); + p_enlarge.show(); + p_small.hide(); + } +} + +g_playlist.onResize (int x, int y, int w, int h) +{ + int pos = dualwnd.getPosition(); + debugString(integerToString(pos), 9); + updateMainPoppler(min_infowidth - pos - 8); + + if (pos > 0 +#ifdef DOHIDEMCV + || dualwnd.getXMlParam("from") == "left" +#endif + ) + { + //setPrivateInt(getSkinName(), "pledit poppler width", dualwnd.getPosition()); + if (!wdh_pl.isVisible()) + { + setPrivateString(getSkinName(), "Pledit_pos", "top"); + g_sui.sendAction("hide_comp", "pe", 0,0,0,0); + + dc_openPl.start(); + } + + if (isBig) + { + if (w > 189) + { + pe_add.show(); + pe_rem.show(); + pe_sel.show(); + pe_misc.show(); + pe_manage.show(); + } + else if (w <= 189 && w >158) + { + pe_add.show(); + pe_rem.show(); + pe_sel.show(); + pe_misc.show(); + pe_manage.hide(); + } + else if (w <= 158 && w >127) + { + pe_add.show(); + pe_rem.show(); + pe_sel.show(); + pe_misc.hide(); + pe_manage.hide(); + } + else if (w <= 127 && w >96) + { + pe_add.show(); + pe_rem.show(); + pe_sel.hide(); + pe_misc.hide(); + pe_manage.hide(); + } + else if (w <= 96 && w >65) + { + pe_add.show(); + pe_rem.hide(); + pe_sel.hide(); + pe_misc.hide(); + pe_manage.hide(); + } + else + { + pe_add.hide(); + pe_rem.hide(); + pe_sel.hide(); + pe_misc.hide(); + pe_manage.hide(); + } + } + else + { + if (w > 146) + { + pe_add.show(); + pe_rem.show(); + pe_sel.show(); + pe_misc.show(); + pe_manage.show(); + } + else if (w <= 146 && w >122) + { + pe_add.show(); + pe_rem.show(); + pe_sel.show(); + pe_misc.show(); + pe_manage.hide(); + } + else if (w <= 122 && w >98) + { + pe_add.show(); + pe_rem.show(); + pe_sel.show(); + pe_misc.hide(); + pe_manage.hide(); + } + else if (w <= 98 && w >74) + { + pe_add.show(); + pe_rem.show(); + pe_sel.hide(); + pe_misc.hide(); + pe_manage.hide(); + } + else if (w <= 74 && w >50) + { + pe_add.show(); + pe_rem.hide(); + pe_sel.hide(); + pe_misc.hide(); + pe_manage.hide(); + } + else + { + pe_add.hide(); + pe_rem.hide(); + pe_sel.hide(); + pe_misc.hide(); + pe_manage.hide(); + } + } + } + else wdh_pl.hide(); + if (playlist_enlarge_attrib.getdata() == "1") + { + int sui_w = - g_playlist.getWidth() - (2 * SIDESPACER) - 8; + g_sui.setXmlParam("w", integerToString(sui_w)); + if (startup) + { + startup = 0; + mainframe.setXmlParam("relath", "1"); + mainframe.setXmlParam("h", integerToString(MAX_PL_H)); + dualwnd.setXmlParam("relath", "1"); + dualwnd.setXmlParam("h", integerToString(0)); + } + } +} + +normal.onSetVisible (Boolean onoff) +{ + if (onoff) + { + playlist_enlarge_attrib.onDataChanged(); + int pos = dualwnd.getPosition(); + if (pos > 0 +#ifdef DOHIDEMCV + || dualwnd.getXMlParam("from") == "left" +#endif + ) + { + updatePoppler(pos); + dc_openPL.start(); + } + else wdh_pl.hide();//hideWa2Component(PL_GUID); + } +} + +normal.onUserResize (int x, int y, int w, int h) +{ + int pos = dualwnd.getPosition(); + if (pos > 0) updatePoppler(pos); +} + +/** Hide pl_time if it cannot be full displayed */ + +pl_time.onResize (int x, int y, int w, int h) +{ + if (w < getTextWidth()) + { + hide(); + } + else + { + show(); + } +} + +pl_time.onTextChanged (String newtxt) +{ + if (getWidth() < getTextWidth()) + { + hide(); + } + else + { + show(); + } +} + +/** Playlist Component Handling */ + +System.onGetCancelComponent (String guid, boolean goingvisible) +{ + if (getPrivateString(getSkinName(), "Pledit_pos", "top") == "sui") + { + return; + } + + debugString(DEBUG_PREFIX "System.onGetCancelComponent ( "+ guid + " , " + integerToString(goingvisible) + " )", D_WTF); + if (guid == PL_GUID) + { + Boolean isShade = player.getCurLayout() != normal; + if (goingvisible == TRUE && !isShade) + { + int poppler_w = getPrivateInt(getSkinName(), "pledit poppler width", 200); + if (poppler_w < 1) poppler_w = 200; + g_playlist.show(); + updatePoppler(poppler_w); + dc_openPl.start(); + return FALSE; + } + else + { + if (dualwnd.getPosition() > 0) setPrivateInt(getSkinName(), "pledit poppler width", dualwnd.getPosition()); + wdh_pl.hide(); + dualwnd.setPosition(0); + return FALSE; + } + } +} + +normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source) +{ + if (action == "load_comp" && strlower(param) == "pledit") + { + int poppler_w = getPrivateInt(getSkinName(), "pledit poppler width", 200); + if (dualwnd.getPosition() > 0) poppler_w = dualwnd.getPosition(); + if (dualwnd.getPosition() == 0) poppler_w = 200; + updatePoppler(poppler_w); + dc_openPl.start(); + } + if (action == "hide_comp" && strlower(param) == "pledit") + { + setPrivateInt(getSkinName(), "pledit poppler width", dualwnd.getPosition()); + wdh_pl.hide(); + dualwnd.setPosition(0); + } + if (action == "pledit_posupdate") + { + int pos = dualwnd.getPosition(); + if (pos > 0) updatePoppler(pos); + } + if (action == "sui") + { + if (param == "tonocomp") + { + if (playlist_cover_attrib.getData() == "1") + { + int pos = pl_dualwnd.getPosition(); + if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos); + } + bypass_nocomp = TRUE; //we need to add a bypass otherwise playlist_cover_attrib will be turned OFF + pl_dualwnd.setPosition (0); + g_cover.hide(); + bypass_nocomp = FALSE; + } + else if (param == "fromnocomp") + { + playlist_cover_attrib.onDataChanged (); + } + } +} + +dualwnd.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source) +{ + if (action == "set_maxwidth") + { + // update poppler for playlist/infocomp + updatePoppler(dualwnd.getPosition()); + // update poppler bands for player/infocomp + min_infowidth = x; + updateMainPoppler(min_infowidth - dualwnd.getPosition() - 8); + } +} + +wdh_pl.onSetVisible (Boolean onoff) +{ + debugString("wdh_pl set visible: " + integerToString(onoff), 9); + if (onoff) + { + playlist_cover_attrib.onDataChanged(); + } + else + { + int pos = pl_dualwnd.getPosition(); + if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos); + } +} + +updatePoppler(int w) +{ + if (dualwnd.getPosition() == 0 && w == 0) return; + int min_w = stringToInteger(dualwnd.getXmlParam("minwidth")); + int max_w = stringToInteger(dualwnd.getXmlParam("maxwidth")); + if (max_w < 0) max_w = dualwnd.getWidth() + max_w; + debugString("max_w: " + integerToString(max_w), 9); + boolean reset = FALSE; + reset += (w == 0); + reset += (w < min_w); + if (reset) w = min_w; + + // Prevent the playlist from overlapping the player + if (w > max_w) + { + w = max_w; + + // Resize the player to get more space + if (max_w < min_w) + { + w = min_w; + int mainframe_pos = mainframe.getPosition() - (min_w - max_w); // I need to save this in a variable first, otherwise mainframe.setPos will crash... + mainframe.setPosition(mainframe_pos); + } + } + debugString("set poppler: " + integerToString(w), 9); + dualwnd.setPosition(w); +} + +updateMainPoppler (int w) +{ + mainframe.setXmlparam("maxwidth", integerToString(w)); +} + +dc_openPl.onTimer () +{ + dc_openPl.stop(); + debugString("dc_openPl called!", 9); + wdh_pl.show(); + g_playlist.show(); + g_upper.show(); + //if (!wdh_pl.isVisible()) debugInt(g_playlist.getWidth()); +} + +dc_closePl.onTimer () +{ + dc_closePl.stop(); + wdh_pl.hide(); +} + +//---------------------------------------------------------------------------------------------------------------- +// Playlist Album Art Handles +//---------------------------------------------------------------------------------------------------------------- + +Global boolean attrib_bypass = false; + +playlist_cover_attrib.onDataChanged () +{ + if (attrib_bypass) + return; + + if (playlist_enlarge_attrib.getData() == "0") + return; + + if (getData() == "1") + { + int pos = getPrivateInt(getSkinName(), "playlist_cover_poppler", PLC_POPPLER_POS); + if (pos > 0 && getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden") + { + pl_dualwnd.setPosition (pos); + g_cover.show(); + } + else + { + pl_dualwnd.setPosition (0); + g_cover.hide(); + } + } + else + { + int pos = pl_dualwnd.getPosition(); + if (pos > 0) setPrivateInt(getSkinName(), "playlist_cover_poppler", pos); + pl_dualwnd.setPosition(0); + g_cover.hide(); + } +} + +Global Boolean bypass; + +player.onBeforeSwitchToLayout (Layout oldlayout, Layout newlayout) +{ + if (oldlayout == normal) + { + bypass = 1; + } +} + +g_cover.onSetVisible (Boolean onoff) +{ + if (bypass) + { + bypass = 0; + return; + } + + if (!onoff && !bypass_nocomp && playlist_cover_attrib.getdata() == "1" && getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden" && playlist_enlarge_attrib.getData() == "1" && dualwnd.getPosition() > 0) + { + playlist_cover_attrib.setdata("0"); + } + else if (onoff && !bypass_nocomp && playlist_cover_attrib.getdata() == "0" && dualwnd.getPosition() > 0) + { + attrib_bypass = true; + playlist_cover_attrib.setdata("1"); + attrib_bypass = false; + } +}
\ No newline at end of file |