From 7db67e75af446a782b6d951784264c5b37b0a557 Mon Sep 17 00:00:00 2001 From: dimok321 <15055714+dimok789@users.noreply.github.com> Date: Sun, 23 Jan 2011 20:13:41 +0000 Subject: [PATCH] *Added several basic gui classes like drawing box/circle only with the GX engine without the need of a resource *Created a checkbox class with them *Changed the prompt window to a class *Changed cover download to a checkbox selection of what you want to download. Changed discart download option to only switch between what is prioritized (original/customs) *Fixed a little alignment issue of the progressbar *Reverted the change for check disc in drive. Some drives couldn't handle it in IOS58 mode :\. *Changed playcount from an 8 bit to a 32 bit counter (got 8bit by mistake) which limited it to 255 *a few little optimisations --- HBC/META.XML | 4 +- Languages/czech.lang | 48 ++-- Languages/danish.lang | 48 ++-- Languages/dutch.lang | 48 ++-- Languages/english.lang | 26 +-- Languages/finnish.lang | 37 +-- Languages/french.lang | 48 ++-- Languages/german.lang | 48 ++-- Languages/hungarian.lang | 37 +-- Languages/italian.lang | 48 ++-- Languages/japanese.lang | 48 ++-- Languages/korean.lang | 37 +-- Languages/norwegian.lang | 37 +-- Languages/polish.lang | 37 +-- Languages/portuguese_br.lang | 37 +-- Languages/portuguese_pt.lang | 37 +-- Languages/russian.lang | 37 +-- Languages/schinese.lang | 57 +++-- Languages/spanish.lang | 37 +-- Languages/swedish.lang | 37 +-- Languages/tchinese.lang | 48 ++-- Languages/thai.lang | 37 +-- Languages/turkish.lang | 37 +-- gui.pnproj | 2 +- source/libwiigui/gui_box.cpp | 42 ++++ source/libwiigui/gui_box.hpp | 47 ++++ source/libwiigui/gui_checkbox.cpp | 86 +++++++ source/libwiigui/gui_checkbox.hpp | 50 +++++ source/libwiigui/gui_circle.cpp | 54 +++++ source/libwiigui/gui_circle.hpp | 46 ++++ source/libwiigui/gui_cross.cpp | 54 +++++ source/libwiigui/gui_cross.hpp | 42 ++++ source/menu/GameBrowseMenu.cpp | 18 +- source/menu/GameBrowseMenu.hpp | 2 +- source/network/CoverDownload.cpp | 95 ++++---- source/prompts/CheckboxPrompt.cpp | 160 +++++++++++++ source/prompts/CheckboxPrompt.hpp | 58 +++++ source/prompts/ProgressWindow.cpp | 22 +- source/prompts/PromptWindow.cpp | 249 +++++++++++++++++++++ source/prompts/PromptWindow.hpp | 65 ++++++ source/prompts/PromptWindows.cpp | 260 ++-------------------- source/settings/CGameStatistics.h | 2 +- source/settings/CSettings.cpp | 2 +- source/settings/SettingsEnums.h | 5 +- source/settings/menus/GUISettingsMenu.cpp | 10 +- source/settings/menus/GameLoadSM.cpp | 2 +- source/utils/ThreadedTask.cpp | 6 +- source/utils/ThreadedTask.hpp | 18 +- source/video.cpp | 8 +- 49 files changed, 1622 insertions(+), 698 deletions(-) create mode 100644 source/libwiigui/gui_box.cpp create mode 100644 source/libwiigui/gui_box.hpp create mode 100644 source/libwiigui/gui_checkbox.cpp create mode 100644 source/libwiigui/gui_checkbox.hpp create mode 100644 source/libwiigui/gui_circle.cpp create mode 100644 source/libwiigui/gui_circle.hpp create mode 100644 source/libwiigui/gui_cross.cpp create mode 100644 source/libwiigui/gui_cross.hpp create mode 100644 source/prompts/CheckboxPrompt.cpp create mode 100644 source/prompts/CheckboxPrompt.hpp create mode 100644 source/prompts/PromptWindow.cpp create mode 100644 source/prompts/PromptWindow.hpp diff --git a/HBC/META.XML b/HBC/META.XML index 93f8083f..06789296 100644 --- a/HBC/META.XML +++ b/HBC/META.XML @@ -2,8 +2,8 @@ USB Loader GX USB Loader GX Team - 2.0 r1053 - 201101221536 + 2.0 r1054 + 201101222117 Loads games from USB-devices USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. diff --git a/Languages/czech.lang b/Languages/czech.lang index 8bd41195..e13c5ef1 100644 --- a/Languages/czech.lang +++ b/Languages/czech.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n" "Language-Team: r1043 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n" @@ -343,6 +343,9 @@ msgstr "Vytvorit" msgid "Credits" msgstr "Zásluhy" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Vlastní cesty" @@ -400,9 +403,6 @@ msgstr "Cesta k potiskum DVD" msgid "Disc Default" msgstr "Puvodní nastavení disku" -msgid "Disc Images" -msgstr "Potisky DVD" - msgid "DiskFlip" msgstr "" @@ -463,8 +463,11 @@ msgstr "Stáhnout nyní" msgid "Download finished" msgstr "Stažení dokonceno" -msgid "Downloading covers" -msgstr "Stáhování obalu" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "Stahuji upravené potisky" @@ -976,18 +979,15 @@ msgstr "Oficiální místo:" msgid "Offset" msgstr "Ofset" -msgid "Only Customs" -msgstr "Pouze Upravené" - msgid "Only Game Partition" msgstr "Pouze oddíl s hrami" -msgid "Only Original" -msgstr "Pouze originál" - msgid "Only for Install" msgstr "Pouze pro instalaci" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Originál/Upravené" @@ -1283,12 +1283,6 @@ msgstr "Popisky" msgid "Transfer failed" msgstr "Prenos selhal" -msgid "Trying custom Discarts" -msgstr "Zkousím upravené potisky" - -msgid "Trying original Discarts" -msgstr "Zkousím puvodní potisky" - msgid "USB Device not found" msgstr "USB zarízení nenalezeno" @@ -1479,6 +1473,24 @@ msgstr "z " msgid "seconds left" msgstr "sekund zbývá" +#~ msgid "Disc Images" +#~ msgstr "Potisky DVD" + +#~ msgid "Downloading covers" +#~ msgstr "Stáhování obalu" + +#~ msgid "Only Customs" +#~ msgstr "Pouze Upravené" + +#~ msgid "Only Original" +#~ msgstr "Pouze originál" + +#~ msgid "Trying custom Discarts" +#~ msgstr "Zkousím upravené potisky" + +#~ msgid "Trying original Discarts" +#~ msgstr "Zkousím puvodní potisky" + #~ msgid "Do you really want to delete:" #~ msgstr "Opravdu smazat:" diff --git a/Languages/danish.lang b/Languages/danish.lang index 23b8b244..5f65c342 100644 --- a/Languages/danish.lang +++ b/Languages/danish.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: Fox888[dk]\n" "Language-Team: [dk]\n" @@ -343,6 +343,9 @@ msgstr "Opret" msgid "Credits" msgstr "Lavet af:" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Sti-indstillinger" @@ -400,9 +403,6 @@ msgstr "Sti til DVD-billeder" msgid "Disc Default" msgstr "Spillets standard" -msgid "Disc Images" -msgstr "DVD-billeder" - msgid "DiskFlip" msgstr "" @@ -463,8 +463,11 @@ msgstr "Download nu" msgid "Download finished" msgstr "Download færdig" -msgid "Downloading covers" -msgstr "Downloader covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "Downloader custom DVD billeder" @@ -976,18 +979,15 @@ msgstr "Officiel side:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Kun tilpassede" - msgid "Only Game Partition" msgstr "Kun spil Partition" -msgid "Only Original" -msgstr "Kun originale" - msgid "Only for Install" msgstr "Kun til installering" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Originale/Tilpassede" @@ -1283,12 +1283,6 @@ msgstr "Værktøjstips" msgid "Transfer failed" msgstr "Overførelse fejlede" -msgid "Trying custom Discarts" -msgstr "Prøver custom DVD billeder" - -msgid "Trying original Discarts" -msgstr "Prøver orginale DVD billeder" - msgid "USB Device not found" msgstr "USB-enhed ikke fundet" @@ -1479,6 +1473,24 @@ msgstr "af" msgid "seconds left" msgstr "sekunder tilbage" +#~ msgid "Disc Images" +#~ msgstr "DVD-billeder" + +#~ msgid "Downloading covers" +#~ msgstr "Downloader covers" + +#~ msgid "Only Customs" +#~ msgstr "Kun tilpassede" + +#~ msgid "Only Original" +#~ msgstr "Kun originale" + +#~ msgid "Trying custom Discarts" +#~ msgstr "Prøver custom DVD billeder" + +#~ msgid "Trying original Discarts" +#~ msgstr "Prøver orginale DVD billeder" + #~ msgid "Do you really want to delete:" #~ msgstr "Vil du slette:" diff --git a/Languages/dutch.lang b/Languages/dutch.lang index 374f7522..d5588748 100644 --- a/Languages/dutch.lang +++ b/Languages/dutch.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2011-01-21 13:52+0100\n" "Last-Translator: glowy\n" "Language-Team: tj_cool, glowy\n" @@ -343,6 +343,9 @@ msgstr "Maak" msgid "Credits" msgstr "" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Bestandslocaties" @@ -400,9 +403,6 @@ msgstr "Locatie disk labels" msgid "Disc Default" msgstr "Disk standaard" -msgid "Disc Images" -msgstr "Disk labels" - msgid "DiskFlip" msgstr "" @@ -463,8 +463,11 @@ msgstr "Download nu" msgid "Download finished" msgstr "Download voltooid" -msgid "Downloading covers" -msgstr "Covers downloaden" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "Aangepaste disc afbeeldingen downloaden" @@ -976,18 +979,15 @@ msgstr "Officiële site:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Enkel aangepast" - msgid "Only Game Partition" msgstr "Alleen Spel Partitie" -msgid "Only Original" -msgstr "Enkel origineel" - msgid "Only for Install" msgstr "Alleen bij installeren" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Origineel/Aangepast" @@ -1283,12 +1283,6 @@ msgstr "Knopinfo" msgid "Transfer failed" msgstr "Overdracht mislukt." -msgid "Trying custom Discarts" -msgstr "Aangepaste disc afbeeldingen proberen" - -msgid "Trying original Discarts" -msgstr "Origninele disc afbeeldingen proberen" - msgid "USB Device not found" msgstr "USB Apparaat niet gevonden" @@ -1479,6 +1473,24 @@ msgstr "van" msgid "seconds left" msgstr "seconden over" +#~ msgid "Disc Images" +#~ msgstr "Disk labels" + +#~ msgid "Downloading covers" +#~ msgstr "Covers downloaden" + +#~ msgid "Only Customs" +#~ msgstr "Enkel aangepast" + +#~ msgid "Only Original" +#~ msgstr "Enkel origineel" + +#~ msgid "Trying custom Discarts" +#~ msgstr "Aangepaste disc afbeeldingen proberen" + +#~ msgid "Trying original Discarts" +#~ msgstr "Origninele disc afbeeldingen proberen" + #~ msgid "Do you really want to delete:" #~ msgstr "Wil je echt verwijderen:" diff --git a/Languages/english.lang b/Languages/english.lang index 74a3230d..98058ca1 100644 --- a/Languages/english.lang +++ b/Languages/english.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 15:31+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -343,6 +343,9 @@ msgstr "" msgid "Credits" msgstr "" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "" @@ -400,9 +403,6 @@ msgstr "" msgid "Disc Default" msgstr "" -msgid "Disc Images" -msgstr "" - msgid "DiskFlip" msgstr "" @@ -463,7 +463,10 @@ msgstr "" msgid "Download finished" msgstr "" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,16 +979,13 @@ msgstr "" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" +msgid "Only for Install" msgstr "" -msgid "Only for Install" +msgid "Original Disc Images" msgstr "" msgid "Original/Customs" @@ -1283,12 +1283,6 @@ msgstr "" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "" diff --git a/Languages/finnish.lang b/Languages/finnish.lang index 646c622f..de448b59 100644 --- a/Languages/finnish.lang +++ b/Languages/finnish.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: c64rmx\n" "Language-Team: \n" @@ -343,6 +343,9 @@ msgstr "Luo" msgid "Credits" msgstr "Tekijät" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Omat polut" @@ -400,9 +403,6 @@ msgstr "Levykuvien polku" msgid "Disc Default" msgstr "Pelin oletus" -msgid "Disc Images" -msgstr "Levykuvat" - msgid "DiskFlip" msgstr "Levynvaihto" @@ -463,7 +463,10 @@ msgstr "Lataa nyt" msgid "Download finished" msgstr "Lataus valmistunut" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Virallinen sivusto:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Vain omatekoiset" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Vain alkuperäinen" - msgid "Only for Install" msgstr "Ainoastaan asennusta varten" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Alkuperäinen/Omatekoinen" @@ -1283,12 +1283,6 @@ msgstr "Vinkit" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB-laitetta ei löytynyt" @@ -1479,6 +1473,15 @@ msgstr "josta" msgid "seconds left" msgstr "sekuntia jäljellä" +#~ msgid "Disc Images" +#~ msgstr "Levykuvat" + +#~ msgid "Only Customs" +#~ msgstr "Vain omatekoiset" + +#~ msgid "Only Original" +#~ msgstr "Vain alkuperäinen" + #~ msgid "Do you really want to delete:" #~ msgstr "Haluatko varmasti formatoida:" diff --git a/Languages/french.lang b/Languages/french.lang index 2c05d029..4388bf61 100644 --- a/Languages/french.lang +++ b/Languages/french.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 15:31+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: Cyan\n" "Language-Team: Badablek, Amour, ikya & Kin8\n" @@ -343,6 +343,9 @@ msgstr "Créer" msgid "Credits" msgstr "Crédits" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Personnalisation des dossiers" @@ -400,9 +403,6 @@ msgstr "Dossier labels DVD" msgid "Disc Default" msgstr "Disque par défaut" -msgid "Disc Images" -msgstr "Labels DVD" - msgid "DiskFlip" msgstr "Inversion disque" @@ -463,8 +463,11 @@ msgstr "Télécharger" msgid "Download finished" msgstr "Téléchargement terminé" -msgid "Downloading covers" -msgstr "Téléchargement des jaquettes" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "Téléch. des labels DVD persos" @@ -976,18 +979,15 @@ msgstr "Site officiel:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Personnalisés" - msgid "Only Game Partition" msgstr "Uniquement la partition de jeu" -msgid "Only Original" -msgstr "Originaux" - msgid "Only for Install" msgstr "Uniquement à l'installation" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Originaux/Persos" @@ -1283,12 +1283,6 @@ msgstr "Info-bulles" msgid "Transfer failed" msgstr "Échec du transfert" -msgid "Trying custom Discarts" -msgstr "Essai labels DVD persos" - -msgid "Trying original Discarts" -msgstr "Essai labels DVD originaux" - msgid "USB Device not found" msgstr "Périphérique USB introuvable" @@ -1479,6 +1473,24 @@ msgstr "sur" msgid "seconds left" msgstr "secondes restantes" +#~ msgid "Disc Images" +#~ msgstr "Labels DVD" + +#~ msgid "Downloading covers" +#~ msgstr "Téléchargement des jaquettes" + +#~ msgid "Only Customs" +#~ msgstr "Personnalisés" + +#~ msgid "Only Original" +#~ msgstr "Originaux" + +#~ msgid "Trying custom Discarts" +#~ msgstr "Essai labels DVD persos" + +#~ msgid "Trying original Discarts" +#~ msgstr "Essai labels DVD originaux" + #~ msgid "Do you really want to delete:" #~ msgstr "Voulez-vous vraiment supprimer:" diff --git a/Languages/german.lang b/Languages/german.lang index c02d0b69..406dd679 100644 --- a/Languages/german.lang +++ b/Languages/german.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n" "Last-Translator: TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" @@ -343,6 +343,9 @@ msgstr "Erstelle GCT" msgid "Credits" msgstr "Danksagungen" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Pfade anpassen" @@ -400,9 +403,6 @@ msgstr "Disk Cover" msgid "Disc Default" msgstr "Diskstandard" -msgid "Disc Images" -msgstr "Disk Cover" - msgid "DiskFlip" msgstr "DiskFlip" @@ -463,8 +463,11 @@ msgstr "Herunterladen" msgid "Download finished" msgstr "Download abgeschlossen" -msgid "Downloading covers" -msgstr "Lade Cover herunter" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "Lade Community Diskcovers herunter" @@ -976,18 +979,15 @@ msgstr "Offizielle Seite:" msgid "Offset" msgstr "Offset" -msgid "Only Customs" -msgstr "Nur Community" - msgid "Only Game Partition" msgstr "Nur Spiele Partition" -msgid "Only Original" -msgstr "Nur Originale" - msgid "Only for Install" msgstr "Nur beim Installieren" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Original/Community" @@ -1283,12 +1283,6 @@ msgstr "Quickinfo" msgid "Transfer failed" msgstr "Transfer fehlgeschlagen" -msgid "Trying custom Discarts" -msgstr "Probiere community Diskcover" - -msgid "Trying original Discarts" -msgstr "Probiere original Diskcover" - msgid "USB Device not found" msgstr "USB Gerät nicht gefunden." @@ -1479,6 +1473,24 @@ msgstr "von" msgid "seconds left" msgstr "Sekunden verbleiben" +#~ msgid "Disc Images" +#~ msgstr "Disk Cover" + +#~ msgid "Downloading covers" +#~ msgstr "Lade Cover herunter" + +#~ msgid "Only Customs" +#~ msgstr "Nur Community" + +#~ msgid "Only Original" +#~ msgstr "Nur Originale" + +#~ msgid "Trying custom Discarts" +#~ msgstr "Probiere community Diskcover" + +#~ msgid "Trying original Discarts" +#~ msgstr "Probiere original Diskcover" + #~ msgid "Do you really want to delete:" #~ msgstr "Löschvorgang bestätigen:" diff --git a/Languages/hungarian.lang b/Languages/hungarian.lang index 1d15a924..8f8076cc 100644 --- a/Languages/hungarian.lang +++ b/Languages/hungarian.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-12-29 11:05+0100\n" "Last-Translator: Springdale\n" "Language-Team: Tusk, Springdale\n" @@ -343,6 +343,9 @@ msgstr "Létrehozás" msgid "Credits" msgstr "Készítõk" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Egyéni útvonalak" @@ -400,9 +403,6 @@ msgstr "Lemezképek Útvonala" msgid "Disc Default" msgstr "Lemez Alapértelmezettje" -msgid "Disc Images" -msgstr "Lemezfotók" - msgid "DiskFlip" msgstr "Lemezforgatás" @@ -463,7 +463,10 @@ msgstr "Letöltés most" msgid "Download finished" msgstr "Letöltés kész" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Hivatalos oldal:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Csak egyéni" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Csak eredeti" - msgid "Only for Install" msgstr "Csak telepítéshez" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Eredeti/Egyéni" @@ -1283,12 +1283,6 @@ msgstr "Súgók" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB Meghajtó nem található" @@ -1479,6 +1473,15 @@ msgstr "./" msgid "seconds left" msgstr "hátralévõ másodperc" +#~ msgid "Disc Images" +#~ msgstr "Lemezfotók" + +#~ msgid "Only Customs" +#~ msgstr "Csak egyéni" + +#~ msgid "Only Original" +#~ msgstr "Csak eredeti" + #~ msgid "Do you really want to delete:" #~ msgstr "Biztosan törlöd?" diff --git a/Languages/italian.lang b/Languages/italian.lang index 1e4f5eba..761fba60 100644 --- a/Languages/italian.lang +++ b/Languages/italian.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:54+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2011-01-16 16:00+0200\n" "Last-Translator: Cambo \n" "Language-Team: Cambo\n" @@ -343,6 +343,9 @@ msgstr "Crea" msgid "Credits" msgstr "Ringraziamenti" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Impostazioni Cartelle" @@ -400,9 +403,6 @@ msgstr "Cart. Imm. Disco" msgid "Disc Default" msgstr "Predefinita Disco" -msgid "Disc Images" -msgstr "Immagini Disco" - msgid "DiskFlip" msgstr "Gira i dischi" @@ -463,8 +463,11 @@ msgstr "Scarica Adesso" msgid "Download finished" msgstr "Ho finito di scaricare" -msgid "Downloading covers" -msgstr "Sto scaricando le copertine" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "Sto scaricando le imm. disco personalizzate" @@ -976,18 +979,15 @@ msgstr "Sito Ufficiale:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Modificate" - msgid "Only Game Partition" msgstr "Solo Giochi" -msgid "Only Original" -msgstr "Originali" - msgid "Only for Install" msgstr "Installa Solamente" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Origin./Modific." @@ -1283,12 +1283,6 @@ msgstr "Suggerimenti" msgid "Transfer failed" msgstr "Trasferimento fallito" -msgid "Trying custom Discarts" -msgstr "Provo con le Imm. Disco personalizzate" - -msgid "Trying original Discarts" -msgstr "Provo con le Imm. Disco originali" - msgid "USB Device not found" msgstr "Dispositivo USB non Trovato" @@ -1479,6 +1473,24 @@ msgstr "di" msgid "seconds left" msgstr "secondi mancanti" +#~ msgid "Disc Images" +#~ msgstr "Immagini Disco" + +#~ msgid "Downloading covers" +#~ msgstr "Sto scaricando le copertine" + +#~ msgid "Only Customs" +#~ msgstr "Modificate" + +#~ msgid "Only Original" +#~ msgstr "Originali" + +#~ msgid "Trying custom Discarts" +#~ msgstr "Provo con le Imm. Disco personalizzate" + +#~ msgid "Trying original Discarts" +#~ msgstr "Provo con le Imm. Disco originali" + #~ msgid "Do you really want to delete:" #~ msgstr "Vuoi veramente eliminare:" diff --git a/Languages/japanese.lang b/Languages/japanese.lang index 14936236..f7db105d 100644 --- a/Languages/japanese.lang +++ b/Languages/japanese.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: hosigumayuugi\n" "Language-Team: hosigumayuugi, papa\n" @@ -343,6 +343,9 @@ msgstr "作成" msgid "Credits" msgstr "提供・協力" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "パスを変更" @@ -400,9 +403,6 @@ msgstr "ディスク画像" msgid "Disc Default" msgstr "ディスクの初期値" -msgid "Disc Images" -msgstr "ディスク画像" - msgid "DiskFlip" msgstr "ディスクの回転風" @@ -463,8 +463,11 @@ msgstr "ダウンロード" msgid "Download finished" msgstr "ダウンロードが終了しました" -msgid "Downloading covers" -msgstr "カバーをダウンロード中" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "カスタムカバーをダウンロード中" @@ -976,18 +979,15 @@ msgstr "公式サイト:" msgid "Offset" msgstr "代替" -msgid "Only Customs" -msgstr "カスタムのみ" - msgid "Only Game Partition" msgstr "ゲーム領域のみ" -msgid "Only Original" -msgstr "公式のみ" - msgid "Only for Install" msgstr "インストール中のみ" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "公式を優先" @@ -1283,12 +1283,6 @@ msgstr "ヒントバルーン" msgid "Transfer failed" msgstr "転送に失敗しました" -msgid "Trying custom Discarts" -msgstr "カスタムを試行中" - -msgid "Trying original Discarts" -msgstr "公式を試行中" - msgid "USB Device not found" msgstr "USB機器が見つかりません" @@ -1479,6 +1473,24 @@ msgstr "中" msgid "seconds left" msgstr "秒で完了" +#~ msgid "Disc Images" +#~ msgstr "ディスク画像" + +#~ msgid "Downloading covers" +#~ msgstr "カバーをダウンロード中" + +#~ msgid "Only Customs" +#~ msgstr "カスタムのみ" + +#~ msgid "Only Original" +#~ msgstr "公式のみ" + +#~ msgid "Trying custom Discarts" +#~ msgstr "カスタムを試行中" + +#~ msgid "Trying original Discarts" +#~ msgstr "公式を試行中" + #~ msgid "Do you really want to delete:" #~ msgstr "本当に削除しますか?" diff --git a/Languages/korean.lang b/Languages/korean.lang index 24b6798c..2ef58328 100644 --- a/Languages/korean.lang +++ b/Languages/korean.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: nextos@korea.com\n" "Language-Team: \n" @@ -343,6 +343,9 @@ msgstr "생성" msgid "Credits" msgstr "Credits" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Custom Paths" @@ -400,9 +403,6 @@ msgstr "디스크 이미지 경로" msgid "Disc Default" msgstr "디스크 기본값" -msgid "Disc Images" -msgstr "디스크 이미지" - msgid "DiskFlip" msgstr "디스크 플립" @@ -463,7 +463,10 @@ msgstr "다운로드 시작" msgid "Download finished" msgstr "다운로드 완료" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "공식 사이트:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "사용자 설정만" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "원본만" - msgid "Only for Install" msgstr "인스톨만" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "원본/사용자설정" @@ -1283,12 +1283,6 @@ msgstr "Tooltips" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB 장치가 없습니다." @@ -1479,6 +1473,15 @@ msgstr "중" msgid "seconds left" msgstr "초 남았습니다" +#~ msgid "Disc Images" +#~ msgstr "디스크 이미지" + +#~ msgid "Only Customs" +#~ msgstr "사용자 설정만" + +#~ msgid "Only Original" +#~ msgstr "원본만" + #~ msgid "Do you really want to delete:" #~ msgstr "정말로 삭제하겠습니까:" diff --git a/Languages/norwegian.lang b/Languages/norwegian.lang index 5e2598a6..7eb63b11 100644 --- a/Languages/norwegian.lang +++ b/Languages/norwegian.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: raschi\n" "Language-Team: raschi\n" @@ -343,6 +343,9 @@ msgstr "Opprett" msgid "Credits" msgstr "Medvirkende" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Endre stier" @@ -400,9 +403,6 @@ msgstr "Platebilde sti" msgid "Disc Default" msgstr "Spill Standard" -msgid "Disc Images" -msgstr "Plate bilder" - msgid "DiskFlip" msgstr "Snu plate" @@ -463,7 +463,10 @@ msgstr "Last ned nå" msgid "Download finished" msgstr "Nedlasting ferdig" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Offisiell nettside:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Kun custom" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Kun original" - msgid "Only for Install" msgstr "Kun for installering" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Original/Custom" @@ -1283,12 +1283,6 @@ msgstr "Verktøystips" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB enhet ikke funnet" @@ -1479,6 +1473,15 @@ msgstr "av" msgid "seconds left" msgstr "sekunder gjenstår" +#~ msgid "Disc Images" +#~ msgstr "Plate bilder" + +#~ msgid "Only Customs" +#~ msgstr "Kun custom" + +#~ msgid "Only Original" +#~ msgstr "Kun original" + #~ msgid "Do you really want to delete:" #~ msgstr "Er du sikker på at du vil slette:" diff --git a/Languages/polish.lang b/Languages/polish.lang index 05083710..e1d165ed 100644 --- a/Languages/polish.lang +++ b/Languages/polish.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: ziom666 (zadania_prog@vp.pl)\n" "Language-Team: \n" @@ -343,6 +343,9 @@ msgstr "Utworz" msgid "Credits" msgstr "" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Sciezki" @@ -400,9 +403,6 @@ msgstr "Sciezka do obrazkow plyt" msgid "Disc Default" msgstr "Domyslny dysk" -msgid "Disc Images" -msgstr "Obrazki plyt" - msgid "DiskFlip" msgstr "Obrot plytami" @@ -463,7 +463,10 @@ msgstr "Pobierz teraz" msgid "Download finished" msgstr "Zakonczono pobieranie" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Strona oficjalna:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Tylko nieoryginalne" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Tylko oryginalne" - msgid "Only for Install" msgstr "Tylko dla instalacji" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Mieszane" @@ -1283,12 +1283,6 @@ msgstr "Chmurki z podpowiedziami" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "Nie znaleziono urzadzenia USB" @@ -1479,6 +1473,15 @@ msgstr "z" msgid "seconds left" msgstr "sekund pozostalo" +#~ msgid "Disc Images" +#~ msgstr "Obrazki plyt" + +#~ msgid "Only Customs" +#~ msgstr "Tylko nieoryginalne" + +#~ msgid "Only Original" +#~ msgstr "Tylko oryginalne" + #~ msgid "Do you really want to delete:" #~ msgstr "Na pewno usunac: " diff --git a/Languages/portuguese_br.lang b/Languages/portuguese_br.lang index 17d85f82..82eb6e10 100644 --- a/Languages/portuguese_br.lang +++ b/Languages/portuguese_br.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-23 18:52+0200\n" "Last-Translator: aniemotion\n" "Language-Team: boto12, aniemotion\n" @@ -343,6 +343,9 @@ msgstr "Criar" msgid "Credits" msgstr "Créditos" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Personalização de Pastas" @@ -400,9 +403,6 @@ msgstr "Pasta Imagens Disco" msgid "Disc Default" msgstr "Disco Padrão" -msgid "Disc Images" -msgstr "Imagens de Disco" - msgid "DiskFlip" msgstr "Voltar Disco" @@ -463,7 +463,10 @@ msgstr "Baixar agora" msgid "Download finished" msgstr "Download Terminado" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Site Oficial:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Apenas Alternativas" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Apenas Originais" - msgid "Only for Install" msgstr "Apenas na instalação" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Originais/Alternativas" @@ -1283,12 +1283,6 @@ msgstr "Dicas" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "Dispositivo USB não encontrado" @@ -1479,6 +1473,15 @@ msgstr "de" msgid "seconds left" msgstr "segundos restantes" +#~ msgid "Disc Images" +#~ msgstr "Imagens de Disco" + +#~ msgid "Only Customs" +#~ msgstr "Apenas Alternativas" + +#~ msgid "Only Original" +#~ msgstr "Apenas Originais" + #~ msgid "Do you really want to delete:" #~ msgstr "Tem a certeza que quer eliminar o jogo:" diff --git a/Languages/portuguese_pt.lang b/Languages/portuguese_pt.lang index 348d6340..d0c51127 100644 --- a/Languages/portuguese_pt.lang +++ b/Languages/portuguese_pt.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2010-03-22 10:55-0000\n" "Last-Translator: Sky8000\n" "Language-Team: Sky8000 \n" @@ -343,6 +343,9 @@ msgstr "Criar" msgid "Credits" msgstr "Créditos" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Personalização de Pastas" @@ -400,9 +403,6 @@ msgstr "Pasta Imagens Disco" msgid "Disc Default" msgstr "Predefinição Disco" -msgid "Disc Images" -msgstr "Imagens de Disco" - msgid "DiskFlip" msgstr "Voltar Disco" @@ -463,7 +463,10 @@ msgstr "Descarregar Agora" msgid "Download finished" msgstr "Download Terminado" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Site Oficial:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Apenas Alternativas" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Apenas Originais" - msgid "Only for Install" msgstr "Apenas na instalação" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Originais/Alternativas" @@ -1283,12 +1283,6 @@ msgstr "Dicas" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "Dispositivo USB não encontrado" @@ -1479,6 +1473,15 @@ msgstr "de" msgid "seconds left" msgstr "segundos restantes" +#~ msgid "Disc Images" +#~ msgstr "Imagens de Disco" + +#~ msgid "Only Customs" +#~ msgstr "Apenas Alternativas" + +#~ msgid "Only Original" +#~ msgstr "Apenas Originais" + #~ msgid "Do you really want to delete:" #~ msgstr "Tem a certeza que quer eliminar o jogo:" diff --git a/Languages/russian.lang b/Languages/russian.lang index 41c7013b..4e4d7911 100644 --- a/Languages/russian.lang +++ b/Languages/russian.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: nikolai_ca\n" "Language-Team: Kir, alendit, nikolai_ca\n" @@ -343,6 +343,9 @@ msgstr "Создать" msgid "Credits" msgstr "Об авторах" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Изменение путей" @@ -400,9 +403,6 @@ msgstr "Путь к изображениям дисков" msgid "Disc Default" msgstr "По умолчанию (диск)" -msgid "Disc Images" -msgstr "Изображения дисков" - msgid "DiskFlip" msgstr "ДискФлип" @@ -463,7 +463,10 @@ msgstr "Скачать сейчас" msgid "Download finished" msgstr "Скачивание завершено" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Оф. сайт:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Только измененные" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Только оригинальные" - msgid "Only for Install" msgstr "Только при установке" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Измененные/Модифицированные" @@ -1283,12 +1283,6 @@ msgstr "Подсказки" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB устройство не найдено" @@ -1479,6 +1473,15 @@ msgstr "из" msgid "seconds left" msgstr "секунд осталось" +#~ msgid "Disc Images" +#~ msgstr "Изображения дисков" + +#~ msgid "Only Customs" +#~ msgstr "Только измененные" + +#~ msgid "Only Original" +#~ msgstr "Только оригинальные" + #~ msgid "Do you really want to delete:" #~ msgstr "Вы хотите удалить:" diff --git a/Languages/schinese.lang b/Languages/schinese.lang index 9a29ccb7..d97e5ba6 100644 --- a/Languages/schinese.lang +++ b/Languages/schinese.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-21 19:48+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: knife.hu kavid emul8ion\n" "Language-Team: kavid\n" @@ -13,9 +13,6 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -msgid " " -msgstr "" - msgid " Wad Saved as:" msgstr "WAD 保存为:" @@ -346,6 +343,9 @@ msgstr "创建" msgid "Credits" msgstr "作者信息" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "自定义路径" @@ -403,9 +403,6 @@ msgstr "光盘图片路径" msgid "Disc Default" msgstr "游戏默认" -msgid "Disc Images" -msgstr "光盘图片" - msgid "DiskFlip" msgstr "光盘滑动" @@ -466,8 +463,11 @@ msgstr "现在下载" msgid "Download finished" msgstr "下载完成" -msgid "Downloading covers" -msgstr "正在下载封面" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "正在下载自制光盘封面" @@ -610,6 +610,9 @@ msgstr "剩余空间" msgid "French" msgstr "法文" +msgid "Full Menu" +msgstr "" + msgid "Full shutdown" msgstr "完全关机" @@ -976,18 +979,15 @@ msgstr "官方网址:" msgid "Offset" msgstr "偏移位" -msgid "Only Customs" -msgstr "仅自制" - msgid "Only Game Partition" msgstr "仅游戏分区" -msgid "Only Original" -msgstr "仅官方" - msgid "Only for Install" msgstr "仅安装" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "官方/自制" @@ -1075,6 +1075,9 @@ msgstr "删除更新" msgid "Rename Game on WBFS" msgstr "改变 WBFS (硬盘)上的游戏名称" +msgid "Reset" +msgstr "" + msgid "Reset BG Music" msgstr "重置背景音乐" @@ -1280,12 +1283,6 @@ msgstr "提示信息" msgid "Transfer failed" msgstr "传输失败" -msgid "Trying custom Discarts" -msgstr "尝试下载自制光盘封面" - -msgid "Trying original Discarts" -msgstr "尝试下载官方光盘封面" - msgid "USB Device not found" msgstr "找不到 USB 设备" @@ -1476,6 +1473,24 @@ msgstr "的" msgid "seconds left" msgstr "剩余秒数" +#~ msgid "Disc Images" +#~ msgstr "光盘图片" + +#~ msgid "Downloading covers" +#~ msgstr "正在下载封面" + +#~ msgid "Only Customs" +#~ msgstr "仅自制" + +#~ msgid "Only Original" +#~ msgstr "仅官方" + +#~ msgid "Trying custom Discarts" +#~ msgstr "尝试下载自制光盘封面" + +#~ msgid "Trying original Discarts" +#~ msgstr "尝试下载官方光盘封面" + #~ msgid "Do you really want to delete:" #~ msgstr "确定删除:" diff --git a/Languages/spanish.lang b/Languages/spanish.lang index 152727a1..e4641d76 100644 --- a/Languages/spanish.lang +++ b/Languages/spanish.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: SirPalax\n" "Language-Team: Penn, SirPalax\n" @@ -343,6 +343,9 @@ msgstr "Crear" msgid "Credits" msgstr "Créditos" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Personalizar Rutas" @@ -400,9 +403,6 @@ msgstr "Ruta Imagen Discos" msgid "Disc Default" msgstr "Pred. Disco" -msgid "Disc Images" -msgstr "Imagen Discos" - msgid "DiskFlip" msgstr "GiraDiscos" @@ -463,7 +463,10 @@ msgstr "Descargar ahora" msgid "Download finished" msgstr "Descarga completada" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Página Oficial:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Sólo Artísticas" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Sólo Originales" - msgid "Only for Install" msgstr "Sólo al instalar" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Originales/Artísticas" @@ -1283,12 +1283,6 @@ msgstr "InfoBurbujas" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB no encontrado" @@ -1479,6 +1473,15 @@ msgstr "de" msgid "seconds left" msgstr "segundos restantes" +#~ msgid "Disc Images" +#~ msgstr "Imagen Discos" + +#~ msgid "Only Customs" +#~ msgstr "Sólo Artísticas" + +#~ msgid "Only Original" +#~ msgstr "Sólo Originales" + #~ msgid "Do you really want to delete:" #~ msgstr "¿Realmente quieres borrar?:" diff --git a/Languages/swedish.lang b/Languages/swedish.lang index 9e91bc31..94a89f28 100644 --- a/Languages/swedish.lang +++ b/Languages/swedish.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2010-01-19 17:39+0200\n" "Last-Translator: Katsurou\n" "Language-Team: Katsurou, pirateX\n" @@ -343,6 +343,9 @@ msgstr "Skapa" msgid "Credits" msgstr "Medverkande" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Anpassade sökvägar" @@ -400,9 +403,6 @@ msgstr "Skivbildsmapp" msgid "Disc Default" msgstr "Skivans standard" -msgid "Disc Images" -msgstr "Skivbilder" - msgid "DiskFlip" msgstr "Vänd Skiva" @@ -463,7 +463,10 @@ msgstr "Ladda ner nu" msgid "Download finished" msgstr "Nedladdning klar" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Officiell sida:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Endast anpassade" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Endast original" - msgid "Only for Install" msgstr "Endast för installering" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Original/Anpassade" @@ -1283,12 +1283,6 @@ msgstr "Verktygstips" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB-enhet ej hittad" @@ -1479,6 +1473,15 @@ msgstr "av" msgid "seconds left" msgstr "sekunder kvar" +#~ msgid "Disc Images" +#~ msgstr "Skivbilder" + +#~ msgid "Only Customs" +#~ msgstr "Endast anpassade" + +#~ msgid "Only Original" +#~ msgstr "Endast original" + #~ msgid "Do you really want to delete:" #~ msgstr "Vill du verkligen radera:" diff --git a/Languages/tchinese.lang b/Languages/tchinese.lang index 945e242d..6202bbb8 100644 --- a/Languages/tchinese.lang +++ b/Languages/tchinese.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2010-02-15 21:00+0800\n" "Last-Translator: Jane.H\n" "Language-Team: kyogc, Miller, Mika Li, Jane.H\n" @@ -343,6 +343,9 @@ msgstr "產生" msgid "Credits" msgstr "作者信息" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "自訂路徑" @@ -400,9 +403,6 @@ msgstr "光碟圖片路徑" msgid "Disc Default" msgstr "光碟預設" -msgid "Disc Images" -msgstr "光碟圖片" - msgid "DiskFlip" msgstr "光碟滑動" @@ -463,8 +463,11 @@ msgstr "現在下載" msgid "Download finished" msgstr "下載完成" -msgid "Downloading covers" -msgstr "下載封面" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" +msgstr "" msgid "Downloading custom Discarts" msgstr "下載自製光碟圖片" @@ -976,18 +979,15 @@ msgstr "官方網址:" msgid "Offset" msgstr "偏移" -msgid "Only Customs" -msgstr "只顯示自製" - msgid "Only Game Partition" msgstr "僅遊戲磁區" -msgid "Only Original" -msgstr "只顯示原始" - msgid "Only for Install" msgstr "安裝遊戲時" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "原始/自製" @@ -1283,12 +1283,6 @@ msgstr "提示信息" msgid "Transfer failed" msgstr "傳輸失敗" -msgid "Trying custom Discarts" -msgstr "嘗試自製光碟圖片" - -msgid "Trying original Discarts" -msgstr "嘗試原始光碟圖片" - msgid "USB Device not found" msgstr "找不到 USB 設備" @@ -1479,6 +1473,24 @@ msgstr "的" msgid "seconds left" msgstr "剩餘秒數" +#~ msgid "Disc Images" +#~ msgstr "光碟圖片" + +#~ msgid "Downloading covers" +#~ msgstr "下載封面" + +#~ msgid "Only Customs" +#~ msgstr "只顯示自製" + +#~ msgid "Only Original" +#~ msgstr "只顯示原始" + +#~ msgid "Trying custom Discarts" +#~ msgstr "嘗試自製光碟圖片" + +#~ msgid "Trying original Discarts" +#~ msgstr "嘗試原始光碟圖片" + #~ msgid "Do you really want to delete:" #~ msgstr "確定刪除:" diff --git a/Languages/thai.lang b/Languages/thai.lang index 10cac189..927bdd5b 100644 --- a/Languages/thai.lang +++ b/Languages/thai.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: Nitro_subzero \n" "Language-Team: Nitro_subzero\n" @@ -343,6 +343,9 @@ msgstr "สร้าง" msgid "Credits" msgstr "เครดิต" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "กำหนด ที่เก็บ" @@ -400,9 +403,6 @@ msgstr "ที่เก็บ ภาพแผ่น" msgid "Disc Default" msgstr "ค่าตั้งต้นแผ่น" -msgid "Disc Images" -msgstr "ภาพแผ่น" - msgid "DiskFlip" msgstr "สลับด้านแผ่น" @@ -463,7 +463,10 @@ msgstr "เริ่มการดาวน์โหลด" msgid "Download finished" msgstr "ดาวน์โหลดเสร็จแล้ว" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "เวบไซต์อย่างเป็นทางการ:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "เฉพาะที่ดัดแปลง" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "เฉพาะของแท้" - msgid "Only for Install" msgstr "เฉพาะติดตั้งเท่านั้น" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "ของแท้/ดัดแปลง" @@ -1283,12 +1283,6 @@ msgstr "คำแนะนำ" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "ไม่พบอุปกรณ์ USB" @@ -1479,6 +1473,15 @@ msgstr "จาก" msgid "seconds left" msgstr "วินาทีที่เหลือ" +#~ msgid "Disc Images" +#~ msgstr "ภาพแผ่น" + +#~ msgid "Only Customs" +#~ msgstr "เฉพาะที่ดัดแปลง" + +#~ msgid "Only Original" +#~ msgstr "เฉพาะของแท้" + #~ msgid "Do you really want to delete:" #~ msgstr "ต้องการที่จะลบใช่ไหม:" diff --git a/Languages/turkish.lang b/Languages/turkish.lang index 5e6690d5..9fea1f0b 100644 --- a/Languages/turkish.lang +++ b/Languages/turkish.lang @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-22 16:56+0100\n" +"POT-Creation-Date: 2011-01-23 21:03+0100\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n" "Last-Translator: omercigingelini\n" "Language-Team: omercigingelini\n" @@ -343,6 +343,9 @@ msgstr "Oluştur" msgid "Credits" msgstr "Emekçiler" +msgid "Custom Disc Images" +msgstr "" + msgid "Custom Paths" msgstr "Kişisel Yollar" @@ -400,9 +403,6 @@ msgstr "Disk Görsel Yolu" msgid "Disc Default" msgstr "Disk Varsayılanı" -msgid "Disc Images" -msgstr "Disk Resimleri" - msgid "DiskFlip" msgstr "DiskÇevir" @@ -463,7 +463,10 @@ msgstr "Şimdi indir" msgid "Download finished" msgstr "Indirme tamamlandı" -msgid "Downloading covers" +msgid "Downloading 3D Covers" +msgstr "" + +msgid "Downloading Flat Covers" msgstr "" msgid "Downloading custom Discarts" @@ -976,18 +979,15 @@ msgstr "Resmi Site:" msgid "Offset" msgstr "" -msgid "Only Customs" -msgstr "Sadece Kişiseller" - msgid "Only Game Partition" msgstr "" -msgid "Only Original" -msgstr "Sadece Orjinal" - msgid "Only for Install" msgstr "Sadece Kurulum için" +msgid "Original Disc Images" +msgstr "" + msgid "Original/Customs" msgstr "Orjinal/Kişisel" @@ -1283,12 +1283,6 @@ msgstr "Yardımlar" msgid "Transfer failed" msgstr "" -msgid "Trying custom Discarts" -msgstr "" - -msgid "Trying original Discarts" -msgstr "" - msgid "USB Device not found" msgstr "USB Aygıtı bulunamadı" @@ -1479,6 +1473,15 @@ msgstr "./" msgid "seconds left" msgstr "saniye kaldı" +#~ msgid "Disc Images" +#~ msgstr "Disk Resimleri" + +#~ msgid "Only Customs" +#~ msgstr "Sadece Kişiseller" + +#~ msgid "Only Original" +#~ msgstr "Sadece Orjinal" + #~ msgid "Do you really want to delete:" #~ msgstr "Gerçekten silmek istiyor musunuz:" diff --git a/gui.pnproj b/gui.pnproj index 53ad9a40..bcf6bad2 100644 --- a/gui.pnproj +++ b/gui.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/source/libwiigui/gui_box.cpp b/source/libwiigui/gui_box.cpp new file mode 100644 index 00000000..4f7f3f3e --- /dev/null +++ b/source/libwiigui/gui_box.cpp @@ -0,0 +1,42 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#include "gui_box.hpp" + +void GuiBox::Draw() +{ + u32 n = filled ? 4 : 5; + f32 x = GetLeft(); + f32 y = GetTop(); + f32 x2 = x + width; + f32 y2 = y + height; + guVector v[] = { { x, y, 0.0f }, { x2, y, 0.0f }, { x2, y2, 0.0f }, { x, y2, 0.0f }, { x, y, 0.0f } }; + + GX_Begin(filled ? GX_TRIANGLEFAN : GX_LINESTRIP, GX_VTXFMT0, n); + for (u32 i = 0; i < n; i++) + { + GX_Position3f32(v[i].x, v[i].y, v[i].z); + GX_Color4u8(color[i].r, color[i].g, color[i].b, color[i].a); + } + GX_End(); +} diff --git a/source/libwiigui/gui_box.hpp b/source/libwiigui/gui_box.hpp new file mode 100644 index 00000000..858afc91 --- /dev/null +++ b/source/libwiigui/gui_box.hpp @@ -0,0 +1,47 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#ifndef GUIBOX_HPP_ +#define GUIBOX_HPP_ + +#include "libwiigui/gui.h" + +class GuiBox : public GuiElement +{ + public: + GuiBox() : filled(true) { SetColor((GXColor) {255, 255, 255, 255}); } + GuiBox(int w, int h) : filled(true) { width = w; height = h; SetColor((GXColor) {255, 255, 255, 255}); } + //! Set one color for the whole square + void SetColor(const GXColor c) { LOCK(this); for(int i = 0; i < 4; ++i) color[i] = c; } + //! Set Color for each corner having a nice fluent flow into the color of the other corners + //! 0 = up/left, 1 = up/right, 2 = buttom/left, 3 = buttom/right + void SetColor(int i, const GXColor c) { LOCK(this); if(i < 4) color[i] = c; } + void SetSize(int w, int h) { LOCK(this); width = w; height = h; } + void SetFilled(bool f) { LOCK(this); filled = f; } + void Draw(); + protected: + GXColor color[4]; + bool filled; +}; + +#endif diff --git a/source/libwiigui/gui_checkbox.cpp b/source/libwiigui/gui_checkbox.cpp new file mode 100644 index 00000000..f3ad018c --- /dev/null +++ b/source/libwiigui/gui_checkbox.cpp @@ -0,0 +1,86 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#include "gui_checkbox.hpp" + +#define WHITEBOX_RED_SIZE 4 + +GuiCheckbox::GuiCheckbox() + : GuiButton(30, 30), Checked(false) +{ + Cross.SetParent(this); + Blackbox.SetParent(this); + Whitebox.SetParent(this); + Cross.SetColor((GXColor) {0, 0, 0, 255}); + Blackbox.SetColor((GXColor) {0, 0, 0, 255}); + Whitebox.SetColor((GXColor) {255, 255, 255, 255}); + + SetSize(30, 30); +} + +GuiCheckbox::GuiCheckbox(int w, int h) + : GuiButton(w, h), Checked(false) +{ + Cross.SetParent(this); + Blackbox.SetParent(this); + Whitebox.SetParent(this); + Cross.SetColor((GXColor) {0, 0, 0, 255}); + Blackbox.SetColor((GXColor) {0, 0, 0, 255}); + Whitebox.SetColor((GXColor) {255, 255, 255, 255}); + + SetSize(w, h); +} + +void GuiCheckbox::SetSize(int w, int h) +{ + width = w; + height = h; + Cross.SetSize(w-WHITEBOX_RED_SIZE, h-WHITEBOX_RED_SIZE); + Cross.SetPosition(WHITEBOX_RED_SIZE/2, WHITEBOX_RED_SIZE/2); + Blackbox.SetSize(w, h); + Whitebox.SetSize(w-WHITEBOX_RED_SIZE, h-WHITEBOX_RED_SIZE); + Whitebox.SetPosition(WHITEBOX_RED_SIZE/2, WHITEBOX_RED_SIZE/2); +} + +void GuiCheckbox::SetTransparent(bool b) +{ + Blackbox.SetFilled(b); + Whitebox.SetFilled(b); +} + +void GuiCheckbox::SetState(int s, int c) +{ + if(s == STATE_CLICKED) + Checked = !Checked; + else + GuiButton::SetState(s, c); +} + +void GuiCheckbox::Draw() +{ + GuiButton::Draw(); + Blackbox.Draw(); + Whitebox.Draw(); + if(Checked) + Cross.Draw(); +} diff --git a/source/libwiigui/gui_checkbox.hpp b/source/libwiigui/gui_checkbox.hpp new file mode 100644 index 00000000..f44bb575 --- /dev/null +++ b/source/libwiigui/gui_checkbox.hpp @@ -0,0 +1,50 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#ifndef GUICHECKBOX_HPP_ +#define GUICHECKBOX_HPP_ + +#include "libwiigui/gui.h" +#include "libwiigui/gui_box.hpp" +#include "libwiigui/gui_cross.hpp" + +class GuiCheckbox : public GuiButton +{ + public: + GuiCheckbox(); + GuiCheckbox(int w, int h); + void SetTransparent(bool b); + void SetSize(int w, int h); + void SetChecked(bool c) { LOCK(this); Checked = c; } + bool IsChecked() const { return Checked; } + virtual void SetState(int s, int c = -1); + virtual void Draw(); + protected: + GuiCross Cross; + GuiBox Blackbox; + GuiBox Whitebox; + bool Checked; + +}; + +#endif diff --git a/source/libwiigui/gui_circle.cpp b/source/libwiigui/gui_circle.cpp new file mode 100644 index 00000000..2d483477 --- /dev/null +++ b/source/libwiigui/gui_circle.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#include "gui_circle.hpp" + +GuiCircle::GuiCircle() + : radius(100.0f), filled(true), accuracy(36) +{ + + color = (GXColor) {0, 0, 0, 255}; +} + +GuiCircle::GuiCircle(float r) + : radius(r), filled(true), accuracy(36) +{ + color = (GXColor) {0, 0, 0, 255}; +} + +void GuiCircle::Draw() +{ + int loopAmount = filled ? accuracy : accuracy+1; + + GX_Begin(filled ? GX_TRIANGLEFAN : GX_LINESTRIP, GX_VTXFMT0, loopAmount); + for(int i = 0; i < loopAmount; ++i) + { + f32 rad = (f32) i / (f32) accuracy * 360.0f; + f32 x = cos(DegToRad(rad)) * radius + GetLeft(); + f32 y = sin(DegToRad(rad)) * radius + GetTop(); + + GX_Position3f32(x, y, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + } + GX_End(); +} diff --git a/source/libwiigui/gui_circle.hpp b/source/libwiigui/gui_circle.hpp new file mode 100644 index 00000000..3ddb7130 --- /dev/null +++ b/source/libwiigui/gui_circle.hpp @@ -0,0 +1,46 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#ifndef GUICIRCLE_HPP_ +#define GUICIRCLE_HPP_ + +#include "libwiigui/gui.h" + +class GuiCircle : public GuiElement +{ + public: + GuiCircle(); + GuiCircle(float radius); + void SetRadius(float r) { LOCK(this); radius = r; } + void SetColor(const GXColor c) { LOCK(this); color = c; } + void SetAccuracy(int a) { LOCK(this); accuracy = a; } + void SetFilled(bool f) { LOCK(this); filled = f; } + void Draw(); + protected: + GXColor color; + float radius; + bool filled; + int accuracy; +}; + +#endif diff --git a/source/libwiigui/gui_cross.cpp b/source/libwiigui/gui_cross.cpp new file mode 100644 index 00000000..fa027a26 --- /dev/null +++ b/source/libwiigui/gui_cross.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#include "gui_cross.hpp" + +void GuiCross::Draw() +{ + f32 x1 = GetLeft(); + f32 x2 = x1 + width; + f32 y1 = GetTop(); + f32 y2 = y1 + height; + + GX_Begin(GX_TRIANGLEFAN, GX_VTXFMT0, 4); + GX_Position3f32(x1, y1, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_Position3f32(x1-Linewidth, y1+Linewidth, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_Position3f32(x2-Linewidth, y2+Linewidth, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_Position3f32(x2, y2, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_End(); + + GX_Begin(GX_TRIANGLEFAN, GX_VTXFMT0, 4); + GX_Position3f32(x2, y1, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_Position3f32(x2+Linewidth, y1+Linewidth, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_Position3f32(x1+Linewidth, y2+Linewidth, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_Position3f32(x1, y2, 0.0f); + GX_Color4u8(color.r, color.g, color.b, color.a); + GX_End(); +} diff --git a/source/libwiigui/gui_cross.hpp b/source/libwiigui/gui_cross.hpp new file mode 100644 index 00000000..31d9c9d7 --- /dev/null +++ b/source/libwiigui/gui_cross.hpp @@ -0,0 +1,42 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#ifndef GUICROSS_HPP_ +#define GUICROSS_HPP_ + +#include "libwiigui/gui.h" + +class GuiCross : public GuiElement +{ + public: + GuiCross() : Linewidth(1.5f) { color = (GXColor) {0, 0, 0, 255}; } + void SetLinewidth(float w) { LOCK(this); Linewidth = w; } + void SetColor(const GXColor c) { LOCK(this); color = c; } + void SetSize(int w, int h) { LOCK(this); width = w; height = h; } + void Draw(); + protected: + GXColor color; + float Linewidth; +}; + +#endif diff --git a/source/menu/GameBrowseMenu.cpp b/source/menu/GameBrowseMenu.cpp index 18bf93f0..ea1080bb 100644 --- a/source/menu/GameBrowseMenu.cpp +++ b/source/menu/GameBrowseMenu.cpp @@ -737,12 +737,8 @@ void GameBrowseMenu::ReloadBrowser() int GameBrowseMenu::MainLoop() { - time_t rawtime = time(0); - if(rawtime != lastrawtime) //! Only update every 1 second - { - UpdateClock(rawtime); - CheckDiscSlotUpdate(); - } + UpdateClock(); + CheckDiscSlotUpdate(); if (updateavailable == true) { @@ -1105,13 +1101,17 @@ void GameBrowseMenu::CheckDiscSlotUpdate() } } -void GameBrowseMenu::UpdateClock(time_t &rawtime) +void GameBrowseMenu::UpdateClock() { - lastrawtime = rawtime; - if(Settings.hddinfo != CLOCK_HR12 && Settings.hddinfo != CLOCK_HR24) return; + time_t rawtime = time(0); + if(rawtime == lastrawtime) //! Only update every 1 second + return; + + lastrawtime = rawtime; + char theTime[50]; theTime[0] = 0; diff --git a/source/menu/GameBrowseMenu.hpp b/source/menu/GameBrowseMenu.hpp index b3c314d3..385fface 100644 --- a/source/menu/GameBrowseMenu.hpp +++ b/source/menu/GameBrowseMenu.hpp @@ -26,7 +26,7 @@ class GameBrowseMenu : public GuiWindow void CheckOcarina(const char * IDfull); void CheckDiscSlotUpdate(); void UpdateFreeSpace(void *arg); - void UpdateClock(time_t &rawtime); + void UpdateClock(); static void UpdateCallback(void * e); TCallback HDDSizeCallback; diff --git a/source/network/CoverDownload.cpp b/source/network/CoverDownload.cpp index 916a268b..e97c34c1 100644 --- a/source/network/CoverDownload.cpp +++ b/source/network/CoverDownload.cpp @@ -4,6 +4,7 @@ #include "network/http.h" #include "prompts/PromptWindows.h" #include "prompts/ProgressWindow.h" +#include "prompts/CheckboxPrompt.hpp" #include "FileOperations/fileops.h" #include "settings/CSettings.h" #include "language/gettext.h" @@ -162,68 +163,86 @@ static int CoverDownloadWithProgress(const char * url, const char * progressTitl return FilesSkipped; } -void CoverDownload() +static int CoverDownloader(const char * downloadURL, const char *writepath, const char * progressTitle, const char * PromptText, bool skipPrompt) { - int choice = WindowPrompt(tr( "Cover Download" ), 0, tr( "3D Covers" ), tr( "Flat Covers" ), tr( "Disc Images" ), tr( "Back" )); // ask for download choice - if (choice == 0) - return; - - const char * writepath = choice == 1 ? Settings.covers_path : choice == 2 ? Settings.covers2d_path : Settings.disc_path; - const char * downloadURL = choice == 1 ? serverURL3D : choice == 2 ? serverURL2D : NULL; - const char * progressTitle = choice != 3 ? tr("Downloading covers") : NULL; - if(choice == 3) - { - downloadURL = (Settings.discart == 0 || Settings.discart == 2) ? serverURLOrigDiscs : serverURLCustomDiscs; - progressTitle = (Settings.discart == 0 || Settings.discart == 2) ? tr("Downloading original Discarts") : tr("Downloading custom Discarts"); - } - std::vector MissingFilesList; GetMissingGameFiles(writepath, ".png", MissingFilesList); if(MissingFilesList.size() == 0) { WindowPrompt(tr( "No file missing!" ), 0, tr("OK")); - return; + return -1; } if (!IsNetworkInit() && !NetworkInitPrompt()) - return; + return -1; - const char * PromptText = choice == 3 ? tr("Download Discart image?") : tr("Download Boxart image?"); + if(!skipPrompt) + { + char tempCnt[80]; + snprintf(tempCnt, sizeof(tempCnt), "%i %s", MissingFilesList.size(), tr( "Missing files" )); - char tempCnt[80]; - snprintf(tempCnt, sizeof(tempCnt), "%i %s", MissingFilesList.size(), tr( "Missing files" )); - - if (WindowPrompt(PromptText, tempCnt, tr( "Yes" ), tr( "No" )) == 0) - return; + if (WindowPrompt(PromptText, tempCnt, tr( "Yes" ), tr( "No" )) == 0) + return -1; + } AbortRequested = false; - int FileSkipped = CoverDownloadWithProgress(downloadURL, progressTitle, writepath, MissingFilesList); + return CoverDownloadWithProgress(downloadURL, progressTitle, writepath, MissingFilesList); +} - if(choice == 3 && FileSkipped > 0 && Settings.discart > 1) +void CoverDownload() +{ + int choice = CheckboxWindow(tr( "Cover Download" ), 0, tr( "3D Covers" ), tr( "Flat Covers" ), tr( "Original Disc Images" ), tr( "Custom Disc Images" )); // ask for download choice + if (choice == 0) + return; + + bool skipPrompt = false; + int FileSkipped = 0; + int SkippedDiscArts = 0; + + if(choice & CheckedBox1) { - if(downloadURL == serverURLOrigDiscs) - { - progressTitle = tr("Trying custom Discarts"); - downloadURL = serverURLCustomDiscs; - } - else - { - progressTitle = tr("Trying original Discarts"); - downloadURL = serverURLOrigDiscs; - } - - GetMissingGameFiles(writepath, ".png", MissingFilesList); - FileSkipped = CoverDownloadWithProgress(downloadURL, progressTitle, writepath, MissingFilesList); + int ret = CoverDownloader(serverURL3D, Settings.covers_path, tr("Downloading 3D Covers"), tr("Download Boxart image?"), skipPrompt); + if(ret > 0) + FileSkipped += ret; + skipPrompt = true; } + if(choice & CheckedBox2) + { + int ret = CoverDownloader(serverURL2D, Settings.covers2d_path, tr("Downloading Flat Covers"), tr("Download Boxart image?"), skipPrompt); + if(ret > 0) + FileSkipped += ret; + skipPrompt = true; + } + if(choice & CheckedBox3) + { + skipPrompt = true; + const char * downloadURL = (Settings.discart == DISCARTS_ORIGINALS_CUSTOMS) ? serverURLOrigDiscs : serverURLCustomDiscs; + const char * progressTitle = (Settings.discart == DISCARTS_ORIGINALS_CUSTOMS) ? tr("Downloading original Discarts") : tr("Downloading custom Discarts"); + int ret = CoverDownloader(downloadURL, Settings.disc_path, progressTitle, tr("Download Discart image?"), skipPrompt); + if(ret > 0) + SkippedDiscArts = ret; + } + if(choice & CheckedBox4) + { + skipPrompt = true; + const char * downloadURL = (Settings.discart == DISCARTS_ORIGINALS_CUSTOMS) ? serverURLCustomDiscs : serverURLOrigDiscs; + const char * progressTitle = (Settings.discart == DISCARTS_ORIGINALS_CUSTOMS) ? tr("Downloading custom Discarts") : tr("Downloading original Discarts"); + int ret = CoverDownloader(downloadURL, Settings.disc_path, progressTitle, tr("Download Discart image?"), skipPrompt); + if(ret > 0) + SkippedDiscArts = ret; + } + + FileSkipped += SkippedDiscArts; if (FileSkipped == 0) { WindowPrompt(tr("Download finished"), tr("All images downloaded successfully."), tr( "OK" )); } - else + else if(FileSkipped > 0) { + char tempCnt[80]; sprintf(tempCnt, "%i %s", FileSkipped, tr( "files not found on the server!" )); WindowPrompt(tr( "Download finished" ), tempCnt, tr( "OK" )); } diff --git a/source/prompts/CheckboxPrompt.cpp b/source/prompts/CheckboxPrompt.cpp new file mode 100644 index 00000000..f7fc5a2d --- /dev/null +++ b/source/prompts/CheckboxPrompt.cpp @@ -0,0 +1,160 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#include +#include "CheckboxPrompt.hpp" +#include "themes/CTheme.h" +#include "menu/menus.h" +#include "language/gettext.h" + +CheckboxPrompt::CheckboxPrompt(const char * title, const char *msg) + : PromptWindow(title, msg) +{ + PromptWindow::AddButton(tr("OK")); + PromptWindow::AddButton(tr("Cancel")); +} + +CheckboxPrompt::~CheckboxPrompt() +{ + ResumeGui(); + + SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 50); + while(parentElement && this->GetEffect() > 0) usleep(100); + + HaltGui(); + if(parentElement) + ((GuiWindow *) parentElement)->Remove(this); + parentElement = NULL; + + RemoveAll(); + + for(u32 i = 0; i < Checkbox.size(); ++i) + { + delete CheckboxTxt[i]; + delete Checkbox[i]; + } + +} + +void CheckboxPrompt::AddCheckBox(const char *text) +{ + int size = Checkbox.size(); + if(size > 3) + return; + + CheckboxTxt.resize(size+1); + Checkbox.resize(size+1); + + CheckboxTxt[size] = new GuiText(text, 20, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); + CheckboxTxt[size]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); + CheckboxTxt[size]->SetPosition(40, 0); + + Checkbox[size] = new GuiCheckbox(24, 24); + Checkbox[size]->SetLabel(CheckboxTxt[size]); + Checkbox[size]->SetSoundClick(btnSoundClick); + Checkbox[size]->SetSoundOver(btnSoundOver); + Checkbox[size]->SetTrigger(trigA); + Append(Checkbox[size]); + + if(size == 0) + { + Checkbox[size]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Checkbox[size]->SetPosition(60, -170); + } + else if(size == 1) + { + Checkbox[size]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Checkbox[size]->SetPosition(60, -115); + } + else if(size == 2) + { + Checkbox[size]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Checkbox[size]->SetPosition(-170, -170); + } + else if(size == 3) + { + Checkbox[size]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Checkbox[size]->SetPosition(-170, -115); + } +} + +int CheckboxPrompt::GetChoice() +{ + int choice = PromptWindow::GetChoice(); + if(choice == 0) + return 0; + + else if(choice == 1) + { + int ret = 0; + + for(u32 i = 0; i < Checkbox.size(); ++i) + { + if(Checkbox[i]->IsChecked()) + { + ret ^= (int) pow(2, i); + } + } + + return ret; + } + + return -1; +} + + +int CheckboxPrompt::Show(const char *title, const char *msg, const char *chbx1, const char *chbx2, const char *chbx3, const char *chbx4) +{ + CheckboxPrompt * Window = new CheckboxPrompt(title, msg); + if(chbx1) + Window->AddCheckBox(chbx1); + if(chbx2) + Window->AddCheckBox(chbx2); + if(chbx3) + Window->AddCheckBox(chbx3); + if(chbx4) + Window->AddCheckBox(chbx4); + + mainWindow->SetState(STATE_DISABLED); + mainWindow->Append(Window); + mainWindow->ChangeFocus(Window); + + int choice = -1; + + while (choice == -1) + { + usleep(100); + + if (shutdown) + Sys_Shutdown(); + if (reset) + Sys_Reboot(); + + choice = Window->GetChoice(); + } + + delete Window; + mainWindow->SetState(STATE_DEFAULT); + + return choice; +} diff --git a/source/prompts/CheckboxPrompt.hpp b/source/prompts/CheckboxPrompt.hpp new file mode 100644 index 00000000..bf4e3579 --- /dev/null +++ b/source/prompts/CheckboxPrompt.hpp @@ -0,0 +1,58 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#ifndef _CHECKBOXPROMPT_HPP_ +#define _CHECKBOXPROMPT_HPP_ + +#include "libwiigui/gui_checkbox.hpp" +#include "PromptWindow.hpp" + +enum +{ + CheckedBox1 = 0x01, + CheckedBox2 = 0x02, + CheckedBox3 = 0x04, + CheckedBox4 = 0x08, +}; + +class CheckboxPrompt : private PromptWindow +{ + public: + //! Constructor + CheckboxPrompt(const char * title = 0, const char *msg = 0); + //! Destructor + ~CheckboxPrompt(); + //! Add new checkbox + void AddCheckBox(const char *text); + //! Default function to get the button pressed + int GetChoice(); + //! Show window and wait for the user to press OK/Cancel + static int Show(const char *title = 0, const char *msg = 0, const char *chbx1 = 0, const char *chbx2 = 0, const char *chbx3 = 0, const char *chbx4 = 0); + protected: + std::vector CheckboxTxt; + std::vector Checkbox; +}; + +#define CheckboxWindow CheckboxPrompt::Show + +#endif diff --git a/source/prompts/ProgressWindow.cpp b/source/prompts/ProgressWindow.cpp index 3e0618fb..de66a318 100644 --- a/source/prompts/ProgressWindow.cpp +++ b/source/prompts/ProgressWindow.cpp @@ -11,7 +11,8 @@ #include #include -#include "menu.h" +#include "menu/menus.h" +#include "sys.h" #include "language/gettext.h" #include "libwiigui/gui.h" #include "prompts/ProgressWindow.h" @@ -236,18 +237,18 @@ static void ProgressWindow(const char *title, const char *msg1, const char *msg2 progressbarOutlineImg.SetWidescreen(Settings.widescreen); } progressbarOutlineImg.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); - progressbarOutlineImg.SetPosition(25, 40); + progressbarOutlineImg.SetPosition(35, 40); GuiImageData progressbarEmpty(Resources::GetFile("progressbar_empty.png"), Resources::GetFileSize("button_dialogue_box.png")); GuiImage progressbarEmptyImg(&progressbarEmpty); progressbarEmptyImg.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); - progressbarEmptyImg.SetPosition(25, 40); + progressbarEmptyImg.SetPosition(35, 40); progressbarEmptyImg.SetTile(100); GuiImageData progressbar(Resources::GetFile("progressbar.png"), Resources::GetFileSize("progressbar.png")); GuiImage progressbarImg(&progressbar); progressbarImg.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); - progressbarImg.SetPosition(25, 40); + progressbarImg.SetPosition(35, 40); GuiText titleTxt(title, 26, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); @@ -268,7 +269,7 @@ static void ProgressWindow(const char *title, const char *msg1, const char *msg2 GuiText prsTxt("%", 22, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); prsTxt.SetAlignment(ALIGN_RIGHT, ALIGN_MIDDLE); - prsTxt.SetPosition(-188, 40); + prsTxt.SetPosition(-178, 40); GuiText timeTxt((char*) NULL, 22, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); timeTxt.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); @@ -284,7 +285,7 @@ static void ProgressWindow(const char *title, const char *msg1, const char *msg2 GuiText prTxt((char*) NULL, 26, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); prTxt.SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); - prTxt.SetPosition(200, 40); + prTxt.SetPosition(210, 40); if ((Settings.wsprompt) && (Settings.widescreen)) /////////////adjust for widescreen { @@ -347,7 +348,12 @@ static void ProgressWindow(const char *title, const char *msg1, const char *msg2 while (showProgress) { - usleep(100000); + usleep(30000); + + if (shutdown) + Sys_Shutdown(); + if (reset) + Sys_Reboot(); if (changed) { @@ -396,7 +402,7 @@ static void * ProgressThread(void *arg) void InitProgressThread() { LWP_MutexInit(&ProgressMutex, true); - LWP_CreateThread(&progressthread, ProgressThread, NULL, NULL, 16384, 80); + LWP_CreateThread(&progressthread, ProgressThread, NULL, NULL, 16384, 70); } /**************************************************************************** diff --git a/source/prompts/PromptWindow.cpp b/source/prompts/PromptWindow.cpp new file mode 100644 index 00000000..593b2b48 --- /dev/null +++ b/source/prompts/PromptWindow.cpp @@ -0,0 +1,249 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#include +#include "PromptWindow.hpp" +#include "menu/menus.h" +#include "settings/CSettings.h" +#include "themes/CTheme.h" + +PromptWindow::PromptWindow(const char *title, const char *msg) + : GuiWindow(472, 320) +{ + SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); + SetPosition(0, -10); + + btnOutline = Resources::GetImageData("button_dialogue_box.png"); + dialogBox = Resources::GetImageData("dialogue_box.png"); + + width = dialogBox->GetWidth(); + height = dialogBox->GetHeight(); + + trigA = new GuiTrigger; + trigA->SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); + trigB = new GuiTrigger; + trigB->SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B); + + dialogBoxImg = new GuiImage(dialogBox); + if(Settings.wsprompt) + dialogBoxImg->SetWidescreen(Settings.widescreen); + Append(dialogBoxImg); + + titleTxt = new GuiText(title, 26, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); + titleTxt->SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + titleTxt->SetPosition(0, 55); + if(Settings.wsprompt && Settings.widescreen) + titleTxt->SetMaxWidth(width-140, DOTTED); + else + titleTxt->SetMaxWidth(width-40, DOTTED); + Append(titleTxt); + + msgTxt = new GuiText(msg, 22, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); + msgTxt->SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); + msgTxt->SetPosition(0, -40); + if(Settings.wsprompt && Settings.widescreen) + msgTxt->SetMaxWidth(width-140, WRAP); + else + msgTxt->SetMaxWidth(width-40, WRAP); + Append(msgTxt); + + SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_IN, 50); +} + +PromptWindow::~PromptWindow() +{ + ResumeGui(); + + SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 50); + while(parentElement && this->GetEffect() > 0) usleep(100); + + HaltGui(); + if(parentElement) + ((GuiWindow *) parentElement)->Remove(this); + parentElement = NULL; + + RemoveAll(); + + delete btnOutline; + delete dialogBox; + + delete trigA; + delete trigB; + + delete dialogBoxImg; + + delete titleTxt; + delete msgTxt; + + for(u32 i = 0; i < Button.size(); ++i) + { + delete ButtonTxt[i]; + delete ButtonImg[i]; + delete Button[i]; + } + + ResumeGui(); +} + +void PromptWindow::PositionButtons() +{ + if (Settings.wsprompt && Settings.widescreen) + { + switch(Button.size()) + { + default: + break; + case 1: + Button[0]->SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); + Button[0]->SetPosition(0, -80); + case 2: + Button[0]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[0]->SetPosition(70, -80); + Button[1]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[1]->SetPosition(-70, -80); + break; + case 3: + Button[0]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[0]->SetPosition(70, -120); + Button[1]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[1]->SetPosition(-70, -120); + Button[2]->SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); + Button[2]->SetPosition(0, -55); + break; + case 4: + Button[0]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[0]->SetPosition(70, -120); + Button[1]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[1]->SetPosition(-70, -120); + Button[2]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[2]->SetPosition(70, -55); + Button[3]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[3]->SetPosition(-70, -55); + break; + } + } + else + { + switch(Button.size()) + { + default: + break; + case 1: + Button[0]->SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); + Button[0]->SetPosition(0, -45); + break; + case 2: + Button[0]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[0]->SetPosition(50, -45); + Button[1]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[1]->SetPosition(-50, -45); + break; + case 3: + Button[0]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[0]->SetPosition(50, -120); + Button[1]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[1]->SetPosition(-50, -120); + Button[2]->SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); + Button[2]->SetPosition(0, -65); + break; + case 4: + Button[0]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[0]->SetPosition(50, -120); + Button[1]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[1]->SetPosition(-50, -120); + Button[2]->SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); + Button[2]->SetPosition(50, -65); + Button[3]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); + Button[3]->SetPosition(-50, -65); + break; + } + } +} + +void PromptWindow::AddButton(const char *text) +{ + int size = Button.size(); + if(size > 3) + return; + + ButtonTxt.resize(size+1); + ButtonImg.resize(size+1); + Button.resize(size+1); + + ButtonTxt[size] = new GuiText(text, 20, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); + ButtonImg[size] = new GuiImage(btnOutline); + if (Settings.wsprompt) + { + ButtonTxt[size]->SetWidescreen(Settings.widescreen); + ButtonImg[size]->SetWidescreen(Settings.widescreen); + } + + Button[size] = new GuiButton(ButtonImg[size], ButtonImg[size], 0, 3, 0, 0, trigA, btnSoundOver, btnSoundClick2, 1); + Button[size]->SetLabel(ButtonTxt[size]); + Button[size]->SetState(STATE_SELECTED); + Button[size]->SetTrigger(1, trigB); + Append(Button[size]); + + if(size > 0) + Button[size-1]->SetTrigger(1, NULL); + + PositionButtons(); +} + +void PromptWindow::RemoveButton() +{ + Remove(Button[Button.size()-1]); + + delete ButtonTxt[ButtonTxt.size()-1]; + delete ButtonImg[ButtonImg.size()-1]; + delete Button[Button.size()-1]; + + ButtonTxt.pop_back(); + ButtonImg.pop_back(); + Button.pop_back(); + + if(ButtonImg.size() > 0) + Button[ButtonImg.size()-1]->SetTrigger(1, trigB); + + PositionButtons(); +} + +void PromptWindow::RemoveButton(int i) +{ + if(i >= 0 && i < (int) Button.size()) + Remove(Button[i]); +} + +int PromptWindow::GetChoice() +{ + for(u32 i = 0; i < Button.size(); ++i) + { + if(Button[i]->GetState() == STATE_CLICKED) + { + Button[i]->ResetState(); + return (i+1 != Button.size()) ? i+1 : 0; + } + } + + return -1; +} diff --git a/source/prompts/PromptWindow.hpp b/source/prompts/PromptWindow.hpp new file mode 100644 index 00000000..7f83f3ee --- /dev/null +++ b/source/prompts/PromptWindow.hpp @@ -0,0 +1,65 @@ +/**************************************************************************** + * Copyright (C) 2010 + * by Dimok + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any + * damages arising from the use of this software. + * + * Permission is granted to anyone to use this software for any + * purpose, including commercial applications, and to alter it and + * redistribute it freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you + * must not claim that you wrote the original software. If you use + * this software in a product, an acknowledgment in the product + * documentation would be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and + * must not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source + * distribution. + ***************************************************************************/ +#ifndef _PROMPTWINDOW_HPP_ +#define _PROMPTWINDOW_HPP_ + +#include "libwiigui/gui.h" + +class PromptWindow : public GuiWindow +{ + public: + //! Constructor + PromptWindow(const char *title = 0, const char *msg = 0); + //! Destructor + ~PromptWindow(); + //! Set title text + void SetTitle(const char *text) { titleTxt->SetText(text); }; + //! Set message text + void SetMessageText(const char *text) { msgTxt->SetText(text); }; + //! Add new button and rearrange all buttons position. MAX 4 buttons. + void AddButton(const char *text); + //! Removes/deletes the last button and rearranges positions + void RemoveButton(); + //! Removes a button in the position from the window but does not completely delete it + void RemoveButton(int pos); + //! Default function to get the button pressed + int GetChoice(); + //! Forbid = operation + PromptWindow& operator=(const PromptWindow &w); + protected: + void PositionButtons(); + + GuiImageData *btnOutline; + GuiImageData *dialogBox; + GuiImage *dialogBoxImg; + GuiText *titleTxt; + GuiText *msgTxt; + GuiTrigger *trigA; + GuiTrigger *trigB; + std::vector ButtonTxt; + std::vector ButtonImg; + std::vector Button; +}; + +#endif diff --git a/source/prompts/PromptWindows.cpp b/source/prompts/PromptWindows.cpp index 8d727eec..c20bdfb7 100644 --- a/source/prompts/PromptWindows.cpp +++ b/source/prompts/PromptWindows.cpp @@ -23,6 +23,7 @@ #include "network/update.h" #include "network/http.h" #include "prompts/PromptWindows.h" +#include "prompts/PromptWindow.hpp" #include "prompts/gameinfo.h" #include "themes/CTheme.h" #include "utils/StringTools.h" @@ -525,258 +526,45 @@ int WindowPrompt(const char *title, const char *msg, const char *btn1Label, cons { int choice = -1; int count = wait; - gprintf("WindowPrompt( %s, %s, %s, %s, %s, %s, %i ): ", title, msg, btn1Label, btn2Label, btn3Label, btn4Label, - wait); + gprintf("WindowPrompt( %s, %s, %s, %s, %s, %s, %i ): ", title, msg, btn1Label, btn2Label, btn3Label, btn4Label, wait); - GuiWindow promptWindow(472, 320); - promptWindow.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); - promptWindow.SetPosition(0, -10); + PromptWindow *Window = new PromptWindow; + Window->SetTitle(title); + Window->SetMessageText(msg); + if(btn1Label) + Window->AddButton(btn1Label); + if(btn2Label) + Window->AddButton(btn2Label); + if(btn3Label) + Window->AddButton(btn3Label); + if(btn4Label) + Window->AddButton(btn4Label); - GuiImageData btnOutline(Resources::GetFile("button_dialogue_box.png"), Resources::GetFileSize("button_dialogue_box.png")); - GuiImageData dialogBox(Resources::GetFile("dialogue_box.png"), Resources::GetFileSize("dialogue_box.png")); - - GuiTrigger trigA; - trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); - GuiTrigger trigB; - trigB.SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B); - - GuiImage dialogBoxImg(&dialogBox); - if (Settings.wsprompt) - { - dialogBoxImg.SetWidescreen(Settings.widescreen); - } - - GuiText titleTxt(title, 26, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); - titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); - titleTxt.SetPosition(0, 55); - titleTxt.SetMaxWidth(430, DOTTED); - GuiText msgTxt(msg, 22, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); - msgTxt.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE); - msgTxt.SetPosition(0, -40); - msgTxt.SetMaxWidth(430); - - GuiText btn1Txt(btn1Label, 20, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); - GuiImage btn1Img(&btnOutline); - if (Settings.wsprompt) - { - btn1Txt.SetWidescreen(Settings.widescreen); - btn1Img.SetWidescreen(Settings.widescreen); - } - - GuiButton btn1(&btn1Img, &btn1Img, 0, 3, 0, 0, &trigA, btnSoundOver, btnSoundClick2, 1); - btn1.SetLabel(&btn1Txt); - btn1.SetState(STATE_SELECTED); - - GuiText btn2Txt(btn2Label, 20, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); - GuiImage btn2Img(&btnOutline); - if (Settings.wsprompt) - { - btn2Txt.SetWidescreen(Settings.widescreen); - btn2Img.SetWidescreen(Settings.widescreen); - } - GuiButton btn2(&btn2Img, &btn2Img, 0, 3, 0, 0, &trigA, btnSoundOver, btnSoundClick2, 1); - btn2.SetLabel(&btn2Txt); - if (!btn3Label && !btn4Label) btn2.SetTrigger(&trigB); - - GuiText btn3Txt(btn3Label, 20, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); - GuiImage btn3Img(&btnOutline); - if (Settings.wsprompt) - { - btn3Txt.SetWidescreen(Settings.widescreen); - btn3Img.SetWidescreen(Settings.widescreen); - } - GuiButton btn3(&btn3Img, &btn3Img, 0, 3, 0, 0, &trigA, btnSoundOver, btnSoundClick2, 1); - btn3.SetLabel(&btn3Txt); - if (!btn4Label) btn3.SetTrigger(&trigB); - - GuiText btn4Txt(btn4Label, 20, thColor("r=0 g=0 b=0 a=255 - prompt windows text color")); - GuiImage btn4Img(&btnOutline); - if (Settings.wsprompt) - { - btn4Txt.SetWidescreen(Settings.widescreen); - btn4Img.SetWidescreen(Settings.widescreen); - } - GuiButton btn4(&btn4Img, &btn4Img, 0, 3, 0, 0, &trigA, btnSoundOver, btnSoundClick2, 1); - btn4.SetLabel(&btn4Txt); - if (btn4Label) btn4.SetTrigger(&trigB); - - if ((Settings.wsprompt) && (Settings.widescreen)) /////////////adjust buttons for widescreen - { - msgTxt.SetMaxWidth(330); - - if (btn2Label && !btn3Label && !btn4Label) - { - btn1.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn1.SetPosition(70, -80); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-70, -80); - btn3.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn3.SetPosition(-70, -55); - btn4.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn4.SetPosition(70, -55); - } - else if (btn2Label && btn3Label && !btn4Label) - { - btn1.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn1.SetPosition(70, -120); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-70, -120); - btn3.SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); - btn3.SetPosition(0, -55); - btn4.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn4.SetPosition(70, -55); - } - else if (btn2Label && btn3Label && btn4Label) - { - btn1.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn1.SetPosition(70, -120); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-70, -120); - btn3.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn3.SetPosition(70, -55); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-70, -55); - } - else if (!btn2Label && btn3Label && btn4Label) - { - btn1.SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); - btn1.SetPosition(0, -120); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-70, -120); - btn3.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn3.SetPosition(70, -55); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-70, -55); - } - else - { - btn1.SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); - btn1.SetPosition(0, -80); - btn2.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn2.SetPosition(70, -120); - btn3.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn3.SetPosition(-70, -55); - btn4.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn4.SetPosition(70, -55); - } - } - else - { - - if (btn2Label && !btn3Label && !btn4Label) - { - btn1.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn1.SetPosition(40, -45); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-40, -45); - btn3.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn3.SetPosition(50, -65); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-50, -65); - } - else if (btn2Label && btn3Label && !btn4Label) - { - btn1.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn1.SetPosition(50, -120); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-50, -120); - btn3.SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); - btn3.SetPosition(0, -65); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-50, -65); - } - else if (btn2Label && btn3Label && btn4Label) - { - btn1.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn1.SetPosition(50, -120); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-50, -120); - btn3.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn3.SetPosition(50, -65); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-50, -65); - } - else if (!btn2Label && btn3Label && btn4Label) - { - btn1.SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); - btn1.SetPosition(0, -120); - btn2.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn2.SetPosition(-50, -120); - btn3.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn3.SetPosition(50, -65); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-50, -65); - } - else - { - btn1.SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM); - btn1.SetPosition(0, -45); - btn2.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn2.SetPosition(50, -120); - btn3.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM); - btn3.SetPosition(50, -65); - btn4.SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM); - btn4.SetPosition(-50, -65); - } - - } - - promptWindow.Append(&dialogBoxImg); - promptWindow.Append(&titleTxt); - promptWindow.Append(&msgTxt); - - if (btn1Label) promptWindow.Append(&btn1); - if (btn2Label) promptWindow.Append(&btn2); - if (btn3Label) promptWindow.Append(&btn3); - if (btn4Label) promptWindow.Append(&btn4); - - promptWindow.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_IN, 50); - HaltGui(); mainWindow->SetState(STATE_DISABLED); - mainWindow->Append(&promptWindow); - mainWindow->ChangeFocus(&promptWindow); - ResumeGui(); + mainWindow->Append(Window); + mainWindow->ChangeFocus(Window); while (choice == -1) { VIDEO_WaitVSync(); - if (shutdown == 1) + + if (shutdown) { wiilight(0); Sys_Shutdown(); } - if (reset == 1) Sys_Reboot(); - if (btn1.GetState() == STATE_CLICKED) - { - choice = 1; - } - else if (btn2.GetState() == STATE_CLICKED) - { - if (!btn3Label) - choice = 0; - else choice = 2; - } - else if (btn3.GetState() == STATE_CLICKED) - { - if (!btn4Label) - choice = 0; - else choice = 3; - } - else if (btn4.GetState() == STATE_CLICKED) - { - choice = 0; - } + if (reset) + Sys_Reboot(); + + choice = Window->GetChoice(); + if (count > 0) count--; if (count == 0) choice = 1; } - promptWindow.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_OUT, 50); - while (promptWindow.GetEffect() > 0) - usleep(100); - HaltGui(); - mainWindow->Remove(&promptWindow); + delete Window; + mainWindow->SetState(STATE_DEFAULT); - ResumeGui(); gprintf(" %i\n", choice); return choice; diff --git a/source/settings/CGameStatistics.h b/source/settings/CGameStatistics.h index 2335f460..eabe9f51 100644 --- a/source/settings/CGameStatistics.h +++ b/source/settings/CGameStatistics.h @@ -11,7 +11,7 @@ typedef struct _Stats { char id[7]; u8 FavoriteRank; - u8 PlayCount; + int PlayCount; } GameStatus; class CGameStatistics diff --git a/source/settings/CSettings.cpp b/source/settings/CSettings.cpp index f82ce521..3cc4b44d 100644 --- a/source/settings/CSettings.cpp +++ b/source/settings/CSettings.cpp @@ -94,7 +94,7 @@ void CSettings::SetDefault() gridRows = 3; error002 = 2; partition = -1; - discart = DISCARTS_ORIGINALS; + discart = DISCARTS_ORIGINALS_CUSTOMS; xflip = XFLIP_NO; quickboot = OFF; wiilight = WIILIGHT_ON; diff --git a/source/settings/SettingsEnums.h b/source/settings/SettingsEnums.h index 3f68f2de..8324ef28 100644 --- a/source/settings/SettingsEnums.h +++ b/source/settings/SettingsEnums.h @@ -127,10 +127,9 @@ enum enum { - DISCARTS_ORIGINALS, - DISCARTS_CUSTOMS, DISCARTS_ORIGINALS_CUSTOMS, DISCARTS_CUSTOMS_ORIGINALS, + DISCARTS_MAX_CHOICE, }; enum @@ -171,6 +170,7 @@ enum ALT_DOL_FROM_SD_USB, ALT_DOL_ON_LAUNCH, ALT_DOL_DEFAULT, + ALT_DOL_MAX_CHOICE, }; enum @@ -178,6 +178,7 @@ enum HOME_MENU_SYSTEM, HOME_MENU_FULL, HOME_MENU_DEFAULT, + HOME_MENU_MAX_CHOICE, }; #endif diff --git a/source/settings/menus/GUISettingsMenu.cpp b/source/settings/menus/GUISettingsMenu.cpp index 5183f423..bd3aaf32 100644 --- a/source/settings/menus/GUISettingsMenu.cpp +++ b/source/settings/menus/GUISettingsMenu.cpp @@ -77,10 +77,8 @@ static const char * KeyboardText[KEYBOARD_MAX] = "QWERTY 2" }; -static const char * DiscArtDownloadText[4] = +static const char * DiscArtDownloadText[DISCARTS_MAX_CHOICE] = { - trNOOP( "Only Original" ), - trNOOP( "Only Customs" ), trNOOP( "Original/Customs" ), trNOOP( "Customs/Original" ) }; @@ -96,7 +94,7 @@ static const char *ScreensaverText[SCREENSAVER_MAX] = trNOOP( "1 hour" ) }; -static const char * HomeMenuText[3] = +static const char * HomeMenuText[HOME_MENU_MAX_CHOICE] = { trNOOP( "System Default" ), trNOOP( "Full Menu" ), @@ -288,7 +286,7 @@ int GuiSettingsMenu::GetMenuInternal() //! Settings: Disc Artwork Download else if (ret == ++Idx) { - if (++Settings.discart >= 4) Settings.discart = 0; + if (++Settings.discart >= DISCARTS_MAX_CHOICE) Settings.discart = 0; } //! Settings: Wiilight @@ -338,7 +336,7 @@ int GuiSettingsMenu::GetMenuInternal() //! Settings: Home Menu Style else if (ret == ++Idx) { - if (++Settings.HomeMenu >= 3) Settings.HomeMenu = 0; + if (++Settings.HomeMenu >= HOME_MENU_MAX_CHOICE) Settings.HomeMenu = 0; } SetOptionValues(); diff --git a/source/settings/menus/GameLoadSM.cpp b/source/settings/menus/GameLoadSM.cpp index bfbb1978..7a27f51f 100644 --- a/source/settings/menus/GameLoadSM.cpp +++ b/source/settings/menus/GameLoadSM.cpp @@ -311,7 +311,7 @@ int GameLoadSM::GetMenuInternal() //! Settings: Alternate DOL else if (ret == ++Idx) { - if (++GameConfig.loadalternatedol > 4) + if (++GameConfig.loadalternatedol >= ALT_DOL_MAX_CHOICE) GameConfig.loadalternatedol = 0; } diff --git a/source/utils/ThreadedTask.cpp b/source/utils/ThreadedTask.cpp index f3f4ef7e..65f7d702 100644 --- a/source/utils/ThreadedTask.cpp +++ b/source/utils/ThreadedTask.cpp @@ -48,7 +48,11 @@ void * ThreadedTask::ThreadCallback(void *arg) while(!myInstance->CallbackList.empty()) { - myInstance->CallbackList[0]->Execute(myInstance->ArgList[0]); + if(myInstance->CallbackList[0].first) + myInstance->CallbackList[0].first->Execute(myInstance->ArgList[0]); + + else if(myInstance->CallbackList[0].second) + myInstance->CallbackList[0].second(myInstance->ArgList[0]); myInstance->CallbackList.erase(myInstance->CallbackList.begin()); myInstance->ArgList.erase(myInstance->ArgList.begin()); diff --git a/source/utils/ThreadedTask.hpp b/source/utils/ThreadedTask.hpp index 287569ab..168fa021 100644 --- a/source/utils/ThreadedTask.hpp +++ b/source/utils/ThreadedTask.hpp @@ -33,7 +33,21 @@ class ThreadedTask public: static ThreadedTask * Instance() { if(!instance) instance = new ThreadedTask(); return instance; }; static void DestroyInstance() { delete instance; instance = NULL; }; - void AddCallback(cCallback * c, void * arg = 0) { CallbackList.push_back(c); ArgList.push_back(arg); }; + + //! This callback is used for C-Like callbacks + typedef void (*Callback)(void * arg); + void AddCallback(ThreadedTask::Callback C_Standard, void * arg = 0) + { + CallbackList.push_back(std::pair(0, C_Standard)); + ArgList.push_back(arg); + } + //! This callback is used for C++-Like class callbacks + void AddCallback(cCallback * classCallback, void * arg = 0) + { + CallbackList.push_back(std::pair(classCallback, 0)); + ArgList.push_back(arg); + } + //! Start the threaded task thread and execute one callback after another - FIFO style void Execute() { LWP_ResumeThread(Thread); }; private: ThreadedTask(); @@ -44,7 +58,7 @@ class ThreadedTask static ThreadedTask *instance; lwp_t Thread; bool ExitRequested; - std::vector CallbackList; + std::vector > CallbackList; std::vector ArgList; }; diff --git a/source/video.cpp b/source/video.cpp index 10809277..e2c7d708 100644 --- a/source/video.cpp +++ b/source/video.cpp @@ -221,10 +221,10 @@ void Menu_DrawImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, u8 data[] GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT); Mtx m, m1, m2, mv; - width *= .5; - height *= .5; + width *= 0.5f; + height *= 0.5f; guMtxIdentity(m1); - guMtxScaleApply(m1, m1, scaleX, scaleY, 1.0); + guMtxScaleApply(m1, m1, scaleX, scaleY, 1.0f); guVector axis = ( guVector ) { 0 , 0, 1 @@ -233,7 +233,7 @@ void Menu_DrawImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, u8 data[] // guMtxConcat(m2,m1,m); guMtxConcat(m1, m2, m); - guMtxTransApply(m, m, xpos + width + 0.5, ypos + height + 0.5, zpos); + guMtxTransApply(m, m, xpos + width + 0.5f, ypos + height + 0.5f, zpos); guMtxConcat(GXmodelView2D, m, mv); GX_LoadPosMtxImm(mv, GX_PNMTX0); //