gtk: update gtk window size when using scalers
This commit is contained in:
parent
7df73db8a1
commit
8ff01bbe57
|
@ -542,11 +542,43 @@ void setQuality(GtkWidget* w, gpointer p)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void resizeGtkWindow()
|
||||||
|
{
|
||||||
|
if(GameInfo == 0)
|
||||||
|
{
|
||||||
|
double xscale, yscale;
|
||||||
|
g_config->getOption("SDL.XScale", &xscale);
|
||||||
|
g_config->getOption("SDL.YScale", &yscale);
|
||||||
|
gtk_widget_set_size_request(socket, 256*xscale, 224*yscale);
|
||||||
|
GtkRequisition req;
|
||||||
|
gtk_widget_size_request(GTK_WIDGET(MainWindow), &req);
|
||||||
|
gtk_window_resize(GTK_WINDOW(MainWindow), req.width, req.height);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
void setScaler(GtkWidget* w, gpointer p)
|
void setScaler(GtkWidget* w, gpointer p)
|
||||||
{
|
{
|
||||||
int x = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
|
int x = gtk_combo_box_get_active(GTK_COMBO_BOX(w));
|
||||||
g_config->setOption("SDL.SpecialFilter", x);
|
g_config->setOption("SDL.SpecialFilter", x);
|
||||||
g_config->save();
|
g_config->save();
|
||||||
|
|
||||||
|
// 1 - hq2x 2 - Scale2x 3 - NTSC2x 4 - hq3x 5 - Scale3x
|
||||||
|
if (x >= 1 && x <= 3)
|
||||||
|
{
|
||||||
|
g_config->setOption("SDL.XScale", 2.0);
|
||||||
|
g_config->setOption("SDL.YScale", 2.0);
|
||||||
|
g_config->save();
|
||||||
|
resizeGtkWindow();
|
||||||
|
}
|
||||||
|
if (x >= 4 && x < 6)
|
||||||
|
{
|
||||||
|
g_config->setOption("SDL.XScale", 3.0);
|
||||||
|
g_config->setOption("SDL.YScale", 3.0);
|
||||||
|
g_config->save();
|
||||||
|
resizeGtkWindow();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -555,13 +587,7 @@ int setXscale(GtkWidget* w, gpointer p)
|
||||||
double v = gtk_spin_button_get_value(GTK_SPIN_BUTTON(w));
|
double v = gtk_spin_button_get_value(GTK_SPIN_BUTTON(w));
|
||||||
g_config->setOption("SDL.XScale", v);
|
g_config->setOption("SDL.XScale", v);
|
||||||
g_config->save();
|
g_config->save();
|
||||||
double xscale, yscale;
|
resizeGtkWindow();
|
||||||
g_config->getOption("SDL.XScale", &xscale);
|
|
||||||
g_config->getOption("SDL.YScale", &yscale);
|
|
||||||
gtk_widget_set_size_request(socket, 256*xscale, 224*yscale);
|
|
||||||
GtkRequisition req;
|
|
||||||
gtk_widget_size_request(GTK_WIDGET(MainWindow), &req);
|
|
||||||
gtk_window_resize(GTK_WINDOW(MainWindow), req.width, req.height);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -570,13 +596,7 @@ int setYscale(GtkWidget* w, gpointer p)
|
||||||
double v = gtk_spin_button_get_value(GTK_SPIN_BUTTON(w));
|
double v = gtk_spin_button_get_value(GTK_SPIN_BUTTON(w));
|
||||||
g_config->setOption("SDL.YScale", v);
|
g_config->setOption("SDL.YScale", v);
|
||||||
g_config->save();
|
g_config->save();
|
||||||
double xscale, yscale;
|
resizeGtkWindow();
|
||||||
g_config->getOption("SDL.XScale", &xscale);
|
|
||||||
g_config->getOption("SDL.YScale", &yscale);
|
|
||||||
gtk_widget_set_size_request(socket, 256*xscale, 224*yscale);
|
|
||||||
GtkRequisition req;
|
|
||||||
gtk_widget_size_request(GTK_WIDGET(MainWindow), &req);
|
|
||||||
gtk_window_resize(GTK_WINDOW(MainWindow), req.width, req.height);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1216,6 +1236,13 @@ void loadNSF ()
|
||||||
gtk_widget_destroy (fileChooser);
|
gtk_widget_destroy (fileChooser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void closeGame()
|
||||||
|
{
|
||||||
|
GdkColor bg = {0, 0, 0, 0};
|
||||||
|
gtk_widget_modify_bg(socket, GTK_STATE_NORMAL, &bg);
|
||||||
|
CloseGame();
|
||||||
|
}
|
||||||
|
|
||||||
void loadGame ()
|
void loadGame ()
|
||||||
{
|
{
|
||||||
GtkWidget* fileChooser;
|
GtkWidget* fileChooser;
|
||||||
|
@ -1283,6 +1310,7 @@ void loadGame ()
|
||||||
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileChooser));
|
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileChooser));
|
||||||
gtk_widget_destroy (fileChooser);
|
gtk_widget_destroy (fileChooser);
|
||||||
g_config->setOption("SDL.LastOpenFile", filename);
|
g_config->setOption("SDL.LastOpenFile", filename);
|
||||||
|
closeGame();
|
||||||
if(LoadGame(filename) == 0)
|
if(LoadGame(filename) == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1292,19 +1320,13 @@ void loadGame ()
|
||||||
gtk_dialog_run(GTK_DIALOG(d));
|
gtk_dialog_run(GTK_DIALOG(d));
|
||||||
gtk_widget_destroy(d);
|
gtk_widget_destroy(d);
|
||||||
}
|
}
|
||||||
|
resizeGtkWindow();
|
||||||
g_free(filename);
|
g_free(filename);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
gtk_widget_destroy (fileChooser);
|
gtk_widget_destroy (fileChooser);
|
||||||
}
|
}
|
||||||
|
|
||||||
void closeGame()
|
|
||||||
{
|
|
||||||
GdkColor bg = {0, 0, 0, 0};
|
|
||||||
gtk_widget_modify_bg(socket, GTK_STATE_NORMAL, &bg);
|
|
||||||
CloseGame();
|
|
||||||
}
|
|
||||||
|
|
||||||
void saveStateAs()
|
void saveStateAs()
|
||||||
{
|
{
|
||||||
GtkWidget* fileChooser;
|
GtkWidget* fileChooser;
|
||||||
|
|
Loading…
Reference in New Issue