/* * medit-app.c * * Copyright (C) 2004-2005 by Yevgen Muntyan * * 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 #include #include #include #include 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); }