96 lines
2.2 KiB
C
96 lines
2.2 KiB
C
/*
|
|
* tests/mterm-app.c
|
|
*
|
|
* Copyright (C) 2004-2007 by Yevgen Muntyan <muntyan@math.tamu.edu>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1 as published by the Free Software Foundation.
|
|
*
|
|
* See COPYING file that comes with this distribution.
|
|
*/
|
|
|
|
#include "mterm-ui.h"
|
|
#include "mterm-app.h"
|
|
#include <mooutils/mooutils-misc.h>
|
|
|
|
|
|
G_DEFINE_TYPE(MooTermApp, moo_term_app, MOO_TYPE_APP)
|
|
|
|
|
|
static gboolean
|
|
on_window_close (MooApp *app)
|
|
{
|
|
return !moo_app_quit (app);
|
|
}
|
|
|
|
|
|
static int
|
|
moo_term_app_run (MooApp *app)
|
|
{
|
|
MooTermApp *tapp = MOO_TERM_APP (app);
|
|
|
|
tapp->window = g_object_new (MOO_TYPE_TERM_WINDOW, NULL);
|
|
tapp->term = tapp->window->terminal;
|
|
|
|
moo_window_set_ui_xml (MOO_WINDOW (tapp->window),
|
|
moo_app_get_ui_xml (app));
|
|
gtk_widget_show (GTK_WIDGET (tapp->window));
|
|
g_signal_connect_swapped (tapp->window, "delete-event",
|
|
G_CALLBACK (on_window_close),
|
|
tapp);
|
|
|
|
moo_term_start_default_shell (tapp->term, NULL);
|
|
|
|
return MOO_APP_CLASS(moo_term_app_parent_class)->run (app);
|
|
}
|
|
|
|
|
|
static gboolean
|
|
moo_term_app_try_quit (MooApp *app)
|
|
{
|
|
return MOO_APP_CLASS(moo_term_app_parent_class)->try_quit (app);
|
|
}
|
|
|
|
|
|
static void
|
|
moo_term_app_class_init (MooTermAppClass *klass)
|
|
{
|
|
MooAppClass *app_class = MOO_APP_CLASS (klass);
|
|
app_class->run = moo_term_app_run;
|
|
app_class->try_quit = moo_term_app_try_quit;
|
|
}
|
|
|
|
|
|
static void
|
|
moo_term_app_init (MooTermApp *app)
|
|
{
|
|
}
|
|
|
|
|
|
int main (int argc, char *argv[])
|
|
{
|
|
MooApp *app;
|
|
MooUIXML *xml;
|
|
|
|
gtk_init (&argc, &argv);
|
|
// gdk_window_set_debug_updates (TRUE);
|
|
|
|
moo_set_log_func_window (TRUE);
|
|
|
|
app = g_object_new (MOO_TYPE_TERM_APP,
|
|
"argv", argv,
|
|
"short-name", "mterm",
|
|
"full-name", "mterm",
|
|
"description", "mterm is a terminal emulator app",
|
|
NULL);
|
|
|
|
xml = moo_app_get_ui_xml (app);
|
|
moo_ui_xml_add_ui_from_string (xml, MTERM_UI, -1);
|
|
|
|
if (!moo_app_init (app))
|
|
return 0;
|
|
|
|
return moo_app_run (app);
|
|
}
|