Advertisement
Guest User

Search Toolbar panel

a guest
Sep 23rd, 2013
640
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==PREPROCESSOR==
  2. // @name "Search Toolbar panel"
  3. // @version "1.3"
  4. // @author "Br3tt"
  5. // @feature "dragdrop"
  6. // @import "%fb2k_profile_path%skins\xc4\scripts\Common.js"
  7. // ==/PREPROCESSOR==
  8.  
  9. //=================================================// Read Options
  10.  
  11. // ================================================== CUI Colours
  12. var g_instancetype = window.InstanceType;
  13. var c01, c02, c03, c04, c05, c06;
  14. function get_colors() {
  15.     if (g_instancetype == 0) { // CUI
  16.         c01 = window.GetColorCUI(ColorTypeCUI.background);
  17.         c02 = window.GetColorCUI(ColorTypeCUI.selection_background);
  18.         c03 = window.GetColorCUI(ColorTypeCUI.text);
  19.         c04 = window.GetColorCUI(ColorTypeCUI.selection_text);
  20.         c05 = window.GetColorCUI(ColorTypeCUI.inactive_selection_text);
  21.         c06 = window.GetColorCUI(ColorTypeCUI.inactive_selection_background);
  22.     }
  23.     c01 = RGB(0,0,0);
  24.     c02 = RGB(0,0,0);
  25.     c03 = RGB(161,207,245);
  26.     c04 = RGB(120,130,140);
  27.     c05 = RGB(255,255,255);
  28.     c06 = RGB(0,0,0);
  29.     c03b = RGB(121,167,205);
  30.     c03c = RGB(60,80,100);
  31. }
  32. get_colors();
  33. function on_colors_changed() {
  34.     on_size();
  35. }
  36. // ================================================== CUI Colours
  37.  
  38. //=================================================// Properties
  39. var AUTO_SEARCH = window.GetProperty("Autosearch", true);
  40. //var AUTO_SEARCH = true;
  41. var AUTO_PLS = window.GetProperty("Create AutoPlaylists", true);
  42. var LAST_SEARCH = window.GetProperty("Last entry", "");
  43. var TAG_SEARCH = window.GetProperty("Tags Used", 0);
  44. var g_searchresult = window.GetProperty("Always Send To #Search Result", true);
  45. var g_quicksearch = false;
  46. // SEARCH MODE : 1 = Filter (default mode)  // 0 = new Search (activated with button)
  47. var SEARCH_MODE = window.GetProperty("Library Filter mode", 0);
  48.  
  49. //===============================================//Genre Properties
  50. var g1 = window.GetProperty("  genre 1", "Pop");
  51. var g2 = window.GetProperty("  genre 2", "Rock");
  52. var g3 = window.GetProperty("  genre 3", "Sexy");
  53. var g4 = window.GetProperty("  genre 4", "Alternative");
  54. var g5 = window.GetProperty("  genre 5", "Alternative Rock");
  55. var g6 = window.GetProperty("  genre 6", "Hard Rock");
  56. var g7 = window.GetProperty("  genre 7", "General Rock");
  57. var g8 = window.GetProperty("  genre 8", "Funk Rock");
  58. var g9 = window.GetProperty("  genre 9", "Soul");
  59. var g10 = window.GetProperty(" genre 10", "Jazz");
  60. var g11 = window.GetProperty(" genre 11", "Blues");
  61. var g12 = window.GetProperty(" genre 12", "House");
  62. var g13 = window.GetProperty(" genre 13", "Progresive House");
  63. var g14 = window.GetProperty(" genre 14", "Disco");
  64. var g15 = window.GetProperty(" genre 15", "Euro Disco");
  65. var g16 = window.GetProperty(" genre 16", "Dance");
  66. var g17 = window.GetProperty(" genre 17", "Dance House");
  67. var g18 = window.GetProperty(" genre 18", "Metal");
  68. var g19 = window.GetProperty(" genre 19", "Heavy Metal");
  69. var g20 = window.GetProperty(" genre 20", "Death Metal");
  70. var g21 = window.GetProperty(" genre 21", "Industrial Metal");
  71. var g22 = window.GetProperty(" genre 22", "Industrial");
  72. var g23 = window.GetProperty(" genre 23", "Funk");
  73. var g24 = window.GetProperty(" genre 24", "Rap");
  74. var g25 = window.GetProperty(" genre 25", "Hip Hop");
  75. var g26 = window.GetProperty(" genre 26", "Hip-Hop");
  76. var g27 = window.GetProperty(" genre 27", "R&B");
  77. var g28 = window.GetProperty(" genre 28", "RandB");
  78. var g29 = window.GetProperty(" genre 29", "Reggae");
  79. var g30 = window.GetProperty(" genre 30", "Gangsta");
  80. var g31 = window.GetProperty(" genre 31", "Techno");
  81. var g32 = window.GetProperty(" genre 32", "Electronic");
  82. var g33 = window.GetProperty(" genre 33", "Meditative");
  83. var g34 = window.GetProperty(" genre 34", "New Age");
  84. var g35 = window.GetProperty(" genre 35", "New Wave");
  85. var g36 = window.GetProperty(" genre 36", "World");
  86. var g37 = window.GetProperty(" genre 37", "Ambient");
  87. var g38 = window.GetProperty(" genre 38", "Christian");
  88. var g39 = window.GetProperty(" genre 39", "Gospel");
  89. var g40 = window.GetProperty(" genre 40", "Easy Listening");
  90. var g41 = window.GetProperty(" genre 41", "Instrumental");
  91. var g42 = window.GetProperty(" genre 42", "Concert");
  92. var g43 = window.GetProperty(" genre 43", "Vocal");
  93. var g44 = window.GetProperty(" genre 44", "Ballad");
  94. var g45 = window.GetProperty(" genre 45", "Folk");
  95. var g46 = window.GetProperty(" genre 46", "Country");
  96. var g47 = window.GetProperty(" genre 47", "Indie");
  97. var g48 = window.GetProperty(" genre 48", "Indie Pop");
  98. var g49 = window.GetProperty(" genre 49", "Drum Bass");
  99. var g50 = window.GetProperty(" genre 50", "Thrash");
  100.  
  101. //=================================================// Images
  102.  
  103. var filter_img_off;
  104. var reset_img_off;
  105. var go_magnify_img_off;
  106. var settings_img;
  107.  
  108. //=================================================// Globals
  109. var mybutton = Array(new button, new button, new button, new button);
  110. var myinputbox = Array(new searchbox);
  111. var g_metadb;
  112. var g_timer;
  113. var g_artist = "N/A";
  114. var g_album = "N/A";
  115. var g_title = "N/A";
  116. var g_genre = "N/A";
  117. var g_year = "N/A";
  118. var g_quick_search_text = "";
  119. var tooltip = window.CreateTooltip();
  120.  
  121. // Common global variables
  122. var ww = window.Width;
  123. var wh = window.Height;
  124. var mouse_x;
  125. var mouse_y;
  126. var show_tooltip;
  127. var hand;
  128.  
  129. //=================================================// Panel Callbacks
  130. function on_size() {
  131.     var i;
  132.     var autosearch_delay;
  133.    
  134.     // ask for grab title format info from main WSH panel, for notifying this panel
  135.     window.NotifyOthers("Grab_TF", true);
  136.    
  137.     window.MinWidth = 120;
  138.     ww = window.Width;
  139.     wh = window.Height;
  140.    
  141.     get_colors();
  142.    
  143.     refresh_buttons();
  144.        
  145.     if(AUTO_SEARCH) {
  146.         autosearch_delay = 500;
  147.     } else {
  148.         autosearch_delay = 0;
  149.     }
  150.     myinputbox[0].create(ww-39, 15, "Quick Search...", LAST_SEARCH, RGB(200,200,200), RGB(255,255,255), RGB(200,200,200), RGB(255,255,255), RGB(255,255,255), SearchIt, autosearch_delay);
  151. }
  152.  
  153. function on_paint(gr) {
  154.     var i;
  155.     var box_colour, mag_colour, filter_colour;
  156.  
  157.     if(ww<1) return true;
  158.    
  159.     // InputBox bg(Length input box)
  160.     gr.SetSmoothingMode(3);
  161.     gr.FillRoundRect(-0, 0, ww-0, 22, 1, 1, RGBA(220, 220, 220, 40));
  162.     gr.FillRoundRect(-0, 0, ww-0, 22, 1, 1, RGBA(0, 0, 0, 180));
  163.     if(myinputbox[0].edit) {
  164.         box_colour = RGBA(30, 30, 30, 160);
  165.         mag_colour = RGBA(60, 60, 70, 255);
  166.         filter_colour = RGBA(40, 80, 120, 255);
  167.     } else {
  168.         box_colour = RGBA(30, 30, 30, 160);
  169.         mag_colour = RGBA(170, 170, 180, 255);
  170.         filter_colour = RGBA(120, 170, 200, 255);
  171.     }
  172.     gr.FillRoundRect(0, 0, ww-0, 22, 3, 3, box_colour);
  173.    
  174.    
  175.     // buttons
  176.     for (i = 0; i < mybutton.length; i++) {
  177.         switch (i) {
  178.             case 0:
  179.                 // draw reset box button
  180.                 mybutton[i].create(reset_img_off, reset_img_off, reset_img_off, "", -01);
  181.                 mybutton[i].draw(gr, ww-16, 3, 255, "");
  182.                 break;
  183.             case 1:
  184.                
  185.                 break;
  186.             case 2:
  187.                
  188.                 break;
  189.             case 3:
  190.                 // search settings
  191.                 mybutton[i].draw(gr, 0, 1, 999, "");
  192.                 break;
  193.         }
  194.     }
  195.  
  196.     // input box
  197.     gr.SetSmoothingMode(0);
  198.     myinputbox[0].draw(gr, 24, 3);
  199. }
  200.  
  201. // callbacks
  202.  
  203. function on_mouse_lbtn_down(x, y) {
  204.     var i;
  205.     // buttons
  206.     for (i = 0; i < mybutton.length; i++) {
  207.         mybutton[i].checkstate("down", x, y, i);
  208.     }
  209.  
  210.     // InputBox
  211.     myinputbox[0].on_mouse_lbtn_down(x, y);  
  212.     window.Repaint();
  213. }
  214.  
  215. function on_mouse_lbtn_up(x, y) {
  216.     var i;
  217.     // buttons
  218.     for (i = 0; i < mybutton.length; i++) {
  219.         switch (i) {
  220.             case 0:
  221.                 // reset box
  222.                 if (mybutton[i].checkstate("up", x, y)== mybutton[i].ButtonStates.hover) {
  223.                     window.SetCursor(32650);
  224.                     myinputbox[0].Reset();
  225.                     window.SetProperty("Last entry", "");
  226.                     SearchIt("");
  227.                 }
  228.                 break;
  229.             case 1:
  230.                 break;
  231.             case 2:
  232.                 // enforce mode (filter if search mode and search if filter mode)
  233.                 if(myinputbox[0].text!=myinputbox[0].default_text && myinputbox[0].text.length>0) {
  234.                     if (mybutton[i].checkstate("up", x, y)== mybutton[i].ButtonStates.hover) {
  235.                         SEARCH_MODE = 0;
  236.                         SearchIt(myinputbox[0].text);
  237.                         //myinputbox[0].text = myinputbox[0].default_text;
  238.                         window.Repaint();
  239.                     }
  240.                 }
  241.                 break;
  242.             case 3:
  243.                 // enforce mode (filter if search mode and search if filter mode)
  244.                 if (mybutton[i].checkstate("up", x, y)== mybutton[i].ButtonStates.hover) {
  245.                     settings_menu(10, 23);
  246.                 }
  247.                 break;
  248.         }
  249.     }
  250.     // InputBox
  251.     myinputbox[0].on_mouse_lbtn_up(x, y);
  252. }
  253.  
  254. function on_mouse_move(x, y) {
  255.     var i;
  256.     mouse_x = x;
  257.     mouse_y = y;
  258.    
  259.     // buttons
  260.     hand=false;
  261.     for (i = 0; i < mybutton.length; i++) {
  262.         switch(i) {
  263.             case 0:
  264.                 mybutton[i].checkstate("move", x, y, i);
  265.                 if(mybutton[i].is_hover) hand=true;
  266.                 break;
  267.             case 1:
  268.                 mybutton[i].checkstate("move", x, y, i);
  269.                 if(mybutton[i].is_hover) hand=true;
  270.                 break;
  271.             case 2:
  272.                 if(myinputbox[0].text!=myinputbox[0].default_text && myinputbox[0].text.length>0) {
  273.                     mybutton[i].checkstate("move", x, y, i);
  274.                     if(mybutton[i].is_hover) hand=true;
  275.                 }
  276.                 break;
  277.             case 3:
  278.                 mybutton[i].checkstate("move", x, y, i);
  279.                 if(mybutton[i].is_hover) hand=true;
  280.                 break;
  281.         }
  282.     }
  283.    
  284.     // InputBox
  285.     myinputbox[0].on_mouse_move(x, y);
  286.    
  287.     // Mouse Cursor
  288.     window.SetCursor(hand? IDC_HAND : myinputbox[0].hover ? IDC_IBEAM : IDC_ARROW);
  289. }
  290.  
  291. function on_mouse_leave() {
  292.     var i;
  293.     // buttons    
  294.     for (i = 0; i < mybutton.length; i++) {
  295.         mybutton[i].checkstate("leave", 0, 0, i);
  296.     }
  297.     tooltip.Text="";
  298. }
  299.  
  300. function on_key_down(vkey) {
  301.     myinputbox[0].on_key_down(vkey);
  302. }
  303.  
  304. function on_char(code) {
  305.     myinputbox[0].on_char(code);
  306. }
  307.  
  308. function on_focus(is_focused) {
  309.     myinputbox[0].on_focus(is_focused);
  310. }
  311.  
  312. function on_timer(id) {
  313.     var i;
  314.     // buttons
  315.     for (i = 0; i < mybutton.length; i++) {
  316.         mybutton[i].ontimer(id);
  317.     }
  318.     // InputBox
  319.     myinputbox[0].on_timer(id);
  320. }
  321.  
  322.  
  323.     function settings_menu(x, y) {
  324.     var MF_SEPARATOR = 0x00000800;
  325.     var MF_STRING = 0x00000000;
  326.     var _menu = window.CreatePopupMenu();
  327.     var idx;
  328.     var total_area, visible_area;
  329.     var bout, z;
  330.     var gnr = window.CreatePopupMenu();
  331.     var MF_POPUP = 0x00000010;
  332.     var mode = window.CreatePopupMenu();
  333.  
  334.  
  335. // main menu
  336.     _menu.AppendMenuItem(MF_STRING, 100, "Settings..");
  337.     _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  338.     _menu.AppendMenuItem(MF_STRING, 1, "AutoSearch");
  339.     _menu.AppendMenuItem(MF_STRING, 2, "Create AutoPlaylists");
  340.     _menu.AppendMenuItem(MF_STRING, 3, "Always send to #Search result");
  341.     if(SEARCH_MODE==1) _menu.AppendMenuItem(MF_STRING, 17, "Library Filter Mode");
  342.     if(SEARCH_MODE==0) _menu.AppendMenuItem(MF_STRING, 18, "Library Filter Mode");
  343.     _menu.AppendMenuItem(MF_SEPARATOR, 0, "");
  344.     _menu.AppendMenuItem(MF_STRING, 4, "All");
  345.     _menu.AppendMenuItem(MF_STRING, 5, "Artist");
  346.     _menu.AppendMenuItem(MF_STRING, 6, "Album");
  347.     _menu.AppendMenuItem(MF_STRING, 7, "Title");
  348.     _menu.AppendMenuItem(MF_STRING, 8, "Genre");
  349.     _menu.AppendMenuItem(MF_STRING, 9, "Date");
  350.     _menu.CheckMenuItem(1, AUTO_SEARCH?1:0);
  351.     _menu.CheckMenuItem(2, AUTO_PLS?1:0);
  352.     _menu.CheckMenuItem(3, g_searchresult?1:0);
  353.     _menu.CheckMenuRadioItem(4, 9, TAG_SEARCH + 4);
  354.     _menu.CheckMenuItem(17, SEARCH_MODE?1:0);
  355.    
  356.  //Quick Search menu..
  357.        
  358.        
  359.         _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  360.         if(g_artist!="N/A" && g_artist.length>1) _menu.AppendMenuItem(MF_STRING, 10, "#QuickSearch for same Artist");
  361.         if(g_album!="N/A" && g_album.length>1) _menu.AppendMenuItem(MF_STRING, 11, "#QuickSearch for same Album");
  362.         if(g_title!="N/A" && g_title.length>1) _menu.AppendMenuItem(MF_STRING, 12, "#QuickSearch for same Title");
  363.         if(g_genre!="N/A" && g_genre.length>1) _menu.AppendMenuItem(MF_STRING, 13, "#QuickSearch for same Genre");
  364.         if(g_year!="N/A" && g_year.length>1) _menu.AppendMenuItem(MF_STRING, 14, "#QuickSearch for same Year");
  365.    
  366.        
  367.  
  368. //Mode Rating
  369.         _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  370.         _menu.AppendMenuItem(MF_STRING | MF_POPUP, mode.ID, "Mode Rating");
  371.         mode.AppendMenuItem(MF_STRING, 70, "Loved Tracks");
  372.         mode.AppendMenuItem(MF_STRING, 71, "Skipped Tracks");
  373.         mode.AppendMenuItem(MF_STRING, 72, "Unrated Tracks");
  374.         mode.AppendMenuItem(MF_STRING, 73, "Tracks rated 1");
  375.         mode.AppendMenuItem(MF_STRING, 74, "Tracks rated 2");
  376.         mode.AppendMenuItem(MF_STRING, 75, "Tracks rated 3");
  377.         mode.AppendMenuItem(MF_STRING, 76, "Tracks rated 4");
  378.         mode.AppendMenuItem(MF_STRING, 77, "Tracks rated 5");
  379.         mode.AppendMenuItem(MF_STRING, 78, "Never Played Tracks");
  380.  
  381. //genre menu
  382.     _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
  383.     _menu.AppendMenuItem(MF_STRING | MF_POPUP, gnr.ID, "Genre Preset");
  384.     if(g1>"")  
  385.     gnr.AppendMenuItem(MF_STRING, 20, g1);
  386.     if(g2>"")
  387.     gnr.AppendMenuItem(MF_STRING, 21, g2);
  388.     if(g3>"")
  389.     gnr.AppendMenuItem(MF_STRING, 22, g3);
  390.     if(g4>"")
  391.     gnr.AppendMenuItem(MF_STRING, 23, g4);
  392.     if(g5>"")
  393.     gnr.AppendMenuItem(MF_STRING, 24, g5);
  394.     if(g6>"")
  395.     gnr.AppendMenuItem(MF_STRING, 25, g6);
  396.     if(g7>"")
  397.     gnr.AppendMenuItem(MF_STRING, 26, g7);
  398.     if(g8>"")
  399.     gnr.AppendMenuItem(MF_STRING, 27, g8);
  400.     if(g9>"")
  401.     gnr.AppendMenuItem(MF_STRING, 28, g9);
  402.     if(g10>"")
  403.     gnr.AppendMenuItem(MF_STRING, 29, g10);
  404.     if(g11>"")
  405.     gnr.AppendMenuItem(MF_STRING, 30, g11);
  406.     if(g12>"")
  407.     gnr.AppendMenuItem(MF_STRING, 31, g12);
  408.     if(g13>"")
  409.     gnr.AppendMenuItem(MF_STRING, 32, g13);
  410.     if(g14>"")
  411.     gnr.AppendMenuItem(MF_STRING, 33, g14);
  412.     if(g15>"")
  413.     gnr.AppendMenuItem(MF_STRING, 34, g15);
  414.     if(g16>"")
  415.     gnr.AppendMenuItem(MF_STRING, 35, g16);
  416.     if(g17>"")
  417.     gnr.AppendMenuItem(MF_STRING, 36, g17);
  418.     if(g18>"")
  419.     gnr.AppendMenuItem(MF_STRING, 37, g18);
  420.     if(g19>"")
  421.     gnr.AppendMenuItem(MF_STRING, 38, g19);
  422.     if(g20>"")
  423.     gnr.AppendMenuItem(MF_STRING, 39, g20);
  424.     if(g21>"")
  425.     gnr.AppendMenuItem(MF_STRING, 40, g21);
  426.     if(g22>"")
  427.     gnr.AppendMenuItem(MF_STRING, 41, g22);
  428.     if(g23>"")
  429.     gnr.AppendMenuItem(MF_STRING, 42, g23);
  430.     if(g24>"")
  431.     gnr.AppendMenuItem(MF_STRING, 43, g24);
  432.     if(g25>"")
  433.     gnr.AppendMenuItem(MF_STRING, 44, g25);
  434.     if(g26>"")
  435.     gnr.AppendMenuItem(MF_STRING, 45, g26);
  436.     if(g27>"")
  437.     gnr.AppendMenuItem(MF_STRING, 46, g27);
  438.     if(g28>"")
  439.     gnr.AppendMenuItem(MF_STRING, 47, g28);
  440.     if(g29>"")
  441.     gnr.AppendMenuItem(MF_STRING, 48, g29);
  442.     if(g30>"")
  443.     gnr.AppendMenuItem(MF_STRING, 49, g30);
  444.     if(g31>"")
  445.     gnr.AppendMenuItem(MF_STRING, 50, g31);
  446.     if(g32>"")
  447.     gnr.AppendMenuItem(MF_STRING, 51, g32);
  448.     if(g33>"")
  449.     gnr.AppendMenuItem(MF_STRING, 52, g33);
  450.     if(g34>"")
  451.     gnr.AppendMenuItem(MF_STRING, 53, g34);
  452.     if(g35>"")
  453.     gnr.AppendMenuItem(MF_STRING, 54, g35);
  454.     if(g36>"")
  455.     gnr.AppendMenuItem(MF_STRING, 55, g36);
  456.     if(g37>"")
  457.     gnr.AppendMenuItem(MF_STRING, 56, g37);
  458.     if(g38>"")
  459.     gnr.AppendMenuItem(MF_STRING, 57, g38);
  460.     if(g39>"")
  461.     gnr.AppendMenuItem(MF_STRING, 58, g39);
  462.     if(g40>"")
  463.     gnr.AppendMenuItem(MF_STRING, 59, g40);
  464.     if(g41>"")
  465.     gnr.AppendMenuItem(MF_STRING, 60, g41);
  466.     if(g42>"")
  467.     gnr.AppendMenuItem(MF_STRING, 61, g42);
  468.     if(g43>"")
  469.     gnr.AppendMenuItem(MF_STRING, 62, g43);
  470.     if(g44>"")
  471.     gnr.AppendMenuItem(MF_STRING, 63, g44);
  472.     if(g45>"")
  473.     gnr.AppendMenuItem(MF_STRING, 64, g45);
  474.     if(g46>"")
  475.     gnr.AppendMenuItem(MF_STRING, 65, g46);
  476.     if(g47>"")
  477.     gnr.AppendMenuItem(MF_STRING, 66, g47);
  478.     if(g48>"")
  479.     gnr.AppendMenuItem(MF_STRING, 67, g48);
  480.     if(g49>"")
  481.     gnr.AppendMenuItem(MF_STRING, 68, g49);
  482.     if(g50>"")
  483.     gnr.AppendMenuItem(MF_STRING, 69, g50);
  484.    
  485.  
  486. //main menu run
  487.    
  488.    idx = _menu.TrackPopupMenu(x, y);
  489.     switch (idx) {
  490.    
  491.     case 100:
  492.     { window.ShowProperties();
  493.    
  494.     }
  495.    break;
  496.  
  497.     case 1:
  498.         AUTO_SEARCH = !AUTO_SEARCH;
  499.         window.SetProperty("Autosearch", AUTO_SEARCH);
  500.         if(AUTO_SEARCH) {
  501.             myinputbox[0].autotimer_value = 500;
  502.         } else {
  503.             myinputbox[0].autotimer_value = 0;
  504.         }
  505.         break;
  506.     case 2:
  507.         AUTO_PLS = !AUTO_PLS;
  508.         window.SetProperty("Create AutoPlaylists", AUTO_PLS);
  509.         break;
  510.     case 3:
  511.         g_searchresult = !g_searchresult;
  512.         window.SetProperty("Always Send To #Search Result", g_searchresult);
  513.         break;
  514.     case 4:
  515.         TAG_SEARCH = 0;
  516.         window.SetProperty("Tags Used", TAG_SEARCH);
  517.         if(myinputbox[0].text!=myinputbox[0].default_text) {
  518.             SearchIt(myinputbox[0].text);
  519.         }
  520.         break;
  521.     case 5:
  522.         TAG_SEARCH = 1;
  523.         window.SetProperty("Tags Used", TAG_SEARCH);
  524.         if(myinputbox[0].text!=myinputbox[0].default_text) {
  525.             SearchIt(myinputbox[0].text);
  526.         }
  527.         break;
  528.     case 6:
  529.         TAG_SEARCH = 2;
  530.         window.SetProperty("Tags Used", TAG_SEARCH);
  531.         if(myinputbox[0].text!=myinputbox[0].default_text) {
  532.             SearchIt(myinputbox[0].text);
  533.         }
  534.         break;
  535.     case 7:
  536.         TAG_SEARCH = 3;
  537.         window.SetProperty("Tags Used", TAG_SEARCH);
  538.         if(myinputbox[0].text!=myinputbox[0].default_text) {
  539.             SearchIt(myinputbox[0].text);
  540.         }
  541.         break;
  542.     case 8:
  543.         TAG_SEARCH = 4;
  544.         window.SetProperty("Tags Used", TAG_SEARCH);
  545.         if(myinputbox[0].text!=myinputbox[0].default_text) {
  546.             SearchIt(myinputbox[0].text);
  547.         }
  548.         break;
  549.     case 9:
  550.         TAG_SEARCH = 5;
  551.         window.SetProperty("Tags Used", TAG_SEARCH);
  552.         if(myinputbox[0].text!=myinputbox[0].default_text) {
  553.             SearchIt(myinputbox[0].text);
  554.         }
  555.         break;
  556.    
  557.     case 17:
  558.        SEARCH_MODE = 0;
  559.        window.SetProperty("Library Filter mode", 0);
  560.        break;
  561.        
  562.     case 18:
  563.        SEARCH_MODE = 1;
  564.        window.SetProperty("Library Filter mode", 1);
  565.        break;
  566.  
  567.  //Quick Search Run..
  568.    
  569.     case 10:
  570.         g_quicksearch = true;
  571.         SEARCH_MODE = 0;
  572.         g_quick_search_text = g_artist;
  573.         SearchIt("%artist% IS " + g_quick_search_text);
  574.         break;
  575.     case 11:
  576.         g_quicksearch = true;
  577.         SEARCH_MODE = 0;
  578.         g_quick_search_text = g_album;
  579.         SearchIt("%album% IS " + g_quick_search_text);
  580.         break;
  581.     case 12:
  582.         g_quicksearch = true;
  583.         SEARCH_MODE = 0;
  584.         g_quick_search_text = g_title;
  585.         SearchIt("%title% IS " + g_quick_search_text);
  586.         break;
  587.     case 13:
  588.         g_quicksearch = true;
  589.         SEARCH_MODE = 0;
  590.         g_quick_search_text = g_genre;
  591.         SearchIt("%genre% IS " + g_quick_search_text);
  592.         break;
  593.     case 14:
  594.         g_quicksearch = true;
  595.         SEARCH_MODE = 0;
  596.         g_quick_search_text = g_year;
  597.         SearchIt("%date% HAS " + g_quick_search_text);
  598.         break;
  599.    
  600. window.SetProperty("Last entry", myinputbox[0].text);
  601. window.Repaint();
  602.  
  603. //End of Quick Search..
  604.  
  605.  
  606.  
  607. //genre run
  608.  
  609.  case 20:
  610.    g_quicksearch = true;
  611.         SEARCH_MODE = 0;
  612.         g_quick_search_text=(g1);
  613.         SearchIt("%genre% HAS " + g_quick_search_text);
  614.         break;
  615.    
  616.    case 21:
  617.     g_quicksearch = true;
  618.        SEARCH_MODE = 0;
  619.        g_quick_search_text = (g2);
  620.        SearchIt("%genre% HAS " + g_quick_search_text);
  621.        break;
  622.    
  623.     case 22:  
  624.     g_quicksearch = true;
  625.        SEARCH_MODE = 0;
  626.        g_quick_search_text = (g3);
  627.        SearchIt("%genre% HAS " + g_quick_search_text);
  628.        break;
  629.    
  630.    case 23:
  631.    g_quicksearch = true;
  632.        SEARCH_MODE = 0;
  633.        g_quick_search_text = (g4);
  634.        SearchIt("%genre% HAS " + g_quick_search_text);
  635.        break;
  636.    
  637.     case 24:
  638.     g_quicksearch = true;
  639.        SEARCH_MODE = 0;
  640.        g_quick_search_text = (g5);
  641.        SearchIt("%genre% HAS " + g_quick_search_text);
  642.        break;
  643.    
  644.     case 25:
  645.     g_quicksearch = true;
  646.        SEARCH_MODE = 0;
  647.        g_quick_search_text = (g6);
  648.        SearchIt("%genre% HAS " + g_quick_search_text);
  649.        break;
  650.    
  651.     case 26:
  652.     g_quicksearch = true;
  653.        SEARCH_MODE = 0;
  654.        g_quick_search_text = (g7);
  655.        SearchIt("%genre% HAS " + g_quick_search_text);
  656.        break;
  657.    
  658.     case 27:
  659.     g_quicksearch = true;
  660.        SEARCH_MODE = 0;
  661.        g_quick_search_text = (g8);
  662.        SearchIt("%genre% HAS " + g_quick_search_text);
  663.        break;
  664.    
  665.     case 28:
  666.     g_quicksearch = true;
  667.        SEARCH_MODE = 0;
  668.        g_quick_search_text = (g9);
  669.        SearchIt("%genre% HAS " + g_quick_search_text);
  670.        break;
  671.    
  672.     case 29:
  673.     g_quicksearch = true;
  674.        SEARCH_MODE = 0;
  675.        g_quick_search_text = (g10);
  676.        SearchIt("%genre% HAS " + g_quick_search_text);
  677.        break;
  678.    
  679.     case 30:
  680.     g_quicksearch = true;
  681.        SEARCH_MODE = 0;
  682.        g_quick_search_text = (g11);
  683.        SearchIt("%genre% HAS " + g_quick_search_text);
  684.        break;
  685.    
  686.     case 31:
  687.     g_quicksearch = true;
  688.        SEARCH_MODE = 0;
  689.        g_quick_search_text = (g12);
  690.        SearchIt("%genre% HAS " + g_quick_search_text);
  691.        break;
  692.    
  693.     case 32:
  694.     g_quicksearch = true;
  695.        SEARCH_MODE = 0;
  696.        g_quick_search_text = (g13);
  697.        SearchIt("%genre% HAS " + g_quick_search_text);
  698.        break;
  699.    
  700.     case 33:
  701.     g_quicksearch = true;
  702.        SEARCH_MODE = 0;
  703.        g_quick_search_text = (g14);
  704.        SearchIt("%genre% HAS " + g_quick_search_text);
  705.        break;
  706.    
  707.     case 34:
  708.     g_quicksearch = true;
  709.        SEARCH_MODE = 0;
  710.        g_quick_search_text = (g15);
  711.        SearchIt("%genre% HAS " + g_quick_search_text);
  712.        break;
  713.    
  714.     case 35:
  715.     g_quicksearch = true;
  716.        SEARCH_MODE = 0;
  717.        g_quick_search_text = (g16);
  718.        SearchIt("%genre% HAS " + g_quick_search_text);
  719.        break;
  720.    
  721.     case 36:
  722.     g_quicksearch = true;
  723.        SEARCH_MODE = 0;
  724.        g_quick_search_text = (g17);
  725.        SearchIt("%genre% HAS " + g_quick_search_text);
  726.        break;
  727.    
  728.     case 37:
  729.     g_quicksearch = true;
  730.        SEARCH_MODE = 0;
  731.        g_quick_search_text = (g18);
  732.        SearchIt("%genre% HAS " + g_quick_search_text);
  733.        break;
  734.    
  735.     case 38:
  736.     g_quicksearch = true;
  737.        SEARCH_MODE = 0;
  738.        g_quick_search_text = (g19);
  739.        SearchIt("%genre% HAS " + g_quick_search_text);
  740.        break;
  741.    
  742.     case 39:
  743.     g_quicksearch = true;
  744.        SEARCH_MODE = 0;
  745.        g_quick_search_text = (g20);
  746.        SearchIt("%genre% HAS " + g_quick_search_text);
  747.        break;
  748.    
  749.     case 40:
  750.     g_quicksearch = true;
  751.        SEARCH_MODE = 0;
  752.        g_quick_search_text = (g21);
  753.        SearchIt("%genre% HAS " + g_quick_search_text);
  754.        break;    
  755.    
  756.     case 41:
  757.     g_quicksearch = true;
  758.        SEARCH_MODE = 0;
  759.        g_quick_search_text = (g22);
  760.        SearchIt("%genre% HAS " + g_quick_search_text);
  761.        break;
  762.    
  763.     case 42:
  764.     g_quicksearch = true;
  765.        SEARCH_MODE = 0;
  766.        g_quick_search_text = (g23);
  767.        SearchIt("%genre% HAS " + g_quick_search_text);
  768.        break;
  769.    
  770.     case 43:
  771.     g_quicksearch = true;
  772.        SEARCH_MODE = 0;
  773.        g_quick_search_text = (g24);
  774.        SearchIt("%genre% HAS " + g_quick_search_text);
  775.        break;
  776.    
  777.     case 44:
  778.     g_quicksearch = true;
  779.        SEARCH_MODE = 0;
  780.        g_quick_search_text = (g25);
  781.        SearchIt("%genre% HAS " + g_quick_search_text);
  782.        break;
  783.    
  784.     case 45:
  785.     g_quicksearch = true;
  786.        SEARCH_MODE = 0;
  787.        g_quick_search_text = (g26);
  788.        SearchIt("%genre% HAS " + g_quick_search_text);
  789.        break;
  790.    
  791.     case 46:
  792.     g_quicksearch = true;
  793.        SEARCH_MODE = 0;
  794.        g_quick_search_text = (g27);
  795.        SearchIt("%genre% HAS " + g_quick_search_text);
  796.        break;
  797.    
  798.     case 47:
  799.     g_quicksearch = true;
  800.        SEARCH_MODE = 0;
  801.        g_quick_search_text = (g28);
  802.        SearchIt("%genre% HAS " + g_quick_search_text);
  803.        break;
  804.    
  805.     case 48:
  806.     g_quicksearch = true;
  807.        SEARCH_MODE = 0;
  808.        g_quick_search_text = (g29);
  809.        SearchIt("%genre% HAS " + g_quick_search_text);
  810.        break;
  811.    
  812.     case 49:
  813.     g_quicksearch = true;
  814.        SEARCH_MODE = 0;
  815.        g_quick_search_text = (g30);
  816.        SearchIt("%genre% HAS " + g_quick_search_text);
  817.        break;
  818.    
  819.     case 50:
  820.     g_quicksearch = true;
  821.        SEARCH_MODE = 0;
  822.        g_quick_search_text = (g31);
  823.        SearchIt("%genre% HAS " + g_quick_search_text);
  824.        break;
  825.    
  826.     case 51:
  827.     g_quicksearch = true;
  828.        SEARCH_MODE = 0;
  829.        g_quick_search_text = (g32);
  830.        SearchIt("%genre% HAS " + g_quick_search_text);
  831.        break;
  832.    
  833.     case 52:
  834.     g_quicksearch = true;
  835.        SEARCH_MODE = 0;
  836.        g_quick_search_text = (g33);
  837.        SearchIt("%genre% HAS " + g_quick_search_text);
  838.        break;
  839.    
  840.     case 53:
  841.     g_quicksearch = true;
  842.        SEARCH_MODE = 0;
  843.        g_quick_search_text = (g34);
  844.        SearchIt("%genre% HAS " + g_quick_search_text);
  845.        break;
  846.    
  847.     case 54:
  848.     g_quicksearch = true;
  849.        SEARCH_MODE = 0;
  850.        g_quick_search_text = (g35);
  851.        SearchIt("%genre% HAS " + g_quick_search_text);
  852.        break;    
  853.    
  854.     case 55:
  855.     g_quicksearch = true;
  856.        SEARCH_MODE = 0;
  857.        g_quick_search_text = (g36);
  858.        SearchIt("%genre% HAS " + g_quick_search_text);
  859.        break;
  860.    
  861.     case 56:
  862.     g_quicksearch = true;
  863.        SEARCH_MODE = 0;
  864.        g_quick_search_text = (g37);
  865.        SearchIt("%genre% HAS " + g_quick_search_text);
  866.        break;
  867.    
  868.     case 57:
  869.     g_quicksearch = true;
  870.        SEARCH_MODE = 0;
  871.        g_quick_search_text = (g38);
  872.        SearchIt("%genre% HAS " + g_quick_search_text);
  873.        break;
  874.    
  875.     case 58:
  876.     g_quicksearch = true;
  877.        SEARCH_MODE = 0;
  878.        g_quick_search_text = (g39);
  879.        SearchIt("%genre% HAS " + g_quick_search_text);
  880.        break;
  881.    
  882.     case 59:
  883.     g_quicksearch = true;
  884.        SEARCH_MODE = 0;
  885.        g_quick_search_text = (g40);
  886.        SearchIt("%genre% HAS " + g_quick_search_text);
  887.        break;
  888.    
  889.     case 60:
  890.     g_quicksearch = true;
  891.        SEARCH_MODE = 0;
  892.        g_quick_search_text = (g41);
  893.        SearchIt("%genre% HAS " + g_quick_search_text);
  894.        break;
  895.    
  896.     case 61:
  897.     g_quicksearch = true;
  898.        SEARCH_MODE = 0;
  899.        g_quick_search_text = (g42);
  900.        SearchIt("%genre% HAS " + g_quick_search_text);
  901.        break;
  902.    
  903.     case 62:
  904.     g_quicksearch = true;
  905.        SEARCH_MODE = 0;
  906.        g_quick_search_text = (g43);
  907.        SearchIt("%genre% HAS " + g_quick_search_text);
  908.        break;
  909.    
  910.     case 63:
  911.     g_quicksearch = true;
  912.        SEARCH_MODE = 0;
  913.        g_quick_search_text = (g44);
  914.        SearchIt("%genre% HAS " + g_quick_search_text);
  915.        break;
  916.    
  917.     case 64:
  918.     g_quicksearch = true;
  919.        SEARCH_MODE = 0;
  920.        g_quick_search_text = (g45);
  921.        SearchIt("%genre% HAS " + g_quick_search_text);
  922.        break;
  923.    
  924.     case 65:
  925.     g_quicksearch = true;
  926.        SEARCH_MODE = 0;
  927.        g_quick_search_text = (g46);
  928.        SearchIt("%genre% HAS " + g_quick_search_text);
  929.        break;
  930.    
  931.     case 66:
  932.     g_quicksearch = true;
  933.        SEARCH_MODE = 0;
  934.        g_quick_search_text = (g47);
  935.        SearchIt("%genre% HAS " + g_quick_search_text);
  936.        break;
  937.    
  938.     case 67:
  939.     g_quicksearch = true;
  940.        SEARCH_MODE = 0;
  941.        g_quick_search_text = (g48);
  942.        SearchIt("%genre% HAS " + g_quick_search_text);
  943.        break;
  944.    
  945.     case 68:
  946.     g_quicksearch = true;
  947.        SEARCH_MODE = 0;
  948.        g_quick_search_text = (g49);
  949.        SearchIt("%genre% HAS " + g_quick_search_text);
  950.        break;
  951.    
  952.     case 69:
  953.     g_quicksearch = true;
  954.        SEARCH_MODE = 0;
  955.        g_quick_search_text = (g50);
  956.        SearchIt("%genre% HAS " + g_quick_search_text);
  957.        break;
  958.    
  959. //Mode Rating Run..
  960. case 70:
  961.         g_quicksearch = true;
  962.         g_quick_search_text = "%mood% GREATER 0";
  963.         SearchIt(g_quick_search_text);
  964.         break;
  965.     case 71:
  966.         g_quicksearch = true;
  967.         g_quick_search_text = "%skip% GREATER 0";
  968.         SearchIt(g_quick_search_text);
  969.         break;
  970.     case 72:
  971.         g_quicksearch = true;
  972.         g_quick_search_text = "%rating% MISSING OR %rating% LESS 1";
  973.         SearchIt(g_quick_search_text);
  974.         break;
  975.     case 73:
  976.     g_quicksearch = true;
  977.         g_quick_search_text = "%rating% IS 1";
  978.         SearchIt(g_quick_search_text);
  979.         break;
  980.     case 74:
  981.     g_quicksearch = true;
  982.         g_quick_search_text = "%rating% IS 2";
  983.         SearchIt(g_quick_search_text);
  984.         break;
  985.     case 75:
  986.     g_quicksearch = true;
  987.         g_quick_search_text = "%rating% IS 3";
  988.         SearchIt(g_quick_search_text);
  989.         break;
  990.     case 76:
  991.     g_quicksearch = true;
  992.         g_quick_search_text = "%rating% IS 4";
  993.         SearchIt(g_quick_search_text);
  994.         break;
  995.     case 77:
  996.         g_quicksearch = true;
  997.         g_quick_search_text = "%rating% IS 5";
  998.         SearchIt(g_quick_search_text);
  999.         break;
  1000.     case 78:
  1001.         g_quicksearch = true;
  1002.         var foo_playcount = utils.CheckComponent("foo_playcount", true);
  1003.         if(foo_playcount) {
  1004.             g_quick_search_text = "%play_count% MISSING OR %play_count% LESS 1";
  1005.         } else {
  1006.             g_quick_search_text = "%play_counter% MISSING OR %play_counter% LESS 1";
  1007.         }
  1008.         SearchIt(g_quick_search_text);
  1009.         break;
  1010.  
  1011.     _menu.Dispose();
  1012.     return true;
  1013.  
  1014.    }
  1015. }
  1016.  
  1017. function SearchIt(str) {
  1018.     var i, j;
  1019.     var last_id;
  1020.     var pl;
  1021.     var pl_name;
  1022.     var str_tag;
  1023.     var is_query = false;
  1024.     var query_count=0;
  1025.     var query_value=0;
  1026.     var query_value_read;
  1027.     var found = -1;
  1028.     if (arguments.length == 0) {
  1029.         return myinputbox[0].text;
  1030.     } else if(str.length>0 || (str.length==0 && SEARCH_MODE==1)) {
  1031.         if(g_quicksearch) {
  1032.             is_query = false;
  1033.             pl_name = "#Search result";
  1034.             g_quick_search_text = "";
  1035.         } else {
  1036.             if(str.substring(0,1)=="%") {
  1037.                 is_query = true;
  1038.                 if(g_searchresult) {
  1039.                     pl_name = "#Search result";
  1040.                 } else {
  1041.                     pl_name = "Search Query #";
  1042.                 }
  1043.             } else {
  1044.                 is_query = false;
  1045.                 if(g_searchresult) {
  1046.                     pl_name = "#Search result";
  1047.                 } else {
  1048.                     pl_name = "Search " + str;
  1049.                 }
  1050.             }
  1051.         }
  1052.         if(SEARCH_MODE==1) {
  1053.             if(str.length>0) {
  1054.                 pl_name = "&&0&&Library (filtered)";
  1055.             } else {
  1056.                 pl_name = "&&0&&Library";
  1057.             }
  1058.         }
  1059.         for (i = 0; i < fb.PlaylistCount; i++) {
  1060.             pl = fb.GetPlaylistName(i);
  1061.             if(pl.substring(0,14)=="Search Query #") {
  1062.                 query_count++;
  1063.             } else {
  1064.                 // not a query
  1065.                 if(!is_query || SEARCH_MODE==1 || g_searchresult) {
  1066.                     if(SEARCH_MODE==0) {
  1067.                         if(pl==pl_name) {
  1068.                             found = i;
  1069.                             break;
  1070.                         }
  1071.                     } else {
  1072.                         if(pl.substring(0,5)=="&&0&&") {
  1073.                             found = i;
  1074.                             break;
  1075.                         }
  1076.                     }
  1077.                 }
  1078.             }
  1079.         }
  1080.         if(!g_searchresult && SEARCH_MODE==0 && is_query && query_count==0) {
  1081.             pl_name = pl_name + "0";
  1082.         }
  1083.         // if query enterred,
  1084.         if(SEARCH_MODE==0 && is_query && query_count>0) {
  1085.             // look for # to affect
  1086.             for (i = 0; i < query_count; i++) {
  1087.                 for (j = 0; j < fb.PlaylistCount; j++) {
  1088.                     pl = fb.GetPlaylistName(j);
  1089.                     if(pl.substring(0,14)=="Search Query #") {
  1090.                         query_value_read = Math.floor(pl.substring(14,pl.length));
  1091.                         if(query_value_read==query_value) {
  1092.                             query_value++;
  1093.                         }
  1094.                     }
  1095.                 }
  1096.             }
  1097.             pl_name = pl_name + query_value.toString();
  1098.         }
  1099.         // Tags Used
  1100.         if(!is_query && !g_quicksearch) {
  1101.             switch(TAG_SEARCH) {
  1102.                 case 0:
  1103.                     str_tag = str;
  1104.                     break;
  1105.                 case 1:
  1106.                     str_tag = "%artist% HAS " + str;
  1107.                     break;
  1108.                 case 2:
  1109.                     str_tag = "%album% HAS " + str;
  1110.                     break;
  1111.                 case 3:
  1112.                     str_tag = "%title% HAS " + str;
  1113.                     break;
  1114.                 case 4:
  1115.                     str_tag = "%genre% HAS " + str;
  1116.                     break;
  1117.                 case 5:
  1118.                     str_tag = "%date% HAS " + str;
  1119.                     break;
  1120.             }
  1121.         } else {
  1122.             str_tag = str;
  1123.         }
  1124.         // run
  1125.         switch(SEARCH_MODE) {
  1126.             case 0: // Library Search mode : create a new playlist for each new search
  1127.                 if(found>=0) {
  1128.                     fb.RemovePlaylist(found);
  1129.                 }
  1130.                 last_id = fb.PlaylistCount;
  1131.                 if(AUTO_PLS) {
  1132.                     fb.CreateAutoPlaylist(last_id, pl_name, str_tag);
  1133.                 } else {
  1134.                     fb.CreateAutoPlaylist(last_id, "&tmp", str_tag);
  1135.                     fb.DuplicatePlaylist(last_id, pl_name);
  1136.                     fb.RemovePlaylist(last_id);
  1137.                 }
  1138.                 if(found>=0) {
  1139.                     fb.MovePlaylist(last_id, found);
  1140.                     fb.ActivePlaylist = found;
  1141.                 } else {
  1142.                     fb.ActivePlaylist = last_id;
  1143.                 }
  1144.                 break;
  1145.             case 1: // Library Filter mode : always sent item to the specified playlist : Library
  1146.                 if(found>=0) {
  1147.                     fb.RemovePlaylist(found);
  1148.                 }
  1149.                 fb.CreateAutoPlaylist(fb.PlaylistCount, pl_name, str.length>0?str_tag:"%path% PRESENT");
  1150.                 if(found>=0) {
  1151.                     fb.MovePlaylist(fb.PlaylistCount-1, found);
  1152.                     fb.ActivePlaylist = found;
  1153.                 } else {
  1154.                     fb.MovePlaylist(fb.PlaylistCount-1, 0);
  1155.                     fb.ActivePlaylist = 0;
  1156.                 }
  1157.                 break;
  1158.         }
  1159.        
  1160.     } else {
  1161.         myinputbox[0].Reset();
  1162.     }
  1163.     SEARCH_MODE = window.GetProperty("Library Filter mode", 0);
  1164.     window.SetProperty("Last entry", myinputbox[0].text);
  1165.     g_searchresult = window.GetProperty("Always Send To #Search Result", true);
  1166.     g_quicksearch = false;
  1167. }
  1168.  
  1169. function refresh_buttons() {
  1170.     var gb;
  1171.    
  1172.     reset_img_off = gdi.CreateImage(15, 15);
  1173.     gb = reset_img_off.GetGraphics();
  1174.     gb.SetSmoothingMode(2);
  1175.     gb.FillEllipse(0, 0, 14, 14, RGBA(100, 150, 180, 140));
  1176.     gb.DrawLine(4, 4, 10, 10, 2.0, RGBA(230, 230, 230, 255));
  1177.     gb.DrawLine(10, 4, 4, 10, 2.0, RGBA(230, 230, 230, 255));
  1178.     reset_img_off.ReleaseGraphics(gb);
  1179.  
  1180.     settings_img = gdi.CreateImage(22, 22);
  1181.     gb = settings_img.GetGraphics();
  1182.     gb.SetSmoothingMode(2);
  1183.     gb.FillRoundRect(1, 1, 20, 19, 3, 3, RGBA(0,0,0,080));
  1184.     gb.FillRoundRect(0, 0, 20, 19, 3, 3, RGB(20,20,20));
  1185.     gb.SetSmoothingMode(0);
  1186.     gb.FillGradRect(1, 2, 19, 16, 90, RGBA(0,0,0,0), RGBA(255,255,255,050), 0.3);
  1187.     gb.SetSmoothingMode(2);
  1188.     gb.DrawRoundRect(0, 0, 20, 19, 3, 3, 1.0, RGBA(0,0,0,100));
  1189.     gb.DrawRoundRect(1, 1, 18, 17, 2, 2, 1.0, RGBA(250,250,250,050));
  1190.     gb.DrawEllipse(5, 3, 11, 11, 2.0, RGB(250,250,250));
  1191.     gb.DrawLine(6, 13, 3, 16, 2.0, RGB(250,250,250));
  1192.     settings_img.ReleaseGraphics(gb);
  1193.  
  1194.     // initialize buttons
  1195.     for (i = 0; i < mybutton.length; i++) {
  1196.         switch (i) {
  1197.             case 0:
  1198.                 mybutton[i].create(reset_img_off, reset_img_off, reset_img_off, "", -01);
  1199.                 break;
  1200.             case 1:
  1201.                 break;
  1202.             case 2:
  1203.                 break;
  1204.             case 3:
  1205.                 mybutton[i].create(settings_img, settings_img, settings_img, "", -04);
  1206.                 break;
  1207.         }
  1208.     }
  1209.    
  1210.     CollectGarbage();
  1211. }
  1212.  
  1213. function on_notify_data(name, info) {
  1214.     switch(name) {
  1215.         case "rating":
  1216.             ratingmethod = info;
  1217.             break;
  1218.         case "moodskip_mode":
  1219.             moodskipmethod = info;
  1220.             break;
  1221.         case "g_artist":
  1222.             g_artist = info;
  1223.             break;
  1224.         case "g_album":
  1225.             g_album = info;
  1226.             break;
  1227.         case "g_title":
  1228.             g_title = info;
  1229.             break;
  1230.         case "g_genre":
  1231.             g_genre = info;
  1232.             break;
  1233.         case "g_year":
  1234.             g_year = info;
  1235.             break;
  1236.     }
  1237. }
  1238.  
  1239. function on_drag_enter(action) {
  1240.     action.Parsable = false;
  1241. }
  1242.  
  1243. function on_mouse_rbtn_up(x, y) {
  1244.     return true;
  1245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement