Evolution consists of entirely too many small utility libraries, which increases linking and loading time, places a burden on higher layers of the application (e.g. modules) which has to remember to link to all the small in-tree utility libraries, and makes it difficult to generate API documentation for these utility libraries in one Gtk-Doc module. Merge the following utility libraries under the umbrella of libeutil, and enforce a single-include policy on libeutil so we can reorganize the files as desired without disrupting its pseudo-public API. libemail-utils/libemail-utils.la libevolution-utils/libevolution-utils.la filter/libfilter.la widgets/e-timezone-dialog/libetimezonedialog.la widgets/menus/libmenus.la widgets/misc/libemiscwidgets.la widgets/table/libetable.la widgets/text/libetext.la This also merges libedataserverui from the Evolution-Data-Server module, since Evolution is its only consumer nowadays, and I'd like to make some improvements to those APIs without concern for backward-compatibility. And finally, start a Gtk-Doc module for libeutil. It's going to be a project just getting all the symbols _listed_ much less _documented_. But the skeletal structure is in place and I'm off to a good start.
109 lines
2.4 KiB
C
109 lines
2.4 KiB
C
/*
|
|
* test-preferences-window.c
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) version 3.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with the program; if not, see <http://www.gnu.org/licenses/>
|
|
*
|
|
*
|
|
* Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
|
|
*
|
|
*/
|
|
|
|
#include "e-preferences-window.c"
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
static GtkWidget *
|
|
create_page_number (gint i)
|
|
{
|
|
gchar *caption;
|
|
GtkWidget *widget;
|
|
|
|
caption = g_strdup_printf ("Title of page %d", i);
|
|
|
|
widget = gtk_label_new (caption);
|
|
gtk_widget_show (widget);
|
|
|
|
g_free (caption);
|
|
|
|
return widget;
|
|
}
|
|
|
|
static GtkWidget *
|
|
create_page_zero (EPreferencesWindow *preferences_window)
|
|
{
|
|
return create_page_number (0);
|
|
}
|
|
static GtkWidget *
|
|
create_page_one (EPreferencesWindow *preferences_window)
|
|
{
|
|
return create_page_number (1);
|
|
}
|
|
static GtkWidget *
|
|
create_page_two (EPreferencesWindow *preferences_window)
|
|
{
|
|
return create_page_number (2);
|
|
}
|
|
|
|
static void
|
|
add_pages (EPreferencesWindow *preferences_window)
|
|
{
|
|
e_preferences_window_add_page (
|
|
preferences_window, "page-0",
|
|
"gtk-properties", "title 0", NULL,
|
|
create_page_zero, 0);
|
|
e_preferences_window_add_page (
|
|
preferences_window, "page-1",
|
|
"gtk-properties", "title 1", NULL,
|
|
create_page_one, 1);
|
|
e_preferences_window_add_page (
|
|
preferences_window, "page-2",
|
|
"gtk-properties", "title 2", NULL,
|
|
create_page_two, 2);
|
|
}
|
|
|
|
static gint
|
|
delete_event_callback (GtkWidget *widget,
|
|
GdkEventAny *event,
|
|
gpointer data)
|
|
{
|
|
gtk_main_quit ();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
gint
|
|
main (gint argc,
|
|
gchar **argv)
|
|
{
|
|
GtkWidget *window;
|
|
|
|
gtk_init (&argc, &argv);
|
|
|
|
window = e_preferences_window_new (NULL);
|
|
gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);
|
|
|
|
g_signal_connect (
|
|
window, "delete-event",
|
|
G_CALLBACK (delete_event_callback), NULL);
|
|
|
|
add_pages (E_PREFERENCES_WINDOW (window));
|
|
e_preferences_window_setup (E_PREFERENCES_WINDOW (window));
|
|
|
|
gtk_widget_show (window);
|
|
|
|
gtk_main ();
|
|
|
|
return 0;
|
|
}
|