aboutsummaryrefslogtreecommitdiff
path: root/Src/resources/skins/Winamp Modern/scripts/titlebar.m
diff options
context:
space:
mode:
Diffstat (limited to 'Src/resources/skins/Winamp Modern/scripts/titlebar.m')
-rw-r--r--Src/resources/skins/Winamp Modern/scripts/titlebar.m104
1 files changed, 104 insertions, 0 deletions
diff --git a/Src/resources/skins/Winamp Modern/scripts/titlebar.m b/Src/resources/skins/Winamp Modern/scripts/titlebar.m
new file mode 100644
index 00000000..5d28307c
--- /dev/null
+++ b/Src/resources/skins/Winamp Modern/scripts/titlebar.m
@@ -0,0 +1,104 @@
+#include <lib/std.mi>
+
+#define MARGIN 0
+
+Function resizeObjects();
+
+Global GuiObject left, right, center;
+Global Text tcenter;
+Global Layer lcenter;
+Global Group sg;
+Global int padleft, padright;
+
+System.onScriptLoaded() {
+
+ padleft = 0;
+ padright = 0;
+
+ sg = getScriptGroup();
+
+ if (sg == NULL) {
+ messageBox("titlebar.maki can only run within a group", "Error", 0, "");
+ return;
+ }
+
+ left = sg.findObject(getToken(getParam(), ";", 0));
+ center = sg.findObject(getToken(getParam(), ";", 1));
+ if (center != NULL) {
+ tcenter = center.findObject("window.titlebar.title");
+ lcenter = center.findObject("window.titlebar.title.overlay");
+ }
+ right = sg.findObject(getToken(getParam(), ";", 2));
+}
+
+// backward compatibility with prerelease notify trick
+sg.onNotify(String cmd, String param, int a, int b) {
+ String _command = getToken(cmd, ",", 0);
+ String _param = getToken(cmd, ",", 1);
+ if (_command == "padtitleright" || _command == "padtitleright")
+ onSetXuiParam(_command, _param);
+}
+
+System.onSetXuiParam(String param, String value) {
+ if (param == "padtitleright") {
+ padright = padright + StringToInteger(value);
+ resizeObjects();
+ }
+ if (param == "padtitleleft") {
+ padleft = padleft + StringToInteger(value);
+ resizeObjects();
+ }
+}
+
+resizeObjects() {
+ int text_width = 0;
+ int layout_width = 0;
+ int group_width = sg.getWidth();
+
+ Layout l = sg.getParentLayout();
+ layout_width = l.getWidth();
+
+ if (center != NULL) {
+ text_width = center.getAutoWidth();
+ }
+
+ int lx = (layout_width - text_width) / 2;
+ lx = l.clientToScreenX(lx);
+ lx = sg.screenToClientX(lx);
+ lx = lx - sg.getLeft();
+
+ if (center != NULL) {
+ center.setXmlParam("x", IntegerToString(lx));
+ center.setXmlParam("relatx", "0");
+ center.setXmlParam("w", IntegerToString(text_width));
+ center.setXmlParam("relatw", "0");
+
+ lcenter.setXmlParam("x", IntegerToString(lx));
+ lcenter.setXmlParam("relatx", "0");
+ lcenter.setXmlParam("w", IntegerToString(text_width));
+ lcenter.setXmlParam("relatw", "0");
+
+ }
+
+ if (left != NULL) {
+ left.setXmlParam("x", IntegerToString(padleft));
+ left.setXmlParam("relatx", "0");
+ left.setXmlParam("w", IntegerToString(lx-padleft-MARGIN));
+ left.setXmlParam("relatw", "0");
+ }
+ if (right != NULL) {
+ right.setXmlParam("x", IntegerToString(lx+text_width+MARGIN+1));
+ right.setXmlParam("relatx", "0");
+ right.setXmlParam("w", "-" + IntegerToString(lx+text_width+1+padright+MARGIN+1)); //IntegerToString(group_width-(lx+text_width)));
+ right.setXmlParam("relatw", "1");
+ }
+}
+
+tcenter.onTextChanged(string newtext) {
+ resizeObjects();
+}
+
+sg.onResize(int x, int y, int w, int h) {
+ resizeObjects();
+}
+