Beispiel #1
0
static void
buffer_size_change (const char *key, gpointer user_data)
{
        GList *view;

        max_buffer_size = preferences_get_int (key);

        for (view = views; view != NULL; view = view->next) {
                warlock_view_trim (view->data);
        }
}
static void
init_spin (char *name, Preference pref)
{
    GtkWidget *widget;
    int ival;

    widget = glade_xml_get_widget (warlock_xml, name);

    ival = preferences_get_int (preferences_get_key (pref));
    gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (double)ival);

    g_signal_connect (G_OBJECT (widget), "value_changed", G_CALLBACK
                      (on_spinbutton_value_changed), GINT_TO_POINTER (pref));
}
Beispiel #3
0
void
warlock_views_init (void)
{
        char *key;

        main_view = warlock_view_init ("main", _("Main"), NULL);

        warlock_view_init ("arrival", _("Arrivals and Departures"),
			"arrival_menu_item");
        warlock_view_init ("thoughts", _("Thoughts"), "thoughts_menu_item");
        warlock_view_init ("death", _("Deaths"), "deaths_menu_item");
        warlock_view_init ("familiar", _("Familiar"), "familiar_menu_item");

        // max buffer size init
        key = preferences_get_key (PREF_TEXT_BUFFER_SIZE);
        max_buffer_size = preferences_get_int (key);
        buffer_size_notification = preferences_notify_add (key,
                        buffer_size_change, NULL);

        //g_atexit (warlock_views_finish);
}
Beispiel #4
0
int main (int argc, char *argv[])
{
        GtkWidget *main_window = NULL;
        int width, height;
	char *ui_xml_filename;
	GError *err;

#if 0
#ifdef ENABLE_NLS
        bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
        textdomain (GETTEXT_PACKAGE);
#endif

        gtk_set_locale ();
#endif
	if (!g_thread_supported ()) g_thread_init (NULL);
        gdk_threads_init ();
        GDK_THREADS_ENTER ();

	// calls g_option_context_parse, which initializes gtk
        parse_arguments (argc, argv);

	// initialize gtk builder data
	ui_xml_filename = g_build_filename (PACKAGE_DATA_DIR, PACKAGE,
			"warlock.ui", NULL);
	err = NULL;
        warlock_xml = gtk_builder_new ();
	if (!gtk_builder_add_from_file (warlock_xml, ui_xml_filename, &err)) {
		g_warning ("Couldn't load builder file: %s", err->message);
		g_error_free (err);
		exit (1);
	}
	g_free (ui_xml_filename);

        warlock_init ();

        gtk_builder_connect_signals (warlock_xml, NULL);

        main_window = warlock_get_widget ("main_window");

        /* read window width from config */
        width = preferences_get_int (preferences_get_key (PREF_WINDOW_WIDTH));

        /* read window height from config */
        height = preferences_get_int (preferences_get_key
                        (PREF_WINDOW_HEIGHT));

        gtk_window_set_default_size (GTK_WINDOW (main_window), width, height);

        gtk_widget_show (main_window);
	warlock_connection_init ();

        gtk_main ();

        /* save the height an width */
        gtk_window_get_size (GTK_WINDOW (main_window), &width, &height);
        preferences_set_int (preferences_get_key (PREF_WINDOW_WIDTH), width);
        preferences_set_int (preferences_get_key (PREF_WINDOW_HEIGHT), height);
        GDK_THREADS_LEAVE ();

        debug ("waiting for connection to close\n");
        if (connection != NULL && connection->thread != NULL) {
                g_thread_join (connection->thread);
        }

        return 0;
}
Beispiel #5
0
static void
view_show (WarlockView *view)
{
	GtkWidget *frame;

        g_assert (view != NULL);

	view->shown = TRUE;

	/* save the status of the window */
	if (view->shown_key != NULL)
		preferences_set_bool (view->shown_key, TRUE);

	// Update the menu checkmark
	if (view->menuitem != NULL)
		gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM
				(view->menuitem), TRUE);

	// If the window was already created, just show it.
	if (view->scrolled_window != NULL) {
		gtk_widget_show (GTK_WIDGET (view->widget));
		return;
	}

	/* FIXME: this is all an awful mess */
	if (view->widget == NULL) {
		int width, height;
		view->widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
		g_object_ref (view->widget);
		gtk_window_set_title (GTK_WINDOW (view->widget), view->title);
		gtk_widget_hide_on_delete (view->widget);
		frame = gtk_frame_new (view->title);
		gtk_container_add (GTK_CONTAINER (view->widget), frame);
		gtk_window_set_role (GTK_WINDOW (view->widget), view->name);
		width = preferences_get_int (preferences_get_window_key
				(view->name, "width"));
		height = preferences_get_int (preferences_get_window_key
				(view->name, "height"));
		gtk_window_set_default_size (GTK_WINDOW (view->widget), width,
				height);
		g_signal_connect (G_OBJECT (view->widget), "configure-event",
			G_CALLBACK (view_resized),
			(gpointer) view->name);
		g_signal_connect (G_OBJECT (view->widget), "delete-event",
			G_CALLBACK (view_deleted),
			(gpointer) view);
	} else {
		frame = view->widget;
	}

        view->scrolled_window = gtk_scrolled_window_new (NULL, NULL);
	view->buffer = w_string_new ("");
	warlock_view_create_text_view (view);

        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW
			(view->scrolled_window), GTK_POLICY_NEVER,
			GTK_POLICY_ALWAYS);

        gtk_container_add (GTK_CONTAINER (view->scrolled_window),
			view->text_view);
        gtk_container_add (GTK_CONTAINER (frame),
			view->scrolled_window);

        gtk_widget_show_all (view->widget);
}