135 lines
3.3 KiB
Plaintext
135 lines
3.3 KiB
Plaintext
/*
|
|
* medit-app.c
|
|
*
|
|
* Copyright (C) 2004-2005 by Yevgen Muntyan <muntyan@math.tamu.edu>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* See COPYING file that comes with this distribution.
|
|
*/
|
|
|
|
#include "config.h"
|
|
#include "medit-ui.h"
|
|
#include <mooapp/mooapp.h>
|
|
#include <gtk/gtk.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
|
|
int _medit_parse_options (const char *const program_name,
|
|
const int argc,
|
|
char **const argv);
|
|
|
|
/********************************************************
|
|
* command line parsing code generated by Opag
|
|
* http://www.zero-based.org/software/opag/
|
|
*/
|
|
%%
|
|
n new-app "Run new instance of application"
|
|
#ifdef __WIN32__
|
|
l log "[=FILE] Show debug output or write it to FILE" optarg
|
|
#endif
|
|
#ifdef MOO_USE_PYTHON
|
|
p log-python "Redirect output to python console"
|
|
#endif
|
|
version "Display version information and exit" return
|
|
h help "Display this help text and exit" return
|
|
%%
|
|
/* end of generated code
|
|
********************************************************/
|
|
|
|
|
|
static void usage (void)
|
|
{
|
|
g_print ("Usage: %s [OPTIONS] [FILES]\n", g_get_prgname ());
|
|
g_print ("Options:\n");
|
|
|
|
g_print ("%s", STR_HELP_NEW_APP);
|
|
#ifdef __WIN32__
|
|
g_print ("%s", STR_HELP_LOG);
|
|
#endif
|
|
#ifdef MOO_USE_PYTHON
|
|
g_print ("%s", STR_HELP_LOG_PYTHON);
|
|
#endif
|
|
g_print ("%s", STR_HELP_VERSION);
|
|
g_print ("%s", STR_HELP_HELP);
|
|
}
|
|
|
|
static void version (void)
|
|
{
|
|
g_print ("medit %s\n", MOO_VERSION);
|
|
}
|
|
|
|
|
|
int main (int argc, char *argv[])
|
|
{
|
|
MooApp *app;
|
|
int opt_remain;
|
|
MooUIXML *xml;
|
|
MooEditor *editor;
|
|
G_GNUC_UNUSED gboolean use_python_console = FALSE;
|
|
|
|
gtk_init (&argc, &argv);
|
|
// gdk_window_set_debug_updates (TRUE);
|
|
|
|
opt_remain = _medit_parse_options (g_get_prgname (), argc, argv);
|
|
|
|
if (opt_remain < 0)
|
|
{
|
|
usage ();
|
|
return 1;
|
|
}
|
|
|
|
if (_medit_opt_help)
|
|
{
|
|
usage ();
|
|
return 0;
|
|
}
|
|
else if (_medit_opt_version)
|
|
{
|
|
version ();
|
|
return 0;
|
|
}
|
|
|
|
#ifdef __WIN32__
|
|
if (_medit_opt_log)
|
|
{
|
|
if (_medit_arg_log)
|
|
moo_set_log_func_file (_medit_arg_log);
|
|
else
|
|
moo_set_log_func_window (TRUE);
|
|
}
|
|
#endif
|
|
|
|
#ifdef MOO_USE_PYTHON
|
|
if (_medit_opt_log_python)
|
|
use_python_console = TRUE;
|
|
#endif
|
|
|
|
app = g_object_new (MOO_TYPE_APP,
|
|
"argv", argv,
|
|
"short-name", "medit",
|
|
"full-name", "medit",
|
|
"description", "medit is a text editor",
|
|
#ifdef MOO_USE_PYTHON
|
|
"use-python-console", use_python_console,
|
|
#endif
|
|
"open-files", argv + opt_remain,
|
|
"new-app", (gboolean) _medit_opt_new_app,
|
|
NULL);
|
|
|
|
xml = moo_app_get_ui_xml (app);
|
|
moo_ui_xml_add_ui_from_string (xml, MEDIT_UI, -1);
|
|
|
|
if (!moo_app_init (app))
|
|
return 0;
|
|
|
|
editor = moo_app_get_editor (app);
|
|
moo_editor_new_window (editor);
|
|
|
|
return moo_app_run (app);
|
|
}
|