230 lines
11 KiB
C#
230 lines
11 KiB
C#
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;
|
|
/* 清空搜尋欄 */
|
|
ResetinputBox();
|
|
|
|
/*guoYuSongs2 = allSongs.Where(song => song.Category == "國語")
|
|
.OrderByDescending(song => song.AddedTime)
|
|
.Take(songLimit)
|
|
.ToList();*/
|
|
string query = setQueryforNewSong("國語");
|
|
var guoYuSongs2 = SearchSongs_Mysql(query);
|
|
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);
|
|
|
|
|
|
yingWenButtonNewSong = new Button {Visible = false };
|
|
|
|
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);
|
|
|
|
|
|
riYuButtonNewSong = new Button { Visible = false };
|
|
|
|
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);
|
|
|
|
|
|
hanYuButtonNewSong = new Button {Visible = false };
|
|
|
|
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);
|
|
}
|
|
|
|
private string setQueryforNewSong(string category){
|
|
string query = $"SELECT * FROM song_library_cache WHERE language_name = '{category}' ORDER BY add_date DESC LIMIT {Utils.Env.GetInt("NewSongLimit", 100)};";
|
|
|
|
return query;
|
|
}
|
|
}
|
|
} |