#include <mil.h>
#include <gtk/gtk.h>
#include <X11/Xlib.h>
#include <stdlib.h>
#include "mdispgtkapp.h"
#include "mainframe.h"
static void activate (GApplication *app, gpointer user_data)
{
GtkWidget *win;
MdispGtkApp* dispApp = (MdispGtkApp *) user_data;
dispApp->InitWindow();
gtk_window_present (GTK_WINDOW (dispApp->GetMainFrame()->MainWindow()));
}
static void shutdown (GApplication *app, gpointer user_data)
{
MdispGtkApp* dispApp = (MdispGtkApp *) user_data;
if(dispApp)
dispApp->GetMainFrame()->Quit(true);
}
static void startup (GApplication *app, gpointer user_data)
{
GtkBuilder *builder;
GMenuModel *menubar;
builder = gtk_builder_new ();
gtk_builder_add_from_resource (builder, "/images/menus.ui", NULL);
menubar = (GMenuModel *)gtk_builder_get_object (builder, "menubar");
gtk_application_set_menubar (GTK_APPLICATION (app), menubar);
g_object_unref (builder);
}
int main(int argc, char *argv[])
{
GtkApplication *gtkApp;
setenv("GDK_BACKEND","x11", 1);
XInitThreads();
gtk_init (NULL, NULL);
gtkApp = gtk_application_new ("com.matrox.MdispGtk", G_APPLICATION_FLAGS_NONE);
MdispGtkApp dispApp(gtkApp);
g_signal_connect (gtkApp, "startup", G_CALLBACK (startup), &dispApp);
g_signal_connect (gtkApp, "activate", G_CALLBACK (activate), &dispApp);
g_signal_connect (gtkApp, "shutdown", G_CALLBACK (shutdown), &dispApp);
g_application_run (G_APPLICATION (gtkApp), 0, NULL);
return 0;
}