superstar_v2/PrimaryFormParts/LanguageSearch/PrimaryForm.LanguageSearch.cs

153 lines
6.6 KiB
C#

using DBObj;
using MySqlConnector;
using System.Globalization;
namespace DualScreenDemo
{
public partial class PrimaryForm
{
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 UpdateLangBtns(Button activeButton, Image activeBackground)
{
guoYuButton.BackgroundImage = guoYuNormalBackground;
taiYuButton.BackgroundImage = taiYuNormalBackground;
yueYuButton.BackgroundImage = yueYuNormalBackground;
yingWenButton.BackgroundImage = yingWenNormalBackground;
riYuButton.BackgroundImage = riYuNormalBackground;
hanYuButton.BackgroundImage = hanYuNormalBackground;
keYuButton.BackgroundImage = keYuNormalBackground;
activeButton.BackgroundImage = activeBackground;
}
private void InitializeLangSearchButtons()
{
var data = LoadBtnConfigData();
InitializeButton(ref guoYuButton, ref guoYuNormalBackground, ref guoYuActiveBackground, "guoYuButton", 1197, 225, 225, 50, data["LangSearchSubBtn"]["GuoYuLangNormal"], data["LangSearchSubBtn"]["GuoYuLangActive"], GuoYuButton_Click);
InitializeButton(ref taiYuButton, ref taiYuNormalBackground, ref taiYuActiveBackground, "taiYuButton", 1197, 280, 225, 50, data["LangSearchSubBtn"]["TaiYuLangNormal"], data["LangSearchSubBtn"]["TaiYuLangActive"], TaiYuButton_Click);
InitializeButton(ref yueYuButton, ref yueYuNormalBackground, ref yueYuActiveBackground, "yueYuButton", 1197, 335, 225, 50, data["LangSearchSubBtn"]["YueYuLangNormal"], data["LangSearchSubBtn"]["YueYuLangActive"], YueYuButton_Click);
InitializeButton(ref yingWenButton, ref yingWenNormalBackground, ref yingWenActiveBackground, "yingWenButton", 1197, 390, 225, 50, data["LangSearchSubBtn"]["EngLangNormal"], data["LangSearchSubBtn"]["EngLangActive"], YingWenButton_Click);
InitializeButton(ref riYuButton, ref riYuNormalBackground, ref riYuActiveBackground, "riYuButton", 1197, 445, 225, 50, data["LangSearchSubBtn"]["JapLangNormal"], data["LangSearchSubBtn"]["JapLangActive"], RiYuButton_Click);
InitializeButton(ref hanYuButton, ref hanYuNormalBackground, ref hanYuActiveBackground, "hanYuButton", 1197, 500, 225, 50, data["LangSearchSubBtn"]["KrLangNormal"], data["LangSearchSubBtn"]["KrLangActive"], HanYuButton_Click);
InitializeButton(ref keYuButton, ref keYuNormalBackground, ref keYuActiveBackground, "keYuButton", 1197, 555, 225, 50, data["LangSearchSubBtn"]["KeYuLangNormal"], data["LangSearchSubBtn"]["KeYuLangActive"], KeYuButton_Click);
}
private void LanguageSongSelectionButton_Click(object sender, EventArgs e)
{
UpdateButtonBackgrounds(languageSearchButton, languageSearchActiveBackground);
isOnOrderedSongsPage = false;
/* 清空搜尋欄 */
ResetinputBox();
string query = $"SELECT * FROM song_library_cache WHERE language_name = '國語' ORDER BY song_counts DESC LIMIT 1000";
var guoYuSongs = SearchSongs_Mysql(query);
currentPage = 0;
totalPages = (int)Math.Ceiling((double)guoYuSongs.Count / itemsPerPage);
multiPagePanel.currentPageIndex = 0;
multiPagePanel.LoadSongs(guoYuSongs);
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);
UpdateLangBtns(guoYuButton, guoYuActiveBackground);
if (pictureBoxQRCode != null)
{
pictureBoxQRCode.Visible = false;
closeQRCodeButton.Visible = false;
}
}
private void OnLanguageButtonClick(Button activeButton, Image activeBackground, string category)
{
UpdateLangBtns(activeButton, activeBackground);
string query = $"SELECT * FROM song_library_cache WHERE language_name = '{category}' ORDER BY song_counts DESC LIMIT 1000";
var selectedSongs = SearchSongs_Mysql(query);
currentPage = 0;
totalPages = (int)Math.Ceiling((double)selectedSongs.Count / itemsPerPage);
multiPagePanel.currentPageIndex = 0;
multiPagePanel.LoadSongs(selectedSongs);
}
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();
}
}
}