Hi,

regarding

http://bugzilla.gnome.org/show_bug.cgi?id=334920
(register cell with very little cell padding)

I propose the following patch. Since it changes the look of what I
think is pretty characteristic for GnuCash, I want to hear your
thoughts and preferences :)

All the patch does is to add vertical padding at some places and
align text, editable text and cursor horizontally. Apply it locally
(or tell me to do it globally ;-)).

-- andi5
Index: src/register/register-gnome/gnucash-sheet.h
===================================================================
--- src/register/register-gnome/gnucash-sheet.h (revision 13680)
+++ src/register/register-gnome/gnucash-sheet.h (working copy)
@@ -28,7 +28,7 @@
 #include "table-allgui.h"
 
 #define CELL_VPADDING 3
-#define CELL_HPADDING 4
+#define CELL_HPADDING 5
 
 
 #define GNUCASH_TYPE_REGISTER     (gnucash_register_get_type ())
Index: src/register/register-gnome/gnucash-item-edit.c
===================================================================
--- src/register/register-gnome/gnucash-item-edit.c     (revision 13680)
+++ src/register/register-gnome/gnucash-item-edit.c     (working copy)
@@ -263,7 +263,7 @@
         // pango_layout_set_ellipsize(...) as of pango 1.6 may be useful for
         // strings longer than the field width.
 
-       pango_layout_get_cursor_pos (info->layout, cursor_byte_pos, 
&strong_pos, NULL);
+        pango_layout_get_cursor_pos (info->layout, cursor_byte_pos, 
&strong_pos, NULL);
 
         info->cursor_rect.x = dx + PANGO_PIXELS (strong_pos.x);
         info->cursor_rect.y = dy + PANGO_PIXELS (strong_pos.y);
@@ -323,19 +323,18 @@
 
         gdk_gc_set_foreground (item_edit->gc, info.fg_color);
 
-       gdk_draw_layout (drawable,
-                        item_edit->gc,
-                        info.text_rect.x + CELL_HPADDING + 
-                        item_edit->x_offset,
-                        info.text_rect.y + 1,
-                        info.layout);
+        gdk_draw_layout (drawable,
+                         item_edit->gc,
+                         info.text_rect.x + CELL_HPADDING + 
item_edit->x_offset,
+                         info.text_rect.y + CELL_VPADDING,
+                         info.layout);
 
         gdk_draw_line (drawable,
                        item_edit->gc,
                        info.cursor_rect.x + CELL_HPADDING + 
item_edit->x_offset,
-                       info.cursor_rect.y,
+                       info.cursor_rect.y + CELL_VPADDING,
                        info.cursor_rect.x + CELL_HPADDING + 
item_edit->x_offset,
-                       info.cursor_rect.y + info.cursor_rect.height);
+                       info.cursor_rect.y + CELL_VPADDING + 
info.cursor_rect.height);
 
         gdk_gc_set_clip_rectangle (item_edit->gc, NULL);
 
Index: src/register/register-gnome/gnucash-grid.c
===================================================================
--- src/register/register-gnome/gnucash-grid.c  (revision 13680)
+++ src/register/register-gnome/gnucash-grid.c  (working copy)
@@ -527,7 +527,7 @@
         gdk_draw_layout (drawable,
                          grid->gc,
                          x + CELL_HPADDING + x_offset,
-                         y + 1,
+                         y + CELL_VPADDING + 1,
                          layout);
 
         gdk_gc_set_clip_rectangle (grid->gc, NULL);
Index: src/register/register-gnome/gnucash-style.c
===================================================================
--- src/register/register-gnome/gnucash-style.c (revision 13680)
+++ src/register/register-gnome/gnucash-style.c (working copy)
@@ -152,8 +152,8 @@
         /* GdkFont *font = GNUCASH_GRID(sheet->grid)->normal_font; */
         CellDimensions *cd;
         int row, col;
-       gint default_height = 0, max_height = -1;
-       PangoLayout *layout;
+        gint max_height = -1;
+        PangoLayout *layout;
 
         /* g_return_if_fail (font != NULL); */
 
@@ -168,11 +168,6 @@
                         cd = g_table_index (dimensions->cell_dimensions,
                                             row, col);
 
-                        /*cd->pixel_height = (font->ascent + font->descent +
-                                            (2 * CELL_VPADDING));*/
-                       /* cd->pixel_height = (2 * CELL_VPADDING); */
-
-
                         cell = gnc_cellblock_get_cell (cursor, row, col);
                         if (!cell)
                                 continue;
@@ -183,25 +178,19 @@
 
                         if (text)
                         {
-                               layout = gtk_widget_create_pango_layout 
(GTK_WIDGET (sheet), text);
-                                /* width = gdk_string_width (font, text); */
-                               cd->pixel_height = 0;
-                               pango_layout_get_pixel_size (layout, &width, 
&cd->pixel_height);
-                               g_object_unref (layout);
+                                layout = gtk_widget_create_pango_layout 
(GTK_WIDGET (sheet), text);
+                                pango_layout_get_pixel_size (layout, &width, 
&cd->pixel_height);
+                                g_object_unref (layout);
                                 width += 2 * CELL_HPADDING;
+                                cd->pixel_height += 2 * CELL_VPADDING;
                         }
                         else
-                       {
+                        {
                                 width = 0;
-                               cd->pixel_height = (2 * CELL_VPADDING);
-                       }
+                                cd->pixel_height = (2 * CELL_VPADDING);
+                        }
 
-                       if (default_height == 0)
-                               default_height = cd->pixel_height;
-                       if (max_height < 0)
-                               max_height = cd->pixel_height;
-                       else
-                               max_height = MAX(max_height, cd->pixel_height);
+                        max_height = MAX(max_height, cd->pixel_height);
 
                         if (cd->pixel_width > 0)
                                 continue;
@@ -223,9 +212,9 @@
                 {
                         cd = g_table_index (dimensions->cell_dimensions,
                                             row, col);
-                       cd->pixel_height = max_height;
-               }
-       }
+                        cd->pixel_height = max_height;
+                }
+        }
 }
 
 
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to