r1302@mlap: muntyan | 2006-02-21 02:30:32 -0600

Removed MooAppWindowPolicy; removed all terminal stuff from MooApp
master
Yevgen Muntyan 2006-02-21 14:34:38 +00:00
parent 47bddf0d9f
commit 62a8388327
5 changed files with 8 additions and 173 deletions

View File

@ -52,7 +52,6 @@ struct _MooAppPrivate {
gboolean run_python;
gboolean run_input;
gboolean run_output;
MooAppWindowPolicy window_policy;
gboolean running;
gboolean in_try_quit;
@ -116,8 +115,6 @@ static void moo_app_set_name (MooApp *app,
static void moo_app_set_description (MooApp *app,
const char *description);
static void all_editors_closed (MooApp *app);
static void start_io (MooApp *app);
static void execute_selection (MooEditWindow *window);
@ -158,7 +155,6 @@ enum {
PROP_SHORT_NAME,
PROP_FULL_NAME,
PROP_DESCRIPTION,
PROP_WINDOW_POLICY,
PROP_RUN_PYTHON,
PROP_RUN_INPUT,
PROP_RUN_OUTPUT,
@ -234,15 +230,6 @@ moo_app_class_init (MooAppClass *klass)
NULL,
G_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
PROP_WINDOW_POLICY,
g_param_spec_flags ("window-policy",
"window-policy",
"window-policy",
MOO_TYPE_APP_WINDOW_POLICY,
MOO_APP_QUIT_ON_CLOSE_ALL_WINDOWS,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (gobject_class,
PROP_RUN_PYTHON,
g_param_spec_boolean ("run-python",
@ -368,12 +355,8 @@ moo_app_instance_init (MooApp *app)
app->priv->info = moo_app_info_new ();
app->priv->info->version = g_strdup (APP_VERSION);
app->priv->info->website = g_strdup ("http://ggap.sourceforge.net/");
app->priv->info->website_label = g_strdup ("ggap.sourceforge.net");
#ifdef MOO_BUILD_TERM
moo_app_set_terminal_type (app, MOO_TYPE_TERM_WINDOW);
#endif
app->priv->info->website = g_strdup ("http://ggap.berlios.de/");
app->priv->info->website_label = g_strdup ("http://ggap.berlios.de");
}
@ -459,11 +442,6 @@ moo_app_set_property (GObject *object,
moo_app_set_description (app, g_value_get_string (value));
break;
case PROP_WINDOW_POLICY:
app->priv->window_policy = g_value_get_flags (value);
g_object_notify (object, "window-policy");
break;
case PROP_RUN_PYTHON:
app->priv->run_python = g_value_get_boolean (value);
break;
@ -525,10 +503,6 @@ moo_app_get_property (GObject *object,
g_value_set_string (value, app->priv->info->description);
break;
case PROP_WINDOW_POLICY:
g_value_set_flags (value, app->priv->window_policy);
break;
case PROP_RUN_PYTHON:
g_value_set_boolean (value, app->priv->run_python);
break;
@ -920,11 +894,6 @@ moo_app_init_real (MooApp *app)
moo_lang_mgr_read_dirs (lang_mgr);
g_signal_connect_swapped (app->priv->editor,
"all-windows-closed",
G_CALLBACK (all_editors_closed),
app);
plugin_dirs = moo_app_get_plugin_dirs (app);
moo_set_plugin_dirs (plugin_dirs);
moo_plugin_init_builtin ();
@ -1256,86 +1225,6 @@ static void install_actions (MooApp *app, GType type)
}
#ifdef MOO_BUILD_TERM
static void terminal_destroyed (MooTermWindow *term,
MooApp *app)
{
MooAppWindowPolicy policy;
gboolean quit;
app->priv->terminals = g_slist_remove (app->priv->terminals,
term);
if (app->priv->term_window == term)
app->priv->term_window = app->priv->terminals ?
app->priv->terminals->data : NULL;
policy = app->priv->window_policy;
quit = (policy & MOO_APP_QUIT_ON_CLOSE_ALL_TERMINALS) ||
((policy & MOO_APP_QUIT_ON_CLOSE_ALL_WINDOWS) &&
!moo_editor_get_active_window (app->priv->editor));
if (quit)
moo_app_quit (app);
}
static MooTermWindow *new_terminal (MooApp *app)
{
MooTermWindow *term;
term = g_object_new (app->priv->term_window_type,
"ui-xml", app->priv->ui_xml,
NULL);
app->priv->terminals = g_slist_append (app->priv->terminals, term);
if (!app->priv->term_window)
app->priv->term_window = term;
g_signal_connect (term, "destroy",
G_CALLBACK (terminal_destroyed), app);
return term;
}
void
moo_app_set_terminal_type (MooApp *app,
GType type)
{
g_return_if_fail (MOO_IS_APP (app));
g_return_if_fail (g_type_is_a (type, MOO_TYPE_TERM_WINDOW));
app->priv->term_window_type = type;
}
MooTermWindow*
moo_app_get_terminal (MooApp *app)
{
MooTermWindow *term;
g_return_val_if_fail (MOO_IS_APP (app), NULL);
if (app->priv->terminals)
{
return app->priv->terminals->data;
}
else
{
term = new_terminal (app);
gtk_window_present (GTK_WINDOW (term));
return term;
}
}
#else /* !MOO_BUILD_TERM */
MooTermWindow *moo_app_get_terminal (MooApp *app)
{
g_return_val_if_fail (MOO_IS_APP (app), NULL);
g_return_val_if_reached (NULL);
}
#endif /* !MOO_BUILD_TERM */
static void install_editor_actions (MooApp *app)
{
MooWindowClass *klass = g_type_class_ref (MOO_TYPE_EDIT_WINDOW);
@ -1408,17 +1297,6 @@ static void install_terminal_actions (G_GNUC_UNUSED MooApp *app)
#endif /* !MOO_BUILD_TERM */
static void all_editors_closed (MooApp *app)
{
MooAppWindowPolicy policy = app->priv->window_policy;
gboolean quit = (policy & MOO_APP_QUIT_ON_CLOSE_ALL_EDITORS) ||
((policy & MOO_APP_QUIT_ON_CLOSE_ALL_WINDOWS) && !app->priv->terminals);
if (quit)
moo_app_quit (app);
}
MooUIXML *moo_app_get_ui_xml (MooApp *app)
{
g_return_val_if_fail (MOO_IS_APP (app), NULL);
@ -1456,27 +1334,6 @@ void moo_app_set_ui_xml (MooApp *app,
}
GType
moo_app_window_policy_get_type (void)
{
static GType type = 0;
if (!type)
{
static const GFlagsValue values[] = {
{ MOO_APP_QUIT_ON_CLOSE_ALL_EDITORS, (char*)"MOO_APP_QUIT_ON_CLOSE_ALL_EDITORS", (char*)"quit-on-close-all-editors" },
{ MOO_APP_QUIT_ON_CLOSE_ALL_TERMINALS, (char*)"MOO_APP_QUIT_ON_CLOSE_ALL_TERMINALS", (char*)"quit-on-close-all-terminals" },
{ MOO_APP_QUIT_ON_CLOSE_ALL_WINDOWS, (char*)"MOO_APP_QUIT_ON_CLOSE_ALL_WINDOWS", (char*)"quit-on-close-all-windows" },
{ 0, NULL, NULL }
};
type = g_flags_register_static ("MooAppWindowPolicy", values);
}
return type;
}
static MooAppInfo*
moo_app_info_new (void)
{

View File

@ -21,7 +21,6 @@ G_BEGIN_DECLS
#define MOO_TYPE_APP_INFO (moo_app_info_get_type ())
#define MOO_TYPE_APP_WINDOW_POLICY (moo_app_window_policy_get_type ())
#define MOO_TYPE_APP (moo_app_get_type ())
#define MOO_APP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), MOO_TYPE_APP, MooApp))
@ -36,13 +35,6 @@ typedef struct _MooAppInfo MooAppInfo;
typedef struct _MooAppPrivate MooAppPrivate;
typedef struct _MooAppClass MooAppClass;
typedef enum _MooAppWindowPolicy
{
MOO_APP_QUIT_ON_CLOSE_ALL_EDITORS = 1 << 0,
MOO_APP_QUIT_ON_CLOSE_ALL_TERMINALS = 1 << 1,
MOO_APP_QUIT_ON_CLOSE_ALL_WINDOWS = 1 << 2
} MooAppWindowPolicy;
struct _MooAppInfo
{
char *short_name;
@ -83,7 +75,6 @@ struct _MooAppClass
GType moo_app_get_type (void) G_GNUC_CONST;
GType moo_app_info_get_type (void) G_GNUC_CONST;
GType moo_app_window_policy_get_type (void) G_GNUC_CONST;
MooApp *moo_app_get_instance (void);
@ -104,10 +95,6 @@ const char *moo_app_get_application_dir (MooApp *app);
MooEditor *moo_app_get_editor (MooApp *app);
MooTermWindow *moo_app_get_terminal (MooApp *app);
void moo_app_set_terminal_type (MooApp *app,
GType type);
void moo_app_prefs_dialog (GtkWidget *parent);
void moo_app_about_dialog (GtkWidget *parent);

View File

@ -102,21 +102,6 @@
(return-type "MooEditor*")
)
(define-method get_terminal
(of-object "MooApp")
(c-name "moo_app_get_terminal")
(return-type "MooTermWindow*")
)
(define-method set_terminal_type
(of-object "MooApp")
(c-name "moo_app_set_terminal_type")
(return-type "none")
(parameters
'("GType" "type")
)
)
(define-function prefs_dialog
(c-name "moo_app_prefs_dialog")
(return-type "none")

View File

@ -295,5 +295,8 @@ int main (int argc, char *argv[])
editor = moo_app_get_editor (app);
moo_editor_new_window (editor);
g_signal_connect_swapped (editor, "all-windows-closed",
G_CALLBACK (moo_app_quit), app);
return moo_app_run (app);
}

View File

@ -117,5 +117,8 @@ int main (int argc, char *argv[])
editor = moo_app_get_editor (app);
moo_editor_new_window (editor);
g_signal_connect_swapped (editor, "all-windows-closed",
G_CALLBACK (moo_app_quit), app);
return moo_app_run (app);
}