home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 October / PCWorld_2004-10_cd.bin / software / topware / winamp / winamp505_full.exe / Plugins / titlebar.m < prev    next >
Text File  |  2003-06-22  |  3KB  |  97 lines

  1. #include <lib/std.mi>
  2.  
  3. #define MARGIN 0
  4.  
  5. Function resizeObjects();
  6.  
  7. Global GuiObject left, right, center;
  8. Global Text tcenter;
  9. Global Group sg;
  10. Global int padleft, padright;
  11.  
  12. System.onScriptLoaded() {
  13.  
  14.   padleft = 0;
  15.   padright = 0;
  16.  
  17.   sg = getScriptGroup(); 
  18.  
  19.   if (sg == NULL) {
  20.     messageBox("titlebar.maki can only run within a group", "Error", 0, "");
  21.     return;
  22.   }
  23.  
  24.   left = sg.findObject(getToken(getParam(), ";", 0));
  25.   center = sg.findObject(getToken(getParam(), ";", 1));
  26.   if (center != NULL) {
  27.     tcenter = center.findObject("window.titlebar.title");
  28.   } 
  29.   right = sg.findObject(getToken(getParam(), ";", 2));
  30. }
  31.  
  32. // backward compatibility with prerelease notify trick
  33. sg.onNotify(String cmd, String param, int a, int b) {
  34.   String _command = getToken(cmd, ",", 0);
  35.   String _param = getToken(cmd, ",", 1);
  36.   if (_command == "padtitleright" || _command == "padtitleright")
  37.     onSetXuiParam(_command, _param);
  38. }
  39.  
  40. System.onSetXuiParam(String param, String value) {
  41.   if (param == "padtitleright") {
  42.     padright = padright + StringToInteger(value);
  43.     resizeObjects();
  44.   }
  45.   if (param == "padtitleleft") {
  46.     padleft = padleft + StringToInteger(value);
  47.     resizeObjects();
  48.   }
  49. }
  50.  
  51. resizeObjects() {
  52.   int text_width = 0;
  53.   int layout_width = 0;
  54.   int group_width = sg.getWidth();
  55.  
  56.   Layout l = sg.getParentLayout();
  57.   layout_width = l.getWidth();
  58.  
  59.   if (center != NULL) {
  60.     text_width = center.getAutoWidth();
  61.   }
  62.  
  63.   int lx = (layout_width - text_width) / 2;
  64.   lx = l.clientToScreenX(lx);
  65.   lx = sg.screenToClientX(lx);
  66.   lx = lx - sg.getLeft();
  67.  
  68.   if (center != NULL) {
  69.     center.setXmlParam("x", IntegerToString(lx));
  70.     center.setXmlParam("relatx", "0");
  71.     center.setXmlParam("w", IntegerToString(text_width));
  72.     center.setXmlParam("relatw", "0");
  73.   }
  74.  
  75.   if (left != NULL) {
  76.     left.setXmlParam("x", IntegerToString(padleft));
  77.     left.setXmlParam("relatx", "0");
  78.     left.setXmlParam("w", IntegerToString(lx-padleft-MARGIN));
  79.     left.setXmlParam("relatw", "0");
  80.   }
  81.   if (right != NULL) {
  82.     right.setXmlParam("x", IntegerToString(lx+text_width+MARGIN+1));
  83.     right.setXmlParam("relatx", "0");
  84.     right.setXmlParam("w", "-" + IntegerToString(lx+text_width+1+padright+MARGIN+1)); //IntegerToString(group_width-(lx+text_width)));
  85.     right.setXmlParam("relatw", "1");
  86.   }
  87. }
  88.  
  89. tcenter.onTextChanged(string newtext) {
  90.   resizeObjects();
  91. }
  92.  
  93. sg.onResize(int x, int y, int w, int h) {
  94.   resizeObjects();
  95. }
  96.  
  97.