x2nie dev8 (Multi Skin Engines) (#1203)

* prettier

* typo

* bugfix: expect error on non supported skin format

* multiple instance, different gamma (colors)

* bugfix colortheme bg, cleanup

* prettier

* back to load single skin, del dead code

* del hack()

* trial to rename 'parse' -> skinengine_wal

* fully SkinEngine_Audio

* cleanup console warn.

* real switchSkin

* integrate WAL parser with plugable skinEngine.

* +KJofol !

* show Vis, Song,

* +WindowsMediaPlayer: Engine,Skins.

* load JS

* MMD3's header: movable

* +DialKnob

* +Button for down image that use global bmp

* preparing to Dock (layout name|mode)

* dock!

* undoc button

* +FloodLevel: kjofol seek. only ui/drag-mouse

* bugfix can't click

* +slider action.

* del dead code

* bugfix on switch kjofol skin

* call dispose() on switch skin

* bugfix Audion timer.

* bugfix loading skin*.zip, bugfix knob

* demo: loading .zip (unknown|ambiguous ext)

* just rename file

* wsz: failed to load wsz:(

* default Equalizer: missing #11,#12

* loading classic skin .wsz

* bugfix: don't stop when bitmap not found

* maximum viable.

* Replace the previous base with DeClassified

This commit aims to replace the base used for rendering Classic Skins in Webamp Modern with the latest commit of DeClassified

* added iso support for the EQ, update base skin

* working tooltips for the time display

* rename wsz_root to skin

for some reason this still doesnt make webamp modern render the skin it's given

* a bunch of things

* allow wsz_root to skin. (failed due missing files)

* prettier

* add but ignore. maybe soon be used

* temporary disabling "application.mi"

* reusing old classic code, that works

* + manifesto

* okay, lets use skin in correct way

* ren file

* redefining eq xml

* thumb background changes when mousemove

* +Pitch !

* set seek z-order to be not covering pitch.

* pitch: smooth audio effect during changes.

* bugfix normal pitch != 100%

* +Shade mode

* add objective-c syntaxt highlighter

* +Repeat, Shuffle

* Call & StrangeCall diff exploration

* +FileExtractor

* prettier.

* loading sonique for first time

* loading sonique for first time

* showing the main frame, + regional applied

* play,pause,stop

* play,pause,stop click images

* revert to using std|*.json

* show song duration (both enquee & addtrack)

* finding a correct bitrate

* +real metadata, +experiment bitRate

* show real song artist + title

* +showing real KBPS, real KHZ.

* track.id is not (can not be) required,
error on eqnueeefile()

* complete album art.

* bugfix volume onchanged

* del dead code

* lowercase key, to avoid misleading

* lowercase key, to avoid misleading

* speedup id3 parsing by Promise

* load another maki

* valid: uiRoot required for vm.

* move Track

* playlist text elipsis

* +scifi (sample skin)

* first attept to wrap text inside an irregular
shape

* reduce noise in html. => head/css.

* show cone gradient as Ring's preparation.

* show progress Ring

* both ring are now drawn.

* allow 270deg

* preparing real progress

* completing ui, no event yet

* bugfix mistaken mask

* allowing ring.action (+events)

* shuffle,repeat.

* eject

* switch to layout:NAV

* switch to layout:SMALL

* adding JetAudio support

* all bitmaps are loaded

* prevent 'undefined' id.

* show something visible :P

* preparing to load one tag with several meaning

* adding JetCowonAudio (old uib) support

* bugfix CORS issue of api.webampskins.org/graphql

* more window buttons

* add more sonique skin

* do list of ini content

* valid yarn build.

* sgf extractor

* sonique icon

* ignore 'extracted-*' folders

* add more sonique skin to load

* custom bitmap (just shown)

* just colorized

* maybe yes/no. colors is not confirmed

* not-found items (
taken from sonique install dir)

* load global png: via .ts

* show icons in circle buttons!

* exploring rgn (failed)

* can load from path (yeah, slow! :v)

* add freform/winamp

* add lineHeight to adjust font-size

* add border-bottom of menus

* prefix css (scrollbars)

* just commit, whatever.

* bugfix frequency position (not overlaped)

* +Menu ! (can only hover & mouse-down)

* still bugfix lineheight of titlebar's text

* show deprecated class

* show deprecated methods

* better on showing deprecated

* bugfix Menu.GUID

* force lowercase

* menus res

* set zero as a valid value of calcelation.

* completing Container props

* add more props, and also by retype (lowcase typo)

* pre-add

* +List, etc.

* addd more props

* rename _width -> _w & _height -> _h

* +onresize

* more detail message of too many similar error

* +ontextchanged

* log description on where the error come?

* avoid missing script id. (better debug)

* attaching WindowHolder

* my BigBento is just working (some hardcoded)

* add (my hacked) BigBento into selection.

* rename: _resizable -> _canResize. to avoid conflict
in Frame

* Frame.from = L

* a bit better. but not reflect on toggle click.

* reaching 71% of maki implementation

* mute frame border

* MUTE GRAPHQL ERROR CORS.

* dummy method: addSubMenu

* oke lah. lumayan

* implement windowholder for PL (only).

* correct align children: left & right.

* a bit better (assuring all key = lowercased)

* recompile some scripts

* bugfix thinger

* +MMD3 with thinger included (standalone)

* bugfix mono/stereo  get by text.display="songinfo"

* +winamp browser

* + Maki Explorer

* +fake implementation

* Big Bugfix: COnfig Item

* I understand, bud no found any mistake

* trial to compare string == insensitive

* trial to compare string != insensitive

* trial to case insensitive

* trial to compare string != insensitive

* bugfix triggering multi events

* set DEBUG, doesnt work :(

* more preserved guid

* mice down/up = work. but no visually.

* add undefined as fake

* implement fake Popup > open @mouse-hover

* bugfix: hover didn't work

* mute lint error

* bugfix xmlParam -> toLowerCase

* failed code to comment:

* allow bool as int

* mute console

* unhide text when not expanded | to find a text

* inpect "Class" in binary (distinct to other var)

* bugfix CORS cdn. , wait until user click demo.

* bugfix reading unicode char.

* Mad Apple Girl dancing

* Mad Apple Girl skin

* bad apple HD

* set back Text to be used by titlebar

* Completing missing classes (For better
 maki explorer / maki understanding)

* split editor to 2, for comparing up & down

* mark CLASS. by subclassing of vars identification

* Full speed animation

* add more maki: Application, File+XmlDoc

* add more maki: Application, File+XmlDoc

* more info when error (id of script)

* +global: application. +few methods

* +few methods.

* beautify (format doc), (typo)

* bugfix eris-lund: found a fatal error/program stop

* Class defintion (in maki file) is back supported.

* STUPID? mute ERROR. (don't stop)

* set back to very-simple logic

* implement alternateText

* bugfix a maki file loaded twice (multi)

* + trigger event in a class.

* mute console

* sorry, for hardcoded. ;p

* clean up uneeded dependency

* load very simple part: main.bmp + cbutton.bmp

* load main.shaded

* bitrates

* bitrates

* more classic skin

* + note & link, +full bitlist

* more classic items

* more progress.

* ++ various implementation, based on /progress

* *.WMZ region.txt is now ready !

* typo.

* integrate play/pause/stop statuses + mono|stereo

* network status

* change: wa.play.red => traffic.red (buffering)

* Volume + Pan

* EQ + PL buttons

* bugfix Text (char not found , too narrow
 bitmapfont)

* TIME text is clickable

* +Shuffle + Repeat

* better pseudo minus sign taken from "5" & "7" char

* pixel-perfect of Timer (text) of WInamp Modern.

* completing classic.player (container)

* completing VISCOLOR.txt parsing & applying values

* bugfix wrong parameter of vis

* Allow bitmap transparency by color (WMP)

* bugfix wrong parameter of vis

* Green Head is back running! (WMP)

* running WMP correctly

* running WMP correctly: background-color

* format from root dir

* format from root dir

* reduce lint complain

* del unknown file

---------

Co-authored-by: Fathony <fathony@smart-leaders.net>
Co-authored-by: Eris Lund <38136789+0x5066@users.noreply.github.com>
This commit is contained in:
Fathony Luthfillah 2023-02-23 20:41:17 +07:00 committed by GitHub
parent 07113e131d
commit 6a97db0a13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
856 changed files with 208297 additions and 4462 deletions

View file

@ -1,5 +1,6 @@
const path = require("path");
const rulesDirPlugin = require("eslint-plugin-rulesdir");
rulesDirPlugin.RULES_DIR = "packages/webamp-modern/tools/eslint-rules/dist";
rulesDirPlugin.RULES_DIR = path.join(__dirname, "tools/eslint-rules/dist");
module.exports = {
root: true,

View file

@ -1,2 +1,3 @@
build/
temp/
temp/
extracted-*/

View file

@ -45,6 +45,7 @@ yarn start
- [ ] Handle case (in)sensitivity of includes.
- [ ] Handle forward/backward slashes issues (if they exist)
- [ ] Draw in few canvases instead of huge HTML Elements
## Known Bugs

View file

@ -0,0 +1,11 @@
Tutorial simple skin by pixelpusher, June, 13, 2002
Created for the official Winamp.com tuorial site.
Built at the request of Ken Chen.
The purpose of this skin is help you learn how
to start creating a simple Winamp3 skin.
Pixelpusher

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<WinampAbstractionLayer version="0.8">
<skininfo>
<version>1.0</version>
<name>Tutorial Simple Skin</name>
<comment>Created by pixelpusher for the official Winamp3 skinning site.</comment>
<author gaybag="be afraid, be very afraid">John Hoag "aka" pixelpusher</author>
<email>nonsaint@hotmail.com</email>
<homepage></homepage>
<screenshot>screenshot.png</screenshot>
</skininfo>
<include file="@DEFAULTSKINPATH@xml/eq.xml"/>
<include file="@DEFAULTSKINPATH@xml/thinger.xml"/>
<include file="@DEFAULTSKINPATH@xml/pledit.xml"/>
<include file="@DEFAULTSKINPATH@xml/player-elements.xml"/>
<include file="@DEFAULTSKINPATH@xml/pledit-normal-group.xml"/>
<include file="@DEFAULTSKINPATH@xml/video.xml"/>
<include file="xml/bad-apple.xml"/>
<include file="xml/player.xml"/>
</WinampAbstractionLayer>

View file

@ -0,0 +1,39 @@
<groupdef id="badapple.group" x="0" y="0" relatw="1" relath="1">
<!-- <rect x="0" y="0" h="485" w="460" color="0,0,0" filled="1"/> -->
<!-- <text id="badapple_text" x="0" y="0" text="" h="485" w="460" fontsize="14"
align="left" valign="top" font="cour" color="255,255,255" antialias="0" ghost="1"/> -->
<rect x="0" y="0" h="1000" w="1000" color="0,0,0" filled="1"/>
<text id="badapple_text" x="0" y="1" text="" h="1000" w="1000" fontsize="14"
align="left" valign="top" font="cour" color="255,255,255" antialias="0" ghost="1"/>
<text id="badapple_text2" x="0" y="121" text="" h="1000" w="1000" fontsize="7"
align="left" valign="top" font="cour" color="255,255,255" antialias="0" ghost="1"/>
<text id="badapple_text3" x="0" y="241" text="" h="1000" w="1000" fontsize="7"
align="left" valign="top" font="cour" color="255,255,255" antialias="0" ghost="1"/>
<text id="badapple_text4" x="0" y="361" text="" h="1000" w="1000" fontsize="7"
align="left" valign="top" font="cour" color="255,255,255" antialias="0" ghost="1"/>
<!--vis id="badapple.vis" x="388" y="4" w="36" h="8" cursor="cur.normal" gammagroup="visualizers"/-->
<!--button id="button.play" x="427" y="2" w="12" h="12" image="status.icon.play.dark" alpha="255" tooltip="Play Animation" rectrgn="1" cursor="cur.normal"/>
<button id="button.stop" x="439" y="2" w="12" h="12" image="status.icon.stop.dark" alpha="255" tooltip="Stop Animation" rectrgn="1" cursor="cur.normal"/-->
<script file="scripts/badapple.maki"/>
</groupdef>
<container id="badapple" name="Bad Apple!!" default_visible="1" default_y="125">
<!-- <layout id="normal" minimum_w="460" maximum_w="460" w="460" minimum_h="429" maximum_h="429" h="429" appbar="top|bottom|left|right"> -->
<layout id="normal" minimum_w="650" w="660" minimum_h="429" h="429" appbar="top|bottom|left|right">
<group x="0" y="0" w="0" h="0" relatw="1" relath="1" id="badapple.group" />
<!-- <sendparams target="wasabi.frame.layout.base.bg" alpha="0"/> -->
</layout>
</container>

View file

@ -0,0 +1,116 @@
<!-- Simple Tutorial Skin - Player.xml file
Created by pixelpusher and Ken Chen for the official Winamp3 skinning site. -->
<!-- Element definition -->
<elements>
<bitmapfont id="player.BIGNUM" file="player/numfont.png" charwidth="9" charheight="13" hspacing="3" vspacing="1" gammagroup="Fonts"/>
<bitmapfont id="wasabi.font.default" file="player/default-font.png" charwidth="5" charheight="6" hspacing="0" vspacing="0" gammagroup="Display Fonts"/>
<bitmap id="player.main.background" file="player/background.png" gammagroup="Backgrounds"/>
<bitmap id="vis.backlayer.blue" file="player/blue-vis-layer.png" gammagroup="Backgrounds"/>
<bitmap id="black.backdrop" file="player/black-backdrop.png" gammagroup="Backgrounds"/>
<bitmap id="blue-player.button.previous" file="player/blue/blue-previous.png" gammagroup="Buttons"/>
<bitmap id="blue-player.button.play" file="player/blue/blue-play.png" gammagroup="Buttons"/>
<bitmap id="blue-player.button.pause" file="player/blue/blue-pause.png" gammagroup="Buttons"/>
<bitmap id="blue-player.button.stop" file="player/blue/blue-stop.png" gammagroup="Buttons"/>
<bitmap id="blue-player.button.next" file="player/blue/blue-next.png" gammagroup="Buttons"/>
<bitmap id="blue-player.button.eject" file="player/blue/blue-eject.png" gammagroup="Buttons"/>
</elements>
<!-- Playback Buttons Group Definition -->
<groupdef id="player.normal.playbuttons" name="Player buttons">
<button
id="Previous"
action="PREV"
x="0" y="0"
image="blue-player.button.previous"
tooltip="Previous"
/>
<button
id="Play"
action="PLAY"
x="23" y="0"
image="blue-player.button.play"
tooltip="Play"
/>
<button
id="Pause"
action="PAUSE"
x="46" y="0"
image="blue-player.button.pause"
tooltip="Pause"
/>
<button
id="Stop"
action="STOP"
x="69" y="0"
image="blue-player.button.stop"
tooltip="Stop"
/>
<button
id="Next"
action="NEXT"
x="92" y="0"
image="blue-player.button.next"
tooltip="Next"
/>
<button
id="Eject"
action="EJECT"
x="121" y="1"
image="blue-player.button.eject"
tooltip="Eject"
/>
</groupdef>
<!-- Song File Information and Visualization Group Definition -->
<groupdef id="player.normal" name="Winamp">
<layer id="vis.backlayer.blue"
x="13" y="20"
ghost="1"
image="vis.backlayer.blue"
/>
<text
id="timer"
display="time"
x="30" y="24"
w="70" h="18"
font="player.BIGNUM" fontsize="21" align="right"
timecolonwidth="7"
/>
<layer id="black.backdrop"
x="105" y="20"
ghost="1"
image="black.backdrop"
/>
<text
id="songticker" ticker="1"
display="songname" default="" showlen="1"
x="108" y="23"
w="157" h="14"
font="wasabi.font.default" fontsize="13"
/>
<!-- Song File Information-->
<text
id="infoline" ticker="1"
display="songinfo" default=""
x="108" y="37"
w="157" h="11"
font="wasabi.font.default" fontsize="12" ghost="1"
/>
<!-- Visualzation -->
<vis
id="vis"
x="20" y="46"
w="72" h="16"
/>
</groupdef>
<!-- Main Window: Container and Layout -->
<container id="main" name="Main Window" default_x="0" default_y="0" default_visible="1">
<!-- First Layout -->
<layout id="normal" background="player.main.background" droptarget="pldr">
<!-- Using Playback Buttons Group -->
<group id="player.normal" />
<group id="player.normal.playbuttons" x="12" y="85" />
</layout>
</container>

View file

@ -0,0 +1,81 @@
<include file="nibbles/nibbles.xml"/>
<elements>
<bitmap id="about.fg" file="about/about_fg.jpg" />
<bitmap id="about.bg" file="about/about_fg.jpg" y="0" h="321" x="0" w="1"/>
<color id="about.font" value="162,193,204" gammgroup="none" />
</elements>
<groupdef id="skin.about.group" w="0" h="0" relatw="1" relath="1" rectrgn="1">
<rect fitparent="1" color="255,255,255" filled="1" />
<layer fitparent="1" image="about.bg"/>
<layer
x="0" y="0"
w="371"
h="321"
image="about.fg"
/>
<group id="about.text1" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text2" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text3" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text4" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text5" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text6" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text7" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="about.text8" x="25" y="190" h="90" w="350" alpha="0"/>
<group id="nibbles" fitparent="1" visible="0" />
<layer id="toggle" fitparent="1" rectrgn="1" />
<script file="about/about.maki"/>
</groupdef>
<groupdef id="about.text1" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="The new" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="Single User Interface." alpha="60"/>
</groupdef>
<groupdef id="about.text2" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="Coding by" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="Martin Pöhlmann." alpha="70"/>
<text color="about.font" x="17" y="70" h="18" w="350" fontsize="18" font="tahoma" text="from www.skinconsortium.com" alpha="100"/>
</groupdef>
<groupdef id="about.text3" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="Graphics by" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="Taber Buhl." alpha="60"/>
</groupdef>
<groupdef id="about.text4" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="Wasabi Development by" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="Ben Allison" alpha="60"/>
<text color="about.font" x="17" y="70" h="18" w="350" fontsize="18" font="tahoma" text="and Martin Pöhlmann." alpha="100"/>
</groupdef>
<groupdef id="about.text5" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="Color Themes by" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="16" font="tahoma" text="DJ Egg, GreayStone, J_Darnley, Martin, QOAL, VooDoo`" alpha="100"/>
<text color="about.font" x="17" y="60" h="18" w="350" fontsize="16" font="tahoma" text="You are encouraged to submit new ones." alpha="60"/>
</groupdef>
<groupdef id="about.text7" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="Feel free to use this skin" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="as a reference point" alpha="60"/>
<text color="about.font" x="17" y="70" h="18" w="350" fontsize="18" font="tahoma" text="to create your own winamp skins." alpha="100"/>
</groupdef>
<groupdef id="about.text8" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="For help visit" alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="forums.winamp.com" alpha="60"/>
<text color="about.font" x="17" y="70" h="18" w="350" fontsize="18" font="tahoma" text="or forums.skinconsortium.com" alpha="100"/>
</groupdef>
<groupdef id="about.text6" >
<text color="about.font" x="0" y="0" h="30" w="350" fontsize="28" font="tahoma" text="Thanks go to..." alpha="110"/>
<text color="about.font" x="15" y="30" h="40" w="350" fontsize="36" font="tahoma" text="DJ Egg, SLoB and Phobos" alpha="60"/>
<text color="about.font" x="17" y="70" h="18" w="350" fontsize="18" font="tahoma" text="...for help and suggestions." alpha="100"/>
</groupdef>

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

View file

@ -0,0 +1,52 @@
<elements>
<bitmap id="sammy" file="about/nibbles/sammy.png" />
<bitmap id="level1" file="about/nibbles/level1.png" />
<bitmap id="level2" file="about/nibbles/level2.png" />
<bitmap id="level3" file="about/nibbles/level3.png" />
<bitmap id="level4" file="about/nibbles/level4.png" />
<bitmap id="level5" file="about/nibbles/level5.png" />
<bitmap id="level6" file="about/nibbles/level6.png" />
<bitmap id="level7" file="about/nibbles/level7.png" />
<bitmap id="level8" file="about/nibbles/level8.png" />
<bitmap id="level9" file="about/nibbles/level9.png" />
<bitmap id="level10" file="about/nibbles/level10.png" />
<bitmap id="llama" file="about/nibbles/llama.png" />
<bitmap id="info" file="about/nibbles/info.png" />
<bitmap id="info2" file="about/nibbles/info2.png" />
<bitmapfont id="font" file="about/nibbles/fixedsys.png" charwidth="8" charheight="14" hspacing="0" vspacing="0"/>
</elements>
<groupdef id="sammys">
</groupdef>
<groupdef id="nibbles">
<rect filled="1" fitparent="1" color="0,0,128" />
<layer x="0" y="0" h="321" w="371" id="bg" image="level1" move="0" />
<layer x="0" y="0" id="llama" image="llama" visible="0"/>
<text id="c1" x="4" y="20" w="370" h="14" text="" font="font" align="left" visible="1" alpha="100"/>
<text id="c2" x="4" y="20" w="360" h="14" text="" font="font" align="right" visible="1" alpha="100"/>
<text id="c3" x="4" y="20" w="360" h="14" text="" font="font" align="center" visible="1" alpha="100"/>
<layer x="0" y="0" h="5" w="5" id="sammy0" image="sammy" visible="0"/>
<group x="0" y="0" h="321" w="371" id="sammys" move="0" />
<layer id="info" x="0" y="0" h="321" w="371" image="info" />
<text id="infotxt" x="0" y="156" w="371" h="14" text="Level 1, Push Space" font="font" align="center"/>
<layer id="info2" x="0" y="0" h="321" w="371" image="info2" visible="0" />
<text id="infotxt2a" x="0" y="120" w="371" h="14" text="G A M E O V E R" font="font" align="center" visible="0"/>
<text id="infotxt2b" x="0" y="150" w="371" h="14" text="Your Score:" font="font" align="center" visible="0"/>
<text id="infotxt2c" x="0" y="192" w="371" h="14" text="To Play Again, Push Space" font="font" align="center" visible="0"/>
<text id="infotxt2d" x="0" y="168" w="371" h="14" text="Personal Best:" font="font" align="center" visible="0"/>
<text id="score" x="0" y="1" w="371" h="14" text="0" font="font" align="right"/>
<text id="lives" x="0" y="0" w="371" h="14" text="Lives: 5" font="font" align="center"/>
<text id="level" x="0" y="0" w="371" h="14" text="Level 1" font="font" align="left" />
<text id="txt" y="130" x="5"/>
</groupdef>

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -0,0 +1,55 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: albumart.m
Version: 1.0
Type: maki
Date: 20. Sep. 2007 - 16:54
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global AlbumArtLayer AlbumArt;
System.onScriptLoaded ()
{
AlbumArt = getScriptGroup().findObject(getParam());
}
AlbumArt.onRightButtonDown (int x, int y)
{
popupmenu p = new popupmenu;
p.addCommand("Get Album Art", 1, 0, 0);
p.addCommand("Refresh Album Art", 2, 0, 0);
p.addCommand("Open Folder", 3, 0, 0);
int result = p.popatmouse();
delete p;
if (result == 1)
{
if (system.getAlbumArt(system.getPlayItemString()) > 0)
{
AlbumArt.refresh();
}
}
else if (result == 2)
{
AlbumArt.refresh();
}
else if (result == 3)
{
System.navigateUrl(getPath(getPlayItemMetaDataString("filename")));
}
}
AlbumArt.onLeftButtonDblClk (int x, int y)
{
System.navigateUrl(getPath(getPlayItemMetaDataString("filename")));
}

View file

@ -0,0 +1,88 @@
//----------------------------------------------------------------------------------------------------------------
// application.mi
//
// reflects the api_application object into Maki
// some of the functions may not make a lot of sense in the context of skin scripting
// they are here for completeness
// some of these functions duplicate functionality provided in the system object
//----------------------------------------------------------------------------------------------------------------
#ifndef __APPLICATION_MI
#define __APPLICATION_MI
extern class @{B8E867B0-2715-4da7-A5BA-53DBA1FCFEAC}@ Object _predecl Application;
//*****************************************************************************
// APPLICATION CLASS
//*****************************************************************************
/**
Application Class.
@short Application Object
@author benski
@ver 1.0
*/
// static functions
extern String Application.GetApplicationName();
extern String Application.GetVersionString();
extern String Application.GetVersionNumberString();
extern int Application.GetBuildNumber();
/**
A unique ID that represents what GUID this application is
Winamp 5 is {4BE592C7-6937-426a-A388-ACF0EBC88E93}
other Wasabi-based applications (e.g. ClipX, Winamp3, wasabi.player) will have a different GUID
however, this maki class only currently resides in Winamp5, so it's a bit irrevelant :)
*/
extern String Application.GetGUID();
/**
The commandline that Winamp was called with
*/
extern String Application.GetCommandLine();
/**
Shuts Winamp down.
*/
extern Application.Shutdown();
/**
cancels an shutdown in progress
see note for IsShuttingDown about the futility of this maki script function
*/
extern Application.CancelShutdown ();
/**
tests if we're in the middle of shutting down winamp.
This is part of the application API in Wasabi, so it's reflected here
but it might not be of much use to your script,
since you'll likely be unloaded before this function
ever gets a chance to return true
*/
extern boolean Application.IsShuttingDown();
/**
Path where winamp.exe (or studio.exe) lives
*/
extern String Application.GetApplicationPath();
/**
Path where Winamp stores it's settings (studio.xnf, winamp.ini, etc)
*/
extern String Application.GetSettingsPath();
/**
Gets the current working path. This is the same path that will open by default
in Winamp's "Open File" dialog.
Working path persists across Winamp launches
*/
extern String Application.GetWorkingPath();
/**
Sets a new working path.
*/
extern Application.SetWorkingPath(String working_path);
#endif

View file

@ -0,0 +1,106 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: gen_pageguids.m
Version: 1.0
Type: maki/page guid definitions
Date: 03. Jul. 2006 - 18:29
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef __GEN_PAGEGUIDS_M
#define __GEN_PAGEGUIDS_M
#include <lib/config.mi>
Function initPages();
/*--NON CHANGEABLE GUIDS:--------------------------*/
// 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}"
Global ConfigItem optionsmenu_page;
// 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}"
Global ConfigItem custom_windows_page;
// non exposed attribs page
#define CUSTOM_PAGE_NONEXPOSED "{E9C2D926-53CA-400f-9A4D-85E31755A4CF}"
Global ConfigItem custom_page_nonexposed;
/*--DECLARE PAGES HERE:----------------------------*/
initPages()
{
#ifndef __PAGES
#define __PAGES
custom_page_nonexposed = Config.newItem("Hidden", CUSTOM_PAGE_NONEXPOSED);
// load up the cfgpage in which we'll insert our custom page
optionsmenu_page = Config.getItem(CUSTOM_OPTIONSMENU_ITEMS);
custom_windows_page = Config.getItem(CUSTOM_WINDOWSMENU_ITEMS);
#endif
}
/*--GLOBAL DEFINITIONS:----------------------------*/
#define NOOFF if (getData()=="0") { setData("1"); return; }
Global Int attribs_mychange, attribs_mychange2;
Global ConfigAttribute sep;
Global Int sep_count = 0;
Function addMenuSeparator(ConfigItem cfgmenupage);
addMenuSeparator(ConfigItem cfgmenupage)
{
#ifdef MAIN_ATTRIBS_LOADER
sep_count = sep_count + 1;
sep = cfgmenupage.newAttribute(getSkinName() + "seperator" + integerToString(sep_count), "");
sep.setData("-");
#endif
}
Function ConfigItem addConfigSubMenu(configitem parent, string name, string guid);
ConfigItem addConfigSubMenu(configitem parent, string name, string guid)
{
ConfigItem __ret = Config.newItem(name, guid);
ConfigAttribute __dret = parent.newAttribute(name, "");
__dret.setData(guid);
return __ret;
}
Function toggleAttrib(ConfigAttribute attrib);
toggleAttrib(ConfigAttribute attrib)
{
if (attrib.getData() == "0")
{
attrib.setData("1");
}
else
{
attrib.setData("0");
}
}
#endif

View file

@ -0,0 +1,92 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_Autoresize.m
Version: 1.1
Type: maki/attrib definitions
Date: 23. Jan. 2008 - 20:31
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/maximize.m
scripts/videoresize.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_Autoresize();
#define CUSTOM_PAGE_RESIZE "{E704AB5A-108E-4309-B54B-43EBA5C0C3AA}"
Global ConfigAttribute sui_autorsize_attrib, link_w_attrib, titlebar_dblclk_max_attib, titlebar_dblclk_shade_attib, collapse_top_attrib, collapse_bottom_attrib;
Global ConfigAttribute video_inframe_attrib;
initAttribs_Autoresize()
{
initPages();
ConfigItem custom_page_autoresize = addConfigSubMenu(optionsmenu_page, "Window Sizing", CUSTOM_PAGE_RESIZE);
sui_autorsize_attrib = custom_page_autoresize.newAttribute("Autoresize Main Window if maximized", "0");
link_w_attrib = custom_page_autoresize.newAttribute("Link shade and player width", "1");
addMenuSeparator(custom_page_autoresize);
video_inframe_attrib = custom_page_autoresize.newAttribute("Enable Video in Window resizing", "0");
addMenuSeparator(custom_page_autoresize);
titlebar_dblclk_shade_attib = custom_page_autoresize.newAttribute("Switch to Shade on Titlebar Doubleclick", "1");
titlebar_dblclk_max_attib = custom_page_autoresize.newAttribute("Maximize Window on Titlebar Doubleclick", "0");
addMenuSeparator(custom_page_autoresize);
collapse_top_attrib = custom_page_autoresize.newAttribute("Collapse Window to Top", "1");
collapse_bottom_attrib = custom_page_autoresize.newAttribute("Collapse Window to Bottom", "0");
}
#ifdef MAIN_ATTRIBS_MGR
titlebar_dblclk_shade_attib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") titlebar_dblclk_max_attib.setData("0");
if (getData() == "0") titlebar_dblclk_max_attib.setData("1");
attribs_mychange = 0;
}
titlebar_dblclk_max_attib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") titlebar_dblclk_shade_attib.setData("0");
if (getData() == "0") titlebar_dblclk_shade_attib.setData("1");
attribs_mychange = 0;
}
collapse_bottom_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") collapse_top_attrib.setData("0");
if (getData() == "0") collapse_top_attrib.setData("1");
attribs_mychange = 0;
}
collapse_top_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
if (getData() == "1") collapse_bottom_attrib.setData("0");
if (getData() == "0") collapse_bottom_attrib.setData("1");
attribs_mychange = 0;
}
#endif

View file

@ -0,0 +1,54 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_appearance.m
Version: 2.2
Type: maki/attrib definitions
Date: 28. Jun. 2007 - 22:08
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/mainmenu.maki
scripts/visualizer.maki
scripts/beatvisualization.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_Appearance();
#define CUSTOM_PAGE_APPEARANCE "{F1036C9C-3919-47ac-8494-366778CF10F9}"
Global ConfigAttribute vis_reflection_attrib;
Global ConfigAttribute timer_reflection_attrib;
Global ConfigAttribute menubar_main_attrib;
Global configAttribute beatvis_attrib;
Global ConfigItem custom_page_appearance;
initAttribs_Appearance()
{
initPages();
custom_page_appearance = addConfigSubMenu(optionsmenu_page, "Appearance", CUSTOM_PAGE_APPEARANCE);
menubar_main_attrib = custom_page_appearance.newAttribute("Show Main Window Menu", "1");
addMenuSeparator(custom_page_appearance);
vis_reflection_attrib = custom_page_appearance.newAttribute("Show Visualizer Reflection", "1");
timer_reflection_attrib = custom_page_appearance.newAttribute("Show Timer Reflection", "1");
addMenuSeparator(custom_page_appearance);
beatvis_attrib = custom_page_appearance.newAttribute("Enable Beat Visualization", "1");
}

View file

@ -0,0 +1,175 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_browser.m
Version: 1.1
Type: maki/attrib definitions
Date: 27. Jul. 2007 - 13:36
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/browser.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
#define CUSTOM_PAGE_BROWSER "{0E17DBEA-9398-49e6-AE6F-3AB17D001DF3}"
#define CUSTOM_PAGE_BROWSER_WASEARCH "{180E87DF-C482-41fe-A570-8575C673E1BA}"
#define CUSTOM_PAGE_BROWSER_CONCERTSEARCH "{B8171DB3-ECF6-40c6-9332-DDEA57A8F13E}"
Function initAttribs_browser();
Class ConfigAttribute SearchAttribute;
Function check (string unknown, SearchAttribute compare);
#ifdef BROWSER_SCRIPT
Global list SearchAttributeList;
#endif
#ifndef BROWSER_SCRIPT
#define SearchAttributeList //
#endif
Global ConfigAttribute browser_scr_show_attrib, browser_search_attrib;
Global SearchAttribute /*browser_search_google_attrib,*/ browser_search_truveo_attrib, browser_aol_search;
Global SearchAttribute browser_search_winamp_mskins_attrib, browser_search_winamp_cskins_attrib, browser_search_winamp_plugins_attrib,browser_search_winamp_videos_attrib, browser_search_winamp_music_attrib, browser_search_winamp_web_attrib, browser_search_wiki_attrib;
Global SearchAttribute browser_c_aol_attrib, browser_c_pollstar_attrib, browser_c_bit_attrib, browser_c_ln_attrib, browser_c_jambase_attrib/*browser_c_OnTour_attrib,browser_c_eventful_attrib,browser_c_podbop_attrib*/;
initAttribs_browser()
{
initPages();
ConfigItem custom_page_browser = addConfigSubMenu(optionsmenu_page, "Browser", CUSTOM_PAGE_BROWSER);
browser_search_attrib = custom_page_nonexposed.newAttribute("Onesie browser Quicksearch", "Web Search");
SearchAttributeList = new List;
SearchAttributeList.addItem (custom_page_browser);
browser_search_winamp_web_attrib = custom_page_browser.newAttribute("Web Search", "1");
SearchAttributeList.addItem (browser_search_winamp_web_attrib);
browser_aol_search = custom_page_browser.newAttribute("AOL Music Search", "0");
SearchAttributeList.addItem (browser_aol_search);
browser_search_truveo_attrib = custom_page_browser.newAttribute("Truveo Video Search", "0");
SearchAttributeList.addItem (browser_search_truveo_attrib);
browser_search_wiki_attrib = custom_page_browser.newAttribute("Wikipedia Search", "0");
SearchAttributeList.addItem (browser_search_wiki_attrib);
ConfigItem custom_page_browser_concertsearch = addConfigSubMenu(custom_page_browser, "Concert Search", CUSTOM_PAGE_BROWSER_CONCERTSEARCH);
browser_c_aol_attrib = custom_page_browser_concertsearch.newAttribute("AOL Tickets", "0");
SearchAttributeList.addItem (browser_c_aol_attrib);
browser_c_jambase_attrib = custom_page_browser_concertsearch.newAttribute("JamBase", "0");
SearchAttributeList.addItem (browser_c_jambase_attrib);
browser_c_pollstar_attrib = custom_page_browser_concertsearch.newAttribute("Pollstar", "0");
SearchAttributeList.addItem (browser_c_pollstar_attrib);
browser_c_ln_attrib = custom_page_browser_concertsearch.newAttribute("Live Nation", "0");
SearchAttributeList.addItem (browser_c_ln_attrib);
browser_c_bit_attrib = custom_page_browser_concertsearch.newAttribute("Bandsintown", "0");
SearchAttributeList.addItem (browser_c_bit_attrib);
// browser_c_eventful_attrib = custom_page_browser_concertsearch.newAttribute("Eventful", "0");
// SearchAttributeList.addItem (browser_c_eventful_attrib);
// browser_c_OnTour_attrib = custom_page_browser_concertsearch.newAttribute("OnTour", "0");
// SearchAttributeList.addItem (browser_c_OnTour_attrib);
ConfigItem custom_page_browser_winampsearch = addConfigSubMenu(custom_page_browser, "Winamp.com Search", CUSTOM_PAGE_BROWSER_WASEARCH);
browser_search_winamp_mskins_attrib = custom_page_browser_winampsearch.newAttribute("Modern Skins", "0");
SearchAttributeList.addItem (browser_search_winamp_mskins_attrib);
browser_search_winamp_cskins_attrib = custom_page_browser_winampsearch.newAttribute("Classic Skins", "0");
SearchAttributeList.addItem (browser_search_winamp_cskins_attrib);
browser_search_winamp_plugins_attrib = custom_page_browser_winampsearch.newAttribute("Plugins", "0");
SearchAttributeList.addItem (browser_search_winamp_plugins_attrib);
browser_search_winamp_videos_attrib = custom_page_browser_winampsearch.newAttribute("Videos", "0");
SearchAttributeList.addItem (browser_search_winamp_videos_attrib);
browser_search_winamp_music_attrib = custom_page_browser_winampsearch.newAttribute("Music", "0");
SearchAttributeList.addItem (browser_search_winamp_music_attrib);
addMenuSeparator(custom_page_browser);
browser_scr_show_attrib = custom_page_browser.newAttribute("Show Media Monitor", "1");
}
#ifdef MAIN_ATTRIBS_MGR
browser_search_attrib.onDataChanged ()
{
if (attribs_mychange) return;
string dta = getData();
/* if (dta == "Google Web Search") browser_search_google_attrib.setData("1");
else*/ if (dta == "Modern Skins") browser_search_winamp_mskins_attrib.setData("1");
else if (dta == "Classic Skins") browser_search_winamp_plugins_attrib.setData("1");
else if (dta == "Plugins") browser_search_winamp_plugins_attrib.setData("1");
else if (dta == "Videos") browser_search_winamp_videos_attrib.setData("1");
else if (dta == "Music") browser_search_winamp_music_attrib.setData("1");
else if (dta == "Web Search with Google") browser_search_winamp_web_attrib.setData("1");
else if (dta == "AOL Music Search") browser_aol_search.setData("1");
else if (dta == "Pollstar") browser_c_pollstar_attrib.setData("1");
else if (dta == "Bands in Town") browser_c_bit_attrib.setData("1");
else if (dta == "Live Nation") browser_c_ln_attrib.setData("1");
else if (dta == "JamBase") browser_c_jambase_attrib.setData("1");
// else if (dta == "OnTour") browser_c_OnTour_attrib.setData("1");
// else if (dta == "Eventful") browser_c_eventful_attrib.setData("1");
// else if (dta == "Podbop") browser_c_podbop_attrib.setData("1");
else if (dta == "Truveo Video Search") browser_search_truveo_attrib.setData("1");
else if (dta == "AOL Tickets") browser_c_aol_attrib.setData("1");
else if (dta == "Wikipedia Search") browser_search_wiki_attrib.setData("1");
}
SearchAttribute.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
String s = SearchAttribute.getAttributeName();
// check (s, browser_search_google_attrib);
check (s, browser_search_winamp_mskins_attrib);
check (s, browser_search_winamp_cskins_attrib);
check (s, browser_search_winamp_plugins_attrib);
check (s, browser_search_winamp_videos_attrib);
check (s, browser_search_winamp_music_attrib);
check (s, browser_search_winamp_web_attrib);
check (s, browser_aol_search);
check (s, browser_search_truveo_attrib);
// check (s, browser_c_podbop_attrib);
// check (s, browser_c_eventful_attrib);
// check (s, browser_c_OnTour_attrib);
check (s, browser_c_jambase_attrib);
check (s, browser_c_ln_attrib);
check (s, browser_c_bit_attrib);
check (s, browser_c_pollstar_attrib);
check (s, browser_c_aol_attrib);
check (s, browser_search_wiki_attrib);
attribs_mychange = 0;
}
check (String unknown, SearchAttribute compare)
{
if (unknown == compare.getAttributeName())
{
browser_search_attrib.setData(compare.getAttributeName());
}
else
{
compare.setData("0");
}
}
#endif

View file

@ -0,0 +1,315 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_notifier.m
Type: maki/attrib definitions
Version: 1.1
Date: 12. Jul. 2006 - 16:15
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
wasabi/notifier/notifier.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_notifier();
#define CUSTOM_PAGE_NOTIFIER "{1AB968B3-8687-4a35-BA70-FCF6D92FB57F}"
#define CUSTOM_PAGE_NOTIFIER_AA "{7BF45B05-2B98-4de8-8778-E5CCC9639ED1}"
#define CUSTOM_PAGE_NOTIFIER_LOC "{715B2C0D-1DF0-4bb2-9D74-0FACAE27CE97}"
#define CUSTOM_PAGE_NOTIFIER_FDIN "{D9891A39-7A38-45d8-9D51-A08F7270C836}"
#define CUSTOM_PAGE_NOTIFIER_FDOUT "{560EAE41-1379-4927-AC55-FB5F4D47C9B8}"
Global ConfigAttribute notifier_minimized_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_hideinfullscreen_attrib;
Global ConfigAttribute notifier_windowshade_attrib;
Global ConfigAttribute notifier_opennowplaying_attrib;
Global ConfigAttribute notifier_fdout_alpha;
Global ConfigAttribute notifier_fdout_hslide;
Global ConfigAttribute notifier_fdout_vslide;
Global ConfigAttribute notifier_fdin_alpha;
Global ConfigAttribute notifier_fdin_hslide;
Global ConfigAttribute notifier_fdin_vslide;
Global ConfigAttribute notifier_loc_br_attrib;
Global ConfigAttribute notifier_loc_bl_attrib;
Global ConfigAttribute notifier_loc_tr_attrib;
Global ConfigAttribute notifier_loc_tl_attrib;
Global ConfigAttribute notifier_loc_bc_attrib;
Global ConfigAttribute notifier_loc_tc_attrib;
Global ConfigAttribute notifier_loc_vport_attrib;
Global ConfigAttribute notifier_loc_monitor_attrib;
initAttribs_notifier()
{
initPages();
ConfigItem custom_page_notifier = addConfigSubMenu(optionsmenu_page, "Notifications", CUSTOM_PAGE_NOTIFIER);
notifier_always_attrib = custom_page_notifier.newAttribute("Show always", "1");
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_minimized_attrib = custom_page_notifier.newAttribute("Show only when minimized", "0");
notifier_never_attrib = custom_page_notifier.newAttribute("Never show", "0");
addMenuSeparator(custom_page_notifier);
ConfigItem custom_page_notifier_loc = addConfigSubMenu(custom_page_notifier, "Location", CUSTOM_PAGE_NOTIFIER_LOC);
ConfigItem custom_page_notifier_fdin = addConfigSubMenu(custom_page_notifier, "Fade In Effect", CUSTOM_PAGE_NOTIFIER_FDIN);
ConfigItem custom_page_notifier_fdout = addConfigSubMenu(custom_page_notifier, "Fade Out Effect", CUSTOM_PAGE_NOTIFIER_FDOUT);
addMenuSeparator(custom_page_notifier);
notifier_hideinfullscreen_attrib = custom_page_notifier.newAttribute("Disable in fullscreen", "1");
addMenuSeparator(custom_page_notifier);
notifier_opennowplaying_attrib = custom_page_notifier.newAttribute("Open Now Playing on Click", "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");
// Notifications > Location
notifier_loc_bl_attrib = custom_page_notifier_loc.newAttribute("Bottom Left", "0");
notifier_loc_bc_attrib = custom_page_notifier_loc.newAttribute("Bottom Center", "0");
notifier_loc_br_attrib = custom_page_notifier_loc.newAttribute("Bottom Right", "1");
notifier_loc_tl_attrib = custom_page_notifier_loc.newAttribute("Top Left", "0");
notifier_loc_tc_attrib = custom_page_notifier_loc.newAttribute("Top Center", "0");
notifier_loc_tr_attrib = custom_page_notifier_loc.newAttribute("Top Right", "0");
addMenuSeparator(custom_page_notifier_loc);
notifier_loc_vport_attrib = custom_page_notifier_loc.newAttribute("Relative to Viewport", "1");
notifier_loc_monitor_attrib = custom_page_notifier_loc.newAttribute("Relative to Monitor", "0");
// Notifications > Fade...
notifier_fdout_alpha = custom_page_notifier_fdout.newAttribute("Alpha Fade ", "1");
notifier_fdout_vslide = custom_page_notifier_fdout.newAttribute("Vertical Slide ", "0");
notifier_fdout_hslide = custom_page_notifier_fdout.newAttribute("Horizontal Slide ", "0");
// Martin> We need a additional spacer for the last 3 attribs, so we won't cross withe the 3 below in studio.xnf
notifier_fdin_alpha = custom_page_notifier_fdin.newAttribute("Alpha Fade", "1");
notifier_fdin_vslide = custom_page_notifier_fdin.newAttribute("Vertical Slide", "0");
notifier_fdin_hslide = custom_page_notifier_fdin.newAttribute("Horizontal Slide", "0");
}
#ifdef MAIN_ATTRIBS_MGR
notifier_always_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_minimized_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
attribs_mychange = 0;
}
notifier_never_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_always_attrib.setData("0");
notifier_minimized_attrib.setData("0");
notifier_windowshade_attrib.setData("0");
attribs_mychange = 0;
}
notifier_minimized_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_never_attrib.setData("0");
notifier_always_attrib.setData("0");
notifier_windowshade_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;
}
notifier_fdout_alpha.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdout_hslide.setData("0");
notifier_fdout_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdout_hslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdout_alpha.setData("0");
notifier_fdout_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdout_vslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdout_hslide.setData("0");
notifier_fdout_alpha.setData("0");
attribs_mychange = 0;
}
notifier_fdin_alpha.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdin_hslide.setData("0");
notifier_fdin_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdin_hslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdin_alpha.setData("0");
notifier_fdin_vslide.setData("0");
attribs_mychange = 0;
}
notifier_fdin_vslide.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_fdin_hslide.setData("0");
notifier_fdin_alpha.setData("0");
attribs_mychange = 0;
}
notifier_loc_br_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_bl_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_br_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_tl_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_tr_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_tc_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
notifier_loc_bc_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_bc_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_bl_attrib.setData("0");
notifier_loc_br_attrib.setData("0");
notifier_loc_tl_attrib.setData("0");
notifier_loc_tc_attrib.setData("0");
notifier_loc_tr_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_vport_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_monitor_attrib.setData("0");
attribs_mychange = 0;
}
notifier_loc_monitor_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
notifier_loc_vport_attrib.setData("0");
attribs_mychange = 0;
}
#endif

View file

@ -0,0 +1,43 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_playlist.m
Version: 1.0
Type: maki/attrib definitions
Date: 23. Okt. 2006 - 16:58
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
config/configsystem.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
#define COSTUM_PAGE_PLAYLIST "{0167CFD9-5D35-404a-8F03-80ED5B89DEDF}"
Function initAttribs_playlist();
Global ConfigAttribute playlist_enlarge_attrib;
Global ConfigAttribute playlist_cover_attrib;
initAttribs_Playlist()
{
initPages();
ConfigItem playlist_parent = addConfigSubMenu(optionsmenu_page, "Playlist", COSTUM_PAGE_PLAYLIST);
playlist_enlarge_attrib = playlist_parent.newAttribute("Enlarge Playlist", "0");
debugString("WELCOME TO PLEDIT.INIT!", 9);
playlist_cover_attrib = playlist_parent.newAttribute("Show Album Art if Playlist is enlarged", "0");
}

View file

@ -0,0 +1,82 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_songticker.m
Version: 1.0
Type: maki/attrib definitions
Date: 01. Sep. 2007 - 01:10
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/songticker.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_Songticker();
Class ConfigAttribute ScrollingAttribute;
#define CUSTOM_PAGE_SONGTICKER "{7061FDE0-0E12-11D8-BB41-0050DA442EF4}"
Global ScrollingAttribute songticker_scrolling_disabled_attrib;
Global ScrollingAttribute songticker_style_modern_attrib;
Global ScrollingAttribute songticker_style_old_attrib;
initAttribs_Songticker()
{
initPages();
ConfigItem custom_page_songticker = addConfigSubMenu(optionsmenu_page, "Songticker", CUSTOM_PAGE_SONGTICKER);
songticker_scrolling_disabled_attrib = custom_page_songticker.newAttribute("Disable Songticker Scrolling", "0");
songticker_style_modern_attrib = custom_page_songticker.newAttribute("Modern Songticker Scrolling", "1");
songticker_style_old_attrib = custom_page_songticker.newAttribute("Classic Songticker Scrolling", "0");
}
#ifdef MAIN_ATTRIBS_MGR
songticker_scrolling_disabled_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_style_modern_attrib.setData("0");
songticker_style_old_attrib.setData("0");
attribs_mychange = 0;
}
songticker_style_old_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_style_modern_attrib.setData("0");
songticker_scrolling_disabled_attrib.setData("0");
attribs_mychange = 0;
}
songticker_style_modern_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
songticker_scrolling_disabled_attrib.setData("0");
songticker_style_old_attrib.setData("0");
attribs_mychange = 0;
}
#endif

View file

@ -0,0 +1,76 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_vis.m
Version: 1.0
Type: maki/attrib definitions
Date: 03. Nov. 2006 - 18:12
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
Function initAttribs_vis();
Global ConfigAttribute vis_lefttoplayer_attrib, vis_inbig_attrib, vis_lefttoplayer_full_attrib;
#define CUSTOM_PAGE_VIS "{090B63DE-FD24-4528-ABE5-A522615E8AE9}"
initAttribs_vis()
{
initPages();
ConfigItem vis_parent = addConfigSubMenu(optionsmenu_page, "Visualization", CUSTOM_PAGE_VIS);
vis_inbig_attrib = vis_parent.newAttribute("Open in Big Component View", "1");
vis_lefttoplayer_full_attrib = vis_parent.newAttribute("Open in Multi Content View (stretched)", "0");
vis_lefttoplayer_attrib = vis_parent.newAttribute("Open in Multi Content View (mini)", "0");
}
#ifdef MAIN_ATTRIBS_MGR
vis_lefttoplayer_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
vis_inbig_attrib.setData("0");
vis_lefttoplayer_full_attrib.setData("0");
attribs_mychange = 0;
}
vis_inbig_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
vis_lefttoplayer_attrib.setData("0");
vis_lefttoplayer_full_attrib.setData("0");
attribs_mychange = 0;
}
vis_lefttoplayer_full_attrib.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
vis_lefttoplayer_attrib.setData("0");
vis_inbig_attrib.setData("0");
attribs_mychange = 0;
}
#endif

View file

@ -0,0 +1,311 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: init_windowpage.m
Version: 1.1
Type: maki/attrib definitions
Date: 08. Jul. 2006 - 17:28
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/mcvcompcore.maki
scripts/suicore.maki
scripts/browser.maki
scripts/fileinfo.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#include "gen_pageguids.m"
// define DOHIDEMCV
// define IC_COVERFLOW
#define CUSTOM_PAGE_FILEINFO "{6A619628-6A91-46e3-A3F3-5C1B2D93DF4F}"
Function initAttribs_windowpage();
Global ConfigAttribute sui_browser_attrib, sui_eq_attrib, sui_config_attrib;
Global ConfigAttribute ic_fileinfo, ic_cover_fileinfo, ic_vis, ic_vis_fileinfo, ic_hidden, ic_eq, ic_config, _plsc_ic_attrib;
#ifdef IC_COVERFLOW
Global ConfigAttribute _cflow_ic_attrib;
#else
#define _cflow_ic_attrib //
#endif
#ifdef DOHIDEMCV
Global ConfigAttribute ic_hidden;
#endif
Global ConfigItem custom_page_fileinfo;
#ifndef DOHIDEMCV
#define ic_hidden //
#endif
#define CUSTOM_PAGE_INFOCOMP "{8D3829F9-5790-4c8e-9C3A-C397D3602FF9}"
Class ConfigAttribute InfoLineAttribute;
Global InfoLineAttribute infocomp_show_rating, infocomp_show_genre, infocomp_show_year, infocomp_show_track, infocomp_show_publisher, infocomp_show_composer, infocomp_show_albumartist, infocomp_show_format, infocomp_show_disc;
Global ConfigAttribute infocomp_cycle, infocomp_nowplaying, infocomp_browser;
initAttribs_windowpage()
{
initPages();
sui_eq_attrib = custom_windows_page.newAttribute("Equalizer\tAlt+G", "0");
sui_browser_attrib = custom_windows_page.newAttribute("Web Browser\tAlt+X", "0");
sui_config_attrib = custom_windows_page.newAttribute("Skin Settings\tAlt+C", "0");
custom_page_fileinfo = addConfigSubMenu(optionsmenu_page, "Multi Content View", CUSTOM_PAGE_FILEINFO);
ic_fileinfo = custom_page_fileinfo.newAttribute("File Info", "1");
_cflow_ic_attrib = custom_page_fileinfo.newAttribute("Cover Flow", "0");
ic_vis = custom_page_fileinfo.newAttribute("Visualization ", "0");
_plsc_ic_attrib = custom_page_fileinfo.newAttribute("Stored Playlists", "0");
ic_eq = custom_page_fileinfo.newAttribute("Equalizer", sui_eq_attrib.getData());
ic_config = custom_page_fileinfo.newAttribute("Skin Settings", sui_config_attrib.getData());
#ifdef DOHIDEMCV
ic_hidden = custom_page_fileinfo.newAttribute("Hide Multi Content View", "0");
#endif
addMenuSeparator(custom_page_fileinfo);
ConfigItem fileinfo_parent = addConfigSubMenu(custom_page_fileinfo, "File Info Components", CUSTOM_PAGE_INFOCOMP);
ic_vis_fileinfo = fileinfo_parent.newAttribute("Visualization ", "0");
ic_cover_fileinfo = fileinfo_parent.newAttribute("Album Art", "1");
addMenuSeparator(fileinfo_parent);
infocomp_show_track = fileinfo_parent.newAttribute("Show Track #", "1");
infocomp_show_year = fileinfo_parent.newAttribute("Show Year", "1");
infocomp_show_genre = fileinfo_parent.newAttribute("Show Genre", "1");
infocomp_show_disc = fileinfo_parent.newAttribute("Show Disc", "1");
infocomp_show_albumartist = fileinfo_parent.newAttribute("Show Album Artist", "1");
infocomp_show_composer = fileinfo_parent.newAttribute("Show Composer", "1");
infocomp_show_publisher = fileinfo_parent.newAttribute("Show Publisher", "1");
infocomp_show_format = fileinfo_parent.newAttribute("Show Decoder", "1");
infocomp_show_rating = fileinfo_parent.newAttribute("Show Song Rating", "1");
addMenuSeparator(fileinfo_parent);
infocomp_cycle = fileinfo_parent.newAttribute("Cycle File Info", "1");
addMenuSeparator(fileinfo_parent);
infocomp_nowplaying = fileinfo_parent.newAttribute("Open Links in Now Playing", "1");
infocomp_browser = fileinfo_parent.newAttribute("Open Links in Browser", "0");
}
#ifdef MAIN_ATTRIBS_MGR
System.onKeyDown(String key) {
if (key == "alt+x")
{
if (sui_browser_attrib.getData() == "0") sui_browser_attrib.setData("1");
else sui_browser_attrib.setData("0");
complete;
}
/*if (key == "alt+n")
{
if (sui_browser_attrib.getData() == "0") sui_browser_attrib.setData("1");
else sui_browser_attrib.setData("0");
complete;
}*/
/*if (key == "alt+c")
{
if (sui_cover_attrib.getData() == "0") sui_cover_attrib.setData("1");
else sui_cover_attrib.setData("0");
complete;
}*/
if (key == "alt+c")
{
if (sui_config_attrib.getData() == "0") sui_config_attrib.setData("1");
else sui_config_attrib.setData("0");
complete;
}
if (key == "alt+g")
{
if (sui_eq_attrib.getData() == "0") sui_eq_attrib.setData("1");
else sui_eq_attrib.setData("0");
complete;
}
/*if (key == "ctrl+f") {
navigateUrl(getPath(getPlayItemString()));
complete;
}*/
}
ic_fileinfo.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
ic_vis.onDataChanged()
{
//debugString("ic_vis.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_fileinfo.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
ic_eq.onDataChanged()
{
if (!attribs_mychange)
{
attribs_mychange = 1;
sui_eq_attrib.setData(getData());
if (getData() == "1") sui_config_attrib.setData("0");
attribs_mychange = 0;
}
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_fileinfo.setData("0");
ic_vis.setData("0");
ic_config.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
ic_config.onDataChanged()
{
if (!attribs_mychange)
{
attribs_mychange = 1;
sui_config_attrib.setData(getData());
if (getData() == "1") sui_eq_attrib.setData("0");
attribs_mychange = 0;
}
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_fileinfo.setData("0");
ic_vis.setData("0");
ic_eq.setData("0");
_plsc_ic_attrib.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
_plsc_ic_attrib.onDataChanged()
{
debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
debugString("ic_fileinfo. is not mychanged2", 9);
NOOFF
debugString("ic_fileinfo. after NOFF", 9);
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
ic_fileinfo.setData("0");
_cflow_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
debugString("ic_fileinfo. finish.", 9);
}
#ifdef IC_COVERFLOW
_cflow_ic_attrib.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
ic_fileinfo.setData("0");
_plsc_ic_attrib.setData("0");
ic_hidden.setdata("0");
attribs_mychange2 = 0;
}
#endif
#ifdef DOHIDEMCV
ic_hidden.onDataChanged()
{
//debugString("ic_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange2) return;
NOOFF
attribs_mychange2 = 1;
ic_vis.setData("0");
ic_eq.setData("0");
ic_config.setData("0");
ic_fileinfo.setData("0");
_plsc_ic_attrib.setdata("0");
_cflow_ic_attrib.setData("0");
attribs_mychange2 = 0;
}
#endif
sui_eq_attrib.onDataChanged()
{
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange) return;
attribs_mychange = 1;
if (getData() == "1")
{
ic_eq.setData("1");
sui_config_attrib.setData("0");
}
else ic_fileinfo.setData("1");
attribs_mychange = 0;
}
sui_config_attrib.onDataChanged()
{
//debugString("ic_vis_fileinfo.setData(" + getData() + ")", 9);
if (attribs_mychange) return;
attribs_mychange = 1;
if (getData() == "1")
{
ic_config.setData("1");
sui_eq_attrib.setData("0");
}
else ic_fileinfo.setData("1");
attribs_mychange = 0;
}
infocomp_nowplaying.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
infocomp_browser.setData("0");
attribs_mychange = 0;
}
infocomp_browser.onDataChanged()
{
if (attribs_mychange) return;
NOOFF
attribs_mychange = 1;
infocomp_nowplaying.setData("0");
attribs_mychange = 0;
}
#endif

View file

@ -0,0 +1,160 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: beatvisualization.m
Version: 1.0
Type: maki
Date: 24. Sep. 2007 - 21:11
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Based on Winamp Modern
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Function updateObj(int w);
#define CENTER_VAR CONTENTGRP
Global Group contentGroup;
#include <lib/centerlayer.m>
#undef CENTER_VAR
Global Group scriptGroup;
Global animatedLayer beatVisL, beatVisR;
Global int lastBeatLeft, lastBeatRight;
Global Timer refreshVis;
Global Int totalFrames;
Global GuiObject SongTicker;
System.onScriptLoaded ()
{
initAttribs_Appearance();
scriptGroup = getScriptGroup();
contentGroup = scriptGroup.getObject("player.display.beatvis.content");
beatVisL = contentGroup.getObject("beatvisleft");
beatVisR = contentGroup.getObject("beatvisright");
_CONTENTGRPInit(contentGroup, scriptGroup, 1, 0);
SongTicker = contentGroup.getParent().findObject("Songticker");
totalFrames = beatVisR.getLength() - 1;
lastBeatLeft = 0;
lastBeatRight = 0;
refreshVis = new Timer;
refreshVis.setDelay(10);
updateObj(scriptGroup.getWidth());
vis_reflection_attrib.onDataChanged();
}
System.onScriptUnloading ()
{
refreshVis.stop();
delete refreshVis;
}
scriptGroup.onResize (int x, int y, int w, int h)
{
updateObj(w);
}
updateObj (int w)
{
if (w > 98)
{
if (scriptGroup.isVisible()) return;
scriptGroup.show();
if (beatvis_attrib.getData() == "1") refreshVis.start();
//SongTicker.sendAction("setGuiX", "", 191,0,0,0);
}
else
{
refreshVis.stop();
scriptGroup.hide();
//SongTicker.sendAction("restoreGuiX", "", 0,0,0,0);
}
}
refreshVis.onTimer ()
{
if (beatvis_attrib.getData() == "0")
{
lastBeatLeft--;
if (lastBeatLeft<0) lastBeatLeft=0;
lastBeatRight--;
if (lastBeatRight<0) lastBeatRight=0;
beatVisL.gotoframe(lastBeatLeft);
beatVisR.gotoframe(lastBeatRight);
if (lastBeatLeft + lastBeatRight == 0)
{
refreshVis.stop();
}
return;
}
int beatLeft= System.getLeftVuMeter();
int beatRight= System.getRightVuMeter();
int frameLeft=beatLeft/(totalFrames+7);
int frameRight=beatRight/(totalFrames+7);
if (frameLeft>totalFrames) frameLeft=totalFrames;
if (frameRight>totalFrames) frameRight=totalFrames;
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;
beatVisL.gotoframe(frameLeft);
beatVisR.gotoframe(frameRight);
}
beatvis_attrib.onDataChanged ()
{
if (getData() == "1" )
{
if (scriptGroup.isVisible())
{
refreshVis.start();
}
}
}
vis_reflection_attrib.onDataChanged ()
{
if (getdata() == "1")
{
beatVisR.setXmlParam("image", "player.beatvis.right");
beatVisL.setXmlParam("image", "player.beatvis.left");
}
else
{
beatVisR.setXmlParam("image", "player.beatvis.right.wo");
beatVisL.setXmlParam("image", "player.beatvis.left.wo");
}
}

View file

@ -0,0 +1,293 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: cbuttons.m
Version: 1.0
Type: maki
Date: 03. Nov. 2006 - 17:02
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/pldir.mi>
#define GLOW_OBJECT Prev
#include <lib/glow.m>
#define GLOW_OBJECT Next
#include <lib/glow.m>
#define GLOW_OBJECT Play
#include <lib/glow.m>
#define GLOW_OBJECT Pause
#include <lib/glow.m>
#define GLOW_OBJECT Stop
#include <lib/glow.m>
#define GLOW_OBJECT Eject
#include <lib/glow.m>
#define GLOW_OBJECT Repeat
#include <lib/glow.m>
#define GLOW_OBJECT Shuffle
#include <lib/glow.m>
#define GLOW_OBJECT Bolt
#include <lib/glow.m>
Class Button InfoButton;
Class ToggleButton InfoToggleButton;
Global InfoButton b_play, b_pause, b_eject, b_prev, b_next, b_stop, b_bolt;
Global InfoToggleButton b_repeat, b_shuffle;
Global GuiObject SongTicker;
Global Group buttongroup;
Global GuiObject shuffleActive, repeatActive, boltGlow;
Global Int shuffleActive_Y, repeatActive_Y, minW, boltX, grabbX;
Global Layer mainframe_grabber;
Global Timer beatvis;
System.onScriptLoaded ()
{
buttongroup = getScriptGroup().findObject("player.cbuttons");
b_play = buttongroup.getObject("Play");
b_pause = buttongroup.getObject("Pause");
b_eject = buttongroup.getObject("Eject");
b_prev = buttongroup.getObject("Prev");
b_next = buttongroup.getObject("Next");
b_stop = buttongroup.getObject("Stop");
b_repeat = buttongroup.getObject("repeat");
b_shuffle = buttongroup.getObject("shuffle");
b_bolt = buttongroup.getParentLayout().getObject("bolt");
boltGlow = buttongroup.getParentLayout().getObject("bolt.glow");
shuffleActive = getScriptGroup().findObject("shuffle.active");
shuffleActive_Y = shuffleActive.getGuiY();
repeatActive = getScriptGroup().findObject("repeat.active");
repeatActive_Y = repeatActive.getGuiY();
mainframe_grabber = buttongroup.getParentLayout().getObject("player.mainframe.grabber");
beatvis = new Timer;
beatvis.setDelay(33);
minW = stringToInteger(getParam());
boltX = b_bolt.getGuiX();
grabbX = mainframe_grabber.getGuiX();
b_bolt.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
boltGlow.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
mainframe_grabber.setXmlParam("x", integerToString(grabbX + buttongroup.GetWidth() - minW));
_Play_GlowInit (b_play, buttongroup.findObject("Play.glow"), 0.3);
_Pause_GlowInit (b_pause, buttongroup.findObject("Pause.glow"), 0.3);
_Stop_GlowInit (b_stop, buttongroup.findObject("Stop.glow"), 0.3);
_Prev_GlowInit (b_prev, buttongroup.findObject("Prev.glow"), 0.3);
_Next_GlowInit (b_next, buttongroup.findObject("Next.glow"), 0.3);
_Eject_GlowInit (b_eject, buttongroup.findObject("Eject.glow"), 0.3);
_Repeat_GlowInit (b_repeat, buttongroup.findObject("repeat.glow"), 0.3);
_Shuffle_GlowInit (b_shuffle, buttongroup.findObject("shuffle.glow"), 0.3);
_Bolt_GlowInit (b_bolt, buttongroup.getParentLayout().getObject("bolt.glow"), 0.7);
SongTicker = buttongroup.getParentLayout().findObject("songticker");
}
system.onScriptUnloading ()
{
beatvis.stop();
delete beatvis;
}
InfoButton.onLeftButtonDown (int x, int y)
{
if (InfoButton == b_play)
{
if (getStatus() == -1)
{
SongTicker.sendAction("showinfo", "Resume Playback", 0, 0, 0, 0);
}
else if (getStatus() == 0)
{
SongTicker.sendAction("showinfo", "Start Playback", 0, 0, 0, 0);
}
else if (getStatus() == 1)
{
SongTicker.sendAction("showinfo", "Restart Playback", 0, 0, 0, 0);
}
}
else if (InfoButton == b_pause)
{
if (getStatus() == -1)
{
SongTicker.sendAction("showinfo", "Resume Playback", 0, 0, 0, 0);
}
else if (getStatus() == 1)
{
SongTicker.sendAction("showinfo", "Pause Playback", 0, 0, 0, 0);
}
}
else if (InfoButton == b_pause)
{
if (getStatus() == 1)
{
SongTicker.sendAction("showinfo", "Pause Playback", 0, 0, 0, 0);
}
}
else
{
string info = InfoButton.getXmlParam("tooltip");
SongTicker.sendAction("showinfo", info, 0, 0, 0, 0);
}
}
InfoToggleButton.onLeftButtonDown (int x, int y)
{
if (InfoToggleButton == b_shuffle)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Shuffle: On", 0, 0, 0, 0);
}
else
{
SongTicker.sendAction("showinfo", "Shuffle: Off", 0, 0, 0, 0);
}
}
else if (InfoToggleButton == b_repeat)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Repeat: Playlist", 0, 0, 0, 0);
}
else if (getCurCfgVal() == -1)
{
SongTicker.sendAction("showinfo", "Repeat: Track", 0, 0, 0, 0);
}
else if (getCurCfgVal() == 0)
{
SongTicker.sendAction("showinfo", "Repeat: Off", 0, 0, 0, 0);
}
}
}
InfoToggleButton.onLeftButtonUp (int x, int y)
{
if (InfoToggleButton == b_shuffle)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Shuffle: On", 0, 0, 0, 0);
}
else
{
SongTicker.sendAction("showinfo", "Shuffle: Off", 0, 0, 0, 0);
}
}
else if (InfoToggleButton == b_repeat)
{
if (getCurCfgVal() == 1)
{
SongTicker.sendAction("showinfo", "Repeat: Playlist", 0, 0, 0, 0);
}
else if (getCurCfgVal() == -1)
{
SongTicker.sendAction("showinfo", "Repeat: Track", 0, 0, 0, 0);
}
else if (getCurCfgVal() == 0)
{
SongTicker.sendAction("showinfo", "Repeat: Off", 0, 0, 0, 0);
}
}
}
Global Boolean shuffleDown, repeatDown;
b_shuffle.onLeftButtonDown (int x, int y)
{
shuffleDown = 1;
shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y+1));
}
b_shuffle.onLeftButtonUp (int x, int y)
{
shuffleDown = 0;
shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y));
}
b_shuffle.onleaveArea ()
{
shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y));
}
b_shuffle.onEnterArea ()
{
if (shuffleDown) shuffleActive.setXmlParam("y", integerToString(shuffleActive_Y+1));
}
b_repeat.onLeftButtonDown (int x, int y)
{
repeatDown = 1;
repeatActive.setXmlParam("y", integerToString(repeatActive_Y+1));
}
b_repeat.onLeftButtonUp (int x, int y)
{
repeatDown = 0;
repeatActive.setXmlParam("y", integerToString(repeatActive_Y));
}
b_repeat.onleaveArea ()
{
repeatActive.setXmlParam("y", integerToString(repeatActive_Y));
}
b_repeat.onEnterArea ()
{
if (repeatDown) repeatActive.setXmlParam("y", integerToString(repeatActive_Y+1));
}
buttongroup.onResize (int x, int y, int w, int h)
{
b_bolt.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
boltGlow.setXmlParam("x", integerToString(boltX + buttongroup.GetWidth() - minW));
mainframe_grabber.setXmlParam("x", integerToString(grabbX + buttongroup.GetWidth() - minW));
}
b_bolt.onLeftButtonUp (int x, int y)
{
if (isKeyDown(VK_ALT) && isKeyDown(VK_SHIFT) && isKeyDown(VK_CONTROL))
{
if (beatvis.isRunning())
{
beatvis.stop();
}
else
{
beatvis.start();
}
complete;
}
}
beatvis.onTimer ()
{
int value = (getRightVuMeter() + getLeftVuMeter()) / 2;
boltGlow.setAlpha(value);
}
/*
System.onKeyDown (String key)
{
if (key == "space")
{
PlEdit.showCurrentlyPlayingTrack();
complete;
}
}*/
System.onAccelerator (String action, String section, String key)
{
if (strupper(action) == "SHOW_CURRENT_TRACK")
{
PlEdit.showCurrentlyPlayingTrack();
complete;
}
}

View file

@ -0,0 +1,119 @@
//----------------------------------------------------------------------------------------------------------------
// fileio.mi
//
// standard handles for file input and output (only xml parsing atm)
//----------------------------------------------------------------------------------------------------------------
#ifndef __COLORMGR_MI
#define __COLORMGR_MI
extern class @{AEE235FF-EBD1-498f-96AF-D7E0DAD4541A}@ System _predecl &ColorMgr;
extern class @{95DDB221-00E3-4e2b-8EA5-833548C13C10}@ Object &Color;
extern class @{0D024DB9-9574-42d0-B8C7-26B553F1F987}@ Object &GammaSet;
extern class @{B81F004D-ACBA-453d-A06B-30192A1DA17D}@ Object &GammaGroup;
//*****************************************************************************
// ColorMgr CLASS
//*****************************************************************************
/**
ColorMgr Class.
@short Static Object for handling colors
@author Nullsoft Inc.
@ver 1.0
*/
extern Color ColorMgr.getColor (String colorID);
extern Color ColorMgr.enumColor (int n);
extern int ColorMgr.getNumColors();
extern GammaSet ColorMgr.getGammaSet (String colorID);
extern GammaSet ColorMgr.enumGammaSet (int n);
extern GammaSet ColorMgr.getCurrentGammaSet (); // available after ColorMgr.onLoaded() was called
extern GammaSet ColorMgr.newGammaSet(String name);
extern int ColorMgr.getNumGammaSets ();
// for the next callbacks u need to instanciate a ColorMgr object.
extern ColorMgr.onBeforeLoadingElements(); // stuff is loading, might not work hehe
extern ColorMgr.onGuiLoaded(); // skin gui objects loaded from xml
extern ColorMgr.onLoaded(); // all done, new skin in place
extern ColorMgr.onColorThemesListChanged();
extern ColorMgr.onColorThemeChanged(String newtheme);
//*****************************************************************************
// Color CLASS
//*****************************************************************************
/**
Color Class.
@short Object for handling colors
@author Nullsoft Inc.
@ver 1.0
*/
extern String Color.getID ();
extern int Color.getRed ();
extern int Color.getGreen ();
extern int Color.getBlue ();
extern int Color.getRedWithGamma ();
extern int Color.getGreenWithGamma ();
extern int Color.getBlueWithGamma ();
extern int Color.getAlpha ();
extern String Color.getGammagroup ();
//*****************************************************************************
// GammaSet CLASS
//*****************************************************************************
/**
GammaSet Class.
@short Object for handling gamma sets
@author Nullsoft Inc.
@ver 1.0
*/
extern String GammaSet.getID();
extern GammaSet.apply();
extern GammaSet.remove(); // u should still delete the object then
extern GammaSet.rename(String newname);
extern GammaSet.update(); // Syncs missing groups
extern GammaGroup Gammaset.getGeneralGroup();
extern int Gammaset.getNumGammaGroups();
extern GammaGroup Gammaset.enumGammaGroup(int n);
extern GammaGroup Gammaset.getGammaGroup(String name);
//*****************************************************************************
// GammaGroup CLASS
//*****************************************************************************
/**
GammaGroup Class.
@short Object for handling gamma groups
@author Nullsoft Inc.
@ver 1.0
*/
extern String Gammagroup.getID ();
extern int Gammagroup.getRed ();
extern int Gammagroup.getGreen ();
extern int Gammagroup.getBlue ();
extern int Gammagroup.getBoost ();
extern int Gammagroup.getGray ();
extern Gammagroup.setID (String id);
extern Gammagroup.setRed (int _color);
extern Gammagroup.setGreen (int _color);
extern Gammagroup.setBlue (int _color);
extern Gammagroup.setBoost (int _color);
extern Gammagroup.setGray (int _color);
#endif

View file

@ -0,0 +1,56 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: colorthemes.m
Version: 1.0
Type: maki
Date: 29. Jun. 2007 - 13:06
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Group scriptGroup;
Global GuiObject ColorthemesList, parent;
Global string sgID;
Global Button getmore;
System.onScriptLoaded ()
{
scriptGroup = getScriptGroup();
sgID = scriptGroup.getID();
ColorthemesList = scriptGroup.getObject("colorthemes");
parent = scriptGroup.getParent().findObject("skin.config.target");
getmore = scriptGroup.getObject("colorthemes.more");
}
scriptGroup.onTargetReached ()
{
if (getAlpha() == 0) ColorthemesList.hide();
else ColorthemesList.show();
}
parent.onAction(String action, String param, int x, int y, int p1, int p2, GuiObject source)
{
if (getToken(action,";",0) == "switchto")
{
if (getToken(action, ";", 1) == sgID)
{
ColorthemesList.show();
}
else ColorthemesList.hide();
}
}
getmore.onLeftClick ()
{
group sui = scriptGroup.getParentLayout().findObject("sui.content");
sui.sendAction ("browser_navigate", "http://forums.winamp.com/showthread.php?threadid=276371", 0, 0, 0, 0);
}

View file

@ -0,0 +1,29 @@
//----------------------------------------------------------------------------------------------------------------
// config.mi
//
// standard definitions for internal objects
//----------------------------------------------------------------------------------------------------------------
#ifndef __CONFIG_MI
#define __CONFIG_MI
extern class @{593DBA22-D077-4976-B952-F4713655400B}@ Object _predecl Config;
extern class @{D4030282-3AAB-4d87-878D-12326FADFCD5}@ Object ConfigItem;
extern class @{24DEC283-B76E-4a36-8CCC-9E24C46B6C73}@ Object ConfigAttribute;
extern ConfigItem Config.getItem(String item_name);
extern ConfigItem Config.getItemByGuid(String item_guid);
extern ConfigItem Config.newItem(String item_name, String item_guid);
extern ConfigAttribute ConfigItem.getAttribute(String attr_name);
extern ConfigAttribute ConfigItem.newAttribute(String attr_name, String default_value);
extern String ConfigItem.getGuid(String attr_name);
extern String ConfigItem.getName(); //TODO
extern ConfigAttribute.setData(String value);
extern String ConfigAttribute.getData();
extern ConfigAttribute.onDataChanged();
extern ConfigItem ConfigAttribute.getParentItem();
extern String ConfigAttribute.getAttributeName();
#endif

View file

@ -0,0 +1,159 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: configtarget.m
Version: 2.1
Type: maki
Date: 04. Jan. 2007 - 22:46
Edited by: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on configtarget.m
from Winamp Modern
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
// ------------------------------------------------------------------------------------
Global GuiObject target;
Global ComponentBucket buck;
Global GuiObject last, current;
// ------------------------------------------------------------------------------------
Function turnAllOffExcept(GuiObject except);
Function turnOn(GuiObject obj);
Function turnOff(GuiObject obj);
//Member int target.fff;
//function fff();
//Member button int fff();
// ------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------
// init
// ------------------------------------------------------------------------------------
System.onScriptLoaded()
{
target = getScriptGroup().findObject("skin.config.target");
buck = getScriptGroup().findObject("my.bucket");
last = NULL;
current = NULL;
//debugInt(guiobject.fff);ffff
// target.fff = 4;
// turn off all
GuiObject o = NULL;
turnAllOffExcept(o);
}
// ------------------------------------------------------------------------------------
// save scroller position
// ------------------------------------------------------------------------------------
/*System.onScriptUnloading()
{
if (buck)
{
setPrivateInt(getSkinName(), "", buck.getScroll());
}
}*/
// ------------------------------------------------------------------------------------
// turn on last open
// ------------------------------------------------------------------------------------
buck.onStartup()
{
//setScroll(getPrivateInt(getSkinName(), "settings_last_pos", 0));
Group g = buck.enumChildren(getPrivateInt(getSkinName(), "settings_last_pos", 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);
if (current != NULL)
{
last = current;
}
target.setXmlParam("groupid", grp);
current = getScriptGroup().findObject(grp);
// setPrivateInt(getSkinName(), "settings_last_pos", stringToInteger(param));
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
}
}
// Hack to hide last item
last.onTargetReached ()
{
if (getAlpha() == 0)
{
hide();
}
}
// ------------------------------------------------------------------------------------
// 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(getSkinName(), "settings_last_pos", 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);
}

View file

@ -0,0 +1,81 @@
/**
Note:
This file is a relict of Winamp3/Wasabi.Player.
I have tested it and it seems not to work :(
If anyone get's this one to work lemme know: martin@skinconsortium.com
**/
extern class @{F857BECA-8E19-41f1-973E-097E39649F03}@ Object _predecl CoreAdmin;
extern class @{2825A91B-D488-4245-AAF1-7059CF88437B}@ Object &Core;
extern Core CoreAdmin.getNamedCore(String name);
extern Core CoreAdmin.newNamedCore(String name);
extern Int CoreAdmin.freeCore(Core name);
extern Int CoreAdmin.freeCoreByName(String name);
extern Core.playFile(String filename);
extern Core.stop();
extern Core.setVolume(Int volume);
extern Core.getStatus();
// I love keyboard macros.
extern Int Core.onStarted();
extern Int Core.onStopped();
extern Int Core.onPaused();
extern Int Core.onUnpaused();
extern Int Core.onSeeked(Int newpos);
extern Int Core.onVolumeChange(Int newvol);
extern Int Core.onPanChange(Int newpan);
extern Int Core.onEQStatusChange(Int newval);
extern Int Core.onEQPreampChange(Int newval);
extern Int Core.onEQBandChange(Int band, Int newval);
extern Int Core.onEQAutoChange(Int newval);
extern Int Core.onCoreStatusMsg(String msgtext);
extern Int Core.onWarningMsg(String msgtext);
extern Int Core.onErrorMsg(String msgtext);
extern Int Core.onTitleChange(String newtitle);
extern Int Core.onTitle2Change(String newtitle2);
extern Int Core.onInfoChange(String info);
extern Int Core.onUrlChange(String url);
extern Int Core.onLengthChange(Int newlength);
extern Int Core.onNextFile();
extern Int Core.onNeedNextFile(Int fileid);
extern Int Core.onSetNextFile(String playstring);
extern Int Core.onErrorOccured(Int severity, String errortext);
extern Int Core.onAbortCurrentSong();
extern Int Core.onEndOfDecode();
extern Int Core.onFileComplete(String playstring);
extern Int Core.onConvertersChainRebuilt();
extern Int Core.onMediaFamilyChange(String newfamily);
extern Int Core.setNextFile(String pstr);
extern Int Core.getStatus();
extern String Core.getCurrent();
extern Int Core.getCurPlaybackNumber();
extern Int Core.getNumTracks();
extern Int Core.getPosition();
extern Int Core.getWritePosition();
extern Int Core.setPosition(Int ms);
extern Int Core.getLength();
extern Int Core.getVolume();
extern Core.setVolume(Int vol);
extern Int Core.getPan();
extern Core.setPan(Int bal);
extern Core.setMute(Int mute);
extern Int Core.getMute();
extern Int Core.getLeftVuMeter();
extern Int Core.getRightVuMeter();
extern Core.userButton(Int ubutton);
extern Int Core.getEqStatus();
extern Core.setEqStatus(Int enable);
extern Int Core.getEqPreamp();
extern Core.setEqPreamp(Int pre);
extern Int Core.getEqBand(Int band);
extern Core.setEqBand(Int band, Int val);
extern Int Core.getEqAuto();
extern Core.setEqAuto(Int enable);
extern Core.setCustomMsg(String msgtext);
extern Core.setPriority(Int priority);
extern Int Core.getPriority();
extern Core.rebuildConvertersChain();

View file

@ -0,0 +1,234 @@
/********************************************************\
** Filename: coverflow.m **
** Version: 1.0 **
** Date: 20. Nov. 2007 - 15:25 **
**********************************************************
** Type: winamp.wasabi/maki **
** Project: Cover Flow **
**********************************************************
** Author: Martin Poehlmann aka Deimos **
** E-Mail: martin@skinconsortium.com **
** Internet: http://www.skinconsortium.com **
** http://home.cs.tum.edu/~poehlman **
\********************************************************/
#include <lib/std.mi>
#include <lib/pldir.mi>
Function update();
Function fade (GuiObject o, int alpha, float s);
Class GuiObject AlbumCover;
Class AlbumCover playButton;
Global AlbumCover prev2, prev1, curr, next1, next2;
Global String sprev2, sprev1, scurr, snext1, snext2;
Global playButton bprev2, bprev1, bcurr, bnext1, bnext2;
Global text info;
#define CENTER_VAR SGrp
Global Group sg;
#include <lib/centerlayer.m>
#undef CENTER_VAR
Global PlEdit PleditListener;
Global Timer delay;
System.onScriptLoaded ()
{
sg = getScriptGroup();
PleditListener = new PlEdit;
prev2 = sg.getObject("aa.prev2");
prev1 = sg.getObject("aa.prev1");
curr = sg.getObject("aa.curr");
next1 = sg.getObject("aa.next1");
next2 = sg.getObject("aa.next2");
bprev2 = sg.getObject("play.prev2");
bprev1 = sg.getObject("play.prev1");
bcurr = sg.getObject("play.curr");
bnext1 = sg.getObject("play.next1");
bnext2 = sg.getObject("play.next2");
info = sg.getParent().findObject("info");
_SGrpInit(sg, sg.getParent(), 1, 0);
delay = new Timer;
delay.setDelay(10);
update();
}
System.onScriptUnloading ()
{
delete delay;
}
System.onTitleChange (String newtitle)
{
update();
}
update ()
{
int cur = PlEdit.getCurrentIndex();
int max = PlEdit.getNumTracks();
if (cur > 1)
{
prev2.setXmlParam("source", PlEdit.getFileName(cur-2));
prev2.show();
sprev2 = PlEdit.getTitle(cur-2);
}
else prev2.hide();
if (cur > 0)
{
prev1.setXmlParam("source", PlEdit.getFileName(cur-1));
prev1.show();
sprev1 = PlEdit.getTitle(cur-1);
}
else prev1.hide();
scurr = PlEdit.getTitle(cur);
if (cur < max-2)
{
next2.setXmlParam("source", PlEdit.getFileName(cur+2));
next2.show();
snext2 = PlEdit.getTitle(cur+2);
}
else next2.hide();
if (cur < max-1)
{
next1.setXmlParam("source", PlEdit.getFileName(cur+1));
next1.show();
snext1 = PlEdit.getTitle(cur+1);
}
else next1.hide();
}
PleditListener.onPleditModified ()
{
if (delay) delay.start();
}
delay.onTimer ()
{
delay.stop();
update();
}
AlbumCover.onRightButtonDown (int x, int y)
{
popupmenu p = new popupmenu;
p.addCommand("Get Album Art", 1, 0, 0);
p.addCommand("Refresh Album Art", 2, 0, 0);
p.addCommand("Open Folder", 3, 0, 0);
int result = p.popatmouse();
delete p;
String pis = getXmlParam("source");
if (pis == "") pis = system.getPlayItemString();
if (result == 1)
{
if (system.getAlbumArt(pis) > 0)
{
setXmlParam("notfoundimage", getXmlParam("notfoundimage")); // a nesty refresh - isn't it?
}
}
else if (result == 2)
{
setXmlParam("notfoundimage", getXmlParam("notfoundimage")); // a nesty refresh - isn't it?
}
else if (result == 3)
{
System.navigateUrl(getPath(pis));
}
}
AlbumCover.onLeftButtonDblClk (int x, int y)
{
if (AlbumCover == playButton)
return;
String pis = getXmlParam("source");
if (pis == "") pis = system.getPlayItemString();
System.navigateUrl(getPath(pis));
}
AlbumCover.onEnterArea ()
{
if (!findObject("aa." + getToken(getId(), ".", 1)).isVisible())
{
return;
}
int cur = PlEdit.getCurrentIndex();
if (AlbumCover == prev2 || AlbumCover == bprev2)
info.setText(sprev2);
else if (AlbumCover == prev1 || AlbumCover == bprev1)
info.setText(sprev1);
else if (AlbumCover == curr || AlbumCover == bcurr)
info.setText(scurr);
else if (AlbumCover == next1 || AlbumCover == bnext1)
info.setText(snext1);
else if (AlbumCover == next2 || AlbumCover == bnext2)
info.setText(snext2);
GuiObject o = sg.findObject("play." + getToken(getId(), ".", 1));
if (o )
{
fade(o, 255, 0.133);
}
}
AlbumCover.onLeaveArea ()
{
info.setText("");
GuiObject o = sg.findObject("play." + getToken(getId(), ".", 1));
if (o)
{
fade(o, 0, 0.3);
}
}
playButton.onLeftButtonUp (int x, int y)
{
int cur = PlEdit.getCurrentIndex();
if (playButton == bprev2)
PlEdit.playTrack(cur-2);
else if (playButton == bprev1)
PlEdit.playTrack(cur-1);
else if (playButton == bnext1)
PlEdit.playTrack(cur+1);
else if (playButton == bnext2)
PlEdit.playTrack(cur+2);
setAlpha(0);
info.setTexT("");
}
fade (GuiObject o, int alpha, float s)
{
o.cancelTarget();
o.setTargetA(alpha);
o.setTargetSpeed(s);
o.gotoTarget();
}

View file

@ -0,0 +1,258 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: eq.m
Version: 2.0
Type: maki
Date: 25. Jun. 2007 - 11:30
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/winampconfig.mi>
// #define CENTER_VAR eqGroup
// #include <lib/centerlayer.m>
#include "eqgroup.m"
#define ISOBANDS "31.5 Hz,63 Hz,125 Hz,250 Hz,500 Hz,1 KHz,2 KHz,4 KHz,8 KHz,16 KHz"
#define WINAMPBANDS "70 Hz,180 Hz,320 Hz,600 Hz,1 KHz,3 KHz,6 KHz,12 KHz,14 KHz,16 KHz"
Global Group frameGroup, buttongroup;
Global Slider slidercb, Balance;
Global Text fadertext;
Global Button CFIncrease, CFDecrease, eqon, eqauto;
Global ToggleButton Crossfade;
Global GuiObject CrossfadeActive, eqonActive, eqautoActive, SongTicker;
Global Int CrossfadeActive_Y, eqonActive_Y, eqautoActive_Y;
Global Button btnEQp12,btnEQ0,btnEQm12;
Global layer frequencyLabel;
System.onScriptLoaded()
{
buttongroup = getScriptGroup().findObject("player.cbuttons");
WinampConfigGroup eqwcg = WinampConfig.getGroup("{72409F84-BAF1-4448-8211-D84A30A1591A}");
int freqmode = eqwcg.getInt("frequencies"); // returns 0 for classical winamp levels, 1 for ISO levels
frameGroup = getScriptGroup();
_eqGroupInit(frameGroup.findObject("info.component.eq.content"), frameGroup, 1, 0);
slidercb = frameGroup.findObject("sCrossfade");
fadertext = frameGroup.findObject("CFDisplay");
CFIncrease = frameGroup.findObject("CrossfadeIncrease");
CFDecrease = frameGroup.findObject("CrossfadeDecrease");
Crossfade = frameGroup.findObject("Crossfade");
CrossfadeActive = frameGroup.findObject("CrossfadeActive");
CrossfadeActive_Y = CrossfadeActive.getGuiY();
eqon = frameGroup.findObject("eqonoff");
eqonActive = frameGroup.findObject("eqonoffActive");
eqonActive_Y = eqonActive.getGuiY();
eqauto = frameGroup.findObject("eqauto");
eqautoActive = frameGroup.findObject("eqautoActive");
eqautoActive_Y = eqautoActive.getGuiY();
btnEQp12 = frameGroup.findObject("EQ_p12");
btnEQ0 = frameGroup.findObject("EQ_0");
btnEQm12 = frameGroup.findObject("EQ_m12");
Balance = frameGroup.findObject("Balance");
SongTicker = buttongroup.getParentLayout().findObject("songticker");
frequencyLabel = frameGroup.findObject("frequency.labels");
system.onEqFreqChanged(freqmode);
slidercb.onSetPosition(slidercb.getPosition());
Crossfade.onToggle(Crossfade.getActivated());
debugString("WELCOME TO EQUALIZER COY", 9);
}
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");
SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
}
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");
CrossfadeActive.hide();
}
else
{
fadertext.setAlpha(255);
CFIncrease.setAlpha(255);
CFDecrease.setAlpha(255);
CFIncrease.setXmlParam("ghost" , "0");
CFDecrease.setXmlParam("ghost" , "0");
CrossfadeActive.show();
}
}
Global Boolean cfDown, onDown, autoDown, manual_set;
Crossfade.onLeftButtonDown (int x, int y)
{
cfDown = 1;
CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y+1));
}
Crossfade.onLeftButtonUp (int x, int y)
{
cfDown = 0;
CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y));
}
Crossfade.onleaveArea ()
{
CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y));
}
Crossfade.onEnterArea ()
{
if (cfDown) CrossfadeActive.setXmlParam("y", integerToString(CrossfadeActive_Y+1));
}
eqon.onEnterArea ()
{
if (onDown) eqonActive.setXmlParam("y", integerToString(eqonActive_Y+1));
}
eqon.onLeftButtonDown (int x, int y)
{
onDown = 1;
eqonActive.setXmlParam("y", integerToString(eqonActive_Y+1));
}
eqon.onLeftButtonUp (int x, int y)
{
onDown = 0;
eqonActive.setXmlParam("y", integerToString(eqonActive_Y));
}
eqon.onleaveArea ()
{
eqonActive.setXmlParam("y", integerToString(eqonActive_Y));
}
eqauto.onLeftButtonDown (int x, int y)
{
autoDown = 1;
eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y+1));
}
eqauto.onLeftButtonUp (int x, int y)
{
autoDown = 0;
eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y));
}
eqauto.onleaveArea ()
{
eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y));
}
eqauto.onEnterArea ()
{
if (autoDown) eqautoActive.setXmlParam("y", integerToString(eqautoActive_Y+1));
}
btnEQp12.onLeftClick()
{
manual_set = 1;
for(int i=0; i<10; i++) setEqBand(i, 127);
manual_set = 0;
}
btnEQ0.onLeftClick()
{
manual_set = 1;
for(int i=0; i<10; i++) setEqBand(i, 0);
manual_set = 0;
}
btnEQm12.onLeftClick()
{
manual_set = 1;
for(int i=0; i<10; i++) setEqBand(i, -127);
manual_set = 0;
}
System.onEqFreqChanged (boolean isoonoff)
{
if (isoonoff == 1)
{
frequencyLabel.setXmlParam("image", "equalizer.labels.iso");
for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(ISOBANDS,",",i));
}
else
{
frequencyLabel.setXmlParam("image", "equalizer.labels.winamp");
for(int i=0; i<10; i++) frameGroup.findObject("eq"+integerToString(i+1)).setXmlParam("tooltip", getToken(WINAMPBANDS,",",i));
}
}
system.onEqBandChanged(int band, int value)
{
if (manual_set) return;
String t;
Float f = value;
f = f / 10.5;
WinampConfigGroup eqwcg = WinampConfig.getGroup("{72409F84-BAF1-4448-8211-D84A30A1591A}");
if (eqwcg.getInt("frequencies") == 1) {
if (f >= 0) t = "EQ: " + translate(getToken(ISOBANDS,",",band)) + ": +" + floattostring(f, 1) + " "+ translate("dB");
else t = "EQ: " + translate(getToken(ISOBANDS,",",band)) + ": " + floattostring(f, 1) + " "+ translate("dB");
}
else {
if (f >= 0) t = "EQ: " + translate(getToken(WINAMPBANDS,",",band)) + ": +" + floattostring(f, 1) + " "+ translate("dB");
else t = "EQ: " + translate(getToken(WINAMPBANDS,",",band)) + ": " + floattostring(f, 1) + " "+ translate("dB");
}
SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
}
system.onEqPreampChanged(int value)
{
slider s = getScriptGroup().findObject("preamp");
value = s.getPosition(); // Somehow this function returns a range from [-127;125] with hotpos -3, so we take the slider instead
String t = "EQ: " + translate("Preamp:") + " ";
Float f = value;
f = f / 10.5;
if (f >= 0) t += "+"+floattostring(f, 1) + " "+ translate("dB");
else t += floattostring(f, 1) + " "+ translate("dB");
SongTicker.sendAction("showinfo", t, 0, 0, 0, 0);
}

Binary file not shown.

View file

@ -0,0 +1,86 @@
// ----------------------------------------------------------------------
// original file: centerlayer.m
// ----------------------------------------------------------------------
// by Brennan
// Use like this :
// #define CENTER_VAR MyVar
// Global MyVar;
// #include "centerlayer.h"
// Group l = ;
// MyVar = l.getObject("something");
// _MyVarInit(Layer MyVar, Group l, int centerx, int centery);
// ----------------------------------------------------------------------
#include <lib/std.mi>
Global GuiObject _eqGroupLayer;
Global Group _eqGroupGroup; // parent Layout to center in
Global Int _eqGroupcenterx; // should we center x?
Global Int _eqGroupcentery; // should we center y?
Global Int _eqGroupaddx = 0;
Global Int _eqGroupaddy = 0;
Global Int _eqGroupaddh = 0;
Global Int _eqGroupaddw = 0;
Function _eqGroupInit(GuiObject _layer, Group parentLayout, int centerx, int centery);
Function _eqGrouphandleResize();
Function _eqGroupsetXSpace(int val);
Function _eqGroupsetYSpace(int val);
Function _eqGroupsetWSpace(int val);
Function _eqGroupsetHSpace(int val);
Function _eqGroupsizeError(boolean iserror);
_eqGroupInit(GuiObject _layer, Group parentLayout, int centerx, int centery) {
_eqGroupLayer = _layer;
_eqGroupGroup = parentLayout;
_eqGroupcenterx = centerx;
_eqGroupcentery = centery;
_eqGrouphandleResize();
}
_eqGroupsetXSpace(int val)
{
_eqGroupaddx = val;
}
_eqGroupsetYSpace(int val)
{
_eqGroupaddy = val;
}
_eqGroupsetHSpace(int val)
{
_eqGroupaddh = val;
}
_eqGroupsetWSpace(int val)
{
_eqGroupaddw = val;
}
_eqGrouphandleResize() {
int myw = _eqGroupGroup.getWidth();
int myh = _eqGroupGroup.getHeight();
int layerw = _eqGroupLayer.getWidth();
int layerh = _eqGroupLayer.getHeight();
int x = _eqGroupLayer.getLeft();
int y = _eqGroupLayer.getTop();
if (_eqGroupcenterx) _eqGroupLayer.setXmlParam("x", integerToString((myw - layerw)/2 + _eqGroupaddx + _eqGroupaddw));
if (_eqGroupcentery) _eqGroupLayer.setXmlParam("y", integerToString((myh - layerh)/2 + _eqGroupaddy + _eqGroupaddh));
if (myw < layerw + 2*_eqGroupaddx - _eqGroupaddw || myh < layerh + _eqGroupaddy - _eqGroupaddh)
{
_eqGroupsizeError(TRUE);
}
else
{
_eqGroupsizeError(FALSE);
}
}
_eqGroupsizeError(boolean iserror) {}
_eqGroupGroup.onResize(int x, int y, int w, int h) {
_eqGrouphandleResize();
}

View file

@ -0,0 +1,118 @@
//----------------------------------------------------------------------------------------------------------------
// exd.mi
//
// extra definitions for internal objects
//----------------------------------------------------------------------------------------------------------------
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef __EXD_MI
#define __EXD_MI
//*****************************************************************************
// String CLASS
//*****************************************************************************
Function String replaceString(string baseString, string toreplace, string replacedby);
/**
replaceString()
Returns the class name for the object.
@param baseString The String which you want to modify.
@param toreplace The String you want to be replaced.
@param replacedby The String instead of 'toreplace'.
@ret The replaced string.
*/
String replaceString(string baseString, string toreplace, string replacedby) {
if (toreplace == "") return baseString;
string sf1 = strupper(baseString);
string sf2 = strupper(toreplace);
int i = strsearch(sf1, sf2);
if (i == -1) return baseString;
string left = "", right = "";
if (i != 0) left = strleft(baseString, i);
if (strlen(basestring) - i - strlen(toreplace) != 0) {
right = strright(basestring, strlen(basestring) - i - strlen(toreplace));
}
return left + replacedby + right;
}
Function String cutString(string baseString, string toreplace);
/**
cutString()
Returns the class name for the object.
@param baseString The String which you want to modify.
@param toreplace The String you want to be replaced.
@ret The replaced string.
*/
String cutString(string baseString, string toreplace) {
if (toreplace == "") return baseString;
int i = strsearch(baseString, toreplace);
if (i == -1) return baseString;
string left = "", right = "";
if (i != 0) left = strleft(baseString, i);
if (strlen(basestring) - i - strlen(toreplace) != 0) {
right = strright(basestring, strlen(basestring) - i - strlen(toreplace));
}
return left + right;
}
Function String fillStringBefore(string baseString, string after, string before);
/**
fillStringBefore()
Returns the class name for the object.
@param baseString The String which you want to modify.
@param toreplace The String you want to be replaced.
@ret The replaced string.
*/
String fillStringBefore(string baseString, string filled, string anchor) {
int i = strsearch(baseString, anchor);
if (i == -1) return baseString;
string left = "", right = "";
if (i != 0) left = strleft(baseString, i);
if (strlen(basestring) - i - strlen(toreplace) != 0) {
right = strright(basestring, strlen(basestring) - i);
}
/* bef.setText(integerToString(i) + " - " + left);
aft.setText(integerToString(strlen(basestring) - i) + " - " + right);
*/ return left + filled + right;
}
Function Int countSubString(string str, string substr);
int countSubString(string str, string substr) {
int n = 0;
for ( int i = 0; i < 666; i++ ) {
int r = strSearch(str, substr);
#ifdef DEBUG
debug(integerToString(r));
#endif
if (r == -1) i = 666;
else {
str = strright(str, strlen(str) - (r + 1));
n++;
if (strlen(str) - r == 1) return n;
}
}
return n;
}
#endif

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,86 @@
// ----------------------------------------------------------------------
// original file: centerlayer.m
// ----------------------------------------------------------------------
// by Brennan
// Use like this :
// #define CENTER_VAR MyVar
// Global MyVar;
// #include "centerlayer.h"
// Group l = ;
// MyVar = l.getObject("something");
// _MyVarInit(Layer MyVar, Group l, int centerx, int centery);
// ----------------------------------------------------------------------
#include <lib/std.mi>
Global GuiObject _BrandingLayer;
Global Group _BrandingGroup; // parent Layout to center in
Global Int _Brandingcenterx; // should we center x?
Global Int _Brandingcentery; // should we center y?
Global Int _Brandingaddx = 0;
Global Int _Brandingaddy = 0;
Global Int _Brandingaddh = 0;
Global Int _Brandingaddw = 0;
Function _BrandingInit(GuiObject _layer, Group parentLayout, int centerx, int centery);
Function _BrandinghandleResize();
Function _BrandingsetXSpace(int val);
Function _BrandingsetYSpace(int val);
Function _BrandingsetWSpace(int val);
Function _BrandingsetHSpace(int val);
Function _BrandingsizeError(boolean iserror);
_BrandingInit(GuiObject _layer, Group parentLayout, int centerx, int centery) {
_BrandingLayer = _layer;
_BrandingGroup = parentLayout;
_Brandingcenterx = centerx;
_Brandingcentery = centery;
_BrandinghandleResize();
}
_BrandingsetXSpace(int val)
{
_Brandingaddx = val;
}
_BrandingsetYSpace(int val)
{
_Brandingaddy = val;
}
_BrandingsetHSpace(int val)
{
_Brandingaddh = val;
}
_BrandingsetWSpace(int val)
{
_Brandingaddw = val;
}
_BrandinghandleResize() {
int myw = _BrandingGroup.getWidth();
int myh = _BrandingGroup.getHeight();
int layerw = _BrandingLayer.getWidth();
int layerh = _BrandingLayer.getHeight();
int x = _BrandingLayer.getLeft();
int y = _BrandingLayer.getTop();
if (_Brandingcenterx) _BrandingLayer.setXmlParam("x", integerToString((myw - layerw)/2 + _Brandingaddx + _Brandingaddw));
if (_Brandingcentery) _BrandingLayer.setXmlParam("y", integerToString((myh - layerh)/2 + _Brandingaddy + _Brandingaddh));
if (myw < layerw + 2*_Brandingaddx - _Brandingaddw || myh < layerh + _Brandingaddy - _Brandingaddh)
{
_BrandingsizeError(TRUE);
}
else
{
_BrandingsizeError(FALSE);
}
}
_BrandingsizeError(boolean iserror) {}
_BrandingGroup.onResize(int x, int y, int w, int h) {
_BrandinghandleResize();
}

View file

@ -0,0 +1,130 @@
//----------------------------------------------------------------------------------------------------------------
// fileio.mi
//
// standard handles for file input and output (only xml parsing atm)
//----------------------------------------------------------------------------------------------------------------
#ifndef __FILEIO_MI
#define __FILEIO_MI
extern class @{836F8B2E-E0D1-4db4-937F-0D0A04C8DCD1}@ Object &File;
extern class @{417FFB69-987F-4be8-8D87-D9965EEEC868}@ File &XmlDoc;
//*****************************************************************************
// File CLASS
//*****************************************************************************
/**
File Class.
@short Root Object for handling files
@author Nullsoft Inc.
@ver 1.0
*/
extern File.load (String path); // !Always call this first!
extern boolean File.exists ();
extern int File.getSize ();
//*****************************************************************************
// XmlDoc CLASS
//*****************************************************************************
/**
XmlDoc Class.
@short Root Object for handling xml files
@author Nullsoft Inc.
@ver 1.0
*/
/**
parser_addCallback()
Add a XML tag to the global callback list for this file. Ensure to load the file first!
You can call this function more than once in order to add multiple callbacks (not implemented yet).
Use / for subtags and * as wildchar.
Example:
<main>
<cfg>
<int id="a" value="1"/>
<int id="b" value="2"/>
<int id="c" value="3"/>
<string id="d" value="bla" />
</cfg>
<otherstuff what="blabla"/>
</main>
in order to read all items listed under cfg add this callback:
Global XmlDoc myDoc;
System.onScriptLoaded()
{
myDoc = new XmlDoc;
myDoc.load("C:\mycfg.xml");
myDoc.parser_addCallback("main/cfg/*");
myDoc.parser_addCallback("main/otherstuff");
myDoc.parser_start();
myDoc.parser_destroy();
}
Note: myDoc.parser_addCallback("*"); will parse everything.
@param any XML tag you want a callback for
*/
extern XmlDoc.parser_addCallback (String section);
/**
parser_start()
Start parsing the XmlDoc.
*/
extern XmlDoc.parser_start ();
/**
parser_onCallback()
Hookable. Called everytime an opening XML tag with a added callback is found.
opening XML tags: <sometag id="bla"> or <sometag id="bla"/>
@param XML path to the XML tag that triggered the callback (uppercase!)
@param name of the XML tag that triggered the callback
@param List that holds the paramnames
@param List that holds the paramvalues (sorted in the same way as List paramname)
*/
extern String XmlDoc.parser_onCallback (String xmlpath, String xmltag, list paramname, list paramvalue);
/**
parser_onCloseCallback()
Hookable. Called everytime a closing XML tag with an added callback is found.
closing XML tag: </sometag> or <sometag id="bla"/>
@param XML tag that triggered the callback
*/
extern String XmlDoc.parser_onCloseCallback (String xmlpath, String xmltag);
/**
parser_onError()
due to some API changes filename and incpath will hold an empty string since winamp 5.56
*/
extern String XmlDoc.parser_onError (String filename, int linenum, String incpath, int errcode, String errstr);
/**
parser_destroy()
Always call this if you are done with parsing, or if you want to reset your callbacks.
*/
extern String XmlDoc.parser_destroy ();
#endif

View file

@ -0,0 +1,145 @@
#include <lib/std.mi>
#define GUID_DROPBOX "{E2E4AD32-D87B-4B9E-BF58-46A1336DDC8F}"
#define GUID_DROPBOX_ "{E2E4AD32-D87B-4b9e-BF58-46A1336DDC8F}"
#define USE_BIG_HACK
Global Frame dualwnd;
Global Group sui_window;
Global Group dropbox;
Global Timer box_tmr;
Global windowholder dropbox_wdh;
Global Container main;
Global int MIN_WIDTH;
System.onScriptLoaded ()
{
dualwnd = getScriptGroup().findObject("wdh.ml.dualwnd");
sui_window = getScriptGroup().getParentLayout().findObject("sui.content");
dropbox = dualwnd.findObject("wdh.ml.dualwnd.dropbox");
dropbox_wdh = dropbox.findObject("wdh");
main = dropbox.getParentLayout().getContainer();
//showWindow(GUID_DROPBOX, "", false);
MIN_WIDTH = stringToInteger(dualwnd.getXmlParam("minwidth"));
dualwnd.setXmlParam("resizable", "0");
dualwnd.setPosition(0);
box_tmr = new Timer;
box_tmr.setDelay(1);
}
System.onScriptUnloading ()
{
delete box_tmr;
int w = dualwnd.getPosition();
if (w >= MIN_WIDTH)
{
setPrivateInt(getSkinName(), "gen_dropbox_poppler", w);
}
}
#ifdef 0
Global Boolean gettingclosed;
System.onGetCancelComponent (String guid, boolean goingvisible)
{
if (guid != GUID_DROPBOX)
{
return FALSE;
}
if (goingvisible && !gettingclosed)
{
box_tmr.start();
return TRUE;
}
else
{
if (gettingclosed)
{
gettingclosed = false;
}
else
{
/*int w = dualwnd.getPosition();
if (w >= MIN_WIDTH)
{
setPrivateInt(getSkinName(), "gen_dropbox_poppler", w);
}
dualwnd.setXmlParam("resizable", "0");
dualwnd.setPosition(0);*/
}
}
RETURN FALSE;
}
box_tmr.onTimer ()
{
box_tmr.stop();
int w = getPrivateInt(getSkinName(), "gen_dropbox_poppler", 200);
if (w < MIN_WIDTH)
w = MIN_WIDTH;
dualwnd.setXmlParam("resizable", "1");
System.showWindow("{6B0EDF80-C9A5-11D3-9F26-00C04F39FFC6}", "", 0);
//sui_window.sendAction("opentab", "ml", 0,0,0,0);
dualwnd.setPosition(w);
dropbox.hide();
dropbox_wdh.hide();
//dropbox_wdh.setXMLParam("hold", "");
dropbox_wdh.show();
//dropbox_wdh.setXMLParam("hold", "@all@");
dropbox.show();
}
#ifdef USE_BIG_HACK
sui_window.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "callback")
{
if (param == "onbeforehidesui")
{
/*//dualwnd.setPosition(0);
//dropbox.findObject("wdh").setXmlParam("relatw", "0");
//dropbox.findObject("wdh").setXmlParam("w", "0");
int i = dualwnd.getLeft() + dualwnd.getWidth();
dualwnd.setShaded(dualwnd.clientToScreenX(dualwnd.getLeft() +dualwnd.getWidth()),dualwnd.clientToScreenX(dualwnd.getLeft() + dualwnd.getWidth()-dualwnd.getPosition()-4));
debugInt(dualwnd.clientToScreenX(dualwnd.getLeft() +dualwnd.getWidth()));*/
dropbox.hide();
gettingclosed = true;
//dualwnd.setPosition(0);
}
else if (param == "onshowsui")
{
//dualwnd.setPosition(200);
}
}
}
main.onBeforeSwitchToLayout (Layout oldlayout, Layout newlayout)
{
if (newLayout.getID() == "shade")
{
dropbox.hide();
gettingclosed = true;
}
}
#endif
#endif

View file

@ -0,0 +1,83 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: hoverstimulate.m
Version: 1.0
Type: maki
Date: 03. Jul. 2007 - 23:09
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Button mainButton;
Global Layer overlay;
Global Boolean mouseDown;
Global String img_normal, img_hover, img_down, img_active;
System.onScriptLoaded ()
{
mainButton = getScriptGroup().findObject(getToken(getParam(), ";", 0));
overlay = getScriptGroup().findObject(getToken(getParam(), ";", 1));
img_normal = getToken(getParam(), ";", 2);
img_hover = getToken(getParam(), ";", 3);
img_down = getToken(getParam(), ";", 4);
img_active = getToken(getParam(), ";", 5);
}
mainButton.onSetVisible (Boolean onoff)
{
if (onoff)
{
overlay.show();
}
else
{
overlay.hide();
}
}
mainButton.onLeftButtonDown (int x, int y)
{
mouseDown = 1;
if (img_down != "NULL") overlay.setXmlParam("image", img_down);
}
mainButton.onLeftButtonUp (int x, int y)
{
mouseDown = 0;
if (img_hover != "NULL" && !getActivated() && isMouseOverRect()) overlay.setXmlParam("image", img_hover);
}
mainButton.onleaveArea ()
{
if (!getActivated())
{
if (img_normal != "NULL") overlay.setXmlParam("image", img_normal);
}
else
{
if (img_active != "NULL") overlay.setXmlParam("image", img_active);
}
}
mainButton.onEnterArea ()
{
if (img_hover != "NULL") overlay.setXmlParam("image", img_hover);
}
mainButton.onActivate (int activated)
{
if (activated)
{
if (img_active != "NULL") overlay.setXmlParam("image", img_active);
}
else
{
if (img_normal != "NULL") overlay.setXmlParam("image", img_normal);
}
}

View file

@ -0,0 +1,99 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: imagecontrol.m
Version: 1.0
Type: maki
Date: 29. Jun. 2007 - 12:28
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include <lib/config.mi>
Function updateAttrib ();
Class ConfigAttribute ImageAttribute;
Global ImageAttribute a1, a2, a3, a4, a5, a6;
Global String img1, img2, img3, img4, img5, img6;
Global layer Display;
Global boolean myChange;
System.onScriptLoaded ()
{
string param = getParam();
string objects = getToken(param, "|", 0);
group scriptGroup = getScriptGroup();
Display = scriptGroup.findObject(objects);
int n = stringToInteger(getToken(param, "|", 1)) + 1;
int i = 2;
if (i <= n)
{
objects = getToken(param, "|", i);
a1 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img1 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a2 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img2 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a3 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img3 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a4 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img4 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a5 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img5 = getToken(objects, ";", 2);
i++;
}
if (i <= n)
{
objects = getToken(param, "|", i);
a6 = config.getItemByGuid(getToken(objects, ";", 0)).getattribute(getToken(objects, ";", 1));
img6 = getToken(objects, ";", 2);
i++;
}
updateAttrib ();
}
ImageAttribute.onDataChanged ()
{
if (myChange) return;
updateAttrib ();
}
updateAttrib ()
{
myChange = 1;
if (a1) if (a1.getData() == "1") Display.setXmlParam("image", img1);
if (a2) if (a2.getData() == "1") Display.setXmlParam("image", img2);
if (a3) if (a3.getData() == "1") Display.setXmlParam("image", img3);
if (a4) if (a4.getData() == "1") Display.setXmlParam("image", img4);
if (a5) if (a5.getData() == "1") Display.setXmlParam("image", img5);
if (a6) if (a6.getData() == "1") Display.setXmlParam("image", img6);
myChange = 0;
}

View file

@ -0,0 +1,44 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: infoline.m
Version: 1.0
Type: maki
Date: 06. Nov. 2007 - 22:40
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
Global Text txt;
Global Text label;
Global Layer link;
Global Group sg;
Global Int shift = 0;
System.onScriptLoaded ()
{
sg = getScriptGroup();
txt = sg.getObject("text");
label = sg.getObject("label");
link = sg.getObject("link");
}
System.onSetXuiParam (String param, String value)
{
if (strlower(param) == "shift") shift = stringToInteger(value);
if (strlower(param) == "label") label.setText(value);
if (strlower(param) == "link") link.setXmlparam("tooltip", value);
}
label.onTextChanged (String newtxt)
{
int w = label.getAutoWidth() + shift;
txt.setXmlParam("x", integerToString(w));
txt.setXmlParam("w", integerToString(-w));
}

View file

@ -0,0 +1,52 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: debug.m
Version: 1.2
Type: maki/attrib loader
Date: 29. Aug. 2006 - 23:43
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef DEBUG
#define debugString //
#endif
#ifdef DEBUG
#define DEBUG_PREFIX "["+ FILE_NAME +": " + getTimeStamp() + "] " +
Function String getTimeStamp();
String getTimeStamp()
{
int msc = getTimeOfDay();
int h = msc / 1000 / 3600;
msc -= h * 1000 * 3600;
int m = msc / 1000 / 60;
msc -= m * 1000 * 60;
int s = msc / 1000;
msc -= s * 1000;
string zeros = "";
if (msc < 100)
{
zeros += "0";
}
if (msc < 10)
{
zeros += "0";
}
return integerToString(h)+":"+integerToString(m)+":"+integerToString(s)+"."+zeros+integerToString(msc);
}
#define D_WTF 9
#define D_NWTF 9
#endif

View file

@ -0,0 +1,111 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: glow.m
Version: 1.0
Type: maki/glow class
Date: 16. Jun. 2007 - 23:13
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Usage: 1: #include glow.m
2: #define GLOW_OBJECT MyGlow
3: call _MyGlow_GlowInit (someObj, otherObj)
to init the objects.
You can also call _MyGlow_GlowInit (NULL, otherObj)
and load a bunch of GuiObjects in _MyGlow_GlowTrigger
or load up to 5 objects via _MyGlow_addTarget(obj);
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifndef GLOW_OBJECT
#error GLOW_OBJECT not defined!
#endif
Class GuiObject _##GLOW_OBJECT##_GlowTrigger;
Global _##GLOW_OBJECT##_GlowTrigger _##GLOW_OBJECT##_trigger0, _##GLOW_OBJECT##_trigger1, _##GLOW_OBJECT##_trigger2, _##GLOW_OBJECT##_trigger3, _##GLOW_OBJECT##_trigger4, _##GLOW_OBJECT##_trigger5;
Global GuiObject _##GLOW_OBJECT##_glow;
Global float _##GLOW_OBJECT##_fdoutspeed;
Global boolean _##GLOW_OBJECT##_mouseDown;
Function _##GLOW_OBJECT##_GlowInit (GuiObject triggerObject, GuiObject glowObject, float fdoutspeed);
Function _##GLOW_OBJECT##_addTrigger (GuiObject triggerObject);
_##GLOW_OBJECT##_GlowInit (GuiObject triggerObject, GuiObject glowObject, float fdoutspeed)
{
if (triggerObject) _##GLOW_OBJECT##_trigger0 = triggerObject;
if (glowObject) _##GLOW_OBJECT##_glow = glowObject;
_##GLOW_OBJECT##_fdoutspeed = fdoutspeed;
}
_##GLOW_OBJECT##_addTrigger(GuiObject triggerObject)
{
if (triggerObject)
{
if (!_##GLOW_OBJECT##_trigger1)
{
_##GLOW_OBJECT##_trigger1 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger2)
{
_##GLOW_OBJECT##_trigger2 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger3)
{
_##GLOW_OBJECT##_trigger3 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger4)
{
_##GLOW_OBJECT##_trigger4 = triggerObject;
return;
}
if (!_##GLOW_OBJECT##_trigger5)
{
_##GLOW_OBJECT##_trigger5 = triggerObject;
return;
}
}
}
_##GLOW_OBJECT##_GlowTrigger.onEnterArea ()
{
_##GLOW_OBJECT##_glow.cancelTarget();
_##GLOW_OBJECT##_glow.setAlpha(255);
}
_##GLOW_OBJECT##_GlowTrigger.onLeftButtonDown (int x, int y)
{
_##GLOW_OBJECT##_mouseDown = 1;
_##GLOW_OBJECT##_glow.cancelTarget();
_##GLOW_OBJECT##_glow.setAlpha(0);
}
_##GLOW_OBJECT##_GlowTrigger.onLeftButtonUp (int x, int y)
{
_##GLOW_OBJECT##_mouseDown = 0;
_##GLOW_OBJECT##_glow.cancelTarget();
if (_##GLOW_OBJECT##_GlowTrigger.isMouseOverRect()) _##GLOW_OBJECT##_glow.setAlpha(255);
}
_##GLOW_OBJECT##_GlowTrigger.onLeaveArea ()
{
if (_##GLOW_OBJECT##_mouseDown) return;
_##GLOW_OBJECT##_glow.cancelTarget();
_##GLOW_OBJECT##_glow.setTargetA(0);
_##GLOW_OBJECT##_glow.setTargetX(_##GLOW_OBJECT##_glow.getGuiX());
_##GLOW_OBJECT##_glow.setTargetSpeed(_##GLOW_OBJECT##_fdoutspeed);
_##GLOW_OBJECT##_glow.gotoTarget();
}
#undef GLOW_OBJECT

View file

@ -0,0 +1,93 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: loadattribs.m
Version: 1.2
Type: maki/attrib loader
Date: 29. Aug. 2006 - 23:43
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#define MAIN_ATTRIBS_MGR
#define MAIN_ATTRIBS_LOADER
#include <lib/std.mi>
#include attribs/init_windowpage.m
#include attribs/init_playlist.m
#include attribs/init_Autoresize.m
#include attribs/init_Vis.m
#include attribs/init_appearance.m
#include attribs/init_songticker.m
#include attribs/init_notifier.m
// #include ../../../Plugins/freeform/xml/wasabi/xml/xui/browser/init_browser.m
#include /home/fathony/Documents/X2NIE/webamp/packages/webamp-modern/assets/freeform/xml/wasabi/xml/xui/browser/init_browser.m
Global Configattribute FontRenderer, findOpenRect;
Global String FontRenderer_default, findOpenRect_default;
Global configAttribute skin_attrib;
System.onScriptLoaded()
{
initAttribs_Appearance();
initAttribs_Songticker();
initAttribs_Autoresize();
initAttribs_notifier();
initAttribs_Browser();
initAttribs_Vis();
//without optionsmenu entry:
initAttribs_windowpage();
initAttribs_Playlist();
// Add skin switcher to Appearance menu
addMenuSeparator(custom_page_appearance);
if (getParam() == "big")
{
skin_attrib = custom_page_appearance.newAttribute("Switch to Bento with Small Buttons", "0");
}
else
{
skin_attrib = custom_page_appearance.newAttribute("Switch to Bento with Big Buttons", "0");
}
// Turn 'find open rect' temporary off
findOpenRect = config.getItemByGuid("{280876CF-48C0-40BC-8E86-73CE6BB462E5}").getAttribute("Find open rect");
findOpenRect_default = findOpenRect.getData();
findOpenRect.setData("0");
}
System.onScriptUnloading ()
{
findOpenRect.setData(findOpenRect_default);
}
findOpenRect.onDataChanged ()
{
if (getData() == "0") return;
findOpenRect.setData("0");
}
global boolean passtrough;
skin_attrib.onDataChanged ()
{
if (passtrough)
{
return;
}
passtrough = TRUE;
setData("0");
if (getParam() == "big") switchSkin("Bento");
else switchSkin("Big Bento");
passtrough = FALSE;
}

View file

@ -0,0 +1,269 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: songinfo.m
Version: 1.0
Type: maki
Date: 20. Nov. 2006 - 22:47
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_appearance.m
Class Layer LinkedLayer;
Function initLL(linkedLayer l);
Function fadeLL(linkedLayer l, boolean in);
Function setLL(linkedLayer l, boolean in);
Global Group MenuBar;
Global button goPro;
Global GuiObject mousetrap;
Global Int texth;
Global LinkedLayer _play, _options, _file, _view, _help, _pro;
Global int xpos;
Global guiObject titlebargrid;
System.onScriptLoaded()
{
initAttribs_Appearance();
MenuBar = getscriptgroup().findobject("player.mainmenu");
xpos = 0;
titlebargrid = getScriptGroup().findObject("titlebar.grid.right");
_file = MenuBar.getObject("menu.text.file");
initLL(_file);
_play = MenuBar.getObject("menu.text.play");
initLL(_play);
_options = MenuBar.getObject("menu.text.options");
initLL(_options);
_view = MenuBar.getObject("menu.text.view");
initLL(_view);
_help = MenuBar.getObject("menu.text.help");
initLL(_help);
goPro = Menubar.getObject("GoPro.menu");
_pro = MenuBar.getObject("menu.text.pro");
initLL(_pro);
mousetrap = MenuBar.findObjecT("menu.hidden.mousetrap");
texth = _file.getGuiH();
if (system.isProVersion())
{
goPro.setXmlParam("ghost", "1");
_pro.hide();
}
if (menubar_main_attrib.getData() == "1")
{
_options.setXmlParam("h", integerToString(texth));
_file.setXmlParam("h", integerToString(texth));
_pro.setXmlParam("h", integerToString(texth));
_help.setXmlParam("h", integerToString(texth));
_view.setXmlParam("h", integerToString(texth));
_play.setXmlParam("h", integerToString(texth));
mousetrap.hide();
// MenuBar.setXmlParam("ghost", "0");
}
else
{
_options.setXmlParam("h", "0");
_file.setXmlParam("h", "0");
_pro.setXmlParam("h", "0");
_help.setXmlParam("h", "0");
_view.setXmlParam("h", "0");
_play.setXmlParam("h", "0");
mousetrap.show();
// MenuBar.setXmlParam("ghost", "1");
}
}
/*-- not implemented yet
system.onChangeProVersion(boolean ispro)
{
if (ispro)
{
goPro.setXmlParam("ghost", "1");
MenuText.setXmlParam("image", "window.titlebar.menu.text2");
MenuText.setXmlParam("w", wnopro);
}
else
{
goPro.setXmlParam("ghost", "0");
MenuText.setXmlParam("image", "window.titlebar.menu.text");
MenuText.setXmlParam("w", wispro);
}
}
--*/
menubar_main_attrib.onDataChanged() {
if (getData() == "1")
{
mousetrap.hide();
fadeLL(_play, 1);
fadeLL(_view, 1);
fadeLL(_help, 1);
fadeLL(_file, 1);
fadeLL(_options, 1);
fadeLL(_pro, 1);
}
else
{
mousetrap.show();
fadeLL(_play, 0);
fadeLL(_view, 0);
fadeLL(_help, 0);
fadeLL(_file, 0);
fadeLL(_options, 0);
fadeLL(_pro, 0);
}
}
/*
System.onKeyDown(String k) {
if (menubar_main_attrib.getData() == "0") return;
Layout l = getScriptGroup().getParentLayout();
if (!l.isActive()) return;
if (k == "alt+f")
{
MenuBar.findObject("file.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (k == "alt+p")
{
MenuBar.findObject("play.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (k == "alt+o")
{
MenuBar.findObject("options.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (k == "alt+i")
{
MenuBar.findObject("view.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (k == "alt+h")
{
MenuBar.findObject("help.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (k == "alt")
{
MenuBar.findObject("file.menu").sendAction("preopen", "", 0, 0, 0, 0);
complete;
}
}
*/
System.onAccelerator(String action, String section, String key) {
if (menubar_main_attrib.getData() == "0") return;
//if (section != "main") return;
Layout l = getScriptGroup().getParentLayout();
if (!l.isActive()) return;
if (action == "MENUHOTKEY_FILE")
{
MenuBar.findObject("file.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_PLAY")
{
MenuBar.findObject("play.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_OPTIONS")
{
MenuBar.findObject("options.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_VIEW")
{
MenuBar.findObject("view.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
if (action == "MENUHOTKEY_HELP")
{
MenuBar.findObject("help.menu").sendAction("open", "", 0, 0, 0, 0);
complete;
}
}
goPro.onLeftClick ()
{
if (isKeyDown(VK_ALT) && isKeyDown(VK_SHIFT) && isKeyDown(VK_CONTROL))
{
goPro.setXmlParam("ghost", "1");
_pro.hide();
return;
}
goPro.getParentlayout().getObject("sui.content").sendAction("browser_navigate", "http://www.winamp.com/buy", 0,0,0,0);
}
initLL (LinkedLayer l)
{
int w = l.getAutoWidth();
String id = getToken(l.getId(), ".", 2);
if (l == _pro)
{
l.setXmlParam("x", integerToString(xpos));
goPro.setXmlParam("w", integerToString(w));
goPro.setXmlParam("x", integerToString(xpos));
xpos += w;
MenuBar.setXmlParam("w", integerToString(xpos));
xpos += MenuBar.getGuiX();
titlebargrid.setXmlParam("w", integerToString(-xpos));
titlebargrid.setXmlParam("x", integerToString(xpos));
return;
}
else
{
GuiObject o;
o = MenuBar.findObject("menu.layer." + id + ".normal");
if (o) o.setXmlParam("w", integerToString(w));
if (o) o.setXmlParam("x", integerToString(xpos));
o = MenuBar.findObject("menu.layer." + id + ".hover");
if (o) o.setXmlParam("w", integerToString(w));
if (o) o.setXmlParam("x", integerToString(xpos));
o = MenuBar.findObject("menu.layer." + id + ".down");
if (o) o.setXmlParam("w", integerToString(w));
if (o) o.setXmlParam("x", integerToString(xpos));
// Martin> I hate the Menu Object is not instanciable, perhaps i will fix this...
// Martin> ...is fixed, yay!
Menu m = MenuBar.findObject(id + ".menu");
if (m) m.setXmlParam("w", integerToString(w));
if (m) m.setXmlParam("x", integerToString(xpos));
}
l.setXmlParam("x", integerToString(xpos));
xpos += w;
}
fadeLL (linkedLayer l, boolean in)
{
l.cancelTarget();
l.setTargetH(texth*in);
l.setTargetSpeed(0.5);
l.gotoTarget();
}

View file

@ -0,0 +1,632 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: maximize.m
Version: 3.4
Type: maki
Date: 13. Sep. 2007 - 15:05
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_Autoresize.m
Function setImages(boolean isMaximized);
Function maximizeShade(boolean save);
Function restoreShade();
Function maximizePlayer(boolean save);
Function restorePlayer();
Function setWndToScreen();
#define SAVEPOS_SHADE 2
#define SAVEPOS_NORMAL 1
#define SAVEPOS_ALL 0
Function savePos(int code);
Class GuiObject Mousetrap;
Global Button Maximize, MaximizeShade, Restore, RestoreShade;
Global Mousetrap noResizerTB, MousetrapTB, MousetrapShade, MousetrapMenu;
Global Layout normal, shade;
Global Boolean tgst;
Global Layer resizer, noResizer, resizerShade, resizerShade2, topResizer;
Global Container player;
Global GuiObject shadeticker, slamclose;
Global Group regions, regionsShade;
Global Layer regionBlack, regionBlackShade;
Global Int DEFAULT_PLAYER_H, DEFAULT_SHADE_H;
Global Int old_x, old_y, old_h, old_w;
System.onScriptLoaded ()
{
initAttribs_Autoresize();
player = System.getContainer("main");
normal = player.getLayout("normal");
Maximize = normal.findObject("player.titlebar.button.maximize");
Restore = normal.findObject("player.titlebar.button.restore");
MousetrapTB = normal.findObject("player.mousetrap.maximize");
resizer = normal.findObject("player.resizer.bottomright");
noResizer = normal.findObject("player.resizer.disable");
noResizerTB = normal.findObject("titlebar.resizer.disable");
regions = normal.findObject("window.background.regions");
regionBlack = normal.findObject("window.background.maximize");
topResizer = normal.findObject("titlebar.resizer.top");
slamclose = normal.findObject("maximize.slam.close");
MousetrapMenu = normal.findObject("menu.hidden.mousetrap");
shade = player.getLayout("shade");
shadeticker = shade.findObject("Songticker");
MaximizeShade = shade.findObject("shade.button.maximize");
RestoreShade = shade.findObject("shade.button.restore");
resizerShade = shade.findObject("shade.resizer.right");
resizerShade2 = shade.findObject("shade.resizer.right2");
MousetrapShade = shade.findObject("shade.mousetrap");
regionsShade = Shade.findObject("window.background.regions");
regionBlackShade = Shade.findObject("window.background.maximize");
DEFAULT_PLAYER_H = stringToInteger(getToken(getParam(), "," , 0));
DEFAULT_SHADE_H = stringToInteger(getToken(getParam(), "," , 1));
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (FALSE);
maximizeShade (FALSE);
setImages (1);
}
else
{
if (getPrivateInt(getSkinName(), "First Start", 1)) setWndToScreen();
else
{
restorePlayer ();
restoreShade ();
}
}
}
// ------------------------------------------------------------------------------
// Save all our window positions on skin unloading
// ------------------------------------------------------------------------------
System.onScriptUnloading ()
{
// if (player.getCurLayout() == normal) savePos(SAVEPOS_NORMAL);
// else if (player.getCurLayout() == shade) savePos(SAVEPOS_SHADE);
}
// ------------------------------------------------------------------------------
// Prohibit autoresizing by Video if we're in maximized player (layout_normal)
// ------------------------------------------------------------------------------
sui_autorsize_attrib.onDataChanged ()
{
if (getData() == "1")
{
normal.setXMLParam("lockminmax", "0");
}
else
{
double d = normal.getScale();
if (normal.getLeft() == getViewportLeft() && normal.getTop() == getViewportTop() && normal.getWidth() == getViewPortWidthfromGuiObject(normal)/d && normal.getHeight() == getViewPortHeightfromGuiObject(normal)/d)
{
normal.setXMLParam("lockminmax", "1");
}
}
}
System.onKeyDown (String key)
{
if (key == "ctrl+w" && (shade.isActive() || normal.isActive()))
{
if (shade != player.getCurLayout())
{
player.switchToLayout("shade");
}
else
{
player.switchToLayout("normal");
}
complete;
}
}
// ------------------------------------------------------------------------------
// Button clicks
// ------------------------------------------------------------------------------
Maximize.onLeftClick ()
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (TRUE);
}
}
Restore.onLeftClick ()
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
restorePlayer ();
}
}
MaximizeShade.onLeftClick ()
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
restoreShade ();
}
else
{
maximizeShade (TRUE);
}
}
RestoreShade.onLeftClick ()
{
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
restoreShade ();
}
else
{
maximizeShade (TRUE);
}
}
/** This will detect the second down click */
Mousetrap.onLeftButtonDblClk (int x, int y)
{
tgst = true;
}
/** Once the button gets up, we'll toggle the maximized state */
mousetrap.onLeftButtonUp (int x, int y)
{
if (tgst)
{
if (shade == player.getCurLayout())
{
if (titlebar_dblclk_max_attib.getData() == "1")
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizeShade (TRUE);
}
else
{
restoreShade();
}
}
else
{
player.switchToLayout("normal");
}
}
else
{
if (titlebar_dblclk_max_attib.getData() == "1")
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (TRUE);
}
else
{
restorePlayer();
}
}
else
{
player.switchToLayout("shade");
}
}
}
tgst = false;
}
topResizer.onLeftButtonDblClk (int x, int y)
{
if (titlebar_dblclk_max_attib.getData() == "1")
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer (TRUE);
}
else
{
restorePlayer();
}
}
else
{
player.switchToLayout("shade");
}
}
// ------------------------------------------------------------------------------
// Detect maximized states on window resize
// ------------------------------------------------------------------------------
normal.onEndMove ()
{
savePos(SAVEPOS_NORMAL);
}
normal.onResize (int x, int y, int w, int nh)
{
//debugString("onResize("+integertoString(x)+","+integertoString(y)+","+integertoString(w)+","+integertoString(nh)+");", 9);
y = normal.getTop();
// prohibit to set nh = 0
if (nh == 0 || w == 0)
{
//debug("error setting player_normal w=" + integerToString(w) + " , h=" + integerToString(nh));
normal.resize(getLeft(), getTop(), getWidth(), DEFAULT_PLAYER_H);
return;
}
if (normal != player.getCurLayout()) return;
if (old_x == x && old_y == y && old_h = nh && old_w == w) return;
old_x = x; old_y = y; old_h = nh; old_w = w;
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
double d = normal.getScale();
if (w == getViewPortWidthfromGuiObject(normal)/d && x == getViewportLeft() && y == getViewportTop())
{
//setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
//setImages (1);
}
else
{
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
}
else
{
double d = normal.getScale();
if (x == getViewportLeft() && y == getViewportTop() && w == getViewPortWidthfromGuiObject(normal)/d && nh == getViewPortHeightfromGuiObject(normal)/d)
{
//setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
//setImages (1);
}
else
{
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
}
savePos(SAVEPOS_NORMAL);
}
shade.onEndMove ()
{
savePos(SAVEPOS_SHADE);
}
shade.onResize (int x, int y, int w, int nh)
{
y = shade.getTop();
// prohibit to set nh = 0
if (nh == 0 || w == 0)
{
debug("error setting player_shade w=" + integerToString(w) + " , h=" + integerToString(nh));
shade.resize(getLeft(), getTop(), getWidth(), DEFAULT_SHADE_H);
return;
}
if (shade != player.getCurLayout()) return;
if (old_x == x && old_y == y && old_h = nh && old_w == w) return;
old_x = x; old_y = y; old_h = nh; old_w = w;
double d = shade.getScale();
if (w == getViewPortWidthfromGuiObject(shade)/d && y == getViewportTop() && x == getViewportLeft())
{
//setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
//setImages (1);
}
else
{
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
savePos(SAVEPOS_SHADE);
}
// ------------------------------------------------------------------------------
// Resize our window on scale if we are maximized
// ------------------------------------------------------------------------------
normal.onScale (Double newscalevalue)
{
if (normal != player.getCurLayout()) return;
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizePlayer(FALSE);
}
savePos(SAVEPOS_NORMAL);
}
shade.onScale (Double newscalevalue)
{
if (shade != player.getCurLayout()) return;
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
maximizeShade(FALSE);
}
savePos(SAVEPOS_SHADE);
}
// ------------------------------------------------------------------------------
// Before we switch between layouts, check all images and window sizes
// ------------------------------------------------------------------------------
player.onBeforeSwitchToLayout (Layout _layoutnow, Layout _layouttobe)
{
if (_layoutnow == normal) savePos(SAVEPOS_NORMAL);
else if (_layoutnow == shade) savePos(SAVEPOS_SHADE);
if (getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
if (_layouttobe == normal) maximizePlayer (FALSE);
else if (_layouttobe == shade) maximizeShade (FALSE);
setImages (1);
}
else
{
if (_layouttobe == normal) restorePlayer ();
else if (_layouttobe == shade) restoreShade ();
}
}
// ------------------------------------------------------------------------------
// Save wnd position before we go to collapsed state
// ------------------------------------------------------------------------------
normal.onAction (String action, String param, Int x, int y, int p1, int p2, GuiObject source)
{
if (action == "sui" && param == "tonocomp" && x == 0)
{
savePos (SAVEPOS_NORMAL);
}
}
// ******************************************************************************
// Our Function Handles
// ******************************************************************************
setImages (boolean isMaximized)
{
if (isMaximized)
{
// Normal
Maximize.hide();
Restore.show();
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
MousetrapTB.setXMLparam("move", "0");
MousetrapMenu.setXMLparam("move", "0");
noResizerTB.setXMLparam("ghost", "0");
}
else
{
MousetrapTB.setXMLparam("move", "0");
MousetrapMenu.setXMLparam("move", "0");
noResizerTB.setXMLparam("ghost", "0");
}
if (sui_autorsize_attrib.getData() == "0") normal.setXMLParam("lockminmax", "1");
else normal.setXMLParam("lockminmax", "0");
resizer.hide();
noResizer.show();
regions.hide();
regionBlack.show();
// Shade
MousetrapShade.setXMLparam("move", "0");
shadeticker.setXmlParam("move", "0");
MaximizeShade.hide();
RestoreShade.show();
resizerShade.hide();
regionsShade.hide();
resizerShade2.hide();
regionBlackShade.show();
slamclose.show();
}
else
{
// Normal
resizer.show();
noResizer.hide();
MousetrapTB.setXMLparam("move", "1");
noResizerTB.setXMLparam("ghost", "1");
MousetrapMenu.setXMLparam("move", "1");
normal.setXMLParam("lockminmax", "0");
Maximize.show();
Restore.hide();
regions.show();
regionBlack.hide();
// Shade
MousetrapShade.setXMLparam("move", "1");
shadeticker.setXmlParam("move", "1");
resizerShade.show();
resizerShade2.show();
MaximizeShade.show();
RestoreShade.hide();
regionsShade.show();
regionBlackShade.hide();
slamclose.hide();
}
}
maximizeShade (boolean save)
{
if (save)
{
savePos(SAVEPOS_SHADE);
setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
setImages (1);
}
double newscalevalue = shade.getScale();
int sh = shade.getHeight();
if (sh < 1) sh = DEFAULT_SHADE_H;
shade.resize(getViewPortLeftfromGuiObject(shade),getViewPortTopfromGuiObject(shade),getViewportWidthfromGuiObject(shade)/newscalevalue, sh);
}
restoreShade ()
{
if (link_w_attrib.getData() == "0")
{
shade.resize(
getPrivateInt(getSkinName(), "shade_nomax_x", shade.getLeft()),
getPrivateInt(getSkinName(), "shade_nomax_y", shade.getTop()),
getPrivateInt(getSkinName(), "shade_nomax_w", 500),
DEFAULT_SHADE_H
);
}
else
{
shade.resize(
getPrivateInt(getSkinName(), "nomax_x", shade.getLeft()),
getPrivateInt(getSkinName(), "nomax_y", shade.getTop()),
getPrivateInt(getSkinName(), "nomax_w", 700),
DEFAULT_SHADE_H
);
}
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
maximizePlayer (boolean save)
{
if (save)
{
savePos(SAVEPOS_NORMAL);
setPrivateInt(getSkinName(), "isMainWndMaximized", 1);
setImages (1);
}
double newscalevalue = normal.getScale();
int nh, ny;
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
nh = DEFAULT_PLAYER_H;
}
else
{
nh = getViewPortHeightfromGuiObject(normal)/newscalevalue;
}
if (nh < 1) nh = DEFAULT_PLAYER_H;
normal.resize(getViewPortLeftfromGuiObject(normal), getViewPortTopfromGuiObject(normal), getViewPortWidthfromGuiObject(normal)/newscalevalue, nh);
}
restorePlayer ()
{
int x, y, w, h;
x = getPrivateInt(getSkinName(), "nomax_x", normal.getLeft());
y = getPrivateInt(getSkinName(), "nomax_y", normal.getTop());
w = getPrivateInt(getSkinName(), "nomax_w", normal.getWidth());
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden")
{
h = DEFAULT_PLAYER_H;
}
else
{
h = getPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
}
// check if player_w is too small
if (w < stringToInteger(normal.getXmlParam("minimum_w"))) w = stringToInteger(normal.getXmlParam("minimum_w"));
normal.resize(x, y, w, h);
normal.sendAction("pledit_posupdate", "", 0,0,0,0);
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}
savePos (int code)
{
if (!getPrivateInt(getSkinName(), "isMainWndMaximized", 0))
{
if (code == SAVEPOS_NORMAL || code == SAVEPOS_ALL)
{
if (getPrivateString(getSkinName(), "Component", "Media Library") != "Hidden")
{
int nnh = normal.getHeight();
//martin> i really dunno why i've added this code:
//if (nnh > 0 && nnh < 200) setPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
//So lets try it again w/o switch in order to fix resizing - goto shade - goback - size not remembered bug
if (nnh > 200) setPrivateInt(getSkinName(), "nomax_h", normal.getHeight());
// ^ otherwise we save in collapsed mode
}
setPrivateInt(getSkinName(), "nomax_x", normal.getLeft());
setPrivateInt(getSkinName(), "nomax_y", normal.getTop());
if (normal.getWidth() > 0) setPrivateInt(getSkinName(), "nomax_w", normal.getWidth());
//debugInt(getPrivateInt(getSkinName(), "nomax_w", normal.getWidth()));
}
if (code == SAVEPOS_SHADE || code == SAVEPOS_ALL)
{
if (link_w_attrib.getData() == "0")
{
setPrivateInt(getSkinName(), "shade_nomax_x", shade.getLeft());
setPrivateInt(getSkinName(), "shade_nomax_y", shade.getTop());
if (shade.getWidth() > 0) setPrivateInt(getSkinName(), "shade_nomax_w", shade.getWidth());
}
else
{
if (shade.getWidth() > 0) setPrivateInt(getSkinName(), "nomax_w", shade.getWidth());
setPrivateInt(getSkinName(), "nomax_x", shade.getLeft());
setPrivateInt(getSkinName(), "nomax_y", shade.getTop());
}
//debugInt(getPrivateInt(getSkinName(), "nomax_w", shade.getWidth()));
//debugInt(getPrivateInt(getSkinName(), "shade_nomax_w", shade.getWidth()));
}
}
if (code == SAVEPOS_NORMAL || code == SAVEPOS_ALL)
{
if (getPrivateString(getSkinName(), "Component", "Media Library") == "Hidden") setPrivateInt(getSkinName(), "nomax_y_h", normal.getTop());
}
//debugInt(getPrivateInt(getSkinName(), "nomax_w", shade.getWidth()));
}
setWndToScreen ()
{
int y = getViewPortTop();
int x = getViewPortLeft();
int h = getViewPortHeight();
int w = getViewPortWidth();
int sw = 0.8 * w;
int sh = 0.85 * h;
int mh = stringToInteger(normal.getXmlParam("minimum_h"));
int mw = stringToInteger(normal.getXmlParam("minimum_w"));
if (sh < mh) sh = mh;
if (sw < mw) sw = mw;
/* int sx = x + (w-sw)/2;
int sy = y + (h-sh)/2;*/
normal.resize(normal.getLeft(), normal.getTop(), sw, sh);
setPrivateInt(getSkinName(), "First Start", 0);
setPrivateInt(getSkinName(), "isMainWndMaximized", 0);
setImages (0);
}

View file

@ -0,0 +1,441 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: mcvcore.m
Version: 4.5
Type: maki
Date: 13. Aug. 2007 - 11:22
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
Note: This script is based on drawer.m
from Winamp Modern, but extended to
5 components presets!
Like in drawer.m I warn everybody not
to modify this script, cause it can be
harmed very fast! And you don't want
a buggy winamp skin, want you?
Since script version 3.1
(onesie build #022)
the script is devided into subscripts
for better debugging.
-----------------------------------------------------
---------------------------------------------------*/
#include <lib/std.mi>
#include attribs/init_windowpage.m
#include attribs/init_vis.m
#define DEBUG
#define FILE_NAME "infocompcore.m"
#include <lib/debug.m>
#define VIS_GUID "{0000000A-000C-0010-FF7B-01014263450C}"
#ifndef DOHIDEMCV
#define updateSaving //
#endif
//define FIT_W2_COMP fit(sui_fi, 159, 0, 2, 0, -162, 1, 76, 0)
#define FIT_W2_COMP fit(sui_fi, 234, 0, 2, 0, -236, 1, 117, 0)
//define FIT_W_COMP fit(sui_fi, 81, 0, 2, 0, -84, 1, 76, 0)
#define FIT_W_COMP fit(sui_fi, 119, 0, 2, 0, -121, 1, 117, 0)
#define FIT_WO_COMP fit(sui_fi, 4, 0, 2, 0, -6, 1, 117, 0)
Global Boolean bypasscancel;
Global Timer callbackTimer, tempDisable;
#define CURR_COMP plsc
#include mcvcore/defs.m
#ifdef IC_COVERFLOW
#undef CURR_COMP
#define CURR_COMP cflow
#include mcvcore/defs.m
#endif
Function fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh);
Function switchToIcOnly();
Function switchToCover();
Function switchToVisCover();
Function switchToVis();
Function switchToEQ();
Function switchToCfg();
Function switchToVis_Full();
Function updateFileInfo();
Function hideFi();
Function showFi();
Function hideCover();
Function showCover();
Function hideVis();
Function showVis();
Function hideVis_Full();
Function showVis_Full();
Function hideEq();
Function showEq();
Function hideCfg();
Function showCfg();
Function openIC();
Function closeIC();
Function openLC();
Function closeLC();
#ifdef DOHIDEMCV
Function hideMCV();
#endif
Function onHideFi();
Function onShowFi();
Function onHideCover();
Function onShowCover();
Function onHideVis();
Function onShowVis();
Function onHideVis_Full();
Function onShowVis_Full();
Function onHideEq();
Function onShowEq();
Function onHideCfg();
Function onShowCfg();
Function onCloseIC();
Function onOpenIC();
Function onhideMCV();
Function dc_hideFi();
Function dc_showFi();
Function dc_showEq();
Function dc_hideEq();
Function dc_showCfg();
Function dc_hideCfg();
Function dc_hideCover();
Function dc_showCover();
Function dc_hideVis();
Function dc_showVis();
Function dc_hideVis_Full();
Function dc_showVis_Full();
Function updateFooter();
Function ProcessMenuResult (int a);
#ifdef DOHIDEMCV
function updateSaving (int l);
#endif
Global Group sg, sui_cover, sui_vis_full, sui_vis, sui_fi, sui_eq, sui_cfg, g_footer, g_visbtns;
Global Layout main;
Global Boolean callback_showing_vis, callback_hiding_vis, callback_showing_vis_full, callback_hiding_vis_full, callback_showing_cover, callback_hiding_cover, callback_showing_fi, callback_hiding_fi, callback_hiding_eq, callback_showing_eq, callback_hiding_cfg, callback_showing_cfg;
Global Boolean showing_vis, hiding_vis, showing_vis_full, hiding_vis_full, showing_cover, hiding_cover, hiding_fi, showing_fi, showing_eq, hiding_eq, showing_cfg, hiding_cfg;
Global Boolean Mychange;
Global Boolean prevent_vis = 1;
Global Frame dualwnd, mainframe;
Global GuiObject footerGrid, sendToBtn;
Global Popupmenu compMenu;
Global Button compChoose, nowPlayingBtn, webSearchBtn;
Global Boolean startup_done;
Global int substract = 0;
#ifdef DOHIDEMCV
Global Int last_menu_sel;
#endif
// script loading/unloading goes here
#include mcvcore/load_handles.m
// open / hiding components not caused by button clicks
#include mcvcore/external_handles.m
// showing and hiding the components
#include mcvcore/show_hide.m
/* Switching menu */
compChoose.onRightButtonUp(int x, int y)
{
complete;
}
compChoose.onRightClick () {
compChoose.onLeftClick ();
}
compChoose.onLeftClick ()
{
compMenu = new Popupmenu;
popupmenu fiSub = new Popupmenu;
compMenu.addCommand("File Info", 1, ic_fileinfo.getData() == "1", 0);
#ifdef IC_COVERFLOW
compMenu.addCommand("Cover Flow", 7, _cflow_ic_attrib.getData() == "1", 0);
#endif
compMenu.addCommand("Visualization", 2, ic_vis.getData() == "1", 0);
compMenu.addCommand("Stored Playlists", 3, _plsc_ic_attrib.getData() == "1", 0);
compMenu.addCommand("Equalizer", 4, ic_eq.getData() == "1", 0);
compMenu.addCommand("Skin Settings", 5, ic_config.getData() == "1", 0);
#ifdef DOHIDEMCV
compMenu.addCommand("Hide Multi Content View", 6, ic_hidden.getData() == "1", 0);
#endif
compMenu.addSeparator();
compMenu.addSubmenu(fiSub, "File Info Components");
fiSub.addCommand("Visualization", 12, ic_vis_fileinfo.getData() == "1", 0);
fiSub.addCommand("Album Art", 11, ic_cover_fileinfo.getData() == "1", 0);
fiSub.addSeparator();
fiSub.addCommand("Show Track #", 24, infocomp_show_track.getData() == "1", 0);
fiSub.addCommand("Show Year", 21, infocomp_show_year.getData() == "1", 0);
fiSub.addCommand("Show Genre", 22, infocomp_show_genre.getData() == "1", 0);
fiSub.addCommand("Show Disc", 28, infocomp_show_disc.getData() == "1", 0);
fiSub.addCommand("Show Album Artist", 25, infocomp_show_albumartist.getData() == "1", 0);
fiSub.addCommand("Show Composer", 26, infocomp_show_composer.getData() == "1", 0);
fiSub.addCommand("Show Publisher", 23, infocomp_show_publisher.getData() == "1", 0);
fiSub.addCommand("Show Decoder", 27, infocomp_show_format.getData() == "1", 0);
fiSub.addCommand("Show Song Rating", 20, infocomp_show_rating.getData() == "1", 0);
fiSub.addSeparator();
fiSub.addCommand("Cycle File Info", 30, infocomp_cycle.getData() == "1", 0);
fiSub.addSeparator();
fiSub.addCommand("Open Links in Now Playing", 40, infocomp_nowplaying.getData() == "1", 0);
fiSub.addCommand("Open Links in Browser", 41, infocomp_browser.getData() == "1", 0);
ProcessMenuResult (compMenu.popAtXY(clientToScreenX(compChoose.getLeft()), clientToScreenY(compChoose.getTop() + compChoose.getHeight())));
delete compMenu;
delete fiSub;
complete;
}
ProcessMenuResult (int a)
{
if (a < 1) return;
if (a == 1)
{
ic_fileinfo.setData("1");
}
else if (a == 2)
{
ic_vis.setData("1");
}
else if (a == 3)
{
_plsc_ic_attrib.setData("1");
}
#ifdef IC_COVERFLOW
else if (a == 7)
{
_cflow_ic_attrib.setData("1");
}
#endif
else if (a == 4)
{
ic_eq.setData("1");
}
else if (a == 5)
{
ic_config.setData("1");
}
#ifdef DOHIDEMCV
else if (a == 6)
{
ic_hidden.setData("1");
}
#endif
else if (a == 11)
{
toggleAttrib(ic_cover_fileinfo);
}
else if (a == 12)
{
toggleAttrib(ic_vis_fileinfo);
}
else if (a == 20)
{
toggleAttrib(infocomp_show_rating);
}
else if (a == 21)
{
toggleAttrib(infocomp_show_year);
}
else if (a == 22)
{
toggleAttrib(infocomp_show_genre);
}
else if (a == 23)
{
toggleAttrib(infocomp_show_publisher);
}
else if (a == 24)
{
toggleAttrib(infocomp_show_track);
}
else if (a == 25)
{
toggleAttrib(infocomp_show_albumartist);
}
else if (a == 26)
{
toggleAttrib(infocomp_show_composer);
}
else if (a == 27)
{
toggleAttrib(infocomp_show_format);
}
else if (a == 28)
{
toggleAttrib(infocomp_show_disc);
}
else if (a == 30)
{
toggleAttrib(infocomp_cycle);
}
else if (a == 40)
{
toggleAttrib(infocomp_nowplaying);
}
else if (a == 41)
{
toggleAttrib(infocomp_browser);
}
}
// Hiding footer buttons (for file info view)
g_footer.onResize (int x, int y, int w, int h)
{
if (substract == 1)
w += stringToInteger(dualwnd.getXmlParam("maxwidth")) + 78;
else if (substract == 2)
w += stringToInteger(dualwnd.getXmlParam("maxwidth")) + 102;
if (w < 132) footerGrid.hide();
else footerGrid.show();
if (w < 125) nowPlayingBtn.hide();
else nowPlayingBtn.show();
if (w < 94) webSearchBtn.hide();
else webSearchBtn.show();
if (w < 63) sendToBtn.hide();
else sendToBtn.show();
if (w < 32) compChoose.hide();
else compChoose.show();
}
updateFooter ()
{
g_footer.onResize (0, 0, g_footer.getWidth(), 0);
}
#ifdef DOHIDEMCV
// Switching back from no comp
sg.onResize (int x, int y, int w, int h)
{
if (ic_hidden.getData() == "0" || last_menu_sel == 0 || w == 0)// && dualwnd.getXmlParam("from") == "left")
{
return;
}
ProcessMenuResult (getPrivateInt(getSkinName(), "MCV last sel", 1));
}
// save last pos
updateSaving (int l)
{
if (last_menu_sel == l)
{
return;
}
if (last_menu_sel != 0) setPrivateInt(getSkinName(), "MCV last sel", last_menu_sel);
last_menu_sel = l;
}
#endif
/** OSD */
/*
Global boolean mouse_is_over = FALSE;
osd_trigger.onEnterArea ()
{
//setXmlParam("ghost", "1");
}
osd_trigger.onMouseMove (int x, int y)
{
if (!isMouseOverRect() && mouse_is_over)
{
mouse_is_over = 0;
component c = sui_vis_full.findObject("vis");
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
c = sui_vis.findObject("vis");
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
}
else if (isMouseOverRect() && !mouse_is_over)
{
mouse_is_over = 1;
component c = sui_vis_full.findObject("vis");
c.sendAction("setregion", "vis.button.region", 0, 0, 0, 0);
c = sui_vis.findObject("vis");
c.sendAction("setregion", "vis.button.region", 0, 0, 0, 0);
}
}
osd_trigger.onLeaveArea ()
{
component c = sui_vis_full.findObject("vis");
c.sendAction("setregion", "vis.normal.region", 0, 0, 0, 0);
}*/
/** Calls after comp is shown */
onCloseIC() {}
onOpenIC() {}
onShowCover() {}
onHideCover() {}
onShowFi() {}
onHideFi() {}
onShowEq() {}
onHideEq() {}
onShowCfg() {}
onHideCfg() {}
onShowVis()
{
g_visbtns.show();
}
onHideVis()
{
g_visbtns.hide();
}
onShowVis_Full() {}
onHideVis_Full() {}
#ifdef DOHIDEMCV
onhideMCV() {}
#endif
fit (group g, int x, int rx, int y, int ry, int w, int rw, int h, int rh)
{
if (!g) return;
g.setXmlParam("x", integerToString(x));
g.setXmlParam("y", integerToString(y));
g.setXmlParam("w", integerToString(w));
g.setXmlParam("h", integerToString(h));
g.setXmlParam("relatx", integerToString(rx));
g.setXmlParam("relaty", integerToString(ry));
g.setXmlParam("relatw", integerToString(rw));
g.setXmlParam("relath", integerToString(rh));
}

View file

@ -0,0 +1,98 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: defs.m
Version: 1.0
Type: maki
Date: 08. Jun. 2007 - 23:32
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
Function _##CURR_COMP##_switchTo();
Function _##CURR_COMP##_show();
Function _##CURR_COMP##_hide();
Function _##CURR_COMP##_onHide();
Function _##CURR_COMP##_onShow();
Function _##CURR_COMP##_dc_show();
Function _##CURR_COMP##_dc_hide();
Global Group _##CURR_COMP##_sui;
Global Boolean _##CURR_COMP##_callback_hiding, _##CURR_COMP##_callback_showing;
Global Boolean _##CURR_COMP##_showing, _##CURR_COMP##_hiding;
_##CURR_COMP##_show()
{
debugString(DEBUG_PREFIX "_##CURR_COMP##_show() {", D_WTF);
_##CURR_COMP##_showing = 1;
GuiObject o = _##CURR_COMP##_sui;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) ##CURR_COMP## object not provided (show)", D_WTF);
#endif
_##CURR_COMP##_onShow();
_##CURR_COMP##_showing = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
_##CURR_COMP##_hide()
{
debugString(DEBUG_PREFIX "_##CURR_COMP##_hide() {", D_WTF);
_##CURR_COMP##_hiding = 1;
GuiObject o = _##CURR_COMP##_sui;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) ##CURR_COMP## object not provided (hide)", D_WTF);
#endif
_##CURR_COMP##_onHide();
_##CURR_COMP##_hiding = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
_##CURR_COMP##_dc_show ()
{
debugString(DEBUG_PREFIX "_##CURR_COMP##__dc_show();", D_WTF);
_##CURR_COMP##_callback_showing = 1;
_##CURR_COMP##_callback_hiding = 0;
callbackTimer.start();
}
_##CURR_COMP##_dc_hide()
{
_##CURR_COMP##_callback_showing = 0;
_##CURR_COMP##_callback_hiding = 1;
callbackTimer.start();
}
_##CURR_COMP##_onShow() {}
_##CURR_COMP##_onHide() {}

View file

@ -0,0 +1,281 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: external_handles.m
Version: 1.0
Type: maki
Date: 29. Nov. 2006 - 15:57
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/suicore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
#ifdef DEBUG
/** has only debug aims :) */
/*
System.onLookForComponent(String guid) {
debugString(DEBUG_PREFIX "System.onLookForComponent ( "+ guid + " )", D_WTF);
}*/
#endif
#ifdef IC_COVERFLOW
#define ACTIONPERFORMED showing_Fi || hiding_Fi || showing_Cover || hiding_Cover || showing_Vis || hiding_Vis || showing_Vis_Full || hiding_Vis_Full || hiding_eq || showing_eq || hiding_cfg || showing_cfg || _plsc_hiding || _plsc_showing || _cflow_hiding || _cflow_showing
#endif
#ifndef IC_COVERFLOW
#define ACTIONPERFORMED showing_Fi || hiding_Fi || showing_Cover || hiding_Cover || showing_Vis || hiding_Vis || showing_Vis_Full || hiding_Vis_Full || hiding_eq || showing_eq || hiding_cfg || showing_cfg || _plsc_hiding || _plsc_showing
#endif
/** the component switching */
System.onGetCancelComponent(String guid, boolean goingvisible) {
debugString(DEBUG_PREFIX "System.onGetCancelComponent ( "+ guid + " , " + integerToString(goingvisible) + " ) {", D_WTF);
if (bypasscancel)
{
debugString(DEBUG_PREFIX " --> bypasscancel", 0);
debugString(DEBUG_PREFIX " return FALSE;", 0);
debugString(DEBUG_PREFIX "}", 0);
return FALSE;
}
if (guid == VIS_GUID && !goingvisible && hiding_vis)
{
debugString(DEBUG_PREFIX " --> hiding_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && goingvisible && showing_vis)
{
debugString(DEBUG_PREFIX " --> showing_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && !goingvisible && hiding_vis_full)
{
debugString(DEBUG_PREFIX " --> hiding_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (guid == VIS_GUID && goingvisible && showing_vis_full)
{
debugString(DEBUG_PREFIX " --> showing_vis", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
if (!main.isVisible())
{
debugString(DEBUG_PREFIX " --> main layout isn't visible", 0);
debugString(DEBUG_PREFIX " return FALSE;", 0);
debugString(DEBUG_PREFIX "}", 0);
return FALSE;
}
if (goingvisible) {
if (guid == VIS_GUID)
{
if (vis_inbig_attrib.getData() == "1") return FALSE;
debugString(DEBUG_PREFIX " --> external showing_vis --- start Timer", D_WTF);
if (vis_lefttoplayer_attrib.getData() == "1" && !sui_vis.isVisible())
{
dc_showVis();
debugString(DEBUG_PREFIX " --> open SMALL", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return TRUE;
}
if (vis_lefttoplayer_full_attrib.getData() == "1" && !sui_vis_full.isVisible())
{
dc_showVis_Full();
debugString(DEBUG_PREFIX " --> open FULL", D_WTF);
debugString(DEBUG_PREFIX " return TRUE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return TRUE;
}
debugString(DEBUG_PREFIX " return FALSE; (other handle?)", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
}
if (!goingvisible) {
if (guid == VIS_GUID && (sui_vis.isVisible() || sui_vis_full.isVisible())) {
if (vis_inbig_attrib.getData() == "1") return FALSE;
debugString(DEBUG_PREFIX " --> external hiding_vis", D_WTF);
if (ic_vis.getdata() == "1")
{
ic_fileinfo.setdata("1");
}
ic_vis_fileinfo.setData("0");
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
}
debugString(DEBUG_PREFIX " --> Went thru", D_WTF);
debugString(DEBUG_PREFIX " return FALSE;", D_WTF);
debugString(DEBUG_PREFIX "}", D_WTF);
return FALSE;
}
ic_cover_fileinfo.onDataChanged ()
{
if (ic_fileinfo.getData() == "0") return;
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
updateFileInfo();
mychange = 0;
}
ic_fileinfo.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
updateFileInfo();
}
mychange = 0;
}
ic_eq.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
switchToEq();
}
mychange = 0;
}
ic_config.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
switchToCfg();
}
mychange = 0;
}
_plsc_ic_attrib.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
_Plsc_switchTo();
}
mychange = 0;
}
#ifdef IC_COVERFLOW
_cflow_ic_attrib.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
_Cflow_switchTo();
}
mychange = 0;
}
#endif
ic_vis.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
switchToVis_Full();
}
mychange = 0;
}
ic_vis_fileinfo.onDataChanged ()
{
if (ic_fileinfo.getData() == "0") return;
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
updateFileInfo();
mychange = 0;
}
#ifdef DOHIDEMCV
ic_hidden.onDataChanged ()
{
if ( ACTIONPERFORMED ) return;
if (mychange) return;
mychange = 1;
if (getData() == "1")
{
hideMCV();
}
mychange = 0;
}
#endif
vis_lefttoplayer_attrib.onDataChanged ()
{
if (mychange) return;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
int xg = getPrivateInt(getSkinName(), "ComponentXgive", 0);
if (getData() == "1" && (window_content == "Vis" || ic_vis.getData() == "1" || xg))
{
if (xg) setPrivateInt(getSkinName(), "ComponentXgive", 0);
ic_vis_fileinfo.setData("1");
ic_fileinfo.setData("0");
}
else if (getData() == "0" && sui_vis.isVisible() && vis_lefttoplayer_full_attrib.getData() != "1")
{
setPrivateInt(getSkinName(), "ComponentXgive", 1);
ic_vis_fileinfo.setData("0");
}
}
vis_lefttoplayer_full_attrib.onDataChanged ()
{
if (mychange) return;
String window_content = getPrivateString(getSkinName(), "Component", "Media Library");
int xg = getPrivateInt(getSkinName(), "ComponentXgive", 0);
if (getData() == "1" && (window_content == "Vis" || ic_vis_fileinfo.getData() == "1" || xg))
{
if (xg) setPrivateInt(getSkinName(), "ComponentXgive", 0);
switchToVis_Full();
}
else if (getData() == "0" && sui_vis_full.isVisible() && vis_lefttoplayer_attrib.getData() != "1")
{
setPrivateInt(getSkinName(), "ComponentXgive", 1);
updateFileInfo();
}
}

View file

@ -0,0 +1,136 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: load_handles.m
Version: 1.0
Type: maki
Date: 28. Dez. 2006 - 08:40
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
System.onScriptLoaded ()
{
initAttribs_windowpage();
initAttribs_vis();
debugString(DEBUG_PREFIX "System.onScriptLoded() {", 0);
sg = getScriptGroup();
main = sg.getParentLayout();
if (getParam() == "big")
{
mainframe = main.getObject("player.mainframe.big");
}
else
{
mainframe = main.getObject("player.mainframe");
}
dualwnd = mainframe.findObject("player.dualwnd");
sui_cover = sg.findObject("info.component.cover");
sui_vis = sg.findObject("info.component.vis");
sui_vis_full = sg.findObject("info.component.vis.full");
sui_fi = sg.findObject("info.component.infodisplay");
sui_eq = sg.findObject("info.component.eq");
sui_cfg = sg.findObject("info.component.config");
_plsc_sui = sg.findObject("info.component.plsidecar");
#ifdef IC_COVERFLOW
_cflow_sui = sg.findObject("info.component.coverflow");
#endif
g_footer = sg.findObject("infocomp.background.footer");
g_visbtns = g_footer.findObject("infocomp.visbuttons");
footerGrid = g_footer.findObject("footer.background.grid");
compChoose = sg.findObject("comp.menu");
sendToBtn = sg.findObject("sendTo");
nowPlayingBtn = sg.findObject("nowplaying");
webSearchBtn = sg.findObject("search");
#ifdef DOHIDEMCV
last_menu_sel = getPrivateInt(getSkinName(), "MCV last sel", 1);
#endif
callbackTimer = new Timer;
callbackTimer.setDelay(1);
tempDisable = new Timer;
tempDisable.setDelay(50);
if (ic_fileinfo.getData() == "1")
{
updateFileInfo ();
}
else if (ic_vis.getData() == "1")
{
switchToVis_Full();
}
else if (ic_eq.getData() == "1")
{
switchToEq();
}
else if (ic_config.getData() == "1")
{
switchToCfg();
}
else if (_plsc_ic_attrib.getData() == "1")
{
_plsc_switchTo();
}
#ifdef IC_COVERFLOW
else if (_cflow_ic_attrib.getData() == "1")
{
_cflow_switchTo();
}
#endif
#ifdef DOHIDEMCV
else if (ic_hidden.getData() == "1")
{
hideMCV();
}
#endif
startup_done = 1;
debugString(DEBUG_PREFIX "}", 0);
prevent_vis = 0;
}
updateFileInfo ()
{
if (ic_vis_fileinfo.getData() == "1" && ic_cover_fileinfo.getData() == "1")
{
switchToVisCover();
}
else if (ic_vis_fileinfo.getData() == "1")
{
switchToVis();
}
else if (ic_cover_fileinfo.getData() == "1")
{
switchToCover();
}
else
{
switchToIcOnly();
}
}
System.onScriptUnloading ()
{
debugString(DEBUG_PREFIX "System.onScriptUnloading() {", 0);
delete callbackTimer;
delete tempDisable;
debugString(DEBUG_PREFIX " delete Timers;", 0);
debugString(DEBUG_PREFIX "}", 0);
}

View file

@ -0,0 +1,916 @@
/*---------------------------------------------------
-----------------------------------------------------
Filename: show_hide.m
Version: 1.0
Type: maki
Date: 29. Nov. 2006 - 15:57
Author: Martin Poehlmann aka Deimos
E-Mail: martin@skinconsortium.com
Internet: www.skinconsortium.com
www.martin.deimos.de.vu
-----------------------------------------------------
Depending Files:
scripts/infocompcore.maki
-----------------------------------------------------
---------------------------------------------------*/
#ifndef included
#error This script can only be compiled as a #include
#endif
switchToCover ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis();
hideVis_Full();
hideEq();
hideCfg();
openIC();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done)
{
ic_cover_fileinfo.setData("1");
ic_fileinfo.setData("1");
}
mychange = 0;
substract = 0;
sui_cover.setXmlParam("x", "4");
dualwnd.setXmlParam("maxwidth", "-127");
dualwnd.sendAction("set_maxwidth", "", -127, 0 , 0, 0);
g_footer.setXmlParam("x", "117");
g_footer.setXmlParam("w", "-118");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showCover();
FIT_W_COMP;
updateSaving(1);
}
switchToVisCover ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideEq();
hideCfg();
openIC();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done)
{
ic_cover_fileinfo.setData("1");
ic_vis_fileinfo.setData("1");
vis_lefttoplayer_attrib.setData("1");
ic_fileinfo.setData("1");
}
mychange = 0;
substract = 0;
sui_cover.setXmlParam("x", "119");
dualwnd.setXmlParam("maxwidth", "-242");
dualwnd.sendAction("set_maxwidth", "", -242, 0 , 0, 0);
g_footer.setXmlParam("x", "232");
g_footer.setXmlParam("w", "-234");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showCover();
showVis();
FIT_W2_COMP;
updateSaving(1);
}
switchToVis ()
{
debugString(DEBUG_PREFIX "switchToVis();", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideCover();
hideVis_Full();
hideEq();
hideCfg();
openIC();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done)
{
ic_vis_fileinfo.setData("1");
vis_lefttoplayer_attrib.setData("1");
ic_fileinfo.setData("1");
}
mychange = 0;
substract = 1;
dualwnd.setXmlParam("maxwidth", "-127");
dualwnd.sendAction("set_maxwidth", "", -127, 0 , 0, 0);
g_footer.setXmlParam("x", "117");
g_footer.setXmlParam("w", "-118");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showVis();
FIT_W_COMP;
updateSaving(1);
}
switchToIcOnly ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideEq();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
if (startup_done) ic_fileinfo.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 0;
dualwnd.setXmlParam("maxwidth", "-127");
dualwnd.sendAction("set_maxwidth", "", -127, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showFi();
FIT_WO_COMP;
updateSaving(1);
}
switchToEq ()
{ debugString("switc2eq @cbTimerRun="+integerToString(callbackTimer.isRunning()), 9);
debugString("switc2eq @tempDisableRun="+integerToString(tempDisable.isRunning()), 9);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
substract = 1;
ic_eq.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
dualwnd.setXmlParam("maxwidth", "-196");
dualwnd.sendAction("set_maxwidth", "", -196, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showEq();
updateSaving(4);
debugString("switc2eq finished", 9);
}
switchToCfg ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideEq();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
ic_config.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 2;
dualwnd.setXmlParam("maxwidth", "-242");
dualwnd.sendAction("set_maxwidth", "", -242, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showCfg();
updateSaving(5);
}
_Plsc_switchTo ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideEq();
hideCfg();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
_plsc_ic_attrib.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 0;
dualwnd.setXmlParam("maxwidth", "-156");
dualwnd.sendAction("set_maxwidth", "", -156, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
_Plsc_show();
updateSaving(3);
}
#ifdef IC_COVERFLOW
_Cflow_switchTo ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
hideVis();
hideCover();
hideFi();
hideEq();
hideCfg();
_Plsc_hide();
mychange = 1;
_cflow_ic_attrib.setData("1");
//ic_vis_fileinfo.setData("0");
//ic_vis.setData("0");
mychange = 0;
substract = 0;
dualwnd.setXmlParam("maxwidth", "-156");
dualwnd.sendAction("set_maxwidth", "", -156, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
_Cflow_show();
updateSaving(3);
}
#endif
switchToVis_Full ()
{
debugString(DEBUG_PREFIX "switchToVis_FULL();", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
closeIC();
hideVis();
hideCover();
hideEq();
//hideFi();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
ic_vis.setData("1");
vis_lefttoplayer_full_attrib.setData("1");
mychange = 0;
substract = 1;
dualwnd.setXmlParam("maxwidth", "-196");
dualwnd.sendAction("set_maxwidth", "", -196, 0 , 0, 0);
g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
updateFooter();
#ifdef DOHIDEMCV
dualwnd.setXmlParam("from", "right");
dualwnd.setXmlParam("minwidth", "147");
#endif
showVis_Full();
updateSaving(2);
}
#ifdef DOHIDEMCV
hideMCV ()
{
debugString(DEBUG_PREFIX "hideMCV();", D_WTF);
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis_Full();
closeIC();
hideVis();
hideCover();
hideEq();
//hideFi();
hideCfg();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
mychange = 1;
ic_hidden.setData("1");
mychange = 0;
updateSaving(0);
/*g_footer.setXmlParam("x", "6");
g_footer.setXmlParam("w", "-7");
dualwnd.setXmlParam("maxwidth", "-156");
dualwnd.sendAction("set_maxwidth", "", -156, 0 , 0, 0);*/
// dualwnd.setXmlParam("maxwidth", "-8");
// dualwnd.sendAction("set_maxwidth", "", -8, 0 , 0, 0);
dualwnd.setXmlParam("from", "left");
dualwnd.setXmlParam("minwidth", integerToString(8 - stringtoInteger(dualwnd.getXmlParam("maxwidth"))));
dualwnd.setXmlParam("maxwidth", "-155");
dualwnd.sendAction("set_maxwidth", "", -155, 0 , 0, 0);
dualwnd.setPosition(0);
updateSaving(6);
}
#endif
tempDisable.onTimer()
{
stop();
}
closeLC ()
{
if (callbackTimer.isRunning()) return;
if (tempDisable.isRunning()) return;
tempDisable.start();
hideVis();
hideCover();
hideCfg();
hideEq();
hideVis_Full();
_Plsc_hide();
#ifdef IC_COVERFLOW
_Cflow_hide();
#endif
}
closeIC ()
{
debugString(DEBUG_PREFIX "closeIC() {", 0);
hideFi();
onCloseIC();
debugString(DEBUG_PREFIX "}", 0);
}
openIC ()
{
debugString(DEBUG_PREFIX "openIC() {", 0);
showFi();
onOpenIC();
debugString(DEBUG_PREFIX "}", 0);
}
showFi()
{
debugString(DEBUG_PREFIX "showFi() {", 0);
showing_fi = 1;
setPrivateString(getSkinName(), "Component3", "File Info");
GuiObject o = sui_fi;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) fi object not provided (show)", 0);
#endif
onShowFi();
showing_Fi = 0;
debugString(DEBUG_PREFIX "}", 0);
}
hideFi()
{
debugString(DEBUG_PREFIX "hideFi() {", 0);
hiding_Fi = 1;
GuiObject o = sui_fi;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) sfi object not provided (hide)", 0);
#endif
onHideFi();
hiding_Fi = 0;
debugString(DEBUG_PREFIX "}", 0);
}
showVis()
{
//if (vis_inbig_attrib.getData() == "1") return;
debugString(DEBUG_PREFIX "showVis() {", D_WTF);
showing_vis = 1;
GuiObject o = sui_vis;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) vis object not provided (show)", D_WTF);
#endif
onShowVis();
showing_vis = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideVis()
{
debugString(DEBUG_PREFIX "hideVis() {", D_WTF);
hiding_vis = 1;
GuiObject o = sui_vis;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) vis object not provided (hide)", D_WTF);
#endif
onHideVis();
hiding_vis = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
showCover()
{
debugString(DEBUG_PREFIX "showCover() {", 0);
showing_Cover = 1;
GuiObject o = sui_Cover;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Cover object not provided (show)", 0);
#endif
onShowCover();
showing_Cover = 0;
debugString(DEBUG_PREFIX "}", 0);
}
hideCover()
{
debugString(DEBUG_PREFIX "hideCover() {", 0);
hiding_Cover = 1;
GuiObject o = sui_Cover;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", 0);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Cover object not provided (hide)", 0);
#endif
onHideCover();
hiding_Cover = 0;
debugString(DEBUG_PREFIX "}", 0);
}
showVis_Full()
{
debugString(DEBUG_PREFIX "showVis_Full() {", D_WTF);
showing_vis_full = 1;
GuiObject o = sui_vis_full;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Vis_Full object not provided (show)", D_WTF);
#endif
onShowVis_Full();
showing_vis_full = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideVis_Full()
{
debugString(DEBUG_PREFIX "hideVis_Full() {", D_WTF);
hiding_vis_full = 1;
GuiObject o = sui_vis_full;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Vis_Full object not provided (hide)", D_WTF);
#endif
onHideVis_Full();
hiding_vis_full = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
showEq()
{
debugString(DEBUG_PREFIX "showEq() {", D_WTF);
showing_eq = 1;
GuiObject o = sui_eq;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Vis_Full object not provided (show)", D_WTF);
#endif
onShowEq();
showing_eq = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideEq()
{
debugString(DEBUG_PREFIX "hideVis_Full() {", D_WTF);
hiding_eq = 1;
GuiObject o = sui_eq;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) Eq object not provided (hide)", D_WTF);
#endif
onHideEq();
hiding_eq = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
showCfg()
{
debugString(DEBUG_PREFIX "showCfg() {", D_WTF);
showing_cfg = 1;
GuiObject o = sui_cfg;
if (o != NULL)
{
bypasscancel = 1;
if (o) o.show();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) cfg_Full object not provided (show)", D_WTF);
#endif
onShowcfg();
showing_cfg = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
hideCfg()
{
debugString(DEBUG_PREFIX "hideVis_Full() {", D_WTF);
hiding_cfg = 1;
GuiObject o = sui_cfg;
if (o != NULL) {
bypasscancel = 1;
if (o) o.hide();
bypasscancel = 0;
debugString(DEBUG_PREFIX " --> ok", D_WTF);
}
#ifdef DEBUG
else debugString(DEBUG_PREFIX " --> (!) cfg object not provided (hide)", D_WTF);
#endif
onHidecfg();
hiding_cfg = 0;
debugString(DEBUG_PREFIX "}", D_WTF);
}
callbackTimer.onTimer()
{
callbackTimer.stop();
debugString(DEBUG_PREFIX "callbackTimer();", D_WTF);
int _callback_showing_vis = callback_showing_vis;
int _callback_hiding_vis = callback_hiding_vis;
int _callback_showing_fi = callback_showing_fi;
int _callback_hiding_fi = callback_hiding_fi;
int _callback_showing_cover = callback_showing_cover;
int _callback_hiding_cover = callback_hiding_cover;
int _callback_showing_vis_full = callback_showing_vis_full;
int _callback_hiding_vis_full = callback_hiding_vis_full;
int _callback_showing_eq = callback_showing_eq;
int _callback_hiding_eq = callback_hiding_eq;
int _callback_showing_cfg = callback_showing_cfg;
int _callback_hiding_cfg = callback_hiding_cfg;
int _plsc_callback_showing_temp = _plsc_callback_showing;
int _plsc_callback_hiding_temp = _plsc_callback_hiding;
#ifdef IC_COVERFLOW
int _cflow_callback_showing_temp = _cflow_callback_showing;
int _cflow_callback_hiding_temp = _cflow_callback_hiding;
#endif
callback_showing_vis = 0;
callback_hiding_vis = 0;
callback_showing_fi = 0;
callback_hiding_fi = 0;
callback_showing_cover = 0;
callback_hiding_cover = 0;
callback_showing_vis_full = 0;
callback_hiding_vis_full = 0;
callback_showing_eq = 0;
callback_hiding_eq = 0;
callback_showing_cfg = 0;
callback_hiding_cfg = 0;
_plsc_callback_showing = 0;
_plsc_callback_hiding = 0;
#ifdef IC_COVERFLOW
_cflow_callback_showing = 0;
_cflow_callback_hiding = 0;
#endif
if (_callback_showing_vis == 1)
{
ic_vis_fileinfo.setData("1");
ic_fileinfo.setData("1");
}
if (_callback_hiding_vis == 1)
{
ic_vis_fileinfo.setData("0");
}
if (_callback_showing_fi == 1)
{
showFi();
}
if (_callback_hiding_fi == 1)
{
hideFi();
}
if (_callback_showing_cover == 1)
{
ic_cover_fileinfo.setData("1");
ic_fileinfo.setData("1");
}
if (_callback_hiding_cover == 1)
{
ic_cover_fileinfo.setData("0");
}
if (_callback_showing_vis_full == 1)
{
switchToVis_Full();
}
if (_callback_hiding_vis_full == 1)
{
hideVis_Full();
}
if (_callback_showing_eq == 1)
{
switchToEq();
}
if (_callback_hiding_eq == 1)
{
hideEq();
}
if (_callback_showing_cfg == 1)
{
switchTocfg();
}
if (_callback_hiding_cfg == 1)
{
hidecfg();
}
if (_plsc_callback_showing_temp == 1)
{
_Plsc_switchTo();
}
if (_plsc_callback_hiding_temp == 1)
{
_Plsc_hide();
}
#ifdef IC_COVERFLOW
if (_cflow_callback_showing_temp == 1)
{
_Cflow_switchTo();
}
if (_cflow_callback_hiding_temp == 1)
{
_Cflow_hide();
}
#endif
}
dc_showFi ()
{
callback_showing_fi = 1;
callback_hiding_fi = 0;
callbackTimer.start();
}
dc_hideFi ()
{
callback_showing_fi = 0;
callback_hiding_fi = 1;
callbackTimer.start();
}
dc_showCover ()
{
callback_showing_cover = 1;
callback_hiding_cover = 0;
callbackTimer.start();
}
dc_hideCover ()
{
callback_showing_cover = 0;
callback_hiding_cover = 1;
callbackTimer.start();
}
dc_showVis ()
{
debugString(DEBUG_PREFIX "dc_showVis();", D_WTF);
callback_showing_vis = 1;
callback_hiding_vis = 0;
callbackTimer.start();
}
dc_hideVis ()
{
callback_showing_vis = 0;
callback_hiding_vis = 1;
callbackTimer.start();
}
dc_showVis_Full ()
{
debugString(DEBUG_PREFIX "dc_showVis_Full();", D_WTF);
callback_showing_vis_full = 1;
callback_hiding_vis_full = 0;
callbackTimer.start();
}
dc_hideVis_Full ()
{
callback_showing_vis_full = 0;
callback_hiding_vis_full = 1;
callbackTimer.start();
}
dc_showEq ()
{
debugString(DEBUG_PREFIX "dc_showVis_Full();", D_WTF);
callback_showing_eq = 1;
callback_hiding_eq = 0;
callbackTimer.start();
}
dc_hideEq ()
{
callback_showing_eq = 0;
callback_hiding_eq = 1;
callbackTimer.start();
}
dc_showCfg ()
{
debugString(DEBUG_PREFIX "dc_showVis_Full();", D_WTF);
callback_showing_Cfg = 1;
callback_hiding_Cfg = 0;
callbackTimer.start();
}
dc_hideCfg ()
{
callback_showing_Cfg = 0;
callback_hiding_Cfg = 1;
callbackTimer.start();
}

Some files were not shown because too many files have changed in this diff Show more