aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rw-r--r--Makefile.am2
-rw-r--r--lib/ephy-string.c37
-rw-r--r--lib/ephy-string.h3
-rw-r--r--src/bookmarks/ephy-bookmark-action.c27
-rw-r--r--src/bookmarks/ephy-bookmarks-menu.c2
-rw-r--r--src/bookmarks/ephy-favorites-menu.c2
-rw-r--r--src/bookmarks/ephy-topic-action.c19
-rw-r--r--src/ephy-navigation-action.c17
9 files changed, 51 insertions, 80 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ad74d090..27c17f9e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,27 @@
2004-12-13 Christian Persch <chpe@cvs.gnome.org>
+ * Makefile.am:
+
+ Make distcheck fix.
+
+ * lib/ephy-string.c:
+ * lib/ephy-string.h:
+
+ Finally remove ephy_string_shorten().
+
+ * src/bookmarks/ephy-bookmark-action.c: (create_tool_item),
+ (ephy_bookmark_action_sync_label):
+ * src/bookmarks/ephy-bookmarks-menu.c: (connect_proxy_cb):
+ * src/bookmarks/ephy-favorites-menu.c: (connect_proxy_cb):
+ * src/bookmarks/ephy-topic-action.c: (create_tool_item),
+ (ephy_topic_action_sync_label), (append_bookmarks_menu),
+ (build_topics_menu):
+ * src/ephy-navigation-action.c: (new_history_menu_item):
+
+ Use gtk_label_set_max_width_chars() and ellipsise the labels.
+
+2004-12-13 Christian Persch <chpe@cvs.gnome.org>
+
* configure.ac:
Adapt PSM configure check for new header location in SDK.
diff --git a/Makefile.am b/Makefile.am
index d801cde99..8503c2f35 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,7 @@ SUBDIRS = lib embed idl src data po help doc
distcleancheck_listfiles = find . -type f -print | grep -v 'omf\.out'
-distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper' | grep -v 'omf' | grep -v 'figures'
+distuninstallcheck_listfiles = find . -type f -print | grep -v '/var/scrollkeeper'
EXTRA_DIST = \
intltool-merge.in \
diff --git a/lib/ephy-string.c b/lib/ephy-string.c
index e3095c376..da89dd2c5 100644
--- a/lib/ephy-string.c
+++ b/lib/ephy-string.c
@@ -27,43 +27,6 @@
#include <stdlib.h>
#include <glib.h>
-#define ELLIPSIS "\xe2\x80\xa6"
-
-/**
- * ephy_string_shorten: returns a newly allocated shortened version of str.
- * The input must be valid utf-8.
- * @str: the string to shorten
- * @target_length: the length of the shortened string (in characters)
- *
- * FIXME: this function is a big mess. While it is utf-8 safe now,
- * it can still split a sequence of combining characters
- */
-char *
-ephy_string_shorten (const char *str, int target_length)
-{
- char *new_str;
- glong actual_length;
- gulong bytes;
-
- if (!str) return NULL;
-
- actual_length = g_utf8_strlen (str, -1);
-
- /* if the string is already short enough, or if it's too short for
- * us to shorten it, return a new copy */
- if (actual_length <= target_length) return g_strdup (str);
-
- /* create string */
- bytes = GPOINTER_TO_UINT (g_utf8_offset_to_pointer (str, target_length - 1) - str);
-
- new_str = g_new0 (gchar, bytes + strlen(ELLIPSIS) + 1);
-
- strncpy (new_str, str, bytes);
- strncpy (new_str + bytes, ELLIPSIS, strlen (ELLIPSIS));
-
- return new_str;
-}
-
gboolean
ephy_string_to_int (const char *string, gulong *integer)
{
diff --git a/lib/ephy-string.h b/lib/ephy-string.h
index f2907219f..886bca5dc 100644
--- a/lib/ephy-string.h
+++ b/lib/ephy-string.h
@@ -30,9 +30,6 @@ gboolean ephy_string_to_int (const char *string,
char *ephy_string_blank_chr (char *source);
-char *ephy_string_shorten (const char *str,
- int target_length);
-
char *ephy_string_elide_underscores (const char *original);
char *ephy_string_double_underscores (const char *string);
diff --git a/src/bookmarks/ephy-bookmark-action.c b/src/bookmarks/ephy-bookmark-action.c
index 27ab1d870..05975cc2c 100644
--- a/src/bookmarks/ephy-bookmark-action.c
+++ b/src/bookmarks/ephy-bookmark-action.c
@@ -33,11 +33,14 @@
#include "ephy-favicon-cache.h"
#include "ephy-shell.h"
#include "ephy-debug.h"
-#include "ephy-string.h"
#include "ephy-gui.h"
#include <string.h>
+/* FIXME tweak this, or make it configurable? (bug 148093) */
+#define ENTRY_WIDTH_CHARS 16
+#define TOOLITEM_WIDTH_CHARS 24
+
static void ephy_bookmark_action_init (EphyBookmarkAction *action);
static void ephy_bookmark_action_class_init (EphyBookmarkActionClass *class);
@@ -107,9 +110,6 @@ ephy_bookmark_action_get_type (void)
return type;
}
-/* FIXME tweak this, or make it configurable? (bug 148093) */
-#define ENTRY_WIDTH_CHARS 16
-
static GtkWidget *
create_tool_item (GtkAction *action)
{
@@ -145,6 +145,8 @@ create_tool_item (GtkAction *action)
g_object_set_data (G_OBJECT (item), "icon", icon);
label = gtk_label_new (NULL);
+ gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
+ gtk_label_set_max_width_chars (GTK_LABEL (label), TOOLITEM_WIDTH_CHARS);
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
g_object_set_data (G_OBJECT (item), "label", label);
@@ -260,8 +262,6 @@ ephy_bookmark_action_sync_icon (GtkAction *action, GParamSpec *pspec, GtkWidget
}
}
-#define MAX_LABEL_LENGTH 32
-
static void
ephy_bookmark_action_sync_label (GtkAction *gaction,
GParamSpec *pspec,
@@ -271,36 +271,29 @@ ephy_bookmark_action_sync_label (GtkAction *gaction,
g_return_if_fail (EPHY_IS_NODE (action->priv->node));
- /* note that we cannot use ellipsizing label with defined width,
- * since that makes the label exactly that wide, even if the
- * text takes less space. So we have to shorten the string.
- */
if (GTK_IS_TOOL_ITEM (proxy))
{
GtkWidget *label = NULL;
const char *title;
- char *title_short, *label_text;
+ char *label_text;
label = g_object_get_data (G_OBJECT (proxy), "label");
g_return_if_fail (label != NULL);
title = ephy_node_get_property_string
(action->priv->node, EPHY_NODE_BMK_PROP_TITLE);
- title_short = ephy_string_shorten (title, MAX_LABEL_LENGTH);
- if (EPHY_BOOKMARK_ACTION (action)->priv->smart_url)
+ if (action->priv->smart_url)
{
- label_text = g_strdup_printf (_("%s:"), title_short);
+ label_text = g_strdup_printf (_("%s:"), title);
gtk_label_set_label (GTK_LABEL (label), label_text);
g_free (label_text);
}
else
{
- gtk_label_set_label (GTK_LABEL (label), title_short);
+ gtk_label_set_label (GTK_LABEL (label), title);
}
-
- g_free (title_short);
}
}
diff --git a/src/bookmarks/ephy-bookmarks-menu.c b/src/bookmarks/ephy-bookmarks-menu.c
index dfb3aea22..3d8fa466c 100644
--- a/src/bookmarks/ephy-bookmarks-menu.c
+++ b/src/bookmarks/ephy-bookmarks-menu.c
@@ -129,8 +129,8 @@ connect_proxy_cb (GtkActionGroup *action_group,
GtkLabel *label;
label = (GtkLabel *) ((GtkBin *) proxy)->child;
- gtk_label_set_width_chars (label, LABEL_WIDTH_CHARS);
gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
+ gtk_label_set_max_width_chars (label, LABEL_WIDTH_CHARS);
}
}
diff --git a/src/bookmarks/ephy-favorites-menu.c b/src/bookmarks/ephy-favorites-menu.c
index dce6e5561..b0dc3c631 100644
--- a/src/bookmarks/ephy-favorites-menu.c
+++ b/src/bookmarks/ephy-favorites-menu.c
@@ -117,8 +117,8 @@ connect_proxy_cb (GtkActionGroup *action_group,
GtkLabel *label;
label = (GtkLabel *) ((GtkBin *) proxy)->child;
- gtk_label_set_width_chars (label, LABEL_WIDTH_CHARS);
gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
+ gtk_label_set_max_width_chars (label, LABEL_WIDTH_CHARS);
}
}
diff --git a/src/bookmarks/ephy-topic-action.c b/src/bookmarks/ephy-topic-action.c
index 878b7da54..eb57b48a6 100644
--- a/src/bookmarks/ephy-topic-action.c
+++ b/src/bookmarks/ephy-topic-action.c
@@ -34,13 +34,13 @@
#include "ephy-debug.h"
#include "ephy-dnd.h"
#include "ephy-gui.h"
-#include "ephy-string.h"
#include "ephy-marshal.h"
static void ephy_topic_action_init (EphyTopicAction *action);
static void ephy_topic_action_class_init (EphyTopicActionClass *class);
-#define LABEL_WIDTH_CHARS 32
+#define TOOLITEM_WIDTH_CHARS 24
+#define MENUITEM_WIDTH_CHARS 32
#define EPHY_TOPIC_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_TOPIC_ACTION, EphyTopicActionPrivate))
@@ -135,6 +135,8 @@ create_tool_item (GtkAction *action)
gtk_container_add (GTK_CONTAINER (button), hbox);
label = gtk_label_new (NULL);
+ gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
+ gtk_label_set_max_width_chars (GTK_LABEL (label), TOOLITEM_WIDTH_CHARS);
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (hbox), arrow, TRUE, TRUE, 0);
@@ -173,8 +175,6 @@ menu_activate_cb (GtkWidget *item, GtkAction *action)
}
}
-#define MAX_LABEL_LENGTH 32
-
static void
ephy_topic_action_sync_label (GtkAction *gaction,
GParamSpec *pspec,
@@ -192,17 +192,14 @@ ephy_topic_action_sync_label (GtkAction *gaction,
{
GtkWidget *label = NULL;
char *title;
- char *title_short;
label = g_object_get_data (G_OBJECT (proxy), "label");
g_return_if_fail (label != NULL);
g_object_get (G_OBJECT (action), "label", &title, NULL);
- title_short = ephy_string_shorten (title, MAX_LABEL_LENGTH);
- gtk_label_set_label (GTK_LABEL (label), title_short);
+ gtk_label_set_label (GTK_LABEL (label), title);
- g_free (title_short);
g_free (title);
}
}
@@ -240,8 +237,6 @@ sort_bookmarks (gconstpointer a, gconstpointer b)
return retval;
}
-#define MAX_LENGTH 32
-
static gboolean
can_open_in_tabs (EphyNode *node)
{
@@ -306,7 +301,7 @@ append_bookmarks_menu (EphyTopicAction *action, GtkWidget *menu, EphyNode *node,
item = gtk_image_menu_item_new_with_label (title);
label = (GtkLabel *) ((GtkBin *) item)->child;
- gtk_label_set_width_chars (label, LABEL_WIDTH_CHARS);
+ gtk_label_set_max_width_chars (label, MENUITEM_WIDTH_CHARS);
gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
if (icon_location)
@@ -565,7 +560,7 @@ build_topics_menu (EphyTopicAction *action)
item = gtk_image_menu_item_new_with_label (title);
label = (GtkLabel *) ((GtkBin *) item)->child;
- gtk_label_set_width_chars (label, LABEL_WIDTH_CHARS);
+ gtk_label_set_max_width_chars (label, MENUITEM_WIDTH_CHARS);
gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
gtk_widget_show (item);
diff --git a/src/ephy-navigation-action.c b/src/ephy-navigation-action.c
index 5f826d9bc..0e166f506 100644
--- a/src/ephy-navigation-action.c
+++ b/src/ephy-navigation-action.c
@@ -22,12 +22,12 @@
#include "ephy-navigation-action.h"
#include "ephy-window.h"
-#include "ephy-string.h"
#include "ephy-favicon-cache.h"
#include "ephy-history.h"
#include "ephy-embed-shell.h"
#include "ephy-debug.h"
+#include <gtk/gtklabel.h>
#include <gtk/gtkimage.h>
#include <gtk/gtkmenuitem.h>
#include <gtk/gtkimagemenuitem.h>
@@ -89,7 +89,7 @@ ephy_navigation_action_get_type (void)
return type;
}
-#define MAX_LENGTH 60
+#define MAX_LABEL_LENGTH 48
static GtkWidget *
new_history_menu_item (const char *origtext,
@@ -99,15 +99,16 @@ new_history_menu_item (const char *origtext,
EphyHistory *history;
GtkWidget *item, *image;
GdkPixbuf *icon = NULL;
+ GtkLabel *label;
const char *icon_address;
- char *short_text;
- g_return_val_if_fail (address != NULL, NULL);
+ g_return_val_if_fail (address != NULL && origtext != NULL, NULL);
- /* FIXME: use ellipsisation in the menu item instead */
- short_text = ephy_string_shorten (origtext, MAX_LENGTH);
- item = gtk_image_menu_item_new_with_label (short_text);
- g_free (short_text);
+ item = gtk_image_menu_item_new_with_label (origtext);
+
+ label = GTK_LABEL (GTK_BIN (item)->child);
+ gtk_label_set_ellipsize (label, PANGO_ELLIPSIZE_END);
+ gtk_label_set_max_width_chars (label, MAX_LABEL_LENGTH);
history = EPHY_HISTORY
(ephy_embed_shell_get_global_history (embed_shell));