Added first (playable) Playlist-Element to ScreenSong. Still a lot to do!

This commit is contained in:
Florian Kuepper committed 2012-07-08 14:09:05 +02:00
1 parent 5e87b79ed4
commit 74f24125da
19 files changed
+933 -33

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

+500 -2
View File
@@ -72,6 +72,38 @@
<Height>26</Height>
</Reflection>
</StaticSearchBar>
<StaticPlaylistHeader>
<!--<Skin>: Texture name-->
<Skin>Menu</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>970</X>
<Y>40</Y>
<Z>-1,00</Z>
<W>295</W>
<H>40</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlaylistHeader>
<StaticPlaylistFooter>
<!--<Skin>: Texture name-->
<Skin>Menu</Skin>
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>970</X>
<Y>550</Y>
<Z>-1,00</Z>
<W>295</W>
<H>40</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticPlaylistFooter>
<ButtonOptionsSing>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -126,7 +158,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>40</X>
<Y>180</Y>
<Y>235</Y>
<Z>-2,11</Z>
<W>360</W>
<H>40</H>
@@ -173,7 +205,7 @@
<SkinSelected>Button</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>40</X>
<Y>225</Y>
<Y>290</Y>
<Z>-2,11</Z>
<W>360</W>
<H>40</H>
@@ -213,6 +245,194 @@
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonOptionsClose>
<ButtonPlaylistClose>
<!--<Skin>: Texture name-->
<Skin>CloseIcon</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>CloseIcon</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>1215</X>
<Y>42</Y>
<Z>-1,01</Z>
<W>35</W>
<H>35</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>180</X>
<Y>5</Y>
<!--<H>: Text height-->
<H>30</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>350</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlaylistClose>
<ButtonPlaylistSing>
<!--<Skin>: Texture name-->
<Skin>SingIcon</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>SingIcon</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>975</X>
<Y>553</Y>
<Z>-1,01</Z>
<W>35</W>
<H>35</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>180</X>
<Y>5</Y>
<!--<H>: Text height-->
<H>30</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>350</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlaylistSing>
<ButtonPlaylistSave>
<!--<Skin>: Texture name-->
<Skin>SaveIcon</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>SaveIcon</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>1175</X>
<Y>553</Y>
<Z>-1,01</Z>
<W>35</W>
<H>35</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>180</X>
<Y>5</Y>
<!--<H>: Text height-->
<H>30</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>350</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlaylistSave>
<ButtonPlaylistDelete>
<!--<Skin>: Texture name-->
<Skin>DeleteIcon</Skin>
<!--<SkinSelected>: Texture name for selected button-->
<SkinSelected>DeleteIcon</SkinSelected>
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
<X>1215</X>
<Y>553</Y>
<Z>-1,01</Z>
<W>35</W>
<H>35</H>
<!--<Color>: Button color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<Text>
<!--<X>, <Y>: Text position-->
<X>180</X>
<Y>5</Y>
<!--<H>: Text height-->
<H>30</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>350</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonTextColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonTextSColor</SColor>
<!--<Align>: Text align: Left, Center, Right-->
<Align>Center</Align>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
<!--<SReflection> If exists:-->
<!-- <Space>: Reflection Space of selected button-->
<!-- <Height>: Reflection Height of selected button-->
</ButtonPlaylistDelete>
<TextOptionsTitle>
<!--<X>, <Y>: Text position-->
<X>200</X>
@@ -367,6 +587,36 @@
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextSearchBar>
<TextPlaylistHeader>
<!--<X>, <Y>: Text position-->
<X>975</X>
<Y>45</Y>
<!--<Z>: Text position-->
<Z>-1,01</Z>
<!--<H>: Text height-->
<H>30</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>220</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Left</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPlaylistHeader>
<SelectSlideOptionsMode>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
@@ -432,6 +682,71 @@
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideOptionsMode>
<SelectSlideOptionsPlaylist>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>40</X>
<Y>190</Y>
<Z>-2,11</Z>
<W>360</W>
<H>40</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>45</ArrowLeftX>
<ArrowLeftY>195</ArrowLeftY>
<ArrowLeftZ>-2,12</ArrowLeftZ>
<ArrowLeftW>30</ArrowLeftW>
<ArrowLeftH>30</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>365</ArrowRightX>
<ArrowRightY>195</ArrowRightY>
<ArrowRightZ>-2,12</ArrowRightZ>
<ArrowRightW>30</ArrowRightW>
<ArrowRightH>30</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>30</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>280</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideOptionsPlaylist>
<SongMenu>
<!--<CoverBackground>: Texture name of cover background/tiles-->
<CoverBackground>CoverTile</CoverBackground>
@@ -671,5 +986,188 @@
</StaticMedleyTagIcon>
</SongMenuTileBoard>
</SongMenu>
<Playlist>
<X>970</X>
<Y>80</Y>
<W>295</W>
<H>460</H>
<Z>-1,00</Z>
<EntryHeight>50,00</EntryHeight>
<SkinBackground>CoverTile</SkinBackground>
<SkinBackgroundSelected>CoverTile</SkinBackgroundSelected>
<ColorBackground>StaticColorAlpha</ColorBackground>
<SColorBackground>StaticColor</SColorBackground>
<TextPart1>
<!--<X>, <Y>: Text position-->
<X>54</X>
<Y>4</Y>
<!--<Z>: Text position-->
<Z>-1,01</Z>
<!--<H>: Text height-->
<H>24</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>235</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Left</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Top</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text>%a - %t</Text>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPart1>
<TextPart2>
<!--<X>, <Y>: Text position-->
<X>222</X>
<Y>456</Y>
<!--<Z>: Text position-->
<Z>-1,01</Z>
<!--<H>: Text height-->
<H>38</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>340</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPart2>
<TextPart3>
<!--<X>, <Y>: Text position-->
<X>222</X>
<Y>456</Y>
<!--<Z>: Text position-->
<Z>-1,01</Z>
<!--<H>: Text height-->
<H>38</H>
<!--<MaxW>: Maximum text width (if exists)-->
<MaxW>340</MaxW>
<!--<Color>: Text color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>StaticColor</Color>
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>TextSColor</SColor>
<!--<Align>: Text align horizontal: Left, Center, Right-->
<Align>Center</Align>
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
<HAlign>Center</HAlign>
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
<Style>Bold</Style>
<!--<Font>: Text font name-->
<Font>Outline</Font>
<!--<Text>: Text or translation tag-->
<Text />
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</TextPart3>
<StaticCover>
<!--<Skin>: Texture name-->
<Skin />
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
<X>4</X>
<Y>2</Y>
<Z>-1,00</Z>
<W>46</W>
<H>46</H>
<!--<Color>: Static color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>Visible</Color>
<!--<Reflection> If exists:-->
<!-- <Space>: Reflection Space-->
<!-- <Height>: Reflection Height-->
</StaticCover>
<SelectSlideGameMode>
<!--<Skin>: Texture name-->
<Skin>Button</Skin>
<!--<SkinArrowLeft>: Texture name of left arrow-->
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
<!--<SkinArrowRight>: Texture name of right arrow-->
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
<!--<SkinSelected>: Texture name for selected SelectSlide-->
<SkinSelected>SelectSlide</SkinSelected>
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
<SkinHighlighted>SelectSlide</SkinHighlighted>
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
<X>54</X>
<Y>28</Y>
<Z>-1,01</Z>
<W>235</W>
<H>24</H>
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
<ArrowLeftX>54</ArrowLeftX>
<ArrowLeftY>30</ArrowLeftY>
<ArrowLeftZ>0,00</ArrowLeftZ>
<ArrowLeftW>20</ArrowLeftW>
<ArrowLeftH>20</ArrowLeftH>
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
<ArrowRightX>110</ArrowRightX>
<ArrowRightY>30</ArrowRightY>
<ArrowRightZ>0,00</ArrowRightZ>
<ArrowRightW>20</ArrowRightW>
<ArrowRightH>20</ArrowRightH>
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
<!--or <R>, <G>, <B>, <A> (lower priority)-->
<Color>ButtonColor</Color>
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
<SColor>ButtonSColor</SColor>
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
<HColor>SelectSlideHColor</HColor>
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
<ArrowColor>ArrowColor</ArrowColor>
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
<ArrowSColor>ArrowSColor</ArrowSColor>
<!--<TextColor>: Text color from ColorScheme (high priority)-->
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
<TextColor>TextColor</TextColor>
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
<TextSColor>TextSColor</TextSColor>
<!--<TextH>: Text height-->
<TextH>24,00</TextH>
<!--<TextMaxW>: Maximum text width (if exists)-->
<TextMaxW>230,00</TextMaxW>
<!--<TextFont>: Text font name-->
<TextFont>Outline</TextFont>
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
<TextStyle>Bold</TextStyle>
<!--<NumVisible>: Number of visible elements in the slide-->
<NumVisible>1</NumVisible>
</SelectSlideGameMode>
</Playlist>
</ScreenSong>
</root>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

+10
View File
@@ -166,6 +166,12 @@
<B>0,969</B>
<A>1,000</A>
</SelectSlideColor>
<SelectSlideColorAlpha>
<R>0,675</R>
<G>0,890</G>
<B>0,969</B>
<A>0,500</A>
</SelectSlideColorAlpha>
<SelectSlideHColor>
<R>0,675</R>
<G>0,890</G>
@@ -315,6 +321,10 @@
<PauseIcon>PauseIcon.png</PauseIcon>
<RepeatIcon>RepeatIcon.png</RepeatIcon>
<SongMenuBG>SongMenuBG.png</SongMenuBG>
<CloseIcon>Close.png</CloseIcon>
<DeleteIcon>Delete.png</DeleteIcon>
<SaveIcon>Save.png</SaveIcon>
<SingIcon>Sing.png</SingIcon>
</Skins>
<Videos>
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
+10
View File
@@ -130,6 +130,12 @@
<B>0,674</B>
<A>1,000</A>
</StaticColor>
<StaticColorAlpha>
<R>0,709</R>
<G>0,968</G>
<B>0,674</B>
<A>0,500</A>
</StaticColorAlpha>
<StaticWarningColor>
<R>0,709</R>
<G>0,968</G>
@@ -315,6 +321,10 @@
<PauseIcon>PauseIcon.png</PauseIcon>
<RepeatIcon>RepeatIcon.png</RepeatIcon>
<SongMenuBG>SongMenuBG.png</SongMenuBG>
<CloseIcon>Close.png</CloseIcon>
<DeleteIcon>Delete.png</DeleteIcon>
<SaveIcon>Save.png</SaveIcon>
<SingIcon>Sing.png</SingIcon>
</Skins>
<Videos>
<BG_Video>[Green]BG_Video.mp4</BG_Video>
+10
View File
@@ -130,6 +130,12 @@
<B>0,674</B>
<A>1,000</A>
</StaticColor>
<StaticColorAlpha>
<R>0,968</R>
<G>0,674</G>
<B>0,674</B>
<A>0,500</A>
</StaticColorAlpha>
<StaticWarningColor>
<R>0,968</R>
<G>0,674</G>
@@ -315,6 +321,10 @@
<PauseIcon>PauseIcon.png</PauseIcon>
<RepeatIcon>RepeatIcon.png</RepeatIcon>
<SongMenuBG>SongMenuBG.png</SongMenuBG>
<CloseIcon>Close.png</CloseIcon>
<DeleteIcon>Delete.png</DeleteIcon>
<SaveIcon>Save.png</SaveIcon>
<SingIcon>Sing.png</SingIcon>
</Skins>
<Videos>
<BG_Video>[Red]BG_Video.mp4</BG_Video>
+10
View File
@@ -130,6 +130,12 @@
<B>0,674</B>
<A>1,000</A>
</StaticColor>
<StaticColorAlpha>
<R>0,968</R>
<G>0,956</G>
<B>0,674</B>
<A>0,500</A>
</StaticColorAlpha>
<StaticWarningColor>
<R>0,968</R>
<G>0,956</G>
@@ -315,6 +321,10 @@
<PauseIcon>PauseIcon.png</PauseIcon>
<RepeatIcon>RepeatIcon.png</RepeatIcon>
<SongMenuBG>SongMenuBG.png</SongMenuBG>
<CloseIcon>Close.png</CloseIcon>
<DeleteIcon>Delete.png</DeleteIcon>
<SaveIcon>Save.png</SaveIcon>
<SingIcon>Sing.png</SingIcon>
</Skins>
<Videos>
<BG_Video>[Yellow]BG_Video.mp4</BG_Video>
@@ -1,5 +1,16 @@
ScreenSong
++++++++++
Version 3:
Add:
<StaticPlaylistHeader>, <StaticPlaylistFooter>, <StaticOptionsBG>
<TextOptionsTitle>, <TextPlaylistHeader>
<ButtonOptionsSing>, <ButtonOptionsClose>, <ButtonOptionsPlaylist>, <ButtonPlaylistClose>, <ButtonPlaylistSing>, <ButtonPlaylistSave>, <ButtonPlaylistDelete>
<SelectSlideOptionsMode>, <SelectSlideOptionsPlaylist>
and
<Playlist> as a new Screen-Element. For details, look at ScreenSong.xml
++++++++++
Version 2:
+29
View File
@@ -21,6 +21,19 @@ namespace Vocaluxe.Base
get { return _Playlists.ToArray(); }
}
public static string[] PlaylistNames
{
get
{
List<string> names = new List<string>();
for (int i = 0; i < _Playlists.Count; i++)
{
names.Add(_Playlists[i].PlaylistName);
}
return names.ToArray();
}
}
public static int NumPlaylists
{
get { return _Playlists.Count; }
@@ -40,6 +53,7 @@ namespace Vocaluxe.Base
foreach (string file in files)
{
CPlaylist playlist = new CPlaylist(file);
_Playlists.Add(playlist);
}
SortPlaylistsByName();
@@ -75,6 +89,21 @@ namespace Vocaluxe.Base
}
}
public static void SavePlaylist(int PlaylistID)
{
if (PlaylistID < 0 || PlaylistID >= _Playlists.Count)
return;
_Playlists[PlaylistID].SavePlaylist();
}
public static int NewPlaylist()
{
CPlaylist pl = new CPlaylist();
pl.PlaylistName = "New Playlist";
_Playlists.Add(pl);
return (_Playlists.Count - 1);
}
#endregion
}
}
+47 -21
View File
@@ -36,17 +36,19 @@ namespace Vocaluxe.Lib.Playlist
public string PlaylistName;
public string PlaylistFile;
public List<CPlaylistSong> Songs;
public List<CPlaylistSong> Songs = new List<CPlaylistSong>();
public CPlaylist()
{
Init();
PlaylistName = string.Empty;
PlaylistFile = string.Empty;
}
public CPlaylist(string file)
{
Init();
PlaylistName = file;
PlaylistFile = file;
LoadPlaylist();
}
@@ -58,29 +60,32 @@ namespace Vocaluxe.Lib.Playlist
}
private void SavePlaylist()
public void SavePlaylist()
{
string filename = string.Empty;
foreach (char chr in PlaylistName)
if (PlaylistFile == string.Empty)
{
if (char.IsLetter(chr))
filename += chr.ToString();
}
if (filename == String.Empty)
filename = "1";
int i = 0;
while (File.Exists(Path.Combine(CSettings.sFolderPlaylists, filename + ".xml")))
{
i++;
if (!File.Exists(Path.Combine(CSettings.sFolderPlaylists, filename + i + ".xml")))
string filename = string.Empty;
foreach (char chr in PlaylistName)
{
filename += i;
if (char.IsLetter(chr))
filename += chr.ToString();
}
}
PlaylistFile = Path.Combine(CSettings.sFolderPlaylists, filename + ".xml");
if (filename == String.Empty)
filename = "1";
int i = 0;
while (File.Exists(Path.Combine(CSettings.sFolderPlaylists, filename + ".xml")))
{
i++;
if (!File.Exists(Path.Combine(CSettings.sFolderPlaylists, filename + i + ".xml")))
{
filename += i;
}
}
PlaylistFile = Path.Combine(CSettings.sFolderPlaylists, filename + ".xml");
}
XmlWriter writer;
try
@@ -107,7 +112,7 @@ namespace Vocaluxe.Lib.Playlist
writer.WriteEndElement();
writer.WriteStartElement("Songs");
for (i = 0; i < Songs.Count; i++)
for (int i = 0; i < Songs.Count; i++)
{
CSong song = CSongs.GetSong(Songs[i].SongID);
if (song != null)
@@ -202,5 +207,26 @@ namespace Vocaluxe.Lib.Playlist
}
}
}
public void AddSong(int SongID)
{
CPlaylistSong song = new CPlaylistSong();
song.SongID = SongID;
if (CSongs.GetSong(SongID).IsDuet)
song.GameMode = EGameMode.TR_GAMEMODE_DUET;
else
song.GameMode = EGameMode.TR_GAMEMODE_NORMAL;
Songs.Add(song);
}
public void AddSong(int SongID, EGameMode gm)
{
CPlaylistSong song = new CPlaylistSong();
song.SongID = SongID;
song.GameMode = gm;
Songs.Add(song);
}
}
}
+18
View File
@@ -7,6 +7,7 @@ using System.Text.RegularExpressions;
using Vocaluxe.Base;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu;
using Vocaluxe.GameModes;
namespace Vocaluxe.Lib.Song
{
@@ -148,6 +149,23 @@ namespace Vocaluxe.Lib.Song
// Notes
public CNotes Notes = new CNotes();
public EGameMode[] AvailableGameModes
{
get
{
List<EGameMode> gms = new List<EGameMode>();
if (IsDuet)
gms.Add(EGameMode.TR_GAMEMODE_DUET);
else
gms.Add(EGameMode.TR_GAMEMODE_NORMAL);
if (Medley.Source != EMedleySource.None)
gms.Add(EGameMode.TR_GAMEMODE_MEDLEY);
gms.Add(EGameMode.TR_GAMEMODE_SHORTSONG);
return gms.ToArray();
}
}
public CSong()
{
}
+2 -1
View File
@@ -14,7 +14,8 @@ namespace Vocaluxe.Menu
TSongMenu,
TLyric,
TSingNote,
TNameSelection
TNameSelection,
TPlaylist
}
class CInteraction
+111 -2
View File
@@ -36,6 +36,7 @@ namespace Vocaluxe.Menu
private List<CLyric> _Lyrics;
private List<CSingNotes> _SingNotes;
private List<CNameSelection> _NameSelections;
private List<CPlaylist> _Playlists;
private Hashtable _htBackgrounds;
private Hashtable _htStatics;
@@ -46,6 +47,7 @@ namespace Vocaluxe.Menu
private Hashtable _htSelectSlides;
private Hashtable _htSingNotes;
private Hashtable _htNameSelections;
private Hashtable _htPlaylists;
private int _PrevMouseX;
@@ -67,6 +69,7 @@ namespace Vocaluxe.Menu
protected string[] _ThemeSelectSlides;
protected string[] _ThemeSingNotes;
protected string[] _ThemeNameSelections;
protected string[] _ThemePlaylists;
protected SRectF _ScreenArea;
@@ -99,6 +102,7 @@ namespace Vocaluxe.Menu
_Lyrics = new List<CLyric>();
_SingNotes = new List<CSingNotes>();
_NameSelections = new List<CNameSelection>();
_Playlists = new List<CPlaylist>();
_htBackgrounds = new Hashtable();
_htStatics = new Hashtable();
@@ -109,6 +113,7 @@ namespace Vocaluxe.Menu
_htSelectSlides = new Hashtable();
_htSingNotes = new Hashtable();
_htNameSelections = new Hashtable();
_htPlaylists = new Hashtable();
_PrevMouseX = 0;
_PrevMouseY = 0;
@@ -129,6 +134,7 @@ namespace Vocaluxe.Menu
_ThemeSelectSlides = null;
_ThemeSingNotes = null;
_ThemeNameSelections = null;
_ThemePlaylists = null;
}
#region ThemeHandler
@@ -311,6 +317,22 @@ namespace Vocaluxe.Menu
}
}
}
if (_ThemePlaylists != null)
{
for (int i = 0; i < _ThemePlaylists.Length; i++)
{
CPlaylist pls = new CPlaylist();
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], navigator, SkinIndex))
{
_htPlaylists.Add(_ThemePlaylists[i], AddPlaylist(pls));
}
else
{
CLog.LogError("Can't load Playlist \"" + _ThemePlaylists[i] + "\" in screen " + _ThemeName);
}
}
}
}
else
{
@@ -386,6 +408,12 @@ namespace Vocaluxe.Menu
_NameSelections[i].SaveTheme(writer);
}
//Playlists
for (int i = 0; i < _Playlists.Count; i++)
{
_Playlists[i].SaveTheme(writer);
}
writer.WriteEndElement();
// End of File
@@ -442,6 +470,11 @@ namespace Vocaluxe.Menu
{
ns.ReloadTextures();
}
foreach (CPlaylist pls in _Playlists)
{
pls.ReloadTextures();
}
}
public virtual void UnloadTextures()
@@ -490,7 +523,10 @@ namespace Vocaluxe.Menu
{
ns.UnloadTextures();
}
foreach (CPlaylist pls in _Playlists)
{
pls.UnloadTextures();
}
}
@@ -547,6 +583,11 @@ namespace Vocaluxe.Menu
{
return _NameSelections;
}
public List<CPlaylist> GetPlaylists()
{
return _Playlists;
}
#endregion GetLists
#region ElementHandler
@@ -622,6 +663,14 @@ namespace Vocaluxe.Menu
return _NameSelections.ToArray();
}
}
public CPlaylist[] Playlists
{
get
{
return _Playlists.ToArray();
}
}
#endregion Get Arrays
#region Hashtables
@@ -741,6 +790,19 @@ namespace Vocaluxe.Menu
throw;
}
}
public int htPlaylists(string key)
{
try
{
return (int)_htPlaylists[key];
}
catch (Exception)
{
CLog.LogError("Can't find Playlist Element \"" + key + "\" in Screen " + _ThemeName);
throw;
}
}
#endregion Hashtables
#endregion ElementHandler
@@ -999,7 +1061,8 @@ namespace Vocaluxe.Menu
_Interactions[i].Type == EType.TStatic ||
_Interactions[i].Type == EType.TNameSelection ||
_Interactions[i].Type == EType.TText ||
_Interactions[i].Type == EType.TSongMenu))
_Interactions[i].Type == EType.TSongMenu ||
_Interactions[i].Type == EType.TPlaylist))
{
ZSort zs = new ZSort();
zs.ID = i;
@@ -1085,6 +1148,13 @@ namespace Vocaluxe.Menu
_AddInteraction(_NameSelections.Count - 1, EType.TNameSelection);
return _NameSelections.Count - 1;
}
public int AddPlaylist(CPlaylist pls)
{
_Playlists.Add(pls);
_AddInteraction(_Playlists.Count - 1, EType.TPlaylist);
return _Playlists.Count - 1;
}
#endregion Elements
#region InteractionHandling
@@ -1233,6 +1303,10 @@ namespace Vocaluxe.Menu
if (CHelper.IsInBounds(_NameSelections[interact.Num].Rect, x, y))
return true;
break;
case EType.TPlaylist:
if (CHelper.IsInBounds(_Playlists[interact.Num].Rect, x, y))
return true;
break;
}
return false;
}
@@ -1255,6 +1329,8 @@ namespace Vocaluxe.Menu
return _Lyrics[interact.Num].Rect.Z;
case EType.TNameSelection:
return _NameSelections[interact.Num].Rect.Z;
case EType.TPlaylist:
return _Playlists[interact.Num].Rect.Z;
}
return CSettings.zFar;
}
@@ -1283,6 +1359,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
return _NameSelections[_Interactions[interaction].Num].Rect.Z;
case EType.TPlaylist:
return _Playlists[_Interactions[interaction].Num].Rect.Z;
}
return CSettings.zFar;
@@ -1605,6 +1684,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].Selected = true;
break;
case EType.TPlaylist:
//_Playlists[_Interactions[_Selection].Num].Selected = true;
break;
}
}
@@ -1633,6 +1715,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].Selected = false;
break;
case EType.TPlaylist:
//_Playlists[_Interactions[_Selection].Num].Selected = true;
break;
}
}
@@ -1664,6 +1749,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
//_NameSelections[_Interactions[selection].Num].Selected = true;
break;
case EType.TPlaylist:
//_Playlists[_Interactions[_Selection].Num].Selected = true;
break;
}
}
@@ -1695,6 +1783,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
//_NameSelections[_Interactions[selection].Num].Selected = false;
break;
case EType.TPlaylist:
//_Playlists[_Interactions[_Selection].Num].Selected = true;
break;
}
}
@@ -1744,6 +1835,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
return _NameSelections[_Interactions[interaction].Num].Visible;
case EType.TPlaylist:
return _Playlists[_Interactions[interaction].Num].Visible;
}
return false;
@@ -1774,6 +1868,9 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
return _NameSelections[_Interactions[interaction].Num].Rect;
case EType.TPlaylist:
return _Playlists[_Interactions[interaction].Num].Rect;
}
return Result;
@@ -1815,6 +1912,10 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
_NameSelections[_Interactions[interaction].Num].Draw();
break;
case EType.TPlaylist:
_Playlists[_Interactions[interaction].Num].Draw();
break;
//TODO:
//case EType.TLyric:
@@ -1859,6 +1960,10 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].MoveElement(stepX, stepY);
break;
case EType.TPlaylist:
_Playlists[_Interactions[_Selection].Num].MoveElement(stepX, stepY);
break;
}
}
}
@@ -1896,6 +2001,10 @@ namespace Vocaluxe.Menu
case EType.TNameSelection:
_NameSelections[_Interactions[_Selection].Num].ResizeElement(stepW, stepH);
break;
case EType.TPlaylist:
_Playlists[_Interactions[_Selection].Num].ResizeElement(stepW, stepH);
break;
}
}
}
+8
View File
@@ -112,6 +112,14 @@ namespace Vocaluxe.Menu
}
}
public int NumValues
{
get
{
return _ValueNames.Count;
}
}
private int _NumVisible = -1;
public int NumVisible
{
+2 -2
View File
@@ -383,10 +383,10 @@ namespace Vocaluxe.Menu.SongMenu
writer.WriteElementString("SpaceH", _Theme.songMenuTileBoard.spaceH.ToString("#0.00"));
writer.WriteComment("<NumWsmall>: Number of tiles horizontal in small-mode");
writer.WriteElementString("NumW", _Theme.songMenuTileBoard.numW.ToString());
writer.WriteElementString("NumWsmall", _Theme.songMenuTileBoard.numW.ToString());
writer.WriteComment("<NumHsmall>: Number of tiles vertical in small-mode");
writer.WriteElementString("NumH", _Theme.songMenuTileBoard.numH.ToString());
writer.WriteElementString("NumHsmall", _Theme.songMenuTileBoard.numH.ToString());
writer.WriteComment("<TileRectX>, <TileRectY>, <TileRectZ>, <TileRectW>, <TileRectH>: SongMenu position, width and height");
writer.WriteElementString("TileRectX", _Theme.songMenuTileBoard.TileRect.X.ToString("#0"));
+164 -5
View File
@@ -25,21 +25,31 @@ namespace Vocaluxe.Screens
private const string TextSearchBarTitle = "TextSearchBarTitle";
private const string TextSearchBar = "TextSearchBar";
private const string TextOptionsTitle = "TextOptionsTitle";
private const string TextPlaylistHeader = "TextPlaylistHeader";
private const string ButtonOptionsSing = "ButtonOptionsSing";
private const string ButtonOptionsPlaylist = "ButtonOptionsPlaylist";
private const string ButtonOptionsClose = "ButtonOptionsClose";
private const string ButtonPlaylistClose = "ButtonPlaylistClose";
private const string ButtonPlaylistSing = "ButtonPlaylistSing";
private const string ButtonPlaylistSave = "ButtonPlaylistSave";
private const string ButtonPlaylistDelete = "ButtonPlaylistDelete";
private const string SelectSlideOptionsMode = "SelectSlideOptionsMode";
private const string SelectSlideOptionsPlaylist = "SelectSlideOptionsPlaylist";
private const string StaticSearchBar = "StaticSearchBar";
private const string StaticOptionsBG = "StaticOptionsBG";
private const string StaticPlaylistHeader = "StaticPlaylistHeader";
private const string StaticPlaylistFooter = "StaticPlaylistFooter";
private const string SongMenu = "SongMenu";
private const string Playlist = "Playlist";
private string _SearchText = String.Empty;
private bool _SearchActive = false;
private bool _SongOptionsActive = false;
private int _OpenedPlaylist = -1;
private List<GameModes.EGameMode> _AvailableGameModes;
public CScreenSong()
@@ -55,22 +65,32 @@ namespace Vocaluxe.Screens
_ThemeName = "ScreenSong";
_ScreenVersion = ScreenVersion;
_ThemeStatics = new string[] { StaticSearchBar, StaticOptionsBG };
_ThemeTexts = new string[] { TextCategory, TextSelection, TextSearchBarTitle, TextSearchBar, TextOptionsTitle };
_ThemeButtons = new string[] { ButtonOptionsClose, ButtonOptionsPlaylist, ButtonOptionsSing };
_ThemeSelectSlides = new string[] { SelectSlideOptionsMode };
_ThemeStatics = new string[] { StaticSearchBar, StaticOptionsBG, StaticPlaylistHeader, StaticPlaylistFooter };
_ThemeTexts = new string[] { TextCategory, TextSelection, TextSearchBarTitle, TextSearchBar, TextOptionsTitle, TextPlaylistHeader };
_ThemeButtons = new string[] { ButtonOptionsClose, ButtonOptionsPlaylist, ButtonOptionsSing, ButtonPlaylistClose, ButtonPlaylistSing, ButtonPlaylistSave, ButtonPlaylistDelete };
_ThemeSelectSlides = new string[] { SelectSlideOptionsMode, SelectSlideOptionsPlaylist };
_ThemeSongMenus = new string[] { SongMenu };
_ThemePlaylists = new string[] { Playlist };
}
public override void LoadTheme()
{
base.LoadTheme();
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Visible = false;
Buttons[htButtons(ButtonOptionsClose)].Visible = false;
Buttons[htButtons(ButtonOptionsSing)].Visible = false;
Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false;
Buttons[htButtons(ButtonPlaylistClose)].Visible = false;
Buttons[htButtons(ButtonPlaylistSing)].Visible = false;
Buttons[htButtons(ButtonPlaylistSave)].Visible = false;
Buttons[htButtons(ButtonPlaylistDelete)].Visible = false;
Texts[htTexts(TextOptionsTitle)].Visible = false;
Texts[htTexts(TextPlaylistHeader)].Visible = false;
Statics[htStatics(StaticOptionsBG)].Visible = false;
Statics[htStatics(StaticPlaylistHeader)].Visible = false;
Statics[htStatics(StaticPlaylistFooter)].Visible = false;
Playlists[htPlaylists(Playlist)].Visible = false;
}
public override bool HandleInput(KeyEvent KeyEvent)
@@ -185,14 +205,40 @@ namespace Vocaluxe.Screens
{
case Keys.Enter:
if (Buttons[htButtons(ButtonOptionsClose)].Selected)
{
ToggleSongOptions();
}
else if (Buttons[htButtons(ButtonOptionsSing)].Selected)
{
ToggleSongOptions();
StartSong(SongMenus[htSongMenus(SongMenu)].GetSelectedSong());
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
//Open a playlist and add song
if (_OpenedPlaylist != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection - 1))
{
_OpenedPlaylist = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection - 1;
if (_OpenedPlaylist < 0)
_OpenedPlaylist = CPlaylists.NewPlaylist();
CPlaylists.Playlists[_OpenedPlaylist].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID);
OpenPlaylist(_OpenedPlaylist);
}
//Create a new playlist and add song
else if ((SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection - 1) == -1)
{
_OpenedPlaylist = CPlaylists.NewPlaylist();
CPlaylists.Playlists[_OpenedPlaylist].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID);
OpenPlaylist(_OpenedPlaylist);
}
//Add song to loaded playlist
else
{
CPlaylists.Playlists[_OpenedPlaylist].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID);
Playlists[htPlaylists(Playlist)].UpdatePlaylist();
}
ToggleSongOptions();
}
break;
case Keys.Escape:
@@ -251,7 +297,31 @@ namespace Vocaluxe.Screens
}
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
{
SongMenus[htSongMenus(SongMenu)].SetSmallView(true);
//Open a playlist and add song
if (_OpenedPlaylist != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection - 1))
{
_OpenedPlaylist = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection - 1;
if (_OpenedPlaylist < 0)
_OpenedPlaylist = CPlaylists.NewPlaylist();
CPlaylists.Playlists[_OpenedPlaylist].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID);
OpenPlaylist(_OpenedPlaylist);
}
//Create a new playlist and add song
else if ((SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection - 1) == -1)
{
_OpenedPlaylist = CPlaylists.NewPlaylist();
CPlaylists.Playlists[_OpenedPlaylist].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID);
OpenPlaylist(_OpenedPlaylist);
UpdatePlaylistNames();
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Selection = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].NumValues - 1;
}
//Add song to loaded playlist
else
{
CPlaylists.Playlists[_OpenedPlaylist].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID);
Playlists[htPlaylists(Playlist)].UpdatePlaylist();
}
ToggleSongOptions();
}
}
if (MouseEvent.RB)
@@ -260,6 +330,31 @@ namespace Vocaluxe.Screens
}
}
if (_OpenedPlaylist > -1)
{
if (MouseEvent.LB && IsMouseOver(MouseEvent))
{
if (Buttons[htButtons(ButtonPlaylistClose)].Selected)
{
ClosePlaylist();
}
else if (Buttons[htButtons(ButtonPlaylistSing)].Selected)
{
StartPlaylistSongs();
}
else if (Buttons[htButtons(ButtonPlaylistSave)].Selected)
{
CPlaylists.SavePlaylist(_OpenedPlaylist);
}
else if (Buttons[htButtons(ButtonPlaylistDelete)].Selected)
{
CPlaylists.DeletePlaylist(_OpenedPlaylist);
ClosePlaylist();
UpdatePlaylistNames();
}
}
}
return true;
}
@@ -268,11 +363,16 @@ namespace Vocaluxe.Screens
base.OnShow();
CGame.EnterNormalGame();
SongMenus[htSongMenus(SongMenu)].OnShow();
Playlists[htPlaylists(Playlist)].Init();
if(_OpenedPlaylist != -1)
Playlists[htPlaylists(Playlist)].LoadPlaylist(_OpenedPlaylist);
UpdatePlaylistNames();
}
public override bool UpdateGame()
{
SongMenus[htSongMenus(SongMenu)].Update();
Playlists[htPlaylists(Playlist)].Visible = SongMenus[htSongMenus(SongMenu)].IsSmallView();
Texts[htTexts(TextCategory)].Text = CSongs.GetActualCategoryName();
if (CSongs.Category > -1 || CConfig.Tabs == EOffOn.TR_CONFIG_OFF)
@@ -368,6 +468,22 @@ namespace Vocaluxe.Screens
}
}
private void StartPlaylistSongs()
{
CGame.Reset();
CGame.ClearSongs();
if (_OpenedPlaylist > -1 && _OpenedPlaylist < CPlaylists.NumPlaylists)
{
for (int i = 0; i < CPlaylists.Playlists[_OpenedPlaylist].Songs.Count; i++)
{
CGame.AddSong(CPlaylists.Playlists[_OpenedPlaylist].Songs[i].SongID, CPlaylists.Playlists[_OpenedPlaylist].Songs[i].GameMode);
}
if (CGame.GetNumSongs() > 0)
CGraphics.FadeTo(EScreens.ScreenNames);
}
}
private void StartRandomAllSongs()
{
CGame.Reset();
@@ -498,6 +614,7 @@ namespace Vocaluxe.Screens
_AvailableGameModes.Add(GameModes.EGameMode.TR_GAMEMODE_MEDLEY);
}
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = true;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Visible = true;
Buttons[htButtons(ButtonOptionsClose)].Visible = true;
Buttons[htButtons(ButtonOptionsSing)].Visible = true;
Buttons[htButtons(ButtonOptionsPlaylist)].Visible = true;
@@ -507,6 +624,7 @@ namespace Vocaluxe.Screens
else
{
SelectSlides[htSelectSlides(SelectSlideOptionsMode)].Visible = false;
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Visible = false;
Buttons[htButtons(ButtonOptionsClose)].Visible = false;
Buttons[htButtons(ButtonOptionsSing)].Visible = false;
Buttons[htButtons(ButtonOptionsPlaylist)].Visible = false;
@@ -514,5 +632,46 @@ namespace Vocaluxe.Screens
Statics[htStatics(StaticOptionsBG)].Visible = false;
}
}
private void OpenPlaylist(int PlaylistID)
{
if (CPlaylists.Playlists.Length > PlaylistID && PlaylistID > -1)
{
_OpenedPlaylist = PlaylistID;
Playlists[htPlaylists(Playlist)].LoadPlaylist(_OpenedPlaylist);
SongMenus[htSongMenus(SongMenu)].SetSmallView(true);
Playlists[htPlaylists(Playlist)].Visible = true;
Statics[htStatics(StaticPlaylistHeader)].Visible = true;
Statics[htStatics(StaticPlaylistFooter)].Visible = true;
Texts[htTexts(TextPlaylistHeader)].Visible = true;
Texts[htTexts(TextPlaylistHeader)].Text = CPlaylists.Playlists[PlaylistID].PlaylistName;
Buttons[htButtons(ButtonPlaylistClose)].Visible = true;
Buttons[htButtons(ButtonPlaylistSing)].Visible = true;
Buttons[htButtons(ButtonPlaylistSave)].Visible = true;
Buttons[htButtons(ButtonPlaylistDelete)].Visible = true;
}
}
private void ClosePlaylist()
{
_OpenedPlaylist = -1;
SongMenus[htSongMenus(SongMenu)].SetSmallView(false);
Playlists[htPlaylists(Playlist)].Visible = false;
Statics[htStatics(StaticPlaylistHeader)].Visible = false;
Statics[htStatics(StaticPlaylistFooter)].Visible = false;
Texts[htTexts(TextPlaylistHeader)].Visible = false;
Texts[htTexts(TextPlaylistHeader)].Text = String.Empty;
Buttons[htButtons(ButtonPlaylistClose)].Visible = false;
Buttons[htButtons(ButtonPlaylistSing)].Visible = false;
Buttons[htButtons(ButtonPlaylistSave)].Visible = false;
Buttons[htButtons(ButtonPlaylistDelete)].Visible = false;
}
private void UpdatePlaylistNames()
{
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].Clear();
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].AddValue("TR_SCREENSONG_NEWPLAYLIST");
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylist)].AddValues(CPlaylists.PlaylistNames);
}
}
}
+1
View File
@@ -214,6 +214,7 @@
<Compile Include="Menu\CLyric.cs" />
<Compile Include="Menu\CMenu.cs" />
<Compile Include="Menu\CInteraction.cs" />
<Compile Include="Menu\CPlaylist.cs" />
<Compile Include="Menu\CSelectSlide.cs" />
<Compile Include="Menu\CStatic.cs" />
<Compile Include="Menu\CText.cs" />