GTK: hide window on fullscreen

GTK: add framework for display FCEUD_Message()s
This commit is contained in:
punkrockguy318 2010-02-19 16:36:39 +00:00
parent 7b11c1e8a8
commit 9f9cb9c2fc
4 changed files with 55 additions and 3 deletions

View File

@ -3,6 +3,8 @@
#include<SDL/SDL.h> #include<SDL/SDL.h>
//#include <vte/vte.h>
#include "../../types.h" #include "../../types.h"
#include "../../fceu.h" #include "../../fceu.h"
#include "../../driver.h" #include "../../driver.h"
@ -567,7 +569,30 @@ static GtkWidget* CreateMenubar( GtkWidget* window)
/* Finally, return the actual menu bar created by the item factory. */ /* Finally, return the actual menu bar created by the item factory. */
return gtk_item_factory_get_widget (item_factory, "<main>"); return gtk_item_factory_get_widget (item_factory, "<main>");
} }
//GtkTextBuffer* gtkConsoleBuf;
//GtkWidget* consoleOutput;
//GtkTextIter iter;
char* buf;
//GtkWidget* term;
void pushOutputToGTK(const char* str)
{
//printf(str);
//gtk_text_buffer_insert(GTK_TEXT_BUFFER(gtkConsoleBuf), &iter, str, -1);
//gtk_text_buffer_set_text(gtkConsoleBuf, str, -1);
//vte_terminal_feed_child(VTE_TERMINAL(term), str, -1);
return;
}
void showGui(bool b)
{
if(b)
gtk_widget_show_all(MainWindow);
else
gtk_widget_hide_all(MainWindow);
}
int InitGTKSubsystem(int argc, char** argv) int InitGTKSubsystem(int argc, char** argv)
{ {
@ -575,6 +600,8 @@ int InitGTKSubsystem(int argc, char** argv)
GtkWidget* Menubar; GtkWidget* Menubar;
GtkWidget* vbox; GtkWidget* vbox;
int xres, yres; int xres, yres;
g_config->getOption("SDL.XResolution", &xres); g_config->getOption("SDL.XResolution", &xres);
@ -591,9 +618,21 @@ int InitGTKSubsystem(int argc, char** argv)
Menubar = CreateMenubar(MainWindow); Menubar = CreateMenubar(MainWindow);
//consoleOutput = gtk_text_view_new_with_buffer(gtkConsoleBuf);
//gtk_text_view_set_editable(GTK_TEXT_VIEW(consoleOutput), FALSE);
//gtkConsoleBuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(consoleOutput));
//gtk_text_buffer_get_iter_at_offset(gtkConsoleBuf, &iter, 0);
//gtk_text_buffer_insert(gtkConsoleBuf, &iter, "FceuX GUI Started.\n", -1);
// = vte_terminal_new();
//vte_terminal_feed(VTE_TERMINAL(term), "FceuX GUI Started", -1);
//gtk_container_add(GTK_CONTAINER(vbox), Menubar); //gtk_container_add(GTK_CONTAINER(vbox), Menubar);
gtk_box_pack_start (GTK_BOX(vbox), Menubar, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX(vbox), Menubar, FALSE, TRUE, 0);
//gtk_box_pack_start (GTK_BOX(vbox), term, TRUE, TRUE, 0);

View File

@ -20,5 +20,6 @@
#ifndef FCEUX_GUI_H #ifndef FCEUX_GUI_H
#define FCEUX_GUI_H #define FCEUX_GUI_H
int InitGTKSubsystem(int argc, char** argv); int InitGTKSubsystem(int argc, char** argv);
void pushOutputToGTK(const char* str);
void showGui(bool b);
#endif #endif

View File

@ -41,6 +41,10 @@
#include "../videolog/nesvideos-piece.h" #include "../videolog/nesvideos-piece.h"
#endif #endif
#ifdef _GTK2
#include "gui.h"
#endif
// GLOBALS // GLOBALS
extern Config *g_config; extern Config *g_config;
@ -434,7 +438,12 @@ ToggleFS()
// flip the fullscreen flag // flip the fullscreen flag
g_config->setOption("SDL.Fullscreen", !fullscreen); g_config->setOption("SDL.Fullscreen", !fullscreen);
#ifdef _GTK2
if(!fullscreen)
showGui(0);
else
showGui(1);
#endif
// try to initialize the video // try to initialize the video
error = InitVideo(GameInfo); error = InitVideo(GameInfo);
if(error) { if(error) {

View File

@ -806,6 +806,9 @@ FCEUD_GetTimeFreq(void)
void FCEUD_Message(const char *text) void FCEUD_Message(const char *text)
{ {
fputs(text, stdout); fputs(text, stdout);
#ifdef _GTK2
pushOutputToGTK(text);
#endif
} }
/** /**