summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRamiro Estrugo <ramiro@src.gnome.org>2001-03-05 08:15:06 +0000
committerRamiro Estrugo <ramiro@src.gnome.org>2001-03-05 08:15:06 +0000
commit24faaf921909492b4921efa64e8be1606a0d8324 (patch)
treea3ba475da2c7e716d4596f529363dc84560f9062 /test
parent9723f62b3cf838898150308b49aae16f1e5b53ff (diff)
downloadnautilus-24faaf921909492b4921efa64e8be1606a0d8324.tar.gz
reviewed by: Pavel Cisler <pavel@eazel.com>
Maciej Stachowiak <mjs@eazel.com> Bugs: 6368 - Multibyte font handling in non smooth mode. 2673 - Need to hook up the new font picker to nautilus 1274 - Add support for picking a custom font * components/history/Makefile.am: * components/history/nautilus-history-view.c: (main): Initialize gettext for the history component so it can display localized strings. * components/notes/nautilus-notes.c: (make_notes_view): Set the notes widget font from preferences so it can be properly localized. * components/text/nautilus-text-view.c: (nautilus_text_view_set_font): Use the localized font name to make this work in locales other than the default. * libnautilus-extensions/Makefile.am: Add a macro for finding data on the source tree for the situation when 'make install' has not be run. * libnautilus-extensions/nautilus-font-factory.c: (nautilus_font_factory_get_font_by_family): Workaround the problem that fully qualified localized fonts were being processed incorrectly. We simply leave them alone now. (nautilus_font_factory_get_font_from_preferences): Use the localized font string to make this work on more locales. * libnautilus-extensions/nautilus-font-manager.h: * libnautilus-extensions/nautilus-font-manager.c: (font_description_table_find): New function to find a description in a table. (font_description_table_for_each): Change the return value to a boolean to indicate whether to stop the iteration or not. Switch the order of an assert and assigned. (collect_fonts_from_directory): Use macros for the mime type strings. (font_ignore_directory): Add more directories to ignore. (font_manager_collect_font_tables): Change prepend to append to get fonts in a better order (fallback and user fonts first) , (font_table_list_find), (free_font_tables), (ensure_global_font_table), (nautilus_font_manager_for_each_font): Use just one global table for all fonts instead of 3. (nautilus_font_manager_get_default_font): Compute the default dynamically to take user choices into account. Make it work on non installed nautilus builds. (nautilus_font_manager_get_default_bold_font): Same as above for a bold font. (nautilus_font_manager_file_is_scalable_font): New function to check that a file is really a scalable font: (font_list_find_bold_callback), (nautilus_font_manager_get_bold), (nautilus_font_manager_weight_is_bold): New functions to find a bold font in the global tables. (nautilus_self_check_font_manager): Make it work on not installed nautilus builds and remove the hack where checks would on run for the "ramiro" user. * libnautilus-extensions/nautilus-font-picker.c: (nautilus_font_picker_initialize), (font_list_find), (font_picker_update_styles), (font_picker_populate), (font_picker_font_changed_callback), (font_picker_style_changed_callback), (font_find_style), (ignore_font), (font_make_name), (font_make_style), (global_font_list_free), (font_list_count_families), (global_font_list_get), (global_font_list_populate_callback), (nautilus_font_picker_get_selected_font), (nautilus_font_picker_set_selected_font): Make the font list global and not per widget instance. Use better labels for the font styles. Use better labels for font names (foundry and family vs just family depending on how many families of the same font are found) * libnautilus-extensions/nautilus-global-preferences.h: * libnautilus-extensions/nautilus-global-preferences.c: (global_preferences_install_font_defaults): Add new smooth font preference for the icon container. (nautilus_global_preferences_get_smooth_font): New function to safely get a smooth font out of preferences. * libnautilus-extensions/nautilus-icon-container.c: (nautilus_icon_container_initialize): Use the localized version of the font strings and add a FIXME for the problem of checking these in many disparate places in nautilus. * libnautilus-extensions/nautilus-program-chooser.c: (program_file_pair_get_program_name_for_display): Use the localized version of the application name strings. * libnautilus-extensions/nautilus-scalable-font.h: * libnautilus-extensions/nautilus-scalable-font.c: (nautilus_scalable_font_initialize_class), (nautilus_scalable_font_initialize), (nautilus_scalable_font_destroy), (nautilus_scalable_font_new), (nautilus_scalable_font_make_bold), (nautilus_scalable_font_get_default_font), (nautilus_scalable_font_get_default_bold_font), (free_global_font_handle_table), (initialize_global_stuff_if_needed), (nautilus_scalable_font_get_rsvg_handle): Simplify this class a lot by using the font manager. No longer need to manage font lookup and queries. * libnautilus-extensions/nautilus-smooth-text-layout-cache.c: (nautilus_self_check_smooth_text_layout_cache): Fix a comment. Dont hardcode the font family. Use the default font. Remove the #ifdef hacker for "before make install fonts broken" problem which is now fixed. * src/file-manager/fm-directory-view.h: * src/file-manager/fm-directory-view.c: (directory_view_smooth_font_changed_callback), (fm_directory_view_initialize), (fm_directory_view_destroy): Add method for responding to changes in the smooth font for AA mode of the icon container. * src/file-manager/fm-icon-view.c: (fm_icon_view_smooth_font_changed), (fm_icon_view_initialize_class), (fm_icon_view_update_icon_container_smooth_font), (create_icon_container): Add support for responding to change in the smooth font. Update the icon container's smooth font on such changes. * src/nautilus-about.c: (nautilus_about_draw_info): Change the offset of the "Nautilus" title which broken when jsh make glyphs render properly taking the baseline into account. * src/nautilus-sidebar-title.c: (update_font): Use the localized font name. * src/nautilus-sidebar.c: (nautilus_sidebar_add_panel), (nautilus_sidebar_remove_panel): Use the localized sidebar tabs descriptions. * src/nautilus-window.c: (create_view_as_menu_item): Use the localized "View as" labels. * test/test-nautilus-font-manager.c: (font_iterator_callback): * test/test-nautilus-font-picker.c: (update_font), (font_changed_update_label_callback), (font_changed_update_file_name_callback), (use_defalt_font_callback), (use_defalt_bold_font_callback), (use_defalt_font_update_picker_callback), (use_defalt_bold_font_update_picker_callback), (main): * test/test.c: (test_quit): Updates for changes in font manager and font picker.
Diffstat (limited to 'test')
-rw-r--r--test/test-nautilus-font-manager.c22
-rw-r--r--test/test-nautilus-font-picker.c179
-rw-r--r--test/test.c2
3 files changed, 173 insertions, 30 deletions
diff --git a/test/test-nautilus-font-manager.c b/test/test-nautilus-font-manager.c
index 468b6c487..7b237a544 100644
--- a/test/test-nautilus-font-manager.c
+++ b/test/test-nautilus-font-manager.c
@@ -36,7 +36,7 @@ typedef struct
GList *style_list;
} Entry;
-static void
+static gboolean
font_iterator_callback (const char *font_file_name,
NautilusFontType font_type,
const char *foundry,
@@ -54,15 +54,15 @@ font_iterator_callback (const char *font_file_name,
GHashTable *font_table;
- g_return_if_fail (font_file_name != NULL);
- g_return_if_fail (foundry != NULL);
- g_return_if_fail (family != NULL);
- g_return_if_fail (weight != NULL);
- g_return_if_fail (slant != NULL);
- g_return_if_fail (set_width != NULL);
- g_return_if_fail (char_set_registry != NULL);
- g_return_if_fail (char_set_encoding != NULL);
- g_return_if_fail (callback_data != NULL);
+ g_return_val_if_fail (font_file_name != NULL, FALSE);
+ g_return_val_if_fail (foundry != NULL, FALSE);
+ g_return_val_if_fail (family != NULL, FALSE);
+ g_return_val_if_fail (weight != NULL, FALSE);
+ g_return_val_if_fail (slant != NULL, FALSE);
+ g_return_val_if_fail (set_width != NULL, FALSE);
+ g_return_val_if_fail (char_set_registry != NULL, FALSE);
+ g_return_val_if_fail (char_set_encoding != NULL, FALSE);
+ g_return_val_if_fail (callback_data != NULL, FALSE);
font_table = callback_data;
@@ -100,6 +100,8 @@ font_iterator_callback (const char *font_file_name,
char_set_registry,
char_set_encoding);
}
+
+ return TRUE;
}
static void
diff --git a/test/test-nautilus-font-picker.c b/test/test-nautilus-font-picker.c
index ef1566fa5..81e7ed72c 100644
--- a/test/test-nautilus-font-picker.c
+++ b/test/test-nautilus-font-picker.c
@@ -2,27 +2,110 @@
#include <libnautilus-extensions/nautilus-font-picker.h>
#include <libnautilus-extensions/nautilus-font-manager.h>
+#include <libnautilus-extensions/nautilus-global-preferences.h>
static void
-font_picker_changed_callback (NautilusFontPicker *font_picker,
- gpointer callback_data)
+update_font (NautilusLabel *label,
+ const char *font_file_name)
{
NautilusScalableFont *font;
+
+ g_return_if_fail (NAUTILUS_IS_LABEL (label));
+ g_return_if_fail (font_file_name != NULL);
+
+ font = nautilus_scalable_font_new (font_file_name);
+ nautilus_label_set_smooth_font (NAUTILUS_LABEL (label), font);
+ gtk_object_unref (GTK_OBJECT (font));
+
+ nautilus_preferences_set (NAUTILUS_PREFERENCES_DIRECTORY_VIEW_SMOOTH_FONT, font_file_name);
+}
+
+static void
+font_changed_update_label_callback (NautilusFontPicker *font_picker,
+ gpointer callback_data)
+{
char *font_file_name;
g_return_if_fail (NAUTILUS_IS_FONT_PICKER (font_picker));
g_return_if_fail (NAUTILUS_IS_LABEL (callback_data));
font_file_name = nautilus_font_picker_get_selected_font (font_picker);
- g_print ("font changed = %s\n", font_file_name);
+ update_font (NAUTILUS_LABEL (callback_data), font_file_name);
+ g_free (font_file_name);
+}
- font = nautilus_scalable_font_new_from_file_name (font_file_name);
- nautilus_label_set_smooth_font (NAUTILUS_LABEL (callback_data), font);
- gtk_object_unref (GTK_OBJECT (font));
+static void
+font_changed_update_file_name_callback (NautilusFontPicker *font_picker,
+ gpointer callback_data)
+{
+ char *font_file_name;
+ g_return_if_fail (NAUTILUS_IS_FONT_PICKER (font_picker));
+ g_return_if_fail (NAUTILUS_IS_TEXT_CAPTION (callback_data));
+
+ font_file_name = nautilus_font_picker_get_selected_font (font_picker);
+ nautilus_text_caption_set_text (NAUTILUS_TEXT_CAPTION (callback_data), font_file_name);
g_free (font_file_name);
}
+static void
+use_defalt_font_callback (GtkWidget *button,
+ gpointer callback_data)
+{
+ char *default_font;
+
+ g_return_if_fail (GTK_IS_BUTTON (button));
+ g_return_if_fail (NAUTILUS_IS_LABEL (callback_data));
+
+ default_font = nautilus_font_manager_get_default_font ();
+ update_font (NAUTILUS_LABEL (callback_data), default_font);
+ g_free (default_font);
+}
+
+static void
+use_defalt_bold_font_callback (GtkWidget *button,
+ gpointer callback_data)
+{
+ char *default_bold_font;
+
+ g_return_if_fail (GTK_IS_BUTTON (button));
+ g_return_if_fail (NAUTILUS_IS_LABEL (callback_data));
+
+ default_bold_font = nautilus_font_manager_get_default_bold_font ();
+ update_font (NAUTILUS_LABEL (callback_data), default_bold_font);
+ g_free (default_bold_font);
+}
+
+static void
+use_defalt_font_update_picker_callback (GtkWidget *button,
+ gpointer callback_data)
+{
+ char *default_font;
+
+ g_return_if_fail (GTK_IS_BUTTON (button));
+ g_return_if_fail (NAUTILUS_IS_FONT_PICKER (callback_data));
+
+ default_font = nautilus_font_manager_get_default_font ();
+ nautilus_font_picker_set_selected_font (NAUTILUS_FONT_PICKER (callback_data),
+ default_font);
+ g_free (default_font);
+}
+
+static void
+use_defalt_bold_font_update_picker_callback (GtkWidget *button,
+ gpointer callback_data)
+{
+ char *default_bold_font;
+
+ g_return_if_fail (GTK_IS_BUTTON (button));
+ g_return_if_fail (NAUTILUS_IS_FONT_PICKER (callback_data));
+
+ default_bold_font = nautilus_font_manager_get_default_bold_font ();
+ nautilus_font_picker_set_selected_font (NAUTILUS_FONT_PICKER (callback_data),
+ default_bold_font);
+ g_free (default_bold_font);
+}
+
int
main (int argc, char * argv[])
{
@@ -30,10 +113,17 @@ main (int argc, char * argv[])
GtkWidget *vbox;
GtkWidget *font_picker;
GtkWidget *label;
-
+ GtkWidget *file_name_caption;
+ GtkWidget *default_font_caption;
+ GtkWidget *default_bold_font_caption;
NautilusScalableFont *font;
-
- char *fallback_font;
+ GtkWidget *use_defailt_button;
+ GtkWidget *use_defailt_bold_button;
+ GtkWidget *default_hbox;
+ GtkWidget *default_bold_hbox;
+ char *current_font;
+ char *default_font;
+ char *default_bold_font;
test_init (&argc, &argv);
@@ -42,31 +132,82 @@ main (int argc, char * argv[])
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
- fallback_font = nautilus_font_manager_get_fallback_font ();
- g_print ("fallback_font = %s\n", fallback_font);
+ default_font = nautilus_font_manager_get_default_font ();
+ default_bold_font = nautilus_font_manager_get_default_bold_font ();
font_picker = nautilus_font_picker_new ();
- label = nautilus_label_new ("Something");
+ current_font = nautilus_preferences_get (NAUTILUS_PREFERENCES_DIRECTORY_VIEW_SMOOTH_FONT);
+ nautilus_font_picker_set_selected_font (NAUTILUS_FONT_PICKER (font_picker),
+ current_font);
+
+ label = nautilus_label_new ("Something\nハードウェア");
nautilus_label_set_is_smooth (NAUTILUS_LABEL (label), TRUE);
nautilus_label_make_larger (NAUTILUS_LABEL (label), 40);
- font = nautilus_scalable_font_new_from_file_name ("/usr/share/fonts/default/truetype/times.ttf");
-
+ font = nautilus_scalable_font_new (current_font);
nautilus_label_set_smooth_font (NAUTILUS_LABEL (label), font);
-
gtk_object_unref (GTK_OBJECT (font));
-
+
gtk_signal_connect (GTK_OBJECT (font_picker),
"changed",
- GTK_SIGNAL_FUNC (font_picker_changed_callback),
+ GTK_SIGNAL_FUNC (font_changed_update_label_callback),
label);
- nautilus_font_picker_set_selected_font (NAUTILUS_FONT_PICKER (font_picker),
- "/usr/share/fonts/ISO8859-2/Type1/gatsb___.pfb");
+ file_name_caption = nautilus_text_caption_new ();
+ nautilus_caption_set_title_label (NAUTILUS_CAPTION (file_name_caption),
+ "Current Font");
+ nautilus_text_caption_set_text (NAUTILUS_TEXT_CAPTION (file_name_caption), current_font);
+
+ gtk_signal_connect (GTK_OBJECT (font_picker),
+ "changed",
+ GTK_SIGNAL_FUNC (font_changed_update_file_name_callback),
+ file_name_caption);
+
+ default_hbox = gtk_hbox_new (FALSE, 0);
+ default_font_caption = nautilus_text_caption_new ();
+ nautilus_caption_set_title_label (NAUTILUS_CAPTION (default_font_caption),
+ "Default Font");
+ nautilus_text_caption_set_text (NAUTILUS_TEXT_CAPTION (default_font_caption), default_font);
+ use_defailt_button = gtk_button_new_with_label ("Use");
+ gtk_signal_connect (GTK_OBJECT (use_defailt_button),
+ "clicked",
+ GTK_SIGNAL_FUNC (use_defalt_font_callback),
+ label);
+ gtk_signal_connect (GTK_OBJECT (use_defailt_button),
+ "clicked",
+ GTK_SIGNAL_FUNC (use_defalt_font_update_picker_callback),
+ font_picker);
+ gtk_box_pack_start (GTK_BOX (default_hbox), default_font_caption, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (default_hbox), use_defailt_button, FALSE, FALSE, 0);
+
+
+ default_bold_hbox = gtk_hbox_new (FALSE, 0);
+ default_bold_font_caption = nautilus_text_caption_new ();
+ nautilus_caption_set_title_label (NAUTILUS_CAPTION (default_bold_font_caption),
+ "Default Bold Font");
+ nautilus_text_caption_set_text (NAUTILUS_TEXT_CAPTION (default_bold_font_caption), default_bold_font);
+ use_defailt_bold_button = gtk_button_new_with_label ("Use");
+ gtk_signal_connect (GTK_OBJECT (use_defailt_bold_button),
+ "clicked",
+ GTK_SIGNAL_FUNC (use_defalt_bold_font_callback),
+ label);
+ gtk_signal_connect (GTK_OBJECT (use_defailt_bold_button),
+ "clicked",
+ GTK_SIGNAL_FUNC (use_defalt_bold_font_update_picker_callback),
+ font_picker);
+ gtk_box_pack_start (GTK_BOX (default_bold_hbox), default_bold_font_caption, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (default_bold_hbox), use_defailt_bold_button, FALSE, FALSE, 0);
+
gtk_box_pack_start (GTK_BOX (vbox), font_picker, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 10);
+ gtk_box_pack_start (GTK_BOX (vbox), file_name_caption, TRUE, TRUE, 10);
+ gtk_box_pack_start (GTK_BOX (vbox), default_hbox, TRUE, TRUE, 10);
+ gtk_box_pack_start (GTK_BOX (vbox), default_bold_hbox, TRUE, TRUE, 10);
+
+ g_free (current_font);
+ g_free (default_font);
gtk_widget_show_all (window);
diff --git a/test/test.c b/test/test.c
index d596b87ab..103beec95 100644
--- a/test/test.c
+++ b/test/test.c
@@ -30,7 +30,7 @@ test_init (int *argc,
int
test_quit (int exit_code)
{
- gnome_vfs_shutdown ();
+ //gnome_vfs_shutdown ();
if (gtk_main_level () > 0) {
gtk_main_quit ();