2025-04-07 16:54:10 +08:00
using System.IO ;
namespace DualScreenDemo
{
public partial class PrimaryForm
{
private Button newSongAlertButton ;
private Bitmap newSongAlertNormalBackground ;
private Bitmap newSongAlertActiveBackground ;
private Button guoYuButtonNewSong ;
private Bitmap guoYuNewSongNormalBackground ;
private Bitmap guoYuNewSongActiveBackground ;
private Button taiYuButtonNewSong ;
private Bitmap taiYuNewSongNormalBackground ;
private Bitmap taiYuNewSongActiveBackground ;
private Button yueYuButtonNewSong ;
private Bitmap yueYuNewSongNormalBackground ;
private Bitmap yueYuNewSongActiveBackground ;
private Button yingWenButtonNewSong ;
private Bitmap yingWenNewSongNormalBackground ;
private Bitmap yingWenNewSongActiveBackground ;
private Button riYuButtonNewSong ;
private Bitmap riYuNewSongNormalBackground ;
private Bitmap riYuNewSongActiveBackground ;
private Button hanYuButtonNewSong ;
private Bitmap hanYuNewSongNormalBackground ;
private Bitmap hanYuNewSongActiveBackground ;
private void ToggleNewSongButtonsVisibility ( )
{
bool areButtonsVisible = guoYuButtonNewSong . Visible ;
SetNewSongButtonsVisibility ( ! areButtonsVisible ) ;
}
private void SetNewSongButtonsVisibility ( bool isVisible )
{
Button [ ] pictureBox2Buttons = { guoYuButtonNewSong , taiYuButtonNewSong , yueYuButtonNewSong , yingWenButtonNewSong , riYuButtonNewSong , hanYuButtonNewSong } ;
foreach ( var button in pictureBox2Buttons )
{
button . Visible = isVisible ;
if ( isVisible )
{
button . BringToFront ( ) ;
}
}
}
private void NewSongAlertButton_Click ( object sender , EventArgs e )
{
newSongAlertButton . BackgroundImage = newSongAlertActiveBackground ;
hotPlayButton . BackgroundImage = hotPlayNormalBackground ;
singerSearchButton . BackgroundImage = singerSearchNormalBackground ;
songSearchButton . BackgroundImage = songSearchNormalBackground ;
languageSearchButton . BackgroundImage = languageSearchNormalBackground ;
groupSearchButton . BackgroundImage = groupSearchNormalBackground ;
categorySearchButton . BackgroundImage = categorySearchNormalBackground ;
orderedSongsButton . BackgroundImage = orderedSongsNormalBackground ;
myFavoritesButton . BackgroundImage = myFavoritesNormalBackground ;
promotionsButton . BackgroundImage = promotionsNormalBackground ;
deliciousFoodButton . BackgroundImage = deliciousFoodNormalBackground ;
isOnOrderedSongsPage = false ;
guoYuButtonNewSong . BackgroundImage = guoYuNewSongActiveBackground ;
taiYuButtonNewSong . BackgroundImage = taiYuNewSongNormalBackground ;
yueYuButtonNewSong . BackgroundImage = yueYuNewSongNormalBackground ;
yingWenButtonNewSong . BackgroundImage = yingWenNewSongNormalBackground ;
riYuButtonNewSong . BackgroundImage = riYuNewSongNormalBackground ;
hanYuButtonNewSong . BackgroundImage = hanYuNewSongNormalBackground ;
2025-04-23 13:55:11 +08:00
/* 清空搜尋欄 */
ResetinputBox ( ) ;
2025-04-14 16:32:29 +08:00
/ * guoYuSongs2 = allSongs . Where ( song = > song . Category = = "國語" )
2025-04-07 16:54:10 +08:00
. OrderByDescending ( song = > song . AddedTime )
. Take ( songLimit )
2025-04-14 16:32:29 +08:00
. ToList ( ) ; * /
string query = setQueryforNewSong ( "國語" ) ;
var guoYuSongs2 = SearchSongs_Mysql ( query ) ;
2025-04-07 16:54:10 +08:00
currentPage = 0 ;
currentSongList = guoYuSongs2 ;
totalPages = ( int ) Math . Ceiling ( ( double ) guoYuSongs2 . Count / itemsPerPage ) ;
multiPagePanel . currentPageIndex = 0 ;
multiPagePanel . LoadSongs ( currentSongList ) ;
SetHotSongButtonsVisibility ( false ) ;
SetSingerSearchButtonsVisibility ( false ) ;
SetSongSearchButtonsVisibility ( false ) ;
SetPictureBoxLanguageButtonsVisibility ( false ) ;
SetGroupButtonsVisibility ( false ) ;
SetPictureBoxCategoryAndButtonsVisibility ( false ) ;
SetZhuYinSingersAndButtonsVisibility ( false ) ;
SetZhuYinSongsAndButtonsVisibility ( false ) ;
SetEnglishSingersAndButtonsVisibility ( false ) ;
SetEnglishSongsAndButtonsVisibility ( false ) ;
SetPinYinSingersAndButtonsVisibility ( false ) ;
SetPinYinSongsAndButtonsVisibility ( false ) ;
SetPictureBoxToggleLightAndButtonsVisibility ( false ) ;
SetPictureBoxSceneSoundEffectsAndButtonsVisibility ( false ) ;
ToggleNewSongButtonsVisibility ( ) ;
if ( pictureBoxQRCode ! = null )
{
pictureBoxQRCode . Visible = false ;
closeQRCodeButton . Visible = false ;
}
}
private void InitializeButtonsForNewSong ( )
{
guoYuButtonNewSong = new Button { Text = "" , Visible = false } ;
ResizeAndPositionButton ( guoYuButtonNewSong , 1214 , 230 , 209 , 59 ) ;
Rectangle guoYuNewSongButtonCropArea = new Rectangle ( 1214 , 230 , 209 , 59 ) ;
guoYuNewSongNormalBackground = normalStateImageNewSongAlert . Clone ( guoYuNewSongButtonCropArea , normalStateImageNewSongAlert . PixelFormat ) ;
guoYuNewSongActiveBackground = mouseDownImageNewSongAlert . Clone ( guoYuNewSongButtonCropArea , mouseDownImageNewSongAlert . PixelFormat ) ;
guoYuButtonNewSong . BackgroundImage = guoYuNewSongNormalBackground ;
guoYuButtonNewSong . BackgroundImageLayout = ImageLayout . Stretch ;
guoYuButtonNewSong . FlatStyle = FlatStyle . Flat ;
guoYuButtonNewSong . FlatAppearance . BorderSize = 0 ;
guoYuButtonNewSong . Click + = GuoYuButtonNewSong_Click ;
this . Controls . Add ( guoYuButtonNewSong ) ;
taiYuButtonNewSong = new Button { Text = "" , Visible = false } ;
ResizeAndPositionButton ( taiYuButtonNewSong , 1214 , 293 , 209 , 58 ) ;
Rectangle taiYuNewSongButtonCropArea = new Rectangle ( 1214 , 293 , 209 , 58 ) ;
taiYuNewSongNormalBackground = normalStateImageNewSongAlert . Clone ( taiYuNewSongButtonCropArea , normalStateImageNewSongAlert . PixelFormat ) ;
taiYuNewSongActiveBackground = mouseDownImageNewSongAlert . Clone ( taiYuNewSongButtonCropArea , mouseDownImageNewSongAlert . PixelFormat ) ;
taiYuButtonNewSong . BackgroundImage = taiYuNewSongNormalBackground ;
taiYuButtonNewSong . BackgroundImageLayout = ImageLayout . Stretch ;
taiYuButtonNewSong . FlatStyle = FlatStyle . Flat ;
taiYuButtonNewSong . FlatAppearance . BorderSize = 0 ;
taiYuButtonNewSong . Click + = TaiYuButtonNewSong_Click ;
this . Controls . Add ( taiYuButtonNewSong ) ;
yueYuButtonNewSong = new Button { Text = "" , Visible = false } ;
ResizeAndPositionButton ( yueYuButtonNewSong , 1214 , 356 , 209 , 58 ) ;
Rectangle yueYuNewSongButtonCropArea = new Rectangle ( 1214 , 356 , 209 , 58 ) ;
yueYuNewSongNormalBackground = normalStateImageNewSongAlert . Clone ( yueYuNewSongButtonCropArea , normalStateImageNewSongAlert . PixelFormat ) ;
yueYuNewSongActiveBackground = mouseDownImageNewSongAlert . Clone ( yueYuNewSongButtonCropArea , mouseDownImageNewSongAlert . PixelFormat ) ;
yueYuButtonNewSong . BackgroundImage = yueYuNewSongNormalBackground ;
yueYuButtonNewSong . BackgroundImageLayout = ImageLayout . Stretch ;
yueYuButtonNewSong . FlatStyle = FlatStyle . Flat ;
yueYuButtonNewSong . FlatAppearance . BorderSize = 0 ;
yueYuButtonNewSong . Click + = YueYuButtonNewSong_Click ;
this . Controls . Add ( yueYuButtonNewSong ) ;
2025-06-17 09:31:00 +08:00
yingWenButtonNewSong = new Button { Visible = false } ;
2025-04-07 16:54:10 +08:00
ResizeAndPositionButton ( yingWenButtonNewSong , 1214 , 418 , 209 , 59 ) ;
Rectangle yingWenNewSongButtonCropArea = new Rectangle ( 1214 , 418 , 209 , 59 ) ;
yingWenNewSongNormalBackground = normalStateImageNewSongAlert . Clone ( yingWenNewSongButtonCropArea , normalStateImageNewSongAlert . PixelFormat ) ;
yingWenNewSongActiveBackground = mouseDownImageNewSongAlert . Clone ( yingWenNewSongButtonCropArea , mouseDownImageNewSongAlert . PixelFormat ) ;
yingWenButtonNewSong . BackgroundImage = yingWenNewSongNormalBackground ;
yingWenButtonNewSong . BackgroundImageLayout = ImageLayout . Stretch ;
yingWenButtonNewSong . FlatStyle = FlatStyle . Flat ;
yingWenButtonNewSong . FlatAppearance . BorderSize = 0 ;
yingWenButtonNewSong . Click + = YingWenButtonNewSong_Click ;
this . Controls . Add ( yingWenButtonNewSong ) ;
2025-06-17 09:31:00 +08:00
riYuButtonNewSong = new Button { Visible = false } ;
2025-04-07 16:54:10 +08:00
ResizeAndPositionButton ( riYuButtonNewSong , 1214 , 481 , 209 , 59 ) ;
Rectangle riYuNewSongButtonCropArea = new Rectangle ( 1214 , 481 , 209 , 59 ) ;
riYuNewSongNormalBackground = normalStateImageNewSongAlert . Clone ( riYuNewSongButtonCropArea , normalStateImageNewSongAlert . PixelFormat ) ;
riYuNewSongActiveBackground = mouseDownImageNewSongAlert . Clone ( riYuNewSongButtonCropArea , mouseDownImageNewSongAlert . PixelFormat ) ;
riYuButtonNewSong . BackgroundImage = riYuNewSongNormalBackground ;
riYuButtonNewSong . BackgroundImageLayout = ImageLayout . Stretch ;
riYuButtonNewSong . FlatStyle = FlatStyle . Flat ;
riYuButtonNewSong . FlatAppearance . BorderSize = 0 ;
riYuButtonNewSong . Click + = RiYuButtonNewSong_Click ;
this . Controls . Add ( riYuButtonNewSong ) ;
2025-06-17 09:31:00 +08:00
hanYuButtonNewSong = new Button { Visible = false } ;
2025-04-07 16:54:10 +08:00
ResizeAndPositionButton ( hanYuButtonNewSong , 1214 , 544 , 209 , 58 ) ;
Rectangle hanYuNewSongButtonCropArea = new Rectangle ( 1214 , 544 , 209 , 58 ) ;
hanYuNewSongNormalBackground = normalStateImageNewSongAlert . Clone ( hanYuNewSongButtonCropArea , normalStateImageNewSongAlert . PixelFormat ) ;
hanYuNewSongActiveBackground = mouseDownImageNewSongAlert . Clone ( hanYuNewSongButtonCropArea , mouseDownImageNewSongAlert . PixelFormat ) ;
hanYuButtonNewSong . BackgroundImage = hanYuNewSongNormalBackground ;
hanYuButtonNewSong . BackgroundImageLayout = ImageLayout . Stretch ;
hanYuButtonNewSong . FlatStyle = FlatStyle . Flat ;
hanYuButtonNewSong . FlatAppearance . BorderSize = 0 ;
hanYuButtonNewSong . Click + = HanYuButtonNewSong_Click ;
this . Controls . Add ( hanYuButtonNewSong ) ;
}
2025-04-14 16:32:29 +08:00
private string setQueryforNewSong ( string category ) {
2025-07-03 18:15:21 +08:00
string query = $"SELECT * FROM song_library_cache WHERE language_name = '{category}' ORDER BY add_date DESC LIMIT {Utils.Env.GetInt(" NewSongLimit ", 100)};" ;
2025-04-22 15:25:58 +08:00
2025-04-14 16:32:29 +08:00
return query ;
}
2025-04-07 16:54:10 +08:00
}
}