superstar_v2/PrimaryFormParts/LanguageSearch/PrimaryForm.LanguageSearch.cs
2025-04-07 16:54:10 +08:00

173 lines
7.3 KiB
C#

using System;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.IO;
namespace DualScreenDemo
{
public partial class PrimaryForm
{
private void InitializeButton(ref Button button, string buttonText, int x, int y, int width, int height, Rectangle cropArea, Image normalBackground, out Bitmap normalBackgroundOut, Image activeBackground, out Bitmap activeBackgroundOut, EventHandler clickEventHandler)
{
button = new Button { Text = buttonText, Visible = false };
ResizeAndPositionButton(button, x, y, width, height);
normalBackgroundOut = new Bitmap(normalBackground).Clone(cropArea, normalBackground.PixelFormat);
activeBackgroundOut = new Bitmap(activeBackground).Clone(cropArea, activeBackground.PixelFormat);
button.BackgroundImage = normalBackgroundOut;
button.BackgroundImageLayout = ImageLayout.Stretch;
button.FlatStyle = FlatStyle.Flat;
button.FlatAppearance.BorderSize = 0;
button.Click += clickEventHandler;
this.Controls.Add(button);
}
private Button languageSearchButton;
private Bitmap languageSearchNormalBackground;
private Bitmap languageSearchActiveBackground;
private Button guoYuButton;
private Bitmap guoYuNormalBackground;
private Bitmap guoYuActiveBackground;
private Button taiYuButton;
private Bitmap taiYuNormalBackground;
private Bitmap taiYuActiveBackground;
private Button yueYuButton;
private Bitmap yueYuNormalBackground;
private Bitmap yueYuActiveBackground;
private Button yingWenButton;
private Bitmap yingWenNormalBackground;
private Bitmap yingWenActiveBackground;
private Button riYuButton;
private Bitmap riYuNormalBackground;
private Bitmap riYuActiveBackground;
private Button hanYuButton;
private Bitmap hanYuNormalBackground;
private Bitmap hanYuActiveBackground;
private Button keYuButton;
private Bitmap keYuNormalBackground;
private Bitmap keYuActiveBackground;
private void LanguageSongSelectionButton_Click(object sender, EventArgs e)
{
newSongAlertButton.BackgroundImage = newSongAlertNormalBackground;
hotPlayButton.BackgroundImage = hotPlayNormalBackground;
singerSearchButton.BackgroundImage = singerSearchNormalBackground;
songSearchButton.BackgroundImage = songSearchNormalBackground;
languageSearchButton.BackgroundImage = languageSearchActiveBackground;
groupSearchButton.BackgroundImage = groupSearchNormalBackground;
categorySearchButton.BackgroundImage = categorySearchNormalBackground;
orderedSongsButton.BackgroundImage = orderedSongsNormalBackground;
myFavoritesButton.BackgroundImage = myFavoritesNormalBackground;
promotionsButton.BackgroundImage = promotionsNormalBackground;
deliciousFoodButton.BackgroundImage = deliciousFoodNormalBackground;
isOnOrderedSongsPage = false;
guoYuButton.BackgroundImage = guoYuActiveBackground;
taiYuButton.BackgroundImage = taiYuNormalBackground;
yueYuButton.BackgroundImage = yueYuNormalBackground;
yingWenButton.BackgroundImage = yingWenNormalBackground;
riYuButton.BackgroundImage = riYuNormalBackground;
hanYuButton.BackgroundImage = hanYuNormalBackground;
keYuButton.BackgroundImage = keYuNormalBackground;
guoYuSongs = allSongs.Where(song => song.Category == "國語")
.OrderByDescending(song => song.Plays)
.ToList();
currentPage = 0;
currentSongList = guoYuSongs;
totalPages = (int)Math.Ceiling((double)guoYuSongs.Count / itemsPerPage);
multiPagePanel.currentPageIndex = 0;
multiPagePanel.LoadSongs(currentSongList);
SetHotSongButtonsVisibility(false);
SetNewSongButtonsVisibility(false);
SetSingerSearchButtonsVisibility(false);
SetSongSearchButtonsVisibility(false);
SetGroupButtonsVisibility(false);
SetPictureBoxCategoryAndButtonsVisibility(false);
SetZhuYinSingersAndButtonsVisibility(false);
SetZhuYinSongsAndButtonsVisibility(false);
SetEnglishSingersAndButtonsVisibility(false);
SetEnglishSongsAndButtonsVisibility(false);
SetPinYinSingersAndButtonsVisibility(false);
SetPinYinSongsAndButtonsVisibility(false);
SetPictureBoxToggleLightAndButtonsVisibility(false);
SetPictureBoxSceneSoundEffectsAndButtonsVisibility(false);
SetPictureBoxLanguageButtonsVisibility(true);
if (pictureBoxQRCode != null)
{
pictureBoxQRCode.Visible = false;
closeQRCodeButton.Visible = false;
}
}
private void OnLanguageButtonClick(Button activeButton, Image activeBackground, string category)
{
guoYuButton.BackgroundImage = guoYuNormalBackground;
taiYuButton.BackgroundImage = taiYuNormalBackground;
yueYuButton.BackgroundImage = yueYuNormalBackground;
yingWenButton.BackgroundImage = yingWenNormalBackground;
riYuButton.BackgroundImage = riYuNormalBackground;
hanYuButton.BackgroundImage = hanYuNormalBackground;
keYuButton.BackgroundImage = keYuNormalBackground;
activeButton.BackgroundImage = activeBackground;
var selectedSongs = allSongs.Where(song => song.Category == category)
.OrderByDescending(song => song.Plays)
.ToList();
currentPage = 0;
currentSongList = selectedSongs;
totalPages = (int)Math.Ceiling((double)selectedSongs.Count / itemsPerPage);
multiPagePanel.currentPageIndex = 0;
multiPagePanel.LoadSongs(currentSongList);
}
private void SetPictureBoxLanguageButtonsVisibility(bool isVisible)
{
guoYuButton.Visible = isVisible;
guoYuButton.BringToFront();
taiYuButton.Visible = isVisible;
taiYuButton.BringToFront();
yueYuButton.Visible = isVisible;
yueYuButton.BringToFront();
yingWenButton.Visible = isVisible;
yingWenButton.BringToFront();
riYuButton.Visible = isVisible;
riYuButton.BringToFront();
hanYuButton.Visible = isVisible;
hanYuButton.BringToFront();
keYuButton.Visible = isVisible;
keYuButton.BringToFront();
}
private void InitializeButtonsForPictureBoxLanguageQuery()
{
InitializeGuoYuButton();
InitializeTaiYuButton();
InitializeYueYuButton();
InitializeYingWenButton();
InitializeRiYuButton();
InitializeHanYuButton();
InitializeKeYuButton();
}
}
}