Skip to main content
Topic: WSH Panel Mod script discussion/help (Read 966417 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

WSH Panel Mod script discussion/help

Reply #1350
here's another script. this is for DUI only. it allows you to create your own buttons of any size, using any images you like. by default it uses the DUI background colour (it changes colour as you change theme).



but it also has an option to set the background to the same colour as the splitter or your own custom colour which you can specify in the script.



it does require a little tinkering to get going so here's a guide. […]

Hey marc2003, any chance you have a similar script for CUI?

Also, how hard would it be to replace the play button with pause while tracks are playing?

Thanks!

WSH Panel Mod script discussion/help

Reply #1351
that post is very out of date now. the current version is included in my pack of sample scripts here.

http://dl.dropbox.com/u/22801321/samples.zip

it's imaginatively named playback buttons.

WSH Panel Mod script discussion/help

Reply #1352
Thanks!!

Can you tell me what this script (Playback Buttons) uses from your external JS files (common4.js and tooltip_buttons.js) other then the location of the images?

Would it be possible to make it so it doesn't require the two external files?

WSH Panel Mod script discussion/help

Reply #1353
if the presence of 2 files that take up 17kb of space bothers you, i suggest you turn off your computer and don't bother using it again. :/

WSH Panel Mod script discussion/help

Reply #1354
Funny, but I have no issue with the presence of the files. I'm teaching myself how to code by understanding your scripts. I can follow your WSH script and make sense of it but when I start trying to connect the dots to the other two JS files, I get lost.

WSH Panel Mod script discussion/help

Reply #1355
just copy the contents of both the files into the panel and remove the the preprocessor bit at the start that references them. the whole of tooltips.js is needed but admittedly a lot of functions in common4.js aren't used in playback buttons. try removing them one by one, clicking the apply button in the editor to see if the panel crashes or not. if it does, then undo the deletion you've just made.

WSH Panel Mod script discussion/help

Reply #1356
i have a string. i need to know, on which language it written. it is possible to do that? for example, by chars or something like that.

to marc2003
your examples are great, but i think there a lack of examples about javascript, not wsh functions. could you make some? i think it will be very helpfull for newbies and begginers. examples which you could see in foobars wsh panel, just for easy understanding. if you, or someone make it, it will very great

p.s. i asked previously, is it possible to add to playlist folder by path string? anybody know? is there some simple method or i need script which searches files in deep of folder tree?

WSH Panel Mod script discussion/help

Reply #1357
Hello,

I'm playing with the CD Jewel Case Code and have modified it to some extent. It works more or less now, but my knowledge in coding is limited, and I have to ask some things about the following section:

Code: [Select]
function update_image() {
    if (!g_metadb) return;
    is_embedded = null;
    g_img && g_img.Dispose();
    g_img = utils.GetAlbumArtEmbedded(g_metadb.rawpath, 0);
    if (g_img) {
        is_embedded = true;
        window.Repaint();
    } else {
        utils.GetAlbumArtAsync(window.ID, g_metadb, 0);
    }
}


-Does this code prefer embedded artwork to image-files in the folder?
-What does 'g_img && g_img.Dispose();' do? My panel crashes, the console gives an error in this line. If i deactivate it the crash does not happen and the code seems to work fine without it, so what is it for?
-why is 'utils.GetAlbumArtEmbedded(g_metadb.rawpath, 0);' assigned to g_img, but 'utils.GetAlbumArtAsync(window.ID, g_metadb, 0);' is not?


sorry to ask this, but I just cannot work it out...

WSH Panel Mod script discussion/help

Reply #1358
-yes it does prefer embedded artwork. it falls back on whatever patterns you have set in the display preferences if none is found. i find this better than the random nature of letting the foobar core decide for itself. it's supposed to work on quality but it doesn't always appear to do that. also, if your files have artwork embedded in them, why wouldn't you want it to show? if the better artwork is to be found in the folder, then strip the images from your files and free up some space.

-i'm not sure g_img.Dispose() is necessary but it only runs if g_img is set so it shouldn't ever crash. mine never has. it frees up memory i think. i copied it from one of T.P Wang's samples.

-that last function invokes this callback and that is where the image gets assigned to g_img.

Code: [Select]
function on_get_album_art_done(metadb, art_id, im, ip) {
    g_img_path = ip;
    g_img = im;
    window.Repaint();
}

WSH Panel Mod script discussion/help

Reply #1359
thanks for your post, I could work out some of my issues.

I don't know why but I always preferred artwork files in the folder. Right now my mobile phone uses only embedded art, so i have scaled down images embedded in the files and full scale images in the folder.

I see I cannot attach files here? I wanted to share my modified code here, but a png file will be needed, so is there any way to attach a file to a post here?


WSH Panel Mod script discussion/help

Reply #1360
you just replace the function with this then....

Code: [Select]
function update_image() {
    if (!g_metadb) return;
    utils.GetAlbumArtAsync(window.ID, g_metadb, 0);
}

WSH Panel Mod script discussion/help

Reply #1361
thanks!

but could it be made optional, just like the original code, just with changed priorities? So it will fall back to embedded art if possible, in case that no image file is present?

that's what I did to your original code:

Code: [Select]
function update_image() {
    if (!g_metadb) return;
    is_embedded = null;
    g_img && g_img.Dispose();
    utils.GetAlbumArtAsync(window.ID, g_metadb, 0);
    if (g_img) {
        } else {
        g_img = utils.GetAlbumArtEmbedded(g_metadb.rawpath, 0);
        if (g_img) {
            is_embedded = true;
        }
    }
}


Is this OK or do you see a problem?

WSH Panel Mod script discussion/help

Reply #1362
that's not needed. my snippet above it all you need. utils.GetAlbumArtAsync will still read embedded album art if the foobar core decides that is best quality (or no other art exists).

edit: i just realised that will break my double click code for finding the source file in explorer. replace the on_mouse_lbtn_dblclk()  function with this.

Code: [Select]
function on_mouse_lbtn_dblclk() {
    if (!g_metadb || !g_img) return;
    WshShell.Run("explorer /select," + g_img_path);
}

WSH Panel Mod script discussion/help

Reply #1363
great! thanks!!!

WSH Panel Mod script discussion/help

Reply #1364

In case someone might be interested i have uploaded my modified version of the CD-Jewel-Case Panel.

http://www.file-upload.net/download-408795...ified-.zip.html


It seems to work, but I don't really know how to code so it is not elegant and probably not error-free.

It is auto-resizing and it provides a 'DigiPak'-feature:
'DigiPak' On: a cover art image that is non square (the threshold can be adjusted in the code) will be shown WITHOUT the CD-Case. A subtle 'gloss'-effect (highlight and shadow) will be added to the edges to support the impression of a DigiPak box.
'DigiPak' Off: the cover art image will always be shown in the CD-Case. Images below a certain threshold (the threshold can be adjusted in the code) will be stretched, images beyond that threshold will be shown in their original aspect ratio (which will leave part of the CD-Case image uncovered.)

in the attached zip is the code example and the 'digipak_gloss.png'-file which will be needed. place the 'digipak_gloss.png'-file into the marc2003/images folder.


WSH Panel Mod script discussion/help

Reply #1365
I have been using this themed progress bar code for a while, I got it here someplace. Can someone please tell me how to change the background color - or to just force it to use my theme's background color?

Thanks!

Code: [Select]
// vi:set ft=javascript ff=dos ts=4 sts=4 sw=4 et:

// This is just a demo so is buggy.
var g_theme = window.CreateThemeManager("PROGRESS");
var g_bar_height = 15;
var g_cycles = 0;
var ww = 0,
wh = 0;
var top = 0;
var g_pos = 0;
var g_drag = false;
var g_length = 1;

function clamp(x, l, h) {
return (x < l) ? l : ((x > h) ? h : x);
}


function on_size() {
ww = window.Width;
wh = window.Height;
top = (wh - g_bar_height) >> 1;
}

function on_paint(gr) {
g_theme.SetPartAndStateID(1, 0);
g_theme.DrawThemeBackground(gr, 0, top, ww, g_bar_height);

if (fb.IsPlaying && g_length > 0) {
g_theme.SetPartAndStateID(5, fb.IsPaused ? 3 : 1);
g_theme.DrawThemeBackground(gr, 0, top, g_pos, g_bar_height);
}
}

function on_mouse_lbtn_down(x, y) {
if (g_length > 0) {
g_drag = true;
on_mouse_move(x, y);
}
}

function on_mouse_lbtn_up(x, y) {
if (g_length > 0 && g_drag) {
g_drag = false;
fb.PlaybackTime = g_length * g_pos / ww;
on_mouse_move(x, y);
}
}

function on_mouse_move(x, y) {
if (g_drag) {
g_pos = clamp(x, 0, ww);
window.Repaint();
}
}

function on_mouse_wheel(delta) {
fb.PlaybackTime = fb.PlaybackTime + delta * 2;
}

function on_playback_time(time) {
if (!g_drag) {
if (g_length > 0) g_pos = ww * time / g_length;
window.Repaint();
}
}

function on_playback_seek() {
if (!g_drag && g_length > 0) window.Repaint();
}

function on_playback_pause() {
window.Repaint();
}

function on_playback_stop() {
g_length = 0;
g_pos = 0;
g_drag = false;
window.Repaint();
}

function on_playback_new_track() {
g_length = fb.PlaybackLength;
g_pos = 0;
g_drag = false;
window.Repaint();
}

if (fb.IsPlaying) on_playback_new_track();

WSH Panel Mod script discussion/help

Reply #1366
Found another bug in my adjustable volume control script, which occurred on right-click while left mouse button was being held down. The following code should be added to my script:
Code: [Select]
function on_mouse_rbtn_down(x,y){
g_drag=0;
window.Repaint();
}

function on_mouse_rbtn_up(x,y){
g_drag=0;
window.Repaint();
}

 

WSH Panel Mod script discussion/help

Reply #1367
At last, I have eliminated (most of) the problems in my adjustable volume control script.
  • The safety limit percentage value can now be correctly scrolled down to the biggest (integer) value greater than the volume setting's percentage (real) value.
  • Changed the minimum and maximum safety limit positions to 1% and 100%, respectively.
  • Fixed a problem which caused the foobar2000 volume to be set slightly above -100 dB instead of truly at -100 dB. Also, when the scrollwheel position is set to 100%, the volume bar's maximum volume position will also truly be at 0 dB.
  • The displayed volume setting's percentage value is now properly rounded down.
  • Fixed a problem which caused the script to show weird behavior when using the foobar2000 volume control.
    However, please note the foobar2000 volume control COMPLETELY overrides the safety limit!
    The safety limit is the ONLY reason why I wrote the script! The user of my script should :
    • Follow the usual safety recommendations regarding potential loudness fluctuations in an audio track.
    • Consider the use of ReplayGain, especially if playing a seqence of multiple, unequally loud, audio tracks.
    • Hide the foobar2000 volume control, to prevent accidental overriding the safety limit of the script.
    • Hide the foobar2000 status bar because it also has volume control.
    • Either bypass the Windows mixer or be careful with its settings, etcetera, because the script ignores them (personally, I am using ASIO4ALL for this purpose because, for one reason or another, the ASIO component for foobar2000 works better for me than WASAPI, and I haven't yet tried Kernel Streaming).
    • Not assign a hotkey, consisting of only a single key, to increase the volume. Keys can get stuck.
    • Watch out with the mouse. Keep it away from children.
    • Remember overall system security. Consider getting a separate PC for playback and storage of your music files. (personally, I am using just a cheap netbook that's very very silent in my listening room and, thanks to foobar2000 being so easy on the system resources, as well as thanks to the highly optimized USB device driver of my external DAC unit, the cheap computer has the processing power it takes for me to be able to play all my Hi Res FLAC files without hiccups.
I hope this helps anyone who might be looking to avoid the thermal noise typically caused by analogue volume control and / or the cost of adding a decent preamp.
Any suggestions to further improve my script are still always welcome. 

Code: [Select]
var g_drag=0;
var sc1=1.01865;
var sc2=0.01865;
var p=25;
var pos=0;
var g_font=gdi.Font("Consolas",16,1);
var g_font2=gdi.Font("Consolas",18,1);
var g_textrender=gdi.CreateStyleTextRender();
var col1=RGB(205,205,205);
var col2=RGB(255,255,255);

function RGB(r,g,b){return(0xff000000|(r<<16)|(g<<8)|(b))}

function RGBA(r,g,b,a){return((a<<24)|(r<<16)|(g<<8)|(b))}
 
function on_paint(gr){
var ww=window.Width-1;
var wh=window.Height;
var v=fb.Volume;
pos=ww*sc1*Math.exp(0.04*v)-sc2*ww;
var pos2=pos/(p/100);
if(!g_drag) p=pos2>ww+1?Math.ceil(pos*100/ww): p;
pos=pos/(p/100);
gr.FillGradRect(0,0,pos,wh,0,RGB(40,42,57),RGB(p*2+55*g_drag,200-p*2+55*g_drag,Math.abs(100-p*2)+45*g_drag));
gr.FillGradRect(pos,0,ww-pos+1,wh,40,RGB(88,82,98),RGB(18,18,18));
gr.DrawLine(pos-1,0,pos-1,wh,2,RGB(55+p*2,200-p*2,Math.abs(50-p)));
gr.FillGradRect(0,wh/3,p/100*ww,wh/3,0,RGB(p*1.5,100-p/2,0),RGB(p+50,100-p,50-p/2));
gr.FillGradRect(p/100*ww,wh/3,(1-p/100)*ww+2,wh/3,350,RGB(68,74,82),RGB(48,48,48));
gr.DrawRect(-1,wh/3,ww+2,wh/3,1,RGB(55+p*2,200-p*2,Math.abs(50-p)));
gr.DrawLine(p/100*ww-2,wh/3+2,p/100*ww-2,wh*2/3-2,4,RGB(55+p*2,150-p*1.5,Math.abs(50-p)));
gr.SetTextRenderingHint(5);
var p2=-Math.ceil(-p*pos/ww);
var str_p=(p2<10?"  ":p2<100?" ":"")+p2;
var vol=Math.ceil(Math.round(v*100)/100);
var voldec=""+Math.ceil(-Math.round((v+Math.ceil(-v)-1)*100)+100);
var str_vol=vol+"."+voldec.substr(1,2);
str_vol=v<-99.99?"-100.00":v>-0.01?"  0.00":" "+(vol>-10?" ":"")+(vol==0?"-":"")+str_vol;
var xr=ww-126;
var xl=-1;
gr.DrawString(str_p+" % "+str_vol+" dB",g_font2,RGB(0,0,0),xr+2,2,62,wh,0x11005000);
gr.DrawString((p<10?"  ":p<100?" ":"")+p+" %",g_font,RGB(0,0,0),xl-2,2,62,wh,0x11005000);
gr.DrawString(str_p+" % "+str_vol+" dB",g_font2,g_drag?col2:col1,xr,0,62,wh,0x11005000);
gr.DrawString((p<10?"  ":p<100?" ":"")+p+" %",g_font,g_drag?col2:col1,xl,0,62,wh,0x11005000);
}

function on_mouse_lbtn_down(x,y){
if (Math.abs(pos-x)<window.Width/75) g_drag=1;
window.Repaint();
}

function on_mouse_lbtn_up(x,y){
on_mouse_move(x,y);
g_drag=0;
window.Repaint();
}

function on_mouse_rbtn_down(x,y){
g_drag=0;
window.Repaint();
}

function on_mouse_rbtn_up(x,y){
g_drag=0;
window.Repaint();
}

function on_mouse_move(x,y){
var ww=window.Width-1;
if(g_drag){
//var xpos=x>ww?ww:x;
var xpos=x>ww?ww:x;
xpos=xpos*(p/100);
var v=(xpos+sc2*ww)/sc1/ww;
v=25*Math.log((v<0?0:v<1?v:1)+0.00001);
v=v>-0.01?0:v<-99.99?-100:v;
if (fb.Volume!=v)fb.Volume=v;
}
}

function on_mouse_wheel(delta){
if(!g_drag){
if(delta>0){
p=p+1;
p=(p>100)?100:p;
}else{
p=(pos<window.Width-1)?p-1:p;
p=(p<1)?1:p;
}
}
window.Repaint();
}

function on_volume_change(val){
window.Repaint();
}

window.MinHeight=32;
window.MinWidth=320;
fb.Volume=-50;

WSH Panel Mod script discussion/help

Reply #1368
I am trying to add another item ("Open containing folder") to the right-click context menu of my "WSH TextFile Viewer" panel ...but I can't do it :-(

I tried editing my script by adding a few lines to this function group: (my additions are in red)
Code: [Select]
function on_mouse_rbtn_up(x, y){
    var _backgroundcolor = window.CreatePopupMenu();
    var _textcolor = window.CreatePopupMenu();
    var _menu = window.CreatePopupMenu();
    var idx;
   
    _menu.AppendMenuItem(MF_STRING, 1, "Update");
    _menu.AppendMenuItem(MF_SEPARATOR, 0, 0);
   
    _menu.AppendMenuItem(MF_STRING | MF_POPUP, _textcolor.ID, "Text Color");
    _textcolor.AppendMenuItem(MF_STRING, 98, "Foobar Text");
    _textcolor.AppendMenuItem(MF_STRING, 99, "Foobar Highlight");
    _textcolor.AppendMenuItem(MF_STRING, 101, "White");
    _textcolor.AppendMenuItem(MF_STRING, 102, "Off-White");
    _textcolor.AppendMenuItem(MF_STRING, 103, "Green");
    _textcolor.AppendMenuItem(MF_STRING, 104, "Blue");
    _textcolor.AppendMenuItem(MF_STRING, 105, "Yellow");
    _textcolor.AppendMenuItem(MF_STRING, 106, "Black");
   
    _menu.AppendMenuItem(MF_STRING | MF_POPUP, _backgroundcolor.ID, "Background Color");
    _backgroundcolor.AppendMenuItem(MF_STRING, 210, "Foobar Background");
    _backgroundcolor.AppendMenuItem(MF_STRING, 211, "White");
    _backgroundcolor.AppendMenuItem(MF_STRING, 212, "Red");
    _backgroundcolor.AppendMenuItem(MF_STRING, 213, "Green");
    _backgroundcolor.AppendMenuItem(MF_STRING, 214, "Blue");
    _backgroundcolor.AppendMenuItem(MF_STRING, 215, "Brown-Black");
    _backgroundcolor.AppendMenuItem(MF_STRING, 216, "Black");

   
    if(window.GetProperty("textcolor")==101){
        _textcolor.CheckMenuItem(101, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==102)
        {_textcolor.CheckMenuItem(102, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==103)
        {_textcolor.CheckMenuItem(103, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==104)
        {_textcolor.CheckMenuItem(104, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==105)
        {_textcolor.CheckMenuItem(105, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==106)
        {_textcolor.CheckMenuItem(106, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==98)
        {_textcolor.CheckMenuItem(98, window.GetProperty("textcolor"));}
    else if (window.GetProperty("textcolor")==99)
        {_textcolor.CheckMenuItem(99, window.GetProperty("textcolor"));}
       
    if(window.GetProperty("backgroundcolor")==211){
        _backgroundcolor.CheckMenuItem(211, window.GetProperty("backgroundcolor"));}
    else if (window.GetProperty("backgroundcolor")==212)
        {_backgroundcolor.CheckMenuItem(212, window.GetProperty("backgroundcolor"));}
    else if (window.GetProperty("backgroundcolor")==213)
        {_backgroundcolor.CheckMenuItem(213, window.GetProperty("backgroundcolor"));}
    else if (window.GetProperty("backgroundcolor")==214)
        {_backgroundcolor.CheckMenuItem(214, window.GetProperty("backgroundcolor"));}
    else if (window.GetProperty("backgroundcolor")==215)
        {_backgroundcolor.CheckMenuItem(215, window.GetProperty("backgroundcolor"));}
    else if (window.GetProperty("backgroundcolor")==216)
        {_backgroundcolor.CheckMenuItem(216, window.GetProperty("backgroundcolor"));}
    else if (window.GetProperty("backgroundcolor")==210)       
        {_backgroundcolor.CheckMenuItem(210, window.GetProperty("backgroundcolor"));}

    _menu.AppendMenuItem(MF_STRING, 8, "Configure");
   
  [color=#FF0000] _menu.AppendMenuItem(MF_STRING, 9, "Open containing folder");[/color]
       
    idx = _menu.TrackPopupMenu(x, y);
switch(idx) {
            case 1:readTXT();calc();window.Repaint();break;
            case 8:window.ShowConfigure();break;
            [color=#FF0000]case 9:
            if (! fb.IsPlaying) return;
                    var xpath = fb.TitleFormat("%path%").EvalWithMetadb(fb.GetNowPlaying());
                    var path = xpath.substring(0, xpath.lastIndexOf("\\")) + "\\";
                    var Folder = fso.GetFolder(path);
                    try { WshShell.Run("explorer \"" + Folder + "\""); }
                    catch(e) {}[/color]       
            case 98:window.SetProperty("textcolor", 98);txtcolor  = g_textcolor;window.Repaint();break;
            case 99:window.SetProperty("textcolor", 99);txtcolor  = g_textcolor_hl;window.Repaint();break;
            case 101:window.SetProperty("textcolor", 101);txtcolor  = RGB(255,255,255);window.Repaint();break;
            case 102:window.SetProperty("textcolor", 102);txtcolor = RGB(255,255,227);window.Repaint();break;
            case 103:window.SetProperty("textcolor", 103);txtcolor = RGB(50,255,50);window.Repaint();break;
            case 104:window.SetProperty("textcolor", 104);txtcolor = RGB(150,150,250);window.Repaint();break;
            case 105:window.SetProperty("textcolor", 105);txtcolor = RGB(255,255,50);window.Repaint();break;
            case 106:window.SetProperty("textcolor", 105);txtcolor = RGB(10,10,10);window.Repaint();break;
            case 210:window.SetProperty("backgroundcolor", 210);backcolor= g_backcolor;window.Repaint();break;
            case 211:window.SetProperty("backgroundcolor", 211);backcolor= RGB(255,255,255);window.Repaint();break;
            case 212:window.SetProperty("backgroundcolor", 212);backcolor= RGB(255,50,50);window.Repaint();break;
            case 213:window.SetProperty("backgroundcolor", 213);backcolor= RGB(50,255,50);window.Repaint();break;
            case 214:window.SetProperty("backgroundcolor", 214);backcolor= RGB(10,36,106);window.Repaint();break;
            case 215:window.SetProperty("backgroundcolor", 215);backcolor= RGB(34,28,28);window.Repaint();break;
            case 216:window.SetProperty("backgroundcolor", 216);backcolor= RGB(0,0,0);window.Repaint();break;}
 
                 
    _menu.Dispose();_textcolor.Dispose();_backgroundcolor.Dispose();return true;
}

The context menu item ("Open containing folder") is showing but nothing happens when I choose it.
I'm sure the answer is a simple one, unfortunately I am not knowledgeable enough in JS syntax to analyse this for myself.
Thanks for any help +++

(by the way, that code I added is copy/paste from other example scripts; I have no idea basically speaking)

WSH Panel Mod script discussion/help

Reply #1369
Code: [Select]
fb.RunContextCommandWithMetadb("Open Containing Folder", fb.GetNowPlaying());

WSH Panel Mod script discussion/help

Reply #1370
Thanks, I'll try that marc +++

should I replace all lines at case 9: with  your line, or just one of the lines?
does anything there look redundant to you?

--- EDIT (1) ---

Thanks marc, it works +++
Code: [Select]
             case 9:
             if (! fb.IsPlaying) return;
                    var xpath = fb.TitleFormat("%path%").EvalWithMetadb(fb.GetNowPlaying());
                    var path = xpath.substring(0, xpath.lastIndexOf("\\")) + "\\";
                    var Folder = fso.GetFolder(path);
                    try { fb.RunContextCommandWithMetadb("Open Containing Folder", fb.GetNowPlaying()); }
                    catch(e) {}
                    break;


--- EDIT (2) ---

OK, you don't need to answer my first question, I got the answer...

The code was redundant; this works too:
Code: [Select]
            case 9:
                try { fb.RunContextCommandWithMetadb("Open Containing Folder", fb.GetNowPlaying()); }
                catch(e) {}
                break;


Can you advise me some more please...

The code will only work if the track is Playing or Paused.
What do I need to do to make it work for track Stopped as well ?

WSH Panel Mod script discussion/help

Reply #1371
fb.RunContextCommandWithMetadb("Open Containing Folder", fb.IsPlaying ? fb.GetNowPlaying() : fb.GetFocusItem());

WSH Panel Mod script discussion/help

Reply #1372
Excellent, it works, thankyou ExtremeHunter +++

Thanks again for the help guys 

WSH Panel Mod script discussion/help

Reply #1373
Hi marc2003,

first of all thanks for all your work and excellent scripts.

A question out of curiousity (and little knowledge so far) concerning the lastfm charts script.

Would it be possible to select/change the properties
- either by using a context menu
- or by an easier dialogue in the properties e.g. the selection of the period by a drop down menu with explaining text (0 = "Overall", 1 = "Last 7 days", 2 = "3 month", etc.)

Thanks for an answer in advance and keep up the good work!

WSH Panel Mod script discussion/help

Reply #1374
from the readme:

Quote
Click the Last.fm logo to select the different chart types and time periods.



 
SimplePortal 1.0.0 RC1 © 2008-2020