WebScrap

February 14, 2010

foobar2000のカスタマイズ 3

foobar2000をFunc UIで構築foobar2000をv0.9.5.2からv1.0にアップグレードし、ユーザーインターフェイスをColumns UIからFunc UIへと変えた。なのでデザインは以前のものとほぼ同じだが、構築方法はまるで違うものになっている。また、v1.0から新しく追加されたPortable Modeでも使えるようにパスは全て相対パスに直し、オンラインストレージ上の曲を聞く場合はimages > albumフォルダから画像を取得するようにした。

Func UIの自由度に関しては、コマンドを自分で作ることさえ可能なので、できないことはほぼ無いというほど。Track info modやWSH Panelで表示させていたボタンやシークバーもFunc UI一つで全て表示できるようになったので、構造自体もかなりシンプルになった。

欠点があるとすれば、ホットキーのActivate or HideでActivate時に正常に表示されないことと、Vistaではポップアップ(ツールチップ)が正常に表示されないことぐらいだ。


 

コンポーネント

  • Biography View
  • Channel Spectrum panel
  • Custom Datebase
  • ELPlaylist
  • Func User Interface
  • Graphical Browser
  • Playlists Dropdown
  • WSH Panel Mod

画像ファイル

  • overlay.png
    CDジャケットにかかる光沢の画像
  • overlay_reflect.png 
    CDジャケットを鏡面反射にするための画像
  • no_image.jpg
    表示するCDジャケットがない場合に表示される画像
  • lovetrack.png, lovetrack_hover.png, lovetrack_active.png 
    再生中または選択中の曲をLoveトラックか判別して表示する画像

Window (Script)

Panel

Script

  • (General) 
    • On init
      // size
      $hash(COLUMN1.X,10)
      $hash(COLUMN2.X,250)
      $hash(COLUMN3.X,722)
      $hash(COLUMN1.Y,10)
      $hash(COLUMN2.Y,60)
      $hash(COLUMN3.Y,620)
      $hash(COLUMN1.W,230)
      $hash(COLUMN2.W,462)
      $hash(COLUMN3.W,248)
      $hash(COLUMN1.H,50)
      $hash(COLUMN2.H,550)
      $hash(COLUMN3.H,20)
      
      $hash(SEEKBAR.W,130)
      $hash(SEEKBAR.H,10)
      $hash(SEEKBAR.X,$calc({%COLUMN1.W%-%SEEKBAR.W%}/2))
      $hash(SEEKBAR.Y,0)
      $hash(SEEKBAR.B,2)
      $hash(SEEKBAR.BW,$calc(%SEEKBAR.W%-%SEEKBAR.B%*2))
      $hash(SEEKBAR.BH,$calc(%SEEKBAR.H%-%SEEKBAR.B%*2))
      
      $hash(PLAYBACK.Y,410)
      $hash(PLAYBACK.W,20)
      $hash(PLAYBACK.H,25)
      
      $hash(NOWPLAYING.ART.WH,180)
      $hash(HEADER.H,50)
      $hash(BUTTON.W,60)
      
      // font
      $if($files(C:\WINDOWS\Fonts\TARISAKA.ttf),
       $hash(MAIN.FONT.N,Arial)
       $hash(NOWPLAYING.FONT.Y,5)
       $hash(POPUP.FONT.Y,14)
      ,
       $hash(MAIN.FONT.N,メイリオ)
       $hash(NOWPLAYING.FONT.Y,0)
       $hash(POPUP.FONT.Y,12)
      )
      $hash(MAIN.FONT.S,8)
      $hash(PLAYBACK.FONT.N,Webdings)
      $hash(PLAYBACK.FONT.S,14)
      $hash(BUTTON.FONT.N,Arial)
      $hash(BUTTON.FONT.S,7)
      
      // color
      $hash(MAIN.COLOR,81-134-165)
      $hash(NOWPLAYING.FONT.COLOR,64-64-64)
      $hash(SUB.FONT.COLOR,96-96-96)
      $hash(ACTIVE.FONT.COLOR,255-255-255)
      $hash(HEADER.FONT.COLOR,255-255-255)
      $hash(HEADER.BG.COLOR,192-192-192)
      $hash(FOCUS.BG.COLOR,224-224-224)
      $hash(DEFAULT.BG.COLOR,240-240-240)
      
      // command
      $contextmenu_set(ActivateNowPlaying,'$pi_select(%pl_playingname%,%pi_playingindex%)')
      $hash(PLAYBACK.ORDER.DEFAULT,'Repeat (playlist)')
      $hash(PLAYBACK.ORDER.REPEAT,'Repeat (track)')
      $hash(PLAYBACK.ORDER.SHUFFLE,'Shuffle (albums)')
    • On Timer
      // popup
      $if($strcmp(%_timerid%,'POPUP'),
       $tooltip_activate(%POPUP%,false)
       $settimer(%_timerid%,0)
      ,)
    • On Playback Starting
      // playback
      $playback_update()
    • On Playback New Track
      // nowplaying
      $nowplaying()
      $updatewindow('NOWPLAYING',event:open)
      $updatewindow('HEADER3',event:open)
      
      // seek
      $updatewindow('SEEK',event:open)
      
      // popup
      $popup()
    • On Playback Stop
      // nowplaying
      $updatewindow('NOWPLAYING',event:open)
      
      // playback
      $playback_update()
      
      // seek
      $updatewindow('SEEK',event:open)
    • On Playback Seek
      // seek
      $updatewindow('SEEK',event:open)
    • On Playback Pause
      // playback
      $playback_update()
      
      // popup
      $if(%playback_ispaused%,,$popup())
    • On Playback Time (Per Second)
      // seek
      $if(%playback_ispaused%,,$if(%playback_isplaying%,$updatewindow('SEEK',event:open)))
    • On Playback Order Changed
      // playback order
      $playback_order_update()
    • On Playlist Activate
      $updatewindow('HEADER1',event:open)
      $updatewindow('HEADER2',event:open)
    • On Playlist Renamed
      $updatewindow('HEADER2',event:open)
    • On Playlist Item Focus Change
      $updatewindow('HEADER1',event:open)
    • On Playlist Item Added
      $updatewindow('HEADER2',event:open)
    • On Playlist Item Removed
      $updatewindow('HEADER2',event:open)
    • On Volume Change
      //volume
      $updatewindow('VOLUME',event:open)
      $trayballoon('foobar2000','Volume:'$ifequal($strchr(%volume%,'.'),2,'0.0 dB',$ifequal($strchr(%volume%,'.'),3,$left(%volume%,4)' dB',$ifequal($strchr(%volume%,'.'),4,$left(%volume%,5)' dB','Mute'))),sound:false)
  • (User) 
    • (Custom scripts) 
      // nowplaying
      #function nowplaying
      $hash(NOWPLAYING.ART,$albumart(
      $ifequal($replace($substr(%path%,1,2),C:,1),1,
       $replace(%path%,%filename_ext%,)%album%.jpg
      ,
       $ifequal($replace($substr(%path%,1,4),http,1),1,
        /images\album\%album%.jpg
       ,
        /images\no_image.jpg
       )
      )
      ,cover_front))
      $hash(NOWPLAYING.TITLE,%title%)
      $hash(NOWPLAYING.ARTIST,%artist%)
      $hash(NOWPLAYING.ALBUM,%album%)
      #end
      
      // playback
      #function playback_button
      $drawtext(%mainid%,9,$calc(%COLUMN1.W%/2-%PLAYBACK.W%-5),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%SUB.FONT.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,halign:center,valign:middle)
      $hash(PLAYBACK.PREV.HOVER,$drawtext(%mainid%,9,$calc(%COLUMN1.W%/2-%PLAYBACK.W%-5),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%MAIN.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PLAYBACK.PREV.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PLAYBACK.PREV.HOVER%,false,redraw:true)',
       lbuttondown:'
       $playback_control(prev)'
      )
      $hash(PLAYBACK.PREV.MAP,%_result%)
      $map_rect(%PLAYBACK.PREV.MAP%,$calc(%COLUMN1.W%/2-%PLAYBACK.W%-5),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%)
      
      $drawtext(%mainid%,:,$calc(%COLUMN1.W%/2+%PLAYBACK.W%+5),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%SUB.FONT.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,halign:center,valign:middle)
      $hash(PLAYBACK.NEXT.HOVER,$drawtext(%mainid%,:,$calc(%COLUMN1.W%/2+%PLAYBACK.W%+5),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%MAIN.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PLAYBACK.NEXT.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PLAYBACK.NEXT.HOVER%,false,redraw:true)',
       lbuttondown:'
       $playback_control(next)'
      )
      $hash(PLAYBACK.NEXT.MAP,%_result%)
      $map_rect(%PLAYBACK.NEXT.MAP%,$calc(%COLUMN1.W%/2+%PLAYBACK.W%+5),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%)
      
      $hash(PLAYBACK.PLAY,$drawtext(%mainid%,4,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%SUB.FONT.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,hide,halign:center,valign:middle))
      $hash(PLAYBACK.PAUSE,$drawtext(%mainid%,;,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%SUB.FONT.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,hide,halign:center,valign:middle))
      $hash(PLAYBACK.PLAY.HOVER,$drawtext(%mainid%,4,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%MAIN.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,hide,halign:center,valign:middle))
      $hash(PLAYBACK.PAUSE.HOVER,$drawtext(%mainid%,;,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%,fg:%MAIN.COLOR%,font-name:%PLAYBACK.FONT.N%,font-size:%PLAYBACK.FONT.S%,hide,halign:center,valign:top))
      #end
      
      #function playback_update
      $if(%playback_ispaused%,
       $showobject(%PLAYBACK.PLAY%,true,redraw:true)
       $showobject(%PLAYBACK.PAUSE%,false,redraw:true)
       $showobject(%PLAYBACK.PAUSE.HOVER%,false,redraw:true)
       $removectrl(%PLAYBACK.PLAY.MAP%)
       $updatectrl(%PLAYBACK.PLAY.MAP%)
       $map(%mainid%,
        over:'
        $showobject(%PLAYBACK.PLAY.HOVER%,true,redraw:true)',
        out:'
        $showobject(%PLAYBACK.PLAY.HOVER%,false,redraw:true)',
        lbuttondown:'
        $playback_control(play_or_pause)'
       )
       $hash(PLAYBACK.PLAY.MAP,%_result%)
       $map_rect(%PLAYBACK.PLAY.MAP%,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%)
      ,
       $if(%playback_isplaying%,
        $showobject(%PLAYBACK.PLAY%,false,redraw:true)
        $showobject(%PLAYBACK.PAUSE%,true,redraw:true)
        $showobject(%PLAYBACK.PLAY.HOVER%,false,redraw:true)
        $removectrl(%PLAYBACK.PLAY.MAP%)
        $updatectrl(%PLAYBACK.PLAY.MAP%)
        $map(%mainid%,
         over:'
         $showobject(%PLAYBACK.PAUSE.HOVER%,true,redraw:true)',
         out:'
         $showobject(%PLAYBACK.PAUSE.HOVER%,false,redraw:true)',
         lbuttondown:'
         $playback_control(play_or_pause)'
        )
        $hash(PLAYBACK.PLAY.MAP,%_result%)
        $map_rect(%PLAYBACK.PLAY.MAP%,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%)
       ,
        $showobject(%PLAYBACK.PLAY%,true,redraw:true)
        $showobject(%PLAYBACK.PAUSE%,false,redraw:true)
        $showobject(%PLAYBACK.PAUSE.HOVER%,false,redraw:true)
        $removectrl(%PLAYBACK.PLAY.MAP%)
        $updatectrl(%PLAYBACK.PLAY.MAP%)
        $map(%mainid%,
         over:'
         $showobject(%PLAYBACK.PLAY.HOVER%,true,redraw:true)',
         out:'
         $showobject(%PLAYBACK.PLAY.HOVER%,false,redraw:true)',
         lbuttondown:'
         $playback_control(play)'
        )
        $hash(PLAYBACK.PLAY.MAP,%_result%)
        $map_rect(%PLAYBACK.PLAY.MAP%,$calc(%COLUMN1.W%/2),%PLAYBACK.Y%,%PLAYBACK.W%,%PLAYBACK.H%)
       )
      )
      #end
      
      // playback order
      #function playback_order_button
      $gp_rect(%mainid%,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%DEFAULT.BG.COLOR%)
      $drawtext(%mainid%,Default,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(PLAYBACK.ORDER.DEFAULT.HOVER.BG,$gp_rect(%mainid%,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(PLAYBACK.ORDER.DEFAULT.HOVER,$drawtext(%mainid%,Default,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $hash(PLAYBACK.ORDER.DEFAULT.ACTIVE.BG,$gp_rect(%mainid%,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(PLAYBACK.ORDER.DEFAULT.ACTIVE,$drawtext(%mainid%,Default,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PLAYBACK.ORDER.DEFAULT.HOVER.BG%,true,redraw:true)
       $showobject(%PLAYBACK.ORDER.DEFAULT.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PLAYBACK.ORDER.DEFAULT.HOVER.BG%,false,redraw:true)
       $showobject(%PLAYBACK.ORDER.DEFAULT.HOVER%,false,redraw:true)',
       lbuttondown:'
       $mainmenu_execute(%PLAYBACK.ORDER.DEFAULT%)'
      )
      $hash(PLAYBACK.ORDER.DEFAULT.MAP,%_result%)
      $map_rect(%PLAYBACK.ORDER.DEFAULT.MAP%,%COLUMN1.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      
      $drawtext(%mainid%,Repeat,$calc(%COLUMN1.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(PLAYBACK.ORDER.REPEAT.HOVER.BG,$gp_rect(%mainid%,$calc(%COLUMN1.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(PLAYBACK.ORDER.REPEAT.HOVER,$drawtext(%mainid%,Repeat,$calc(%COLUMN1.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $hash(PLAYBACK.ORDER.REPEAT.ACTIVE.BG,$gp_rect(%mainid%,$calc(%COLUMN1.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(PLAYBACK.ORDER.REPEAT.ACTIVE,$drawtext(%mainid%,Repeat,$calc(%COLUMN1.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PLAYBACK.ORDER.REPEAT.HOVER.BG%,true,redraw:true)
       $showobject(%PLAYBACK.ORDER.REPEAT.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PLAYBACK.ORDER.REPEAT.HOVER.BG%,false,redraw:true)
       $showobject(%PLAYBACK.ORDER.REPEAT.HOVER%,false,redraw:true)',
       lbuttondown:'
       $mainmenu_execute(%PLAYBACK.ORDER.REPEAT%)'
      )
      $hash(PLAYBACK.ORDER.REPEAT.MAP,%_result%)
      $map_rect(%PLAYBACK.ORDER.REPEAT.MAP%,$calc(%COLUMN1.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      
      $gp_rect(%mainid%,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%DEFAULT.BG.COLOR%)
      $drawtext(%mainid%,Shuffle,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(PLAYBACK.ORDER.SHUFFLE.HOVER.BG,$gp_rect(%mainid%,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(PLAYBACK.ORDER.SHUFFLE.HOVER,$drawtext(%mainid%,Shuffle,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $hash(PLAYBACK.ORDER.SHUFFLE.ACTIVE.BG,$gp_rect(%mainid%,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(PLAYBACK.ORDER.SHUFFLE.ACTIVE,$drawtext(%mainid%,Shuffle,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PLAYBACK.ORDER.SHUFFLE.HOVER.BG%,true,redraw:true)
       $showobject(%PLAYBACK.ORDER.SHUFFLE.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PLAYBACK.ORDER.SHUFFLE.HOVER.BG%,false,redraw:true)
       $showobject(%PLAYBACK.ORDER.SHUFFLE.HOVER%,false,redraw:true)',
       lbuttondown:'
       $mainmenu_execute(%PLAYBACK.ORDER.SHUFFLE%)'
      )
      $hash(PLAYBACK.ORDER.SHUFFLE.MAP,%_result%)
      $map_rect(%PLAYBACK.ORDER.SHUFFLE.MAP%,$calc(%COLUMN1.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      #end
      
      #function playback_order_update
      $ifequal(%playback_orderindex%,1,
       $showobject(%PLAYBACK.ORDER.DEFAULT.ACTIVE.BG%,true,redraw:true)
       $showobject(%PLAYBACK.ORDER.DEFAULT.ACTIVE%,true,redraw:true)
       $showobject(%PLAYBACK.ORDER.REPEAT.ACTIVE.BG%,false,redraw:true)
       $showobject(%PLAYBACK.ORDER.REPEAT.ACTIVE%,false,redraw:true)
       $showobject(%PLAYBACK.ORDER.SHUFFLE.ACTIVE.BG%,false,redraw:true)
       $showobject(%PLAYBACK.ORDER.SHUFFLE.ACTIVE%,false,redraw:true)
      ,
       $ifequal(%playback_orderindex%,2,
        $showobject(%PLAYBACK.ORDER.DEFAULT.ACTIVE.BG%,false,redraw:true)
        $showobject(%PLAYBACK.ORDER.DEFAULT.ACTIVE%,false,redraw:true)
        $showobject(%PLAYBACK.ORDER.REPEAT.ACTIVE.BG%,true,redraw:true)
        $showobject(%PLAYBACK.ORDER.REPEAT.ACTIVE%,true,redraw:true)
        $showobject(%PLAYBACK.ORDER.SHUFFLE.ACTIVE.BG%,false,redraw:true)
        $showobject(%PLAYBACK.ORDER.SHUFFLE.ACTIVE%,false,redraw:true)
       ,
        $ifequal(%playback_orderindex%,5,
         $showobject(%PLAYBACK.ORDER.DEFAULT.ACTIVE.BG%,false,redraw:true)
         $showobject(%PLAYBACK.ORDER.DEFAULT.ACTIVE%,false,redraw:true)
         $showobject(%PLAYBACK.ORDER.REPEAT.ACTIVE.BG%,false,redraw:true)
         $showobject(%PLAYBACK.ORDER.REPEAT.ACTIVE%,false,redraw:true)
         $showobject(%PLAYBACK.ORDER.SHUFFLE.ACTIVE.BG%,true,redraw:true)
         $showobject(%PLAYBACK.ORDER.SHUFFLE.ACTIVE%,true,redraw:true)
        ,
        )
       )
      )
      #end
      
      // panel switch
      #function panel_switch_button
      $gp_rect(%mainid%,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%DEFAULT.BG.COLOR%)
      $drawtext(%mainid%,Playlist,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(PANEL.SWITCH.PLAYLIST.HOVER.BG,$gp_rect(%mainid%,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(PANEL.SWITCH.PLAYLIST.HOVER,$drawtext(%mainid%,Playlist,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $hash(PANEL.SWITCH.PLAYLIST.ACTIVE.BG,$gp_rect(%mainid%,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(PANEL.SWITCH.PLAYLIST.ACTIVE,$drawtext(%mainid%,Playlist,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PANEL.SWITCH.PLAYLIST.HOVER.BG%,true,redraw:true)
       $showobject(%PANEL.SWITCH.PLAYLIST.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PANEL.SWITCH.PLAYLIST.HOVER.BG%,false,redraw:true)
       $showobject(%PANEL.SWITCH.PLAYLIST.HOVER%,false,redraw:true)',
       lbuttondown:'
       $showwindow(HEADER1,1)
       $showwindow(HEADER2,1)
       $showwindow(HEADER3,0)
       $showpanel(ELPLAYLIST,true)
       $showpanel(GRAPHICAL_BROWSER1,true)
       $showpanel(GRAPHICAL_BROWSER2,false)
       $showpanel(BIOGRAPHY,false)
       $panel_switch_update()'
      )
      $hash(PANEL.SWITCH.PLAYLIST.MAP,%_result%)
      $map_rect(%PANEL.SWITCH.PLAYLIST.MAP%,%COLUMN2.X%,%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      
      $drawtext(%mainid%,Browser,$calc(%COLUMN2.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(PANEL.SWITCH.BROWSER.HOVER.BG,$gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(PANEL.SWITCH.BROWSER.HOVER,$drawtext(%mainid%,Browser,$calc(%COLUMN2.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $hash(PANEL.SWITCH.BROWSER.ACTIVE.BG,$gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(PANEL.SWITCH.BROWSER.ACTIVE,$drawtext(%mainid%,Browser,$calc(%COLUMN2.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PANEL.SWITCH.BROWSER.HOVER.BG%,true,redraw:true)
       $showobject(%PANEL.SWITCH.BROWSER.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PANEL.SWITCH.BROWSER.HOVER.BG%,false,redraw:true)
       $showobject(%PANEL.SWITCH.BROWSER.HOVER%,false,redraw:true)',
       lbuttondown:'
       $showwindow(HEADER1,0)
       $showwindow(HEADER2,0)
       $showwindow(HEADER3,0)
       $showpanel(ELPLAYLIST,false)
       $showpanel(GRAPHICAL_BROWSER1,false)
       $showpanel(GRAPHICAL_BROWSER2,true)
       $showpanel(BIOGRAPHY,false)
       $panel_switch_update()'
      )
      $hash(PANEL.SWITCH.BROWSER.MAP,%_result%)
      $map_rect(%PANEL.SWITCH.BROWSER.MAP%,$calc(%COLUMN2.X%+%BUTTON.W%),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      
      $gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%DEFAULT.BG.COLOR%)
      $drawtext(%mainid%,Biography,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(PANEL.SWITCH.BIOGRAPHY.HOVER.BG,$gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(PANEL.SWITCH.BIOGRAPHY.HOVER,$drawtext(%mainid%,Biography,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $hash(PANEL.SWITCH.BIOGRAPHY.ACTIVE.BG,$gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(PANEL.SWITCH.BIOGRAPHY.ACTIVE,$drawtext(%mainid%,Biography,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      $map(%mainid%,
       over:'
       $showobject(%PANEL.SWITCH.BIOGRAPHY.HOVER.BG%,true,redraw:true)
       $showobject(%PANEL.SWITCH.BIOGRAPHY.HOVER%,true,redraw:true)',
       out:'
       $showobject(%PANEL.SWITCH.BIOGRAPHY.HOVER.BG%,false,redraw:true)
       $showobject(%PANEL.SWITCH.BIOGRAPHY.HOVER%,false,redraw:true)',
       lbuttondown:'
       $showwindow(HEADER1,0)
       $showwindow(HEADER2,0)
       $showwindow(HEADER3,1)
       $showpanel(ELPLAYLIST,false)
       $showpanel(GRAPHICAL_BROWSER1,false)
       $showpanel(GRAPHICAL_BROWSER2,false)
       $showpanel(BIOGRAPHY,true)
       $panel_switch_update()'
      )
      $hash(PANEL.SWITCH.BIOGRAPHY.MAP,%_result%)
      $map_rect(%PANEL.SWITCH.BIOGRAPHY.MAP%,$calc(%COLUMN2.X%+%BUTTON.W%*2),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      #end
      
      #function panel_switch_update
      $if($ispanelvisible(ELPLAYLIST),
       $showobject(%PANEL.SWITCH.PLAYLIST.ACTIVE.BG%,true,redraw:true)
       $showobject(%PANEL.SWITCH.PLAYLIST.ACTIVE%,true,redraw:true)
       $showobject(%PANEL.SWITCH.BROWSER.ACTIVE.BG%,false,redraw:true)
       $showobject(%PANEL.SWITCH.BROWSER.ACTIVE%,false,redraw:true)
       $showobject(%PANEL.SWITCH.BIOGRAPHY.ACTIVE.BG%,false,redraw:true)
       $showobject(%PANEL.SWITCH.BIOGRAPHY.ACTIVE%,false,redraw:true)
      ,
       $if($ispanelvisible(GRAPHICAL_BROWSER2),
        $showobject(%PANEL.SWITCH.PLAYLIST.ACTIVE.BG%,false,redraw:true)
        $showobject(%PANEL.SWITCH.PLAYLIST.ACTIVE%,false,redraw:true)
        $showobject(%PANEL.SWITCH.BROWSER.ACTIVE.BG%,true,redraw:true)
        $showobject(%PANEL.SWITCH.BROWSER.ACTIVE%,true,redraw:true)
        $showobject(%PANEL.SWITCH.BIOGRAPHY.ACTIVE.BG%,false,redraw:true)
        $showobject(%PANEL.SWITCH.BIOGRAPHY.ACTIVE%,false,redraw:true)
       ,
        $if($ispanelvisible(BIOGRAPHY),
         $showobject(%PANEL.SWITCH.PLAYLIST.ACTIVE.BG%,false,redraw:true)
         $showobject(%PANEL.SWITCH.PLAYLIST.ACTIVE%,false,redraw:true)
         $showobject(%PANEL.SWITCH.BROWSER.ACTIVE.BG%,false,redraw:true)
         $showobject(%PANEL.SWITCH.BROWSER.ACTIVE%,false,redraw:true)
         $showobject(%PANEL.SWITCH.BIOGRAPHY.ACTIVE.BG%,true,redraw:true)
         $showobject(%PANEL.SWITCH.BIOGRAPHY.ACTIVE%,true,redraw:true)
        ,
        )
       )
      )
      #end
      
      // config
      #function config_button
      $drawtext(%mainid%,Config,$calc(%COLUMN2.X%+%BUTTON.W%*3),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      $hash(CONFIG.HOVER.BG,$gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%*3),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%FOCUS.BG.COLOR%,hide))
      $hash(CONFIG.HOVER,$drawtext(%mainid%,Config,$calc(%COLUMN2.X%+%BUTTON.W%*3),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle,hide))
      $hash(CONFIG.ACTIVE.BG,$gp_rect(%mainid%,$calc(%COLUMN2.X%+%BUTTON.W%*3),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,aa:false,brush:255-%MAIN.COLOR%,hide))
      $hash(CONFIG.ACTIVE,$drawtext(%mainid%,Config,$calc(%COLUMN2.X%+%BUTTON.W%*3),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle,hide))
      $map(%mainid%,
       over:'
       $showobject(%CONFIG.HOVER.BG%,true,redraw:true)$showobject(%CONFIG.HOVER%,true,redraw:true)',
       out:'
       $showobject(%CONFIG.HOVER.BG%,false,redraw:true)$showobject(%CONFIG.HOVER%,false,redraw:true)',
       lbuttondown:'
       $showobject(%CONFIG.ACTIVE.BG%,true,redraw:true)
       $showobject(%CONFIG.ACTIVE%,true,redraw:true)$mainmenu_execute('File/Preferences')',
       lbuttonup:'
       $showobject(%CONFIG.ACTIVE.BG%,false,redraw:true)
       $showobject(%CONFIG.ACTIVE%,false,redraw:true)'
      )
      $hash(CONFIG.MAP,%_result%)
      $map_rect(%CONFIG.MAP%,$calc(%COLUMN2.X%+%BUTTON.W%*3),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      #end
      
      // popup
      #function popup
      $tooltip_update(%POPUP%,text:'
      $gp_rect(%_objectid%,,,%_iwidth%,%_iheight%,brush:255-%MAIN.COLOR%,aa:false)
      $gp_image(%_objectid%,%NOWPLAYING.ART%,10,10,60,60,keepaspect:true,cache:false)
      $gp_text(%_objectid%,[%NOWPLAYING.TITLE%],80,%POPUP.FONT.Y%,$calc(%_iwidth%-90),15,brush:255-%ACTIVE.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:9,font-style:b)
      $gp_text(%_objectid%,[%NOWPLAYING.ARTIST%],80,$calc(%POPUP.FONT.Y%+18),$calc(%_iwidth%-90),15,brush:255-%ACTIVE.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:9)
      $gp_text(%_objectid%,[%NOWPLAYING.ALBUM%],80,$calc(%POPUP.FONT.Y%+18*2),$calc(%_iwidth%-90),15,brush:255-%ACTIVE.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:9)'
      )
      $puts(POPUP.W,$tooltip_getinfo(%POPUP%,width))
      $puts(POPUP.H,$tooltip_getinfo(%POPUP%,height))
      $tooltip_update(%POPUP%,pos:$calc(%screen_width%-$get(POPUP.W)-20)-$calc(%screen_height%-$get(POPUP.H)-20))
      $tooltip_activate(%POPUP%,true)
      $settimer(POPUP,4000)
      #end
  • MAIN
    • Load
      // init
      $style(%mainid%,maximizebox:off)
      
      // $menubar(%_id%,%COLUMN1.X%,%COLUMN1.Y%,,,fg:255-255-255)
      $window('NOWPLAYING',%COLUMN1.X%,80,%COLUMN1.W%,280,parent:%_id%,embed:true)
      $window('SEEK',%COLUMN1.X%,370,%COLUMN1.W%,30,parent:%_id%,embed:true)
      $playback_button()
      $playback_update()
      $panel(%_id%,'CHANNEL_SPECTRUM_PANEL',$calc(%COLUMN1.X%-5),460,$calc(%COLUMN1.W%+5),150)
      $playback_order_button()
      $playback_order_update()
      
      $window('HEADER1',%COLUMN2.X%,%COLUMN1.Y%,%COLUMN2.W%,%HEADER.H%,parent:%_id%,embed:true)
      $panel(%_id%,'ELPLAYLIST',%COLUMN2.X%,%COLUMN2.Y%,%COLUMN2.W%,%COLUMN2.H%)
      $panel_switch_button()
      $panel_switch_update()
      $config_button()
      $panel(%_id%,'WSH_LAST_FM',$calc(%COLUMN2.X%+%BUTTON.W%*6-18),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%)
      $window('VOLUME',$calc(%COLUMN2.X%+%BUTTON.W%*7-18),%COLUMN3.Y%,%BUTTON.W%,%COLUMN3.H%,parent:%_id%,embed:true)
      
      $window('HEADER2',%COLUMN3.X%,%COLUMN1.Y%,%COLUMN3.W%,%HEADER.H%,parent:%_id%,embed:true)
      $panel(%_id%,'GRAPHICAL_BROWSER1',%COLUMN3.X%,%COLUMN2.Y%,%COLUMN3.W%,%COLUMN2.H%)
      $panel(%_id%,'PLAYLISTS_DROPDOWN',%COLUMN3.X%,%COLUMN3.Y%,%COLUMN3.W%,%COLUMN3.H%)
      
      // hide
      $panel(%_id%,'GRAPHICAL_BROWSER2',%COLUMN2.X%,%COLUMN1.Y%,$calc(%COLUMN2.W%+10+%COLUMN3.W%),600,hide)
      $window('HEADER3',%COLUMN2.X%,%COLUMN1.Y%,$calc(%COLUMN2.W%+10+%COLUMN3.W%),%HEADER.H%,parent:%_id%,embed:true,hide)
      $panel(%_id%,'BIOGRAPHY',%COLUMN2.X%,85,$calc(%COLUMN2.W%+10+%COLUMN3.W%),525,hide)
      
      // popup
      $tooltip(%_id%,,,,,,mode:absolute,topmost:true,custom:true,size:300-80)
      $hash(POPUP,%_result%)
  • NOWPLAYING
    • Load
      // init
      $style(%_id%,clear)
      $map(%_id%,
       lbuttondown:'
       $contextmenu_execute('Func/User/ActivateNowPlaying',playing)'
      )
      $hash(NOWPLAYING.ART.MAP,%_result%)
      $map_rect(%NOWPLAYING.ART.MAP%,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%)
    • Open
      // clear
      $clearobject(%_id%,event:open)
      
      // object
      $ifequal(%playback_isplaying%,1,
       $gp_image(%_id%,%NOWPLAYING.ART%,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true,mempos:true,dmode:calconly)
       $gp_image(%_id%,%NOWPLAYING.ART%,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),%_mp_top%,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true,cache:false)
       $gp_image(%_id%,%NOWPLAYING.ART%,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),$calc(%_mp_bottom%-1),%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,flip:y,keepaspect:true,cache:false)
       $gp_image(%_id%,/images\overlay.png,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),%_mp_top%,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true)
       $gp_image(%_id%,/images\overlay_reflect.png,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true)
      
       $drawtext(%_id%,%NOWPLAYING.TITLE%,10,$calc(%NOWPLAYING.ART.WH%+%NOWPLAYING.ART.WH%/5),$calc(%COLUMN1.W%-20),15,fg:%NOWPLAYING.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%,font-style:b,ellipsis:end,editctrl:true,halign:center)
       $drawtext(%_id%,%NOWPLAYING.ARTIST%,10,$calc(%NOWPLAYING.ART.WH%+%NOWPLAYING.ART.WH%/5+20),$calc(%COLUMN1.W%-20),15,fg:%NOWPLAYING.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%,ellipsis:end,editctrl:true,halign:center)
       $drawtext(%_id%,%NOWPLAYING.ALBUM%,10,$calc(%NOWPLAYING.ART.WH%+%NOWPLAYING.ART.WH%/5+40),$calc(%COLUMN1.W%-20),15,fg:%NOWPLAYING.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%,ellipsis:end,editctrl:true,halign:center)
      ,
       $gp_image(%_id%,/images\no_image.jpg,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true,cache:false)
       $gp_image(%_id%,/images\no_image.jpg,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,flip:y,keepaspect:true,cache:false)
       $gp_image(%_id%,/images\overlay.png,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true)
       $gp_image(%_id%,/images\overlay_reflect.png,$calc({%COLUMN1.W%-%NOWPLAYING.ART.WH%}/2),%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,%NOWPLAYING.ART.WH%,keepaspect:true)
      )
      
      // update
      $updatewindow(%_id%,event:open)
  • SEEK
    • Load
      // init
      $style(%_id%,clear)
      $gp_rect(%_id%,%SEEKBAR.X%,%SEEKBAR.Y%,$calc(%SEEKBAR.W%-1),$calc(%SEEKBAR.H%-1),pen:255-224-224-224-1,aa:false)
    • Open
      // clear
      $clearobject(%_id%,event:open)
      
      // object
      $gp_rect(%_id%,$calc(%SEEKBAR.X%+%SEEKBAR.B%),%SEEKBAR.B%,%SEEKBAR.BW%,%SEEKBAR.BH%,brush:255-255-255-255,aa:false)
      $map(%_id%,
       lbuttondown:'
       $hash(SEEKBAR.PER,$calc({%_mouse_cx%+1-%SEEKBAR.X%-%SEEKBAR.B%}/%SEEKBAR.BW%))$playback_seek($calc(%playback_length%*%SEEKBAR.PER%))'
      )
      $hash(SEEKBAR.MAP,%_result%)
      $gp_rect(%_id%,$calc(%SEEKBAR.X%+%SEEKBAR.B%),%SEEKBAR.B%,$calc(%SEEKBAR.BW%*{%playback_position%/%playback_length%}),%SEEKBAR.BH%,brush:255-%MAIN.COLOR%,aa:false)
      $drawtext(%_id%,$pl_getmeta('[%playback_time%]',%pl_playingname%,%pi_playingindex%)' / '$pl_getmeta('[%_length%]',%pl_playingname%,%pi_playingindex%),,20,%COLUMN1.W%,10,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center)
      $map_rect(%SEEKBAR.MAP%,$calc(%SEEKBAR.X%+%SEEKBAR.B%),%SEEKBAR.B%,%SEEKBAR.BW%,%SEEKBAR.BH%)
      
      // update
      $updatewindow(%_id%,event:open)
      
  • VOLUME
    • Load
      // init
      $style(%_id%,clear)
      $bgcolor(%_id%,%DEFAULT.BG.COLOR%)
    • Open
      // clear
      $clearobject(%_id%,event:open)
      
      // object
      $ifequal(%volume%,-100.0,
       $bgcolor(%_id%,%MAIN.COLOR%)$drawtext(%_id%,Mute,,,%BUTTON.W%,%COLUMN3.H%,fg:%ACTIVE.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle)
      ,
       $hash(PLAYBACK.VOLUME,$drawtext(%_id%,$ifequal($strchr(%volume%,'.'),2,'0.0',$ifequal($strchr(%volume%,'.'),3,$left(%volume%,4),$ifequal($strchr(%volume%,'.'),4,$left(%volume%,5),)))' dB',,,%BUTTON.W%,%COLUMN3.H%,fg:%SUB.FONT.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,halign:center,valign:middle))
       $hash(PLAYBACK.VOLUME.HOVER,$drawtext(%_id%,$ifequal($strchr(%volume%,'.'),2,'0.0',$ifequal($strchr(%volume%,'.'),3,$left(%volume%,4),$ifequal($strchr(%volume%,'.'),4,$left(%volume%,5),)))' dB',,,%BUTTON.W%,%COLUMN3.H%,fg:%MAIN.COLOR%,font-name:%BUTTON.FONT.N%,font-size:%BUTTON.FONT.S%,hide,halign:center,valign:middle))
      )
      $map(%_id%,
       over:'
       $bgcolor(%_id%,%FOCUS.BG.COLOR%)
       $showobject(%PLAYBACK.VOLUME%,false,redraw:true)
       $showobject(%PLAYBACK.VOLUME.HOVER%,true,redraw:true)',
       out:'
       $bgcolor(%_id%,%DEFAULT.BG.COLOR%)
       $showobject(%PLAYBACK.VOLUME%,true,redraw:true)
       $showobject(%PLAYBACK.VOLUME.HOVER%,false,redraw:true)',
       lbuttondown:'
       $mainmenu_execute('Mute')'
      )
      $hash(VOLUME.MAP,%_result%)
      $map_rect(%VOLUME.MAP%,,,%BUTTON.W%,%COLUMN3.H%)
      
      // update
      $updatewindow(%_id%,event:open)
  • HEADER1
    • Load
      // init
      $style(%_id%,clear)
      $bgcolor(%_id%,%HEADER.BG.COLOR%)
    • Open
      // clear
      $clearobject(%_id%,event:open)
      
      // object
      $drawtext(%_id%,$pl_getmeta('%album%'),10,10,$sub(%COLUMN2.W%,20),15,fg:%HEADER.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%)
      $drawtext(%_id%,$pl_getmeta('%artist%'),10,25,$sub(%COLUMN2.W%,20),15,fg:%HEADER.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%)
      $drawtext(%_id%,$ifgreater($muldiv($pl_duration(%pl_activename%,selected),1,60),59,$muldiv($pl_duration(%pl_activename%,selected),1,3600):$pad_right($mod($muldiv($pl_duration(%pl_activename%,selected),1,60),60),2,0),$muldiv($pl_duration(%pl_activename%,selected),1,60)):$pad_right($mod($muldiv($pl_duration(%pl_activename%,selected),1,1),60),2,0),10,25,$sub(%COLUMN2.W%,20),15,fg:%HEADER.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%,halign:right)
      
      // update
      $updatewindow(%_id%,event:open)
  • HEADER2
    • Load
      // init
      $style(%_id%,clear)
      $bgcolor(%_id%,%HEADER.BG.COLOR%)
    • Open
      // clear
      $clearobject(%_id%,event:open)
      
      // object
      $drawtext(%_id%,$pl_getmeta('%pl_activename%'),10,10,$sub(%COLUMN3.W%,20),15,fg:%HEADER.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%)
      $drawtext(%_id%,$pl_group(group,'%album%')' groups, '$pl_itemcount()' tracks.',10,25,$sub(%COLUMN3.W%,20),15,fg:%HEADER.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:%MAIN.FONT.S%)
      
      // update
      $updatewindow(%_id%,event:open)
  • HEADER3
    • Load
      // init
      $style(%_id%,clear)
      $bgcolor(%_id%,%DEFAULT.BG.COLOR%)
      $gp_rect(%_id%,,,10,%_height%,aa:false,brush:255-%HEADER.BG.COLOR%)
    • Open
      // clear
      $clearobject(%_id%,event:open)
      
      // object
      $gp_text(%_id%,[%NOWPLAYING.ARTIST%],15,%NOWPLAYING.FONT.Y%,$calc(%COLUMN2.W%+10+%COLUMN3.W%-20),$calc(%_height%-5),fg:%NOWPLAYING.FONT.COLOR%,brush:255-%NOWPLAYING.FONT.COLOR%,font-name:%MAIN.FONT.N%,font-size:26,font-style:b,valign:top)
      
      // update
      $updatewindow(%_id%,event:open)

Panel Settings

  • CHANNEL_SPECTRUM_PANEL
    CHANNEL_SPECTRUM_PANELの設定
    ForeGround1 : 160-160-160
    BackGround : 255-255-255

 

 

  • PLAYLISTS_DROPDOWN
    • Display
      Display
      $rgb(64,64,64,255,255,255)
      %title%
      Style
      $set_style(back,$rgb(255,255,255),$rgb(81,134,165))
      
      $if($and(%_list%,$not(%_themed%)),
      $ifequal($mod(%list_index%,2),1,
      $set_style(back,$rgb(240,240,240),$rgb(81,134,165)),
      $set_style(back,$rgb(255,255,255),$rgb(81,134,165))
      )
      )
      Padding : top・bottom 1px, left・right 7px

 

  • ELPLAYLIST 
    • Script
      Track list
      // Even background
      $ifequal($mod(%el_item_index2%,2),1,
      $fillrect(,,,,%EVEN.BG%,),
      )
      
      // Now playing
      $if(%el_isplaying%,
      $fillrect(,,,,%PLAYING.BG%,)
      $drawstring(%tracknumber%,10,,%el_width%,%el_height%,%PLAYING%,vcenter nowrap elipchar)
      $drawstring(%title%,30,,$sub(%el_width%,120),%el_height%,%PLAYING%,vcenter nowrap elipchar)
      $drawstring($ifequal(%LASTFM_LOVED_DB%,1,♥,),,,$sub(%el_width%,70),%el_height%,%PLAYING%,vcenter right nowrap elipchar,),
      
      // Focus
      $if(%el_focused%,
      $fillrect(,,,,%FOCUS.BG%,)
      $drawstring(%tracknumber%,10,,%el_width%,%el_height%,%FOCUS%,vcenter nowrap elipchar,)
      $drawstring(%title%,30,,$sub(%el_width%,120),%el_height%,%FOCUS%,vcenter nowrap elipchar,)
      $drawstring($ifequal(%LASTFM_LOVED_DB%,1,♥,),,,$sub(%el_width%,70),%el_height%,%FOCUS%,vcenter right nowrap elipchar,)
      $drawstring(%length%,,,$sub(%el_width%,8),%el_height%,%FOCUS%,vcenter right nowrap elipchar,),
      
      // Default
      $drawstring(%tracknumber%,10,,%el_width%,%el_height%,%DEFAULT%,vcenter nowrap elipchar,)
      $drawstring(%title%,30,,$sub(%el_width%,120),%el_height%,%DEFAULT%,vcenter nowrap elipchar,)
      $drawstring($ifequal(%LASTFM_LOVED_DB%,1,♥,),,,$sub(%el_width%,70),%el_height%,%DEFAULT%,vcenter right nowrap elipchar,)
      $drawstring(%length%,,,$sub(%el_width%,8),%el_height%,%DEFAULT%,vcenter right nowrap elipchar,)
      ))
      ))
      Per Second
      $drawstring(%playback_time% / %length%,,,$sub(%el_width%,10),%el_height%,%PLAYING%,vcenter right nowrap elipchar hq)
    • Style
      dafoult font : Arial 7pt (メイリオ 7pt)
      Custom Background Colour : Total 255-255-255
      Scrollbar : hide 4
    • Grouping
      Group format
      %album%
      Sort format
      $ifequal($replace($meta(genre),Compilation,1),1,$meta(genre) %album%,$ifequal($replace($meta(genre),Soundtrack,1),1,$meta(genre) %album%,%artist%)) $meta(date) %album% %tracknumber%
      Row height : 25
    • Field definition
      EVEN.BG : 240-240-240
      PLAYING.BG : 81-134-165
      PLAYING : 255-255-255 
      FOCUS.BG : 224-224-224
      FOCUS : 81-134-165
      DEFAULT : 96-96-96
    • Behaviour
      Mouse Hover Action : Enable hover, Item Focus, Item Delay 0
      Display only the focused group
      Update every second(for per second)

 

  • GRAPHICAL_BROWSER1
    • Group 
      %album%
    • Sort 
      $ifequal($replace($meta(genre),Compilation,1),1,$meta(genre) %album%,$ifequal($replace($meta(genre),Soundtrack,1),1,$meta(genre) %album%,%artist%)) $meta(date) %album%
    • Item size
      236 × 50
    • Popup size
      300 × 100
    • Draw
      Item
      // Global
      $puts(artpath,$ifequal($replace($substr(%path%,1,2),C:,1),1,
      $replace(%path%,%filename_ext%,)%album%.jpg,
      $ifequal($replace($substr(%path%,1,4),http,1),1,
      images\album\%album%.jpg,
      images\no_image.jpg)))
      
      $puts(maincolor,81-134-165)
      $set_font(Arial,8,)
      
      // Even background
      $ifequal($mod(%gb_item_index%,2),1,
      $set_brush(240-240-240)
      $fill_rect(0,0,%gb_width%,%gb_height%),
      )
      
      
      // Nowplaying
      $if(%gb_isplaying%,
      $set_brush($get(maincolor))
      $fill_rect(0,0,%gb_width%,%gb_height%)
      
      $draw_image(10,10,30,30,$get(artpath),
      255,)
      
      $set_font_color(255-255-255)
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(224-224-224)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis),
      
      
      // Focus
      $if(%gb_focused%,
      $set_brush(208-208-208)
      $fill_rect(0,0,%gb_width%,%gb_height%)
      
      $draw_image(10,10,30,30,$get(artpath),255,)
      
      $set_font_color($get(maincolor))
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(128-128-128)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis),
      
      
      // Mouse over
      $if(%gb_mouse_over%,
      $set_brush(224-224-224)
      $fill_rect(0,0,%gb_width%,%gb_height%)
      
      $draw_image(10,10,30,30,$get(artpath),255,)
      
      $set_font_color($get(maincolor))
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(128-128-128)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis),
      
      
      // Default
      $draw_image(10,10,30,30,$get(artpath),230,)
      
      $set_font_color($get(maincolor))
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(144-144-144)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      )))
      Popup
      // Global
      $puts(artpath,$ifequal($replace($substr(%path%,1,2),C:,1),1,
      $replace(%path%,%filename_ext%,)%album%.jpg,
      $ifequal($replace($substr(%path%,1,4),http,1),1,
      images\album\%album%.jpg,
      images\no_image.jpg)))
      
      $set_font(Arial,8,)
      
      // Popup
      $gp_set_pen(255-192-192-192,2)
      $gp_draw_rectangle(0,0,%gb_width%,%gb_height%)
      
      $set_font_color(96-96-96)
      $draw_image(10,10,80,80,$get(artpath),255,)
      $draw_text(Album:%album%,100,12,$eval(%gb_width%-110),13,word_ellipsis)
      $draw_text(Artist:%artist%,100,28,$eval(%gb_width%-110),13,word_ellipsis)
      $draw_text(Genre:$meta(genre),99,44,$eval(%gb_width%-110),13,word_ellipsis)
      $draw_text(Date:$meta(date),100,60,$eval(%gb_width%-110),13,word_ellipsis)
      $draw_text(%gb_track_count% tracks   %gb_length%,100,76,$eval(%gb_width%-110),13,word_ellipsis,right)
    • Others
      Scroll type : Vertical scroll
      Scroll by a multiple of scroll size
      Show scrollbar
      Scroll size : 100

 

  • GRAPHICAL_BROWSER2
    GRAPHICAL_BROWSER1と同じ設定だが、背景色が入るマスの位置だけが違う。
    • Draw
      Item
      // Global
      $puts(artpath,$ifequal($replace($substr(%path%,1,2),C:,1),1,
      $replace(%path%,%filename_ext%,)%album%.jpg,
      $ifequal($replace($substr(%path%,1,4),http,1),1,
      images\album\%album%.jpg,
      images\no_image.jpg)))
      
      $puts(maincolor,81-134-165)
      $set_font(Arial,8,)
      
      // Odd background
      $ifequal($mod(%gb_item_index%,2),0,
      $set_brush(240-240-240)
      $fill_rect(0,0,%gb_width%,%gb_height%),
      )
      
      
      // Nowplaying
      $if(%gb_isplaying%,
      $set_brush($get(maincolor))
      $fill_rect(0,0,%gb_width%,%gb_height%)
      
      $draw_image(10,10,30,30,$get(artpath),
      255,)
      
      $set_font_color(255-255-255)
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(224-224-224)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis),
      
      
      // Focus
      $if(%gb_focused%,
      $set_brush(208-208-208)
      $fill_rect(0,0,%gb_width%,%gb_height%)
      
      $draw_image(10,10,30,30,$get(artpath),255,)
      
      $set_font_color($get(maincolor))
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(128-128-128)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis),
      
      
      // Mouse over
      $if(%gb_mouse_over%,
      $set_brush(224-224-224)
      $fill_rect(0,0,%gb_width%,%gb_height%)
      
      $draw_image(10,10,30,30,$get(artpath),255,)
      
      $set_font_color($get(maincolor))
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(128-128-128)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis),
      
      
      // Default
      $draw_image(10,10,30,30,$get(artpath),230,)
      
      $set_font_color($get(maincolor))
      $draw_text(%album%,50,10,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      $set_font_color(144-144-144)
      $draw_text(%artist%,50,25,$eval(%gb_width%-60),%gb_height%,word_ellipsis)
      )))
  • BIOGRAPHY
    BIOGRAPHYの設定 
    • Custom Colour
      Font : Arial 10pt (メイリオ 9pt)
      Background : 255-255-255
      Text : 96-96-96

5 Coment:

Unknown said...

この設定すごくかっこいいです。
もしよろしければ、設定ファイルなどいただけませんでしょうか?

other said...

構いませんよ。
サイト左上にあるメールアドレスから、もう一度ご連絡ください。

Unknown said...

同じく欲しいのですが今でも配布しているのでしょうか?


一通り試してみたのですがダメでした・・・

other said...

申し訳ありませんが、foobar2000は既にこのデザインではなくなってしまっているので、設定ファイルをお渡しすることは出来ません。ご了承下さい。

Kazuaki said...

こちらのページを参考にさせて頂いたのですが、同様の設定ができません。
こちらのページのデザインでなくても結構ですので、カスタマイズしたスキンを頂けないでしょうか?

Post a Comment