aboutsummaryrefslogtreecommitdiff
path: root/Src/resources/skins/Bento/scripts/pledit.m
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/resources/skins/Bento/scripts/pledit.m
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-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.m619
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