diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2000-06-17 20:36:20 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2000-06-17 20:36:20 +0800 |
commit | dd121f1314510e318e657dfdbffc1ebcc45b9c55 (patch) | |
tree | 1c5c0c3f8b6147bb45fb27f9498d37054a854ced /addressbook/gui/widgets/e-minicard-label.c | |
parent | 2b8fb337a57a257e299f5f0c0824975a0f5f6272 (diff) | |
download | gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.tar gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.tar.gz gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.tar.bz2 gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.tar.lz gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.tar.xz gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.tar.zst gsoc2013-evolution-dd121f1314510e318e657dfdbffc1ebcc45b9c55.zip |
Made the left column of minicards not get any wider than the widest
2000-06-17 Christopher James Lahey <clahey@helixcode.com>
* gui/minicard/e-minicard-label.c,
gui/minicard/e-minicard-label.h, gui/minicard/e-minicard.c: Made
the left column of minicards not get any wider than the widest
possible name.
svn path=/trunk/; revision=3608
Diffstat (limited to 'addressbook/gui/widgets/e-minicard-label.c')
-rw-r--r-- | addressbook/gui/widgets/e-minicard-label.c | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/addressbook/gui/widgets/e-minicard-label.c b/addressbook/gui/widgets/e-minicard-label.c index e0e5c98118..e765a89f21 100644 --- a/addressbook/gui/widgets/e-minicard-label.c +++ b/addressbook/gui/widgets/e-minicard-label.c @@ -49,7 +49,8 @@ enum { ARG_HAS_FOCUS, ARG_FIELD, ARG_FIELDNAME, - ARG_TEXT_MODEL + ARG_TEXT_MODEL, + ARG_MAX_FIELD_NAME_WIDTH, }; GtkType @@ -100,6 +101,8 @@ e_minicard_label_class_init (EMinicardLabelClass *klass) GTK_ARG_READWRITE, ARG_FIELDNAME); gtk_object_add_arg_type ("EMinicardLabel::text_model", GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_TEXT_MODEL); + gtk_object_add_arg_type ("EMinicardLabel::max_field_name_length", GTK_TYPE_DOUBLE, + GTK_ARG_READWRITE, ARG_MAX_FIELD_NAME_WIDTH); object_class->set_arg = e_minicard_label_set_arg; object_class->get_arg = e_minicard_label_get_arg; @@ -120,6 +123,8 @@ e_minicard_label_init (EMinicardLabel *minicard_label) minicard_label->fieldname = NULL; minicard_label->field = NULL; + minicard_label->max_field_name_length = -1; + e_canvas_item_set_reflow_callback(GNOME_CANVAS_ITEM(minicard_label), e_minicard_label_reflow); } @@ -151,6 +156,9 @@ e_minicard_label_set_arg (GtkObject *o, GtkArg *arg, guint arg_id) case ARG_TEXT_MODEL: gnome_canvas_item_set( e_minicard_label->field, "model", GTK_VALUE_OBJECT (*arg), NULL); break; + case ARG_MAX_FIELD_NAME_WIDTH: + e_minicard_label->max_field_name_length = GTK_VALUE_DOUBLE (*arg); + break; } } @@ -185,6 +193,9 @@ e_minicard_label_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) gtk_object_get( GTK_OBJECT( e_minicard_label->field ), "model", &tempmodel, NULL ); GTK_VALUE_OBJECT (*arg) = GTK_OBJECT(tempmodel); break; + case ARG_MAX_FIELD_NAME_WIDTH: + GTK_VALUE_DOUBLE (*arg) = e_minicard_label->max_field_name_length; + break; default: arg->type = GTK_TYPE_INVALID; break; @@ -210,8 +221,8 @@ e_minicard_label_construct (GnomeCanvasItem *item) EMinicardLabel *e_minicard_label; GnomeCanvasGroup *group; static GdkFont *font = NULL; - - if ( font == NULL ) { + + if (font == NULL) { font = gdk_font_load("lucidasans-10"); } @@ -369,11 +380,17 @@ e_minicard_label_event (GnomeCanvasItem *item, GdkEvent *event) static void e_minicard_label_resize_children(EMinicardLabel *e_minicard_label) { + double left_width; + if (e_minicard_label->max_field_name_length != -1 && ((e_minicard_label->width / 2) - 4 > e_minicard_label->max_field_name_length)) + left_width = e_minicard_label->max_field_name_length; + else + left_width = e_minicard_label->width / 2 - 4; + gnome_canvas_item_set( e_minicard_label->fieldname, - "clip_width", (double) ( e_minicard_label->width / 2 - 4 ), + "clip_width", (double) ( left_width ), NULL ); gnome_canvas_item_set( e_minicard_label->field, - "clip_width", (double) ( ( e_minicard_label->width + 1 ) / 2 - 4 ), + "clip_width", (double) ( e_minicard_label->width - 8 - left_width ), NULL ); } @@ -384,6 +401,8 @@ e_minicard_label_reflow(GnomeCanvasItem *item, int flags) gint old_height; gdouble text_height; + gdouble left_width; + old_height = e_minicard_label->height; gtk_object_get(GTK_OBJECT(e_minicard_label->fieldname), @@ -405,7 +424,13 @@ e_minicard_label_reflow(GnomeCanvasItem *item, int flags) "x2", (double) e_minicard_label->width - 1, "y2", (double) e_minicard_label->height - 1, NULL ); - e_canvas_item_move_absolute(e_minicard_label->field, ( e_minicard_label->width / 2 + 2), 1); + + if (e_minicard_label->max_field_name_length != -1 && ((e_minicard_label->width / 2) - 4 > e_minicard_label->max_field_name_length)) + left_width = e_minicard_label->max_field_name_length; + else + left_width = e_minicard_label->width / 2 - 4; + + e_canvas_item_move_absolute(e_minicard_label->field, left_width + 6, 1); if (old_height != e_minicard_label->height) e_canvas_item_request_parent_reflow(item); |