GTK: added clear palette button
GTK: added exception for bad palette file
This commit is contained in:
parent
39787369f3
commit
eae3042e42
|
@ -29,7 +29,7 @@
|
|||
/**
|
||||
* Read a custom pallete from a file and load it into the core.
|
||||
*/
|
||||
void
|
||||
int
|
||||
LoadCPalette(const std::string &file)
|
||||
{
|
||||
printf("Loading custom palette from file...\n");
|
||||
|
@ -38,11 +38,12 @@ LoadCPalette(const std::string &file)
|
|||
|
||||
if(!(fp = FCEUD_UTF8fopen(file.c_str(), "rb"))) {
|
||||
printf(" Error loading custom palette from file: %s\n", file.c_str());
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
fread(tmpp, 1, 192, fp);
|
||||
FCEUI_SetPaletteArray(tmpp);
|
||||
fclose(fp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
|
||||
Config *InitConfig(void);
|
||||
void UpdateEMUCore(Config *);
|
||||
void LoadCPalette(const std::string &file);
|
||||
int LoadCPalette(const std::string &file);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -151,7 +151,15 @@ void loadPalette (GtkWidget* w, gpointer p)
|
|||
|
||||
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileChooser));
|
||||
g_config->setOption("SDL.Palette", filename);
|
||||
LoadCPalette(filename);
|
||||
if(LoadCPalette(filename))
|
||||
{
|
||||
GtkWidget* msgbox;
|
||||
msgbox = gtk_message_dialog_new(GTK_WINDOW(MainWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
|
||||
"Failed to load the palette.");
|
||||
gtk_dialog_run(GTK_DIALOG(msgbox));
|
||||
gtk_widget_hide_all(msgbox);
|
||||
}
|
||||
|
||||
gtk_entry_set_text(GTK_ENTRY(p), filename);
|
||||
|
||||
g_free(filename);
|
||||
|
@ -159,6 +167,13 @@ void loadPalette (GtkWidget* w, gpointer p)
|
|||
}
|
||||
gtk_widget_destroy (fileChooser);
|
||||
}
|
||||
|
||||
void clearPalette(GtkWidget* w, gpointer p)
|
||||
{
|
||||
g_config->setOption("SDL.Palette", 0);
|
||||
gtk_entry_set_text(GTK_ENTRY(p), "");
|
||||
}
|
||||
|
||||
void openPaletteConfig()
|
||||
{
|
||||
GtkWidget* win;
|
||||
|
@ -166,6 +181,7 @@ void openPaletteConfig()
|
|||
GtkWidget* paletteHbox;
|
||||
GtkWidget* paletteButton;
|
||||
GtkWidget* paletteEntry;
|
||||
GtkWidget* clearButton;
|
||||
GtkWidget* slidersFrame;
|
||||
GtkWidget* slidersVbox;
|
||||
GtkWidget* colorFrame;
|
||||
|
@ -188,10 +204,16 @@ void openPaletteConfig()
|
|||
paletteEntry = gtk_entry_new();
|
||||
gtk_entry_set_editable(GTK_ENTRY(paletteEntry), FALSE);
|
||||
|
||||
clearButton = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(paletteHbox), paletteButton, FALSE, FALSE, 2);
|
||||
gtk_box_pack_start(GTK_BOX(paletteHbox), paletteEntry, TRUE, TRUE, 5);
|
||||
gtk_box_pack_start(GTK_BOX(paletteHbox), clearButton, FALSE, FALSE, 0);
|
||||
|
||||
g_signal_connect(paletteButton, "clicked", G_CALLBACK(loadPalette), paletteEntry);
|
||||
g_signal_connect(clearButton, "clicked", G_CALLBACK(clearPalette), paletteEntry);
|
||||
|
||||
|
||||
|
||||
// sync with config
|
||||
std::string fn;
|
||||
|
@ -199,6 +221,8 @@ void openPaletteConfig()
|
|||
gtk_entry_set_text(GTK_ENTRY(paletteEntry), fn.c_str());
|
||||
|
||||
|
||||
|
||||
|
||||
// color / tint / hue sliders
|
||||
slidersFrame = gtk_frame_new("Video controls");
|
||||
slidersVbox = gtk_vbox_new(TRUE, 2);
|
||||
|
@ -680,13 +704,9 @@ void quit ()
|
|||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
GtkWidget* aboutDialog;
|
||||
|
||||
inline void quitAbout(void) { gtk_widget_hide_all(aboutDialog);}
|
||||
|
||||
void showAbout ()
|
||||
{
|
||||
GtkWidget* aboutDialog;
|
||||
|
||||
aboutDialog = gtk_about_dialog_new ();
|
||||
gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(aboutDialog), "About fceuX");
|
||||
|
@ -696,9 +716,9 @@ void showAbout ()
|
|||
gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(aboutDialog), "http://fceux.com");
|
||||
|
||||
|
||||
gtk_widget_show_all(GTK_WIDGET(aboutDialog));
|
||||
gtk_dialog_run(GTK_DIALOG(aboutDialog));
|
||||
gtk_widget_hide_all(aboutDialog);
|
||||
|
||||
g_signal_connect(G_OBJECT(aboutDialog), "delete-event", quitAbout, NULL);
|
||||
}
|
||||
|
||||
void toggleSound(GtkWidget* check, gpointer data)
|
||||
|
|
Loading…
Reference in New Issue