Initial community commit
BIN
Src/resources/skins/Winamp Modern/about/about.maki
Normal file
138
Src/resources/skins/Winamp Modern/about/about.xml
Normal file
@ -0,0 +1,138 @@
|
||||
<elements>
|
||||
<bitmap id="about.bg" file="about/about_bg.png"/>
|
||||
<bitmap id="about.fg" file="about/about_fg.png"/>
|
||||
<bitmap id="about.winampbolt" file="about/about_bolt.png"/>
|
||||
<bitmap id="about.starani" file="about/about_star.png"/>
|
||||
<bitmap id="about.eye" file="about/eye.png"/>
|
||||
|
||||
<color id="font.about.color1" value="255,225,155" gammagroup=""/>
|
||||
<color id="font.about.color2" value="255,255,255" gammagroup=""/>
|
||||
|
||||
</elements>
|
||||
|
||||
<groupdef id="skin.about.group" w="0" h="0" relatw="1" relath="1" rectrgn="1">
|
||||
<rect fitparent="1" color="110,119,134" filled="1" />
|
||||
<layer
|
||||
x="0" y="0"
|
||||
w="0" relatw="1"
|
||||
h="321"
|
||||
image="about.bg"
|
||||
/>
|
||||
<layer
|
||||
x="0" y="0"
|
||||
w="371"
|
||||
h="321"
|
||||
image="about.fg"
|
||||
/>
|
||||
<layer
|
||||
id="about.bolt"
|
||||
x="153" y="149"
|
||||
w="56"
|
||||
h="56"
|
||||
image="about.winampbolt"
|
||||
/>
|
||||
<layer
|
||||
id="about.eye1"
|
||||
x="186" y="78"
|
||||
w="3"
|
||||
h="4"
|
||||
image="about.eye"
|
||||
/>
|
||||
<layer
|
||||
id="about.eye2"
|
||||
x="197" y="79"
|
||||
w="3"
|
||||
h="4"
|
||||
image="about.eye"
|
||||
/>
|
||||
<AnimatedLayer
|
||||
x="-75" y="-70"
|
||||
w="68" h="70"
|
||||
id="about.star1"
|
||||
image="about.starani"
|
||||
autoplay="0"
|
||||
autoreplay="0"
|
||||
/>
|
||||
<AnimatedLayer
|
||||
x="-75" y="-70"
|
||||
w="68" h="70"
|
||||
id="about.star2"
|
||||
image="about.starani"
|
||||
autoplay="0"
|
||||
autoreplay="0"
|
||||
/>
|
||||
<AnimatedLayer
|
||||
x="-75" y="-70"
|
||||
w="68" h="70"
|
||||
id="about.star3"
|
||||
image="about.starani"
|
||||
autoplay="0"
|
||||
autoreplay="0"
|
||||
/>
|
||||
<AnimatedLayer
|
||||
x="-75" y="-70"
|
||||
w="68" h="70"
|
||||
id="about.star4"
|
||||
image="about.starani"
|
||||
autoplay="0"
|
||||
autoreplay="0"
|
||||
/>
|
||||
|
||||
|
||||
<text
|
||||
id="about.text1b"
|
||||
color="font.about.color1"
|
||||
x="10" y="13"
|
||||
w="351"
|
||||
h="20"
|
||||
valign="top"
|
||||
align="center"
|
||||
fontsize="13"
|
||||
font="Arial"
|
||||
bold="1"
|
||||
default=""
|
||||
/>
|
||||
<text
|
||||
id="about.text2b"
|
||||
color="font.about.color1"
|
||||
x="10" y="13"
|
||||
w="351"
|
||||
h="20"
|
||||
valign="top"
|
||||
align="center"
|
||||
fontsize="13"
|
||||
font="Arial"
|
||||
bold="1"
|
||||
default=""
|
||||
/>
|
||||
|
||||
<text
|
||||
id="about.text1"
|
||||
color="font.about.color2"
|
||||
x="10" y="27"
|
||||
w="351"
|
||||
h="30"
|
||||
valign="top"
|
||||
align="center"
|
||||
fontsize="17"
|
||||
font="Arial"
|
||||
default=""
|
||||
/>
|
||||
<text
|
||||
id="about.text2"
|
||||
color="font.about.color2"
|
||||
x="10" y="27"
|
||||
w="351"
|
||||
h="30"
|
||||
valign="top"
|
||||
align="center"
|
||||
fontsize="17"
|
||||
font="Arial"
|
||||
default=""
|
||||
/>
|
||||
|
||||
<guiobject fitparent="1" />
|
||||
|
||||
<script file="about/about.maki"/>
|
||||
|
||||
</groupdef>
|
BIN
Src/resources/skins/Winamp Modern/about/about_bg.png
Normal file
After Width: | Height: | Size: 414 B |
BIN
Src/resources/skins/Winamp Modern/about/about_bolt.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
Src/resources/skins/Winamp Modern/about/about_fg.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
Src/resources/skins/Winamp Modern/about/about_star.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
Src/resources/skins/Winamp Modern/about/eye.png
Normal file
After Width: | Height: | Size: 92 B |
BIN
Src/resources/skins/Winamp Modern/notifier/aol_radio_alb_art.jpg
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
Src/resources/skins/Winamp Modern/notifier/notif-bg-alpha.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Src/resources/skins/Winamp Modern/notifier/notif-bg.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Src/resources/skins/Winamp Modern/notifier/sc_alb_art.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
Src/resources/skins/Winamp Modern/player/Eq_bg.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
Src/resources/skins/Winamp Modern/player/Options_buttons.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
Src/resources/skins/Winamp Modern/player/Options_elements.PNG
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
Src/resources/skins/Winamp Modern/player/Songtickerfont.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
Src/resources/skins/Winamp Modern/player/beat_displayoverlay.png
Normal file
After Width: | Height: | Size: 242 B |
BIN
Src/resources/skins/Winamp Modern/player/beat_l2.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
Src/resources/skins/Winamp Modern/player/beat_left.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
Src/resources/skins/Winamp Modern/player/beat_r2.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
Src/resources/skins/Winamp Modern/player/beat_right.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Src/resources/skins/Winamp Modern/player/beat_textoverlay.png
Normal file
After Width: | Height: | Size: 245 B |
BIN
Src/resources/skins/Winamp Modern/player/bolt.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Src/resources/skins/Winamp Modern/player/button_balance.png
Normal file
After Width: | Height: | Size: 756 B |
After Width: | Height: | Size: 757 B |
BIN
Src/resources/skins/Winamp Modern/player/button_ct_switch.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Src/resources/skins/Winamp Modern/player/button_eq.png
Normal file
After Width: | Height: | Size: 781 B |
BIN
Src/resources/skins/Winamp Modern/player/button_mute.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
Src/resources/skins/Winamp Modern/player/button_mute_bg.PNG
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
Src/resources/skins/Winamp Modern/player/button_repeat2.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 2.8 KiB |
BIN
Src/resources/skins/Winamp Modern/player/button_videoavs.png
Normal file
After Width: | Height: | Size: 1012 B |
BIN
Src/resources/skins/Winamp Modern/player/button_volume.png
Normal file
After Width: | Height: | Size: 895 B |
BIN
Src/resources/skins/Winamp Modern/player/buttons_detach.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_eq.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_mlpl.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_mlpl_bg.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_pl.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_switchto.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_video.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
Src/resources/skins/Winamp Modern/player/buttons_vis.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
Src/resources/skins/Winamp Modern/player/config_tabs.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Src/resources/skins/Winamp Modern/player/ct_background.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
Src/resources/skins/Winamp Modern/player/ct_bg.png
Normal file
After Width: | Height: | Size: 93 B |
BIN
Src/resources/skins/Winamp Modern/player/display.PNG
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Src/resources/skins/Winamp Modern/player/displayoverlay.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
Src/resources/skins/Winamp Modern/player/drawer_bg.PNG
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
Src/resources/skins/Winamp Modern/player/drawer_bg_regions.png
Normal file
After Width: | Height: | Size: 186 B |
BIN
Src/resources/skins/Winamp Modern/player/drawer_shadow.PNG
Normal file
After Width: | Height: | Size: 374 B |
BIN
Src/resources/skins/Winamp Modern/player/eq_balance.png
Normal file
After Width: | Height: | Size: 503 B |
BIN
Src/resources/skins/Winamp Modern/player/eq_labels.png
Normal file
After Width: | Height: | Size: 351 B |
BIN
Src/resources/skins/Winamp Modern/player/eq_textoverlay.png
Normal file
After Width: | Height: | Size: 678 B |
BIN
Src/resources/skins/Winamp Modern/player/main_bg.png
Normal file
After Width: | Height: | Size: 368 B |
BIN
Src/resources/skins/Winamp Modern/player/mainregions.png
Normal file
After Width: | Height: | Size: 108 B |
BIN
Src/resources/skins/Winamp Modern/player/menubar.PNG
Normal file
After Width: | Height: | Size: 639 B |
BIN
Src/resources/skins/Winamp Modern/player/numfont.png
Normal file
After Width: | Height: | Size: 865 B |
BIN
Src/resources/skins/Winamp Modern/player/openclose_overlay.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
Src/resources/skins/Winamp Modern/player/options_bg.PNG
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Src/resources/skins/Winamp Modern/player/options_buttons2.png
Normal file
After Width: | Height: | Size: 524 B |
BIN
Src/resources/skins/Winamp Modern/player/options_more.png
Normal file
After Width: | Height: | Size: 640 B |
After Width: | Height: | Size: 440 B |
BIN
Src/resources/skins/Winamp Modern/player/options_slider.png
Normal file
After Width: | Height: | Size: 123 B |
BIN
Src/resources/skins/Winamp Modern/player/pe_time.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Src/resources/skins/Winamp Modern/player/pe_time_font.png
Normal file
After Width: | Height: | Size: 221 B |
BIN
Src/resources/skins/Winamp Modern/player/playbackstatus.png
Normal file
After Width: | Height: | Size: 320 B |
BIN
Src/resources/skins/Winamp Modern/player/player_buttons.png
Normal file
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 652 B |
BIN
Src/resources/skins/Winamp Modern/player/progressbar.PNG
Normal file
After Width: | Height: | Size: 144 B |
BIN
Src/resources/skins/Winamp Modern/player/resize_pl.png
Normal file
After Width: | Height: | Size: 452 B |
BIN
Src/resources/skins/Winamp Modern/player/resizer.png
Normal file
After Width: | Height: | Size: 298 B |
BIN
Src/resources/skins/Winamp Modern/player/seekbar.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
Src/resources/skins/Winamp Modern/player/seekpos.png
Normal file
After Width: | Height: | Size: 105 B |
BIN
Src/resources/skins/Winamp Modern/player/shufflerepeat_bg.PNG
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
Src/resources/skins/Winamp Modern/player/shufflerepeat_led.png
Normal file
After Width: | Height: | Size: 740 B |
BIN
Src/resources/skins/Winamp Modern/player/smallfont.PNG
Normal file
After Width: | Height: | Size: 526 B |
BIN
Src/resources/skins/Winamp Modern/player/songinfo.png
Normal file
After Width: | Height: | Size: 936 B |
BIN
Src/resources/skins/Winamp Modern/player/songinfofont.png
Normal file
After Width: | Height: | Size: 311 B |
BIN
Src/resources/skins/Winamp Modern/player/txt_config.PNG
Normal file
After Width: | Height: | Size: 126 B |
BIN
Src/resources/skins/Winamp Modern/player/videoavs_bg.png
Normal file
After Width: | Height: | Size: 999 B |
BIN
Src/resources/skins/Winamp Modern/player/videoavs_button_bg.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
Src/resources/skins/Winamp Modern/player/videoavs_button_bg2.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 561 B |
After Width: | Height: | Size: 931 B |
After Width: | Height: | Size: 300 B |
After Width: | Height: | Size: 302 B |
After Width: | Height: | Size: 560 B |
BIN
Src/resources/skins/Winamp Modern/player/volume_bar_bg.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Src/resources/skins/Winamp Modern/screenshot.png
Normal file
After Width: | Height: | Size: 19 KiB |
113
Src/resources/skins/Winamp Modern/scripts/albumart.m
Normal file
@ -0,0 +1,113 @@
|
||||
#include <lib/std.mi>
|
||||
#include "attribs.m"
|
||||
|
||||
Global AlbumArtLayer waaa;
|
||||
Global Layout aalayout;
|
||||
|
||||
System.onScriptLoaded()
|
||||
{
|
||||
initAttribs();
|
||||
Container albumart = System.getContainer("winamp.albumart");
|
||||
aalayout = albumart.getLayout("normal");
|
||||
waaa = getScriptGroup().findObject(getParam());
|
||||
}
|
||||
|
||||
system.onScriptUnloading ()
|
||||
{
|
||||
if (!aalayout) return;
|
||||
setPrivateInt("Winamp Modern", "Album Art XPos", aalayout.getLeft());
|
||||
setPrivateInt("Winamp Modern", "Album Art YPos", aalayout.getTop());
|
||||
}
|
||||
|
||||
aalayout.onStartup ()
|
||||
{
|
||||
resize(getPrivateInt("Winamp Modern", "Album Art XPos", 0), getPrivateInt("Winamp Modern", "Album Art YPos", 0), getWidth(), getHeight());
|
||||
}
|
||||
|
||||
aalayout.onSetVisible (Boolean onoff)
|
||||
{
|
||||
if (!onoff)
|
||||
{
|
||||
albumart_visible_attrib.setData("0");
|
||||
}
|
||||
else
|
||||
{
|
||||
albumart_visible_attrib.setData("1");
|
||||
}
|
||||
}
|
||||
|
||||
albumart_visible_attrib.onDataChanged ()
|
||||
{
|
||||
if (getData() == "1")
|
||||
{
|
||||
aalayout.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
aalayout.hide();
|
||||
}
|
||||
}
|
||||
|
||||
System.onKeyDown(String key)
|
||||
{
|
||||
if (key == "alt+a")
|
||||
{
|
||||
if (albumart_visible_attrib.getData() == "0")
|
||||
albumart_visible_attrib.setData("1");
|
||||
else
|
||||
albumart_visible_attrib.setData("0");
|
||||
complete;
|
||||
}
|
||||
}
|
||||
|
||||
waaa.onRightButtonDown (int x, int y)
|
||||
{
|
||||
popupmenu p = new popupmenu;
|
||||
|
||||
p.addCommand("Refresh Album Art", 1, 0, 0);
|
||||
String path = getPath(getPlayItemMetaDataString("filename"));
|
||||
if(path != "")
|
||||
{
|
||||
p.addCommand("Open Folder", 2, 0, 0);
|
||||
}
|
||||
|
||||
int result = p.popatmouse();
|
||||
delete p;
|
||||
|
||||
if (result == 1)
|
||||
{
|
||||
waaa.refresh();
|
||||
}
|
||||
else if (result == 2)
|
||||
{
|
||||
if(path != "")
|
||||
{
|
||||
System.navigateUrl(path);
|
||||
}
|
||||
else
|
||||
{
|
||||
String url = getPlayItemMetaDataString("streamurl");
|
||||
if(url != "")
|
||||
{
|
||||
System.navigateUrl(url);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
waaa.onLeftButtonDblClk (int x, int y)
|
||||
{
|
||||
String path = getPath(getPlayItemMetaDataString("filename"));
|
||||
if(path != "")
|
||||
{
|
||||
System.navigateUrl(path);
|
||||
}
|
||||
else
|
||||
{
|
||||
String url = getPlayItemMetaDataString("streamurl");
|
||||
if(url != "")
|
||||
{
|
||||
System.navigateUrl(url);
|
||||
}
|
||||
}
|
||||
}
|
BIN
Src/resources/skins/Winamp Modern/scripts/albumart.maki
Normal file
319
Src/resources/skins/Winamp Modern/scripts/attribs.m
Normal file
@ -0,0 +1,319 @@
|
||||
#ifndef included
|
||||
#error This script can only be compiled as a #include
|
||||
#endif
|
||||
|
||||
#ifndef __ATTRIBS_M
|
||||
#define __ATTRIBS_M
|
||||
|
||||
#include <lib/config.mi>
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// this is the page that maps its items to the options menu, you can add attribs or more pages (submenus)
|
||||
#define CUSTOM_OPTIONSMENU_ITEMS "{1828D28F-78DD-4647-8532-EBA504B8FC04}"
|
||||
|
||||
// this is the page that maps its items to the windows menu (aka View), you can add attribs or more pages (submenus)
|
||||
#define CUSTOM_WINDOWSMENU_ITEMS "{6559CA61-7EB2-4415-A8A9-A2AEEF762B7F}"
|
||||
|
||||
// custom options submenu item page, you can add more, just use guidgen and Config.newItem()
|
||||
#define CUSTOM_PAGE "{26E26319-AECA-4433-B8F1-F4A5BF2A9ED5}"
|
||||
|
||||
// drawer config page
|
||||
#define CUSTOM_PAGE_DRAWER "{C338B30F-2A04-4b10-871F-4E9D52D62806}"
|
||||
|
||||
// menubars config page
|
||||
#define CUSTOM_PAGE_MENUBARS "{12ED320E-6813-45ac-9F8E-78EE5B2B5F6D}"
|
||||
|
||||
// main windowshade config page
|
||||
#define CUSTOM_PAGE_WINDOWSHADE "{58F07E21-AE96-4899-B7BC-3640B40029FB}"
|
||||
|
||||
// vis button config page
|
||||
#define CUSTOM_PAGE_VISCMD "{D70E3ABF-D2FF-4b82-9A70-4B5DF1A5D942}"
|
||||
|
||||
// notifier config page
|
||||
#define CUSTOM_PAGE_NOTIFIER "{1AB968B3-8687-4a35-BA70-FCF6D92FB57F}"
|
||||
|
||||
// songticker config page
|
||||
#define CUSTOM_PAGE_SONGTICKER "{7061FDE0-0E12-11D8-BB41-0050DA442EF3}"
|
||||
|
||||
// non exposed attribs page
|
||||
#define CUSTOM_PAGE_NONEXPOSED "{E9C2D926-53CA-400f-9A4D-85E31755A4CF}"
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Function initAttribs();
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Global ConfigAttribute scrolldrawerattrib;
|
||||
Global ConfigAttribute scrollconfigdrawerattrib;
|
||||
|
||||
Global ConfigAttribute vis_detach_attrib;
|
||||
Global ConfigAttribute video_detach_attrib;
|
||||
|
||||
Global ConfigAttribute drawer_directiontop_attrib;
|
||||
Global ConfigAttribute drawer_directionbottom_attrib;
|
||||
Global ConfigAttribute drawer_directionbypass_attrib;
|
||||
|
||||
Global ConfigAttribute eq_visible_attrib, albumart_visible_attrib;
|
||||
|
||||
Global ConfigAttribute menubar_main_attrib;
|
||||
Global ConfigAttribute menubar_pe_attrib;
|
||||
Global ConfigAttribute menubar_ml_attrib;
|
||||
|
||||
Global ConfigAttribute windowshade_linkall_attrib;
|
||||
Global ConfigAttribute windowshade_linkposition_attrib;
|
||||
Global ConfigAttribute windowshade_linknone_attrib;
|
||||
|
||||
Global ConfigAttribute beatvisualization_attrib;
|
||||
|
||||
Global ConfigAttribute viscmd_config_attrib;
|
||||
Global ConfigAttribute viscmd_menu_attrib;
|
||||
|
||||
Global ConfigAttribute notifier_minimized_attrib;
|
||||
Global ConfigAttribute notifier_windowshade_attrib;
|
||||
Global ConfigAttribute notifier_always_attrib;
|
||||
Global ConfigAttribute notifier_never_attrib;
|
||||
Global ConfigAttribute notifier_fadeintime_attrib;
|
||||
Global ConfigAttribute notifier_fadeouttime_attrib;
|
||||
Global ConfigAttribute notifier_holdtime_attrib;
|
||||
Global ConfigAttribute notifier_disablefullscreen_attrib;
|
||||
//Global ConfigAttribute notifier_opennowplaying_attrib;
|
||||
Global ConfigAttribute notifier_artworkinnotification_attrib;
|
||||
|
||||
Class ConfigAttribute songticker_scrolling_attrib;
|
||||
Global songticker_scrolling_attrib songticker_scrolling_modern_attrib;
|
||||
Global songticker_scrolling_attrib songticker_scrolling_classic_attrib;
|
||||
Global songticker_scrolling_attrib songticker_scrolling_disabled_attrib;
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
initAttribs() {
|
||||
|
||||
// create the custom cfgpage for this session (if it does exist, it just returns it)
|
||||
ConfigItem custom_page = Config.newItem("Winamp Modern", CUSTOM_PAGE);
|
||||
ConfigItem custom_page_drawer = Config.newItem("Drawers", CUSTOM_PAGE_DRAWER);
|
||||
ConfigItem custom_page_menubars = Config.newItem("Menus", CUSTOM_PAGE_MENUBARS);
|
||||
ConfigItem custom_page_windowshade = Config.newItem("Main Windowshade Mode", CUSTOM_PAGE_WINDOWSHADE);
|
||||
ConfigItem custom_page_viscmd = Config.newItem("Vis Buttons", CUSTOM_PAGE_VISCMD);
|
||||
ConfigItem custom_page_notifier = Config.newItem("Notifications", CUSTOM_PAGE_NOTIFIER);
|
||||
ConfigItem custom_page_songticker = Config.newItem("Songticker", CUSTOM_PAGE_SONGTICKER);
|
||||
|
||||
ConfigItem custom_page_nonexposed = Config.newItem("Hidden", CUSTOM_PAGE_NONEXPOSED);
|
||||
|
||||
// load up the cfgpage in which we'll insert our custom page
|
||||
ConfigItem custom_options_page = Config.getItem(CUSTOM_OPTIONSMENU_ITEMS);
|
||||
ConfigItem custom_windows_page = Config.getItem(CUSTOM_WINDOWSMENU_ITEMS);
|
||||
|
||||
// this creates a submenu for this attribute
|
||||
ConfigAttribute submenuattrib = custom_options_page.newAttribute("Winamp Modern", "");
|
||||
submenuattrib.setData(CUSTOM_PAGE); // discard any default value and point at our custom cfgpage
|
||||
|
||||
ConfigAttribute drawersubmenu = custom_page.newAttribute("Drawers", "");
|
||||
drawersubmenu.setData(CUSTOM_PAGE_DRAWER);
|
||||
|
||||
ConfigAttribute menubarssubmenu = custom_page.newAttribute("Menus", "");
|
||||
menubarssubmenu.setData(CUSTOM_PAGE_MENUBARS);
|
||||
|
||||
ConfigAttribute windowshadesubmenu = custom_page.newAttribute("Main Windowshade Mode", "");
|
||||
windowshadesubmenu.setData(CUSTOM_PAGE_WINDOWSHADE);
|
||||
|
||||
ConfigAttribute viscmdsubmenu = custom_page.newAttribute("Vis Shortcut Button", "");
|
||||
viscmdsubmenu.setData(CUSTOM_PAGE_VISCMD);
|
||||
|
||||
ConfigAttribute notifiersubmenu = custom_page.newAttribute("Notifications", "");
|
||||
notifiersubmenu.setData(CUSTOM_PAGE_NOTIFIER);
|
||||
|
||||
ConfigAttribute songtickersubmenu = custom_page.newAttribute("Songticker", "");
|
||||
songtickersubmenu.setData(CUSTOM_PAGE_SONGTICKER);
|
||||
|
||||
|
||||
scrolldrawerattrib = custom_page_drawer.newAttribute("Animate Video/Vis Drawer (disabled if opacity < 100%)", "0");
|
||||
scrollconfigdrawerattrib = custom_page_drawer.newAttribute("Animate Config Drawer", "0");
|
||||
ConfigAttribute sep = custom_page_drawer.newAttribute("sep1", ""); sep.setData("-");
|
||||
drawer_directiontop_attrib = custom_page_drawer.newAttribute("Open Video/Vis from the top", "0");
|
||||
drawer_directionbottom_attrib = custom_page_drawer.newAttribute("Open Video/Vis from the bottom", "1");
|
||||
drawer_directionbypass_attrib = custom_page_drawer.newAttribute("Bypass setting to keep in screen", "1");
|
||||
if (drawer_directiontop_attrib.getData() == "1") drawer_directiontop_attrib.onDataChanged(); else drawer_directionbottom_attrib.onDataChanged();
|
||||
|
||||
menubar_main_attrib = custom_page_menubars.newAttribute("Show Menus in Main Window", "1");
|
||||
menubar_pe_attrib = custom_page_menubars.newAttribute("Show Menus in Playlist Editor", "1");
|
||||
menubar_ml_attrib = custom_page_menubars.newAttribute("Show Menus in Media Library", "1");
|
||||
|
||||
// create an attribute for each of our options, if the attribute already exists, it is returned
|
||||
sep = custom_page.newAttribute("sep1", ""); sep.setData("-");
|
||||
vis_detach_attrib = custom_page.newAttribute("Detach Vis Window", "0");
|
||||
video_detach_attrib = custom_page.newAttribute("Detach Video Window", "0");
|
||||
eq_visible_attrib = custom_windows_page.newAttribute("Equalizer\tAlt+G", "0");
|
||||
albumart_visible_attrib = custom_windows_page.newAttribute("Album Art\tAlt+A", "1");
|
||||
|
||||
sep = custom_page.newAttribute("sep2", ""); sep.setData("-");
|
||||
beatvisualization_attrib = custom_page.newAttribute("Enable Beat Visualization", "1");
|
||||
|
||||
windowshade_linkall_attrib = custom_page_windowshade.newAttribute("Link Position and Width", "1");
|
||||
windowshade_linkposition_attrib = custom_page_windowshade.newAttribute("Link Position, Unlink Width", "0");
|
||||
windowshade_linknone_attrib = custom_page_windowshade.newAttribute("Unlink Position and Width", "0");
|
||||
|
||||
viscmd_menu_attrib = custom_page_viscmd.newAttribute("Open Context Menu", "1");
|
||||
viscmd_config_attrib = custom_page_viscmd.newAttribute("Open Configuration", "0");
|
||||
|
||||
notifier_always_attrib = custom_page_notifier.newAttribute("Show always", "0");
|
||||
notifier_windowshade_attrib = custom_page_notifier.newAttribute("Show with windowshade and when minimized", "0");
|
||||
notifier_minimized_attrib = custom_page_notifier.newAttribute("Show only when minimized", "0");
|
||||
notifier_never_attrib = custom_page_notifier.newAttribute("Never show", "1");
|
||||
sep = custom_page_notifier.newAttribute("sep1", ""); sep.setData("-");
|
||||
notifier_disablefullscreen_attrib = custom_page_notifier.newAttribute("Disable in fullscreen", "1");
|
||||
sep = custom_page_notifier.newAttribute("sep666", ""); sep.setData("-");
|
||||
//notifier_opennowplaying_attrib = custom_page_notifier.newAttribute("Open Now Playing on Click", "1");
|
||||
sep = custom_page_notifier.newAttribute("sep333", ""); sep.setData("-");
|
||||
notifier_artworkinnotification_attrib = custom_page_notifier.newAttribute("Show Now Playing Artwork", "1");
|
||||
|
||||
notifier_fadeintime_attrib = custom_page_nonexposed.newAttribute("Notifications fade in time", "1000");
|
||||
notifier_fadeouttime_attrib = custom_page_nonexposed.newAttribute("Notifications fade out time", "5000");
|
||||
notifier_holdtime_attrib = custom_page_nonexposed.newAttribute("Notifications display time", "2000");
|
||||
|
||||
songticker_scrolling_disabled_attrib = custom_page_songticker.newAttribute("Disable Songticker scrolling", "0");
|
||||
if (songticker_scrolling_disabled_attrib.getData() == "0") songticker_scrolling_modern_attrib = custom_page_songticker.newAttribute("Modern Songticker scrolling", "1");
|
||||
else songticker_scrolling_modern_attrib = custom_page_songticker.newAttribute("Modern Songticker scrolling", "0");
|
||||
songticker_scrolling_classic_attrib = custom_page_songticker.newAttribute("Classic Songticker scrolling", "0");
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef MAIN_ATTRIBS_MGR
|
||||
|
||||
Global Int attribs_mychange;
|
||||
|
||||
#define NOOFF if (getData()=="0") { setData("1"); return; }
|
||||
|
||||
drawer_directiontop_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
drawer_directionbottom_attrib.setData("0");
|
||||
drawer_directiontop_attrib.setData("1");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
drawer_directionbottom_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
drawer_directiontop_attrib.setData("0");
|
||||
drawer_directionbottom_attrib.setData("1");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
windowshade_linkall_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
windowshade_linkposition_attrib.setData("0");
|
||||
windowshade_linknone_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
windowshade_linkposition_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
windowshade_linkall_attrib.setData("0");
|
||||
windowshade_linknone_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
windowshade_linknone_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
windowshade_linkall_attrib.setData("0");
|
||||
windowshade_linkposition_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
viscmd_menu_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
viscmd_config_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
updateVisCmd();
|
||||
}
|
||||
|
||||
viscmd_config_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
viscmd_menu_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
updateVisCmd();
|
||||
}
|
||||
|
||||
notifier_always_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
notifier_never_attrib.setData("0");
|
||||
notifier_windowshade_attrib.setData("0");
|
||||
notifier_minimized_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
notifier_never_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
notifier_always_attrib.setData("0");
|
||||
notifier_windowshade_attrib.setData("0");
|
||||
notifier_minimized_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
notifier_minimized_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
notifier_never_attrib.setData("0");
|
||||
notifier_windowshade_attrib.setData("0");
|
||||
notifier_always_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
notifier_windowshade_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
notifier_never_attrib.setData("0");
|
||||
notifier_always_attrib.setData("0");
|
||||
notifier_minimized_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
|
||||
songticker_scrolling_modern_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
songticker_scrolling_disabled_attrib.setData("0");
|
||||
songticker_scrolling_classic_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
songticker_scrolling_disabled_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
songticker_scrolling_modern_attrib.setData("0");
|
||||
songticker_scrolling_classic_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
songticker_scrolling_classic_attrib.onDataChanged() {
|
||||
if (attribs_mychange) return;
|
||||
NOOFF
|
||||
attribs_mychange = 1;
|
||||
songticker_scrolling_modern_attrib.setData("0");
|
||||
songticker_scrolling_disabled_attrib.setData("0");
|
||||
attribs_mychange = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
139
Src/resources/skins/Winamp Modern/scripts/beatvisualization.m
Normal file
@ -0,0 +1,139 @@
|
||||
#include <lib/std.mi>
|
||||
#include "attribs.m"
|
||||
|
||||
Function setObjects();
|
||||
|
||||
Global Group frameGroup,beatdisplay;
|
||||
Global Layer beatOverlay,DisplayRight,DisplayRightOverlay,DisplaySongtickerBG,VisOverlay;
|
||||
Global Timer refreshEQ;
|
||||
Global AnimatedLayer beatbarLeft,beatbarRight;
|
||||
Global int lastBeatLeft,lastBeatRight;
|
||||
Global Button Toggler,Toggler2;
|
||||
Global Int dobeat2;
|
||||
|
||||
System.onScriptLoaded() {
|
||||
initAttribs();
|
||||
frameGroup = getScriptGroup();
|
||||
beatdisplay = frameGroup.findObject("player.normal.display.beatvisualization");
|
||||
beatOverlay = frameGroup.findObject("beatdisplayoverlay");
|
||||
beatbarLeft = frameGroup.findObject("beatleft");
|
||||
beatbarRight = frameGroup.findObject("beatright");
|
||||
|
||||
Toggler = frameGroup.findObject("beatvisualization");
|
||||
Toggler2 = frameGroup.findObject("beatvisualization2");
|
||||
|
||||
DisplayRight = frameGroup.findObject("display.right");
|
||||
DisplayRightOverlay = frameGroup.findObject("display.right.overlay2");
|
||||
DisplaySongtickerBG = frameGroup.findObject("display.st.right");
|
||||
VisOverlay = frameGroup.findObject("visualization.overlay");
|
||||
|
||||
lastBeatLeft = 0;
|
||||
lastBeatRight = 0;
|
||||
|
||||
refreshEQ = new Timer;
|
||||
refreshEQ.setDelay(10);
|
||||
}
|
||||
|
||||
System.onscriptunloading() {
|
||||
delete refreshEQ;
|
||||
}
|
||||
|
||||
setObjects() {
|
||||
int group_width = frameGroup.getWidth();
|
||||
|
||||
if ( group_width % 2 !=0 ) {
|
||||
DisplayRight.setXmlParam("image","player.display.right");
|
||||
DisplayRightOverlay.setXmlParam("image","player.display.right");
|
||||
DisplaySongtickerBG.setXmlParam("image","player.display.songticker.bg.right");
|
||||
VisOverlay.setXmlParam("image","player.visualization.overlay");
|
||||
} else {
|
||||
DisplayRight.setXmlParam("image","player.display.right2");
|
||||
DisplayRightOverlay.setXmlParam("image","player.display.right2");
|
||||
DisplaySongtickerBG.setXmlParam("image","player.display.songticker.bg.right2");
|
||||
VisOverlay.setXmlParam("image","player.visualization.overlay2");
|
||||
}
|
||||
|
||||
if ( group_width > 480 ) {
|
||||
int newXpos = (group_width-60)/2;
|
||||
beatdisplay.setXmlParam("x", IntegerToString(newXpos));
|
||||
beatdisplay.show();
|
||||
|
||||
if ( beatvisualization_attrib.getData()=="1" ) {
|
||||
refreshEQ.stop();
|
||||
refreshEQ.start();
|
||||
} else {
|
||||
refreshEQ.stop();
|
||||
beatbarLeft.gotoframe(0);
|
||||
beatbarRight.gotoframe(0);
|
||||
}
|
||||
} else {
|
||||
beatdisplay.hide();
|
||||
refreshEQ.stop();
|
||||
}
|
||||
}
|
||||
|
||||
frameGroup.onResize(int x, int y, int w, int h) {
|
||||
setObjects();
|
||||
}
|
||||
|
||||
refreshEQ.onTimer() {
|
||||
int beatLeft= System.getLeftVuMeter();
|
||||
int beatRight= System.getRightVuMeter();
|
||||
|
||||
int frameLeft=beatLeft/16;
|
||||
int frameRight=beatRight/16;
|
||||
|
||||
if (frameLeft>14) frameLeft=14;
|
||||
if (frameRight>14) frameRight=14;
|
||||
|
||||
if (frameLeft<lastBeatLeft) {
|
||||
frameLeft=lastBeatLeft-1;
|
||||
if (frameLeft<0) frameLeft=0;
|
||||
}
|
||||
|
||||
if (frameRight<lastBeatRight) {
|
||||
frameRight=lastBeatRight-1;
|
||||
if (frameRight<0) frameRight=0;
|
||||
}
|
||||
|
||||
lastBeatLeft=frameLeft;
|
||||
lastBeatRight=frameRight;
|
||||
|
||||
beatbarLeft.gotoframe(frameLeft);
|
||||
beatbarRight.gotoframe(frameRight);
|
||||
}
|
||||
|
||||
beatvisualization_attrib.onDataChanged() {
|
||||
setObjects();
|
||||
}
|
||||
|
||||
System.onKeyDown(String key) {
|
||||
if (key == "shift+ctrl+alt") {
|
||||
dobeat2 = 1;
|
||||
complete;
|
||||
} else dobeat2 = 0;
|
||||
}
|
||||
|
||||
Toggler.onLeftClick() {
|
||||
if ( beatvisualization_attrib.getData()=="1" ) {
|
||||
beatvisualization_attrib.setData("0");
|
||||
} else {
|
||||
beatvisualization_attrib.setData("1");
|
||||
}
|
||||
}
|
||||
|
||||
Toggler2.onActivate(boolean on) {
|
||||
if (!dobeat2) { Toggler.leftClick(); return; }
|
||||
refreshEQ.stop();
|
||||
|
||||
if (on) {
|
||||
beatbarLeft.setXMLParam("image","player.display.beat.left2");
|
||||
beatbarRight.setXMLParam("image","player.display.beat.right2");
|
||||
beatOverlay.hide();
|
||||
} else {
|
||||
beatbarLeft.setXMLParam("image","player.display.beat.left");
|
||||
beatbarRight.setXMLParam("image","player.display.beat.right");
|
||||
beatOverlay.show();
|
||||
}
|
||||
setObjects();
|
||||
}
|
BIN
Src/resources/skins/Winamp Modern/scripts/beatvisualization.maki
Normal file
2
Src/resources/skins/Winamp Modern/scripts/buildall.bat
Normal file
@ -0,0 +1,2 @@
|
||||
for %%a in (*.m) do "H:\Program Files\Nullsoft\sandbox\wasabi\mc.exe" %%a
|
||||
pause
|
280
Src/resources/skins/Winamp Modern/scripts/configtabs.m
Normal file
@ -0,0 +1,280 @@
|
||||
#include <lib/std.mi>
|
||||
#include "attribs.m"
|
||||
|
||||
function setTabs(int tabstate);
|
||||
function setTabContent(int contentstate);
|
||||
|
||||
function OpenDrawer(int animate);
|
||||
function CloseDrawer(int animate);
|
||||
function updateAttribs();
|
||||
|
||||
function ShowDrawer();
|
||||
function adjustSnapPoints(int DrawerOpen);
|
||||
|
||||
Global Group frameGroup,PlayerMain,VideoVisGroup;
|
||||
Global Group tabs,tEQon,tEQoff,tOPTIONSon,tOPTIONSoff,tCOLORTHEMESon,tCOLORTHEMESoff;
|
||||
Global Group ContentEQ,ContentOPTIONS,ContentCOLORTHEMES;
|
||||
Global Layer mouseLayerEQ,mouseLayerOPTIONS,mouseLayerCOLORTHEMES;
|
||||
Global Button btnClose,btnOpen;
|
||||
Global Group Drawer,DrawerShadow,DrawerContent;
|
||||
Global GuiObject ColorThemes;
|
||||
Global Layout main;
|
||||
Global Int mychange;
|
||||
Global Boolean loaded=0;
|
||||
Global Timer deferred_opendrawer;
|
||||
|
||||
System.onScriptLoaded() {
|
||||
initAttribs();
|
||||
|
||||
frameGroup = getScriptGroup();
|
||||
main = frameGroup.getParentLayout();
|
||||
|
||||
tabs=frameGroup.findObject("config.tabs");
|
||||
tEQon=frameGroup.findObject("config.tab.eq.on");
|
||||
tEQoff=frameGroup.findObject("config.tab.eq.off");
|
||||
tOPTIONSon=frameGroup.findObject("config.tab.options.on");
|
||||
tOPTIONSoff=frameGroup.findObject("config.tab.options.off");
|
||||
tCOLORTHEMESon=frameGroup.findObject("config.tab.colorthemes.on");
|
||||
tCOLORTHEMESoff=frameGroup.findObject("config.tab.colorthemes.off");
|
||||
|
||||
ColorThemes=frameGroup.findObject("colorthemes");
|
||||
PlayerMain=frameGroup.findObject("player.main");
|
||||
VideoVisGroup = frameGroup.findObject("AVSGroup");
|
||||
|
||||
ContentEQ=frameGroup.findObject("player.normal.drawer.eq");
|
||||
ContentOPTIONS=frameGroup.findObject("player.normal.drawer.options");
|
||||
ContentCOLORTHEMES=frameGroup.findObject("player.normal.drawer.colorthemes");
|
||||
|
||||
mouseLayerEQ=frameGroup.findObject("mousetrapTabEQ");
|
||||
mouseLayerOPTIONS=frameGroup.findObject("mousetrapTabOPTIONS");
|
||||
mouseLayerCOLORTHEMES=frameGroup.findObject("mousetrapTabCOLORTHEMES");
|
||||
|
||||
btnClose = frameGroup.findObject("drawer.button.close");
|
||||
btnOpen = frameGroup.findObject("drawer.button.open");
|
||||
drawer = frameGroup.findObject("player.normal.drawer");
|
||||
DrawerShadow = frameGroup.findObject("player.normal.drawer.shadow");
|
||||
DrawerContent = frameGroup.findObject("player.normal.drawer.content");
|
||||
|
||||
int tabEQwidth=tEQon.getWidth();
|
||||
int tabOPTIONSwidth=tOPTIONSon.getWidth();
|
||||
|
||||
int tOPTIONSx=tabEQwidth-3;
|
||||
int tCOLORTHEMESx=tabEQwidth+tabOPTIONSwidth-6;
|
||||
|
||||
tOPTIONSon.setXmlParam("x",integertostring(tOPTIONSx));
|
||||
tOPTIONSoff.setXmlParam("x",integertostring(tOPTIONSx));
|
||||
tCOLORTHEMESoff.setXmlParam("x",integertostring(tCOLORTHEMESx));
|
||||
tCOLORTHEMESon.setXmlParam("x",integertostring(tCOLORTHEMESx));
|
||||
|
||||
mychange = 1;
|
||||
setTabs(getPrivateInt("winamp5", "ConfigTab", 1));
|
||||
mychange = 0;
|
||||
if (getPrivateInt("winamp5", "DrawerOpen", 0)) {
|
||||
OpenDrawer(0);
|
||||
adjustSnapPoints(1);
|
||||
} else {
|
||||
adjustSnapPoints(0);
|
||||
}
|
||||
loaded=1;
|
||||
deferred_opendrawer = new Timer;
|
||||
deferred_opendrawer.setDelay(250);
|
||||
}
|
||||
|
||||
System.onScriptUnloading() {
|
||||
delete deferred_opendrawer;
|
||||
}
|
||||
|
||||
setTabs(int tabstate) {
|
||||
|
||||
tEQon.hide();
|
||||
tOPTIONSon.hide();
|
||||
tCOLORTHEMESon.hide();
|
||||
|
||||
if (tabstate==1) {
|
||||
tEQon.show();
|
||||
}
|
||||
if (tabstate==2) {
|
||||
tOPTIONSon.show();
|
||||
}
|
||||
if (tabstate==3) {
|
||||
tCOLORTHEMESon.show();
|
||||
}
|
||||
|
||||
setTabContent(tabstate);
|
||||
setPrivateInt("winamp5", "ConfigTab", tabstate);
|
||||
updateAttribs();
|
||||
}
|
||||
|
||||
setTabContent(int contentstate) {
|
||||
if (contentstate==1) {
|
||||
ContentEQ.show();
|
||||
ContentOPTIONS.hide();
|
||||
ContentCOLORTHEMES.hide();
|
||||
}
|
||||
if (contentstate==2) {
|
||||
ContentEQ.hide();
|
||||
ContentOPTIONS.show();
|
||||
ContentCOLORTHEMES.hide();
|
||||
}
|
||||
if (contentstate==3) {
|
||||
ContentEQ.hide();
|
||||
ContentOPTIONS.hide();
|
||||
ContentCOLORTHEMES.show();
|
||||
}
|
||||
}
|
||||
|
||||
mouseLayerEQ.onLeftButtonDown(int x, int y) {
|
||||
setTabs(1);
|
||||
}
|
||||
|
||||
mouseLayerOPTIONS.onLeftButtonDown(int x, int y) {
|
||||
setTabs(2);
|
||||
}
|
||||
|
||||
mouseLayerCOLORTHEMES.onLeftButtonDown(int x, int y) {
|
||||
setTabs(3);
|
||||
}
|
||||
|
||||
OpenDrawer(int animate) {
|
||||
btnOpen.hide();
|
||||
btnClose.show();
|
||||
main.beforeRedock();
|
||||
if (animate && scrollconfigdrawerattrib.getData() == "1") {
|
||||
lockUI();
|
||||
drawer.setTargetX(drawer.getGuiX());
|
||||
drawer.setTargetY(-147);
|
||||
drawer.setTargetW(drawer.getGuiW());
|
||||
drawer.setTargetH(drawer.getGuiH());
|
||||
drawer.setTargetSpeed(1);
|
||||
drawer.gotoTarget();
|
||||
} else {
|
||||
drawer.setXMLParam("y","-147");
|
||||
setPrivateInt("winamp5", "DrawerOpen", 1);
|
||||
ColorThemes.show();
|
||||
adjustSnapPoints(1);
|
||||
updateAttribs();
|
||||
main.Redock();
|
||||
}
|
||||
DrawerShadow.show();
|
||||
// main.setXmlParam("minimum_h", "397");
|
||||
}
|
||||
|
||||
closeDrawer(int animate) {
|
||||
main.beforeRedock();
|
||||
// main.setXmlParam("minimum_h", "280");
|
||||
ColorThemes.hide();
|
||||
|
||||
btnClose.hide();
|
||||
btnOpen.show();
|
||||
if (animate && scrollconfigdrawerattrib.getData() == "1") {
|
||||
lockUI();
|
||||
drawer.setTargetX(drawer.getGuiX());
|
||||
drawer.setTargetY(-263);
|
||||
drawer.setTargetW(drawer.getGuiW());
|
||||
drawer.setTargetH(drawer.getGuiH());
|
||||
drawer.setTargetSpeed(1);
|
||||
drawer.gotoTarget();
|
||||
} else {
|
||||
drawer.setXMLParam("y","-263");
|
||||
DrawerShadow.hide();
|
||||
setPrivateInt("winamp5", "DrawerOpen", 0);
|
||||
adjustSnapPoints(0);
|
||||
updateAttribs();
|
||||
main.redock();
|
||||
}
|
||||
}
|
||||
|
||||
btnClose.onLeftClick() {
|
||||
closeDrawer(1);
|
||||
}
|
||||
|
||||
btnOpen.onLeftClick() {
|
||||
openDrawer(1);
|
||||
}
|
||||
|
||||
drawer.onTargetReached() {
|
||||
if (btnClose.isVisible()) {
|
||||
setPrivateInt("winamp5", "DrawerOpen", 1);
|
||||
ColorThemes.show();
|
||||
adjustSnapPoints(1);
|
||||
} else {
|
||||
DrawerShadow.hide();
|
||||
setPrivateInt("winamp5", "DrawerOpen", 0);
|
||||
adjustSnapPoints(0);
|
||||
}
|
||||
updateAttribs();
|
||||
main.redock();
|
||||
unlockUI();
|
||||
}
|
||||
|
||||
ShowDrawer() {
|
||||
drawer.setXmlParam("y", "-147");
|
||||
ColorThemes.show();
|
||||
btnOpen.hide();
|
||||
btnClose.show();
|
||||
DrawerShadow.show();
|
||||
adjustSnapPoints(1);
|
||||
}
|
||||
|
||||
adjustSnapPoints(int DrawerOpen) {
|
||||
int menuHeight=0;
|
||||
if (menubar_main_attrib.getData() == "0") menuHeight=17;
|
||||
if (DrawerOpen) {
|
||||
main.snapAdjust(0,0,0,0+menuHeight);
|
||||
} else {
|
||||
main.snapAdjust(0,0,0,116+menuHeight);
|
||||
}
|
||||
}
|
||||
|
||||
menubar_main_attrib.onDataChanged() {
|
||||
int menuHeight=0;
|
||||
if (getData() == "0") menuHeight=17;
|
||||
main.beforeRedock();
|
||||
int DrawerOpen=getPrivateInt("winamp5", "DrawerOpen", 0);
|
||||
if (DrawerOpen) {
|
||||
main.snapAdjust(0,0,0,0+menuHeight);
|
||||
} else {
|
||||
main.snapAdjust(0,0,0,116+menuHeight);
|
||||
}
|
||||
main.Redock();
|
||||
}
|
||||
|
||||
main.onResize(int x, int y, int w, int h) {
|
||||
int newXpos=w/2-163;
|
||||
DrawerContent.setXmlParam("x",integertostring(newXpos));
|
||||
}
|
||||
|
||||
eq_visible_attrib.onDataChanged() {
|
||||
if (mychange) return;
|
||||
mychange = 1;
|
||||
if (getData() == "1") {
|
||||
main.getContainer().switchToLayout("normal"); // instead of main.show(), or linkwidth wont work
|
||||
deferred_opendrawer.start();
|
||||
} if (getData() == "0") {
|
||||
closeDrawer(1);
|
||||
}
|
||||
mychange = 0;
|
||||
}
|
||||
|
||||
deferred_opendrawer.onTimer() {
|
||||
stop();
|
||||
setTabs(1);
|
||||
if (btnOpen.isVisible()) openDrawer(1);
|
||||
}
|
||||
|
||||
updateAttribs() {
|
||||
if (mychange) return;
|
||||
mychange = 1;
|
||||
if (tabstate == 1 && !btnOpen.isVisible()) eq_visible_attrib.setData("1"); else eq_visible_attrib.setData("0");
|
||||
mychange = 0;
|
||||
}
|
||||
|
||||
System.onKeyDown(String key) {
|
||||
if (key == "alt+g") {
|
||||
if (eq_visible_attrib.getData() == "0")
|
||||
eq_visible_attrib.setData("1");
|
||||
else
|
||||
eq_visible_attrib.setData("0");
|
||||
complete;
|
||||
}
|
||||
}
|
BIN
Src/resources/skins/Winamp Modern/scripts/configtabs.maki
Normal file
97
Src/resources/skins/Winamp Modern/scripts/configtarget.m
Normal file
@ -0,0 +1,97 @@
|
||||
#include <lib/std.mi>
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
Global GuiObject target;
|
||||
Global ComponentBucket buck;
|
||||
// ------------------------------------------------------------------------------------
|
||||
Function turnAllOffExcept(GuiObject except);
|
||||
Function turnOn(GuiObject obj);
|
||||
Function turnOff(GuiObject obj);
|
||||
// ------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// init
|
||||
// ------------------------------------------------------------------------------------
|
||||
System.onScriptLoaded() {
|
||||
target = getScriptGroup().findObject("skin.config.target");
|
||||
buck = getScriptGroup().findObject("my.bucket");
|
||||
|
||||
// turn off all
|
||||
GuiObject o = NULL;
|
||||
turnAllOffExcept(o);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// save scroller position
|
||||
// ------------------------------------------------------------------------------------
|
||||
System.onScriptUnloading() {
|
||||
if (buck) {
|
||||
setPrivateInt("configmenu", "last_scroll", buck.getScroll());
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// turn on last open
|
||||
// ------------------------------------------------------------------------------------
|
||||
buck.onStartup() {
|
||||
setScroll(getPrivateInt("configmenu", "last_scroll", 0));
|
||||
Group g = buck.enumChildren(getPrivateInt("configmenu", "last_page", 0));
|
||||
if (!g) g = buck.enumChildren(0);
|
||||
if (!g) return;
|
||||
ToggleButton btn = g.getObject("btn");
|
||||
if (btn) btn.leftClick();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// this is called by the bucket button to switch to a new group
|
||||
// ------------------------------------------------------------------------------------
|
||||
target.onAction(String action, String param, int x, int y, int p1, int p2, GuiObject source) {
|
||||
if (getToken(action,";",0) == "switchto") {
|
||||
String grp = getToken(action, ";", 1);
|
||||
String is_subpage = getToken(action, ";", 2);
|
||||
target.setXmlParam("groupid", grp);
|
||||
|
||||
if (is_subpage!="subpage") turnAllOffExcept(source.getParent()); // getParent because the source is the button itself, the parent is the whole group item in the bucket
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// turn off all buttons except for the parameter, also save last_page param based on param item
|
||||
// ------------------------------------------------------------------------------------
|
||||
turnAllOffExcept(GuiObject except) {
|
||||
if (!buck) return;
|
||||
int i=0;
|
||||
// enumerate all inserted groups, turn them off if they're not our exception
|
||||
while (i<buck.getNumChildren()) {
|
||||
GuiObject obj = buck.enumChildren(i);
|
||||
if (obj == except) { // otherwise record last page
|
||||
setPrivateInt("configmenu", "last_page", i);
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
if (obj == NULL) { break; } // shoundnt happen
|
||||
turnOff(obj);
|
||||
i++;
|
||||
}
|
||||
// turn on the clicked item
|
||||
if (except) turnOn(except);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
turnOn(GuiObject obj) {
|
||||
Group gobj = obj;
|
||||
|
||||
// otherwise we just need this :
|
||||
ToggleButton tg = gobj.getObject("btn");
|
||||
tg.setActivated(1);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
turnOff(GuiObject obj) {
|
||||
Group gobj = obj;
|
||||
|
||||
// otherwise we just need this :
|
||||
ToggleButton tg = gobj.getObject("btn");
|
||||
tg.setActivated(0);
|
||||
}
|
BIN
Src/resources/skins/Winamp Modern/scripts/configtarget.maki
Normal file
55
Src/resources/skins/Winamp Modern/scripts/crossfade.m
Normal file
@ -0,0 +1,55 @@
|
||||
#include <lib/std.mi>
|
||||
|
||||
Global Group frameGroup;
|
||||
Global Slider slidercb;
|
||||
Global Text fadertext;
|
||||
Global Button CFIncrease, CFDecrease;
|
||||
Global ToggleButton Crossfade;
|
||||
Global Layer DisplayOverlay;
|
||||
|
||||
System.onScriptLoaded() {
|
||||
frameGroup = getScriptGroup();
|
||||
slidercb = frameGroup.findObject("sCrossfade");
|
||||
fadertext = frameGroup.findObject("CFDisplay");
|
||||
CFIncrease = frameGroup.findObject("CrossfadeIncrease");
|
||||
CFDecrease = frameGroup.findObject("CrossfadeDecrease");
|
||||
Crossfade = frameGroup.findObject("Crossfade");
|
||||
DisplayOverlay = frameGroup.findObject("crossfade.display.overlay");
|
||||
slidercb.onSetPosition(slidercb.getPosition());
|
||||
|
||||
Crossfade.onToggle(Crossfade.getActivated());
|
||||
}
|
||||
|
||||
slidercb.onSetPosition(int val) {
|
||||
String s = IntegerToString(val);
|
||||
fadertext.setText(s);
|
||||
}
|
||||
|
||||
CFIncrease.onLeftClick() {
|
||||
slidercb.SetPosition(slidercb.getPosition()+1);
|
||||
}
|
||||
|
||||
CFDecrease.onLeftClick() {
|
||||
slidercb.SetPosition(slidercb.getPosition()-1);
|
||||
}
|
||||
|
||||
Crossfade.onToggle(boolean on) {
|
||||
if (!on)
|
||||
{
|
||||
fadertext.setAlpha(150);
|
||||
CFIncrease.setAlpha(150);
|
||||
CFDecrease.setXmlParam("ghost" , "1");
|
||||
CFDecrease.setAlpha(150);
|
||||
CFIncrease.setXmlParam("ghost" , "1");
|
||||
DisplayOverlay.show();
|
||||
}
|
||||
else
|
||||
{
|
||||
fadertext.setAlpha(255);
|
||||
CFIncrease.setAlpha(255);
|
||||
CFDecrease.setAlpha(255);
|
||||
CFIncrease.setXmlParam("ghost" , "0");
|
||||
CFDecrease.setXmlParam("ghost" , "0");
|
||||
DisplayOverlay.hide();
|
||||
}
|
||||
}
|
BIN
Src/resources/skins/Winamp Modern/scripts/crossfade.maki
Normal file
120
Src/resources/skins/Winamp Modern/scripts/display.m
Normal file
@ -0,0 +1,120 @@
|
||||
#include <lib/std.mi>
|
||||
#include "attribs.m"
|
||||
|
||||
Global Group frameGroup;
|
||||
Global Togglebutton ShuffleBtn,RepeatBtn,ShuffleBtn2,RepeatBtn2;
|
||||
Global Timer SongTickerTimer;
|
||||
Global Text InfoTicker;
|
||||
Global GuiObject SongTicker;
|
||||
Global Slider Balance;
|
||||
Global Layout normal;
|
||||
|
||||
function setSongtickerScrolling();
|
||||
|
||||
System.onScriptLoaded() {
|
||||
initAttribs();
|
||||
frameGroup = getScriptGroup();
|
||||
SongTicker = frameGroup.findObject("songticker");
|
||||
InfoTicker = frameGroup.findObject("infoticker");
|
||||
normal = frameGroup.getParentLayout();
|
||||
|
||||
SongTickerTimer = new Timer;
|
||||
SongTickerTimer.setDelay(1000);
|
||||
|
||||
RepeatBtn = frameGroup.findObject("Repeat");
|
||||
ShuffleBtn = frameGroup.findObject("Shuffle");
|
||||
RepeatBtn2 = frameGroup.findObject("RepeatDisplay");
|
||||
ShuffleBtn2 = frameGroup.findObject("ShuffleDisplay");
|
||||
|
||||
Balance = frameGroup.findObject("Balance");
|
||||
setSongtickerScrolling();
|
||||
}
|
||||
|
||||
normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
|
||||
{
|
||||
if (strlower(action) == "showinfo")
|
||||
{
|
||||
SongTicker.hide();
|
||||
SongTickerTimer.start();
|
||||
InfoTicker.setText(param);
|
||||
InfoTicker.show();
|
||||
|
||||
}
|
||||
else if (strlower(action) == "cancelinfo")
|
||||
{
|
||||
SongTickerTimer.onTimer ();
|
||||
}
|
||||
}
|
||||
|
||||
SongTickerTimer.onTimer() {
|
||||
SongTicker.show();
|
||||
InfoTicker.hide();
|
||||
SongTickerTimer.stop();
|
||||
}
|
||||
|
||||
System.onScriptUnloading() {
|
||||
delete SongTickerTimer;
|
||||
}
|
||||
|
||||
Balance.onSetPosition(int newpos)
|
||||
{
|
||||
string t=translate("Balance")+":";
|
||||
if (newpos==127) t+= " " + translate("Center");
|
||||
if (newpos<127) t += " " + integerToString((100-(newpos/127)*100))+"% "+translate("Left");
|
||||
if (newpos>127) t += " " + integerToString(((newpos-127)/127)*100)+"% "+translate("Right");
|
||||
|
||||
SongTickerTimer.start();
|
||||
SongTicker.hide();
|
||||
InfoTicker.show();
|
||||
InfoTicker.setText(t);
|
||||
}
|
||||
|
||||
RepeatBtn.onToggle(boolean on) {
|
||||
SongTickerTimer.start();
|
||||
int v = getCurCfgVal();
|
||||
SongTicker.hide();
|
||||
InfoTicker.show();
|
||||
if (v == 0) InfoTicker.setText("Repeat: OFF");
|
||||
else if (v > 0) InfoTicker.setText("Repeat: ALL");
|
||||
else if (v < 0) InfoTicker.setText("Repeat: TRACK");
|
||||
}
|
||||
|
||||
ShuffleBtn.onToggle(boolean on) {
|
||||
SongTickerTimer.start();
|
||||
SongTicker.hide();
|
||||
InfoTicker.show();
|
||||
if (on) InfoTicker.setText("Playlist Shuffling: ON"); else InfoTicker.setText("Playlist Shuffling: OFF");
|
||||
}
|
||||
|
||||
RepeatBtn2.onToggle(boolean on) {
|
||||
SongTickerTimer.start();
|
||||
int v = getCurCfgVal();
|
||||
SongTicker.hide();
|
||||
InfoTicker.show();
|
||||
if (v == 0) InfoTicker.setText("Repeat: OFF");
|
||||
else if (v > 0) InfoTicker.setText("Repeat: ALL");
|
||||
else if (v < 0) InfoTicker.setText("Repeat: TRACK");
|
||||
}
|
||||
|
||||
ShuffleBtn2.onToggle(boolean on) {
|
||||
SongTickerTimer.start();
|
||||
SongTicker.hide();
|
||||
InfoTicker.show();
|
||||
if (on) InfoTicker.setText("Playlist Shuffling: ON"); else InfoTicker.setText("Playlist Shuffling: OFF");
|
||||
}
|
||||
|
||||
songticker_scrolling_attrib.onDataChanged() {
|
||||
setSongtickerScrolling();
|
||||
}
|
||||
|
||||
setSongtickerScrolling() {
|
||||
if (songticker_scrolling_modern_attrib.getData()=="1") {
|
||||
SongTicker.setXMLParam("ticker","bounce");
|
||||
}
|
||||
else if (songticker_scrolling_classic_attrib.getData()=="1") {
|
||||
SongTicker.setXMLParam("ticker","scroll");
|
||||
}
|
||||
else {
|
||||
SongTicker.setXMLParam("ticker","off");
|
||||
}
|
||||
}
|