[gnome-contacts] Do row spacing via padding, not CSS
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-contacts] Do row spacing via padding, not CSS
- Date: Wed, 18 Jan 2012 15:28:05 +0000 (UTC)
commit b53cd6208bdca75d721320311e4cf4c3f00faedd
Author: Alexander Larsson <alexl redhat com>
Date: Wed Jan 18 12:09:03 2012 +0100
Do row spacing via padding, not CSS
data/gnome-contacts.css | 4 ---
src/contacts-cell-renderer-shape.vala | 35 +++++++++++++++++++-------------
src/contacts-view.vala | 7 +++++-
3 files changed, 27 insertions(+), 19 deletions(-)
---
diff --git a/data/gnome-contacts.css b/data/gnome-contacts.css
index 4544ab2..240a7b5 100644
--- a/data/gnome-contacts.css
+++ b/data/gnome-contacts.css
@@ -27,10 +27,6 @@ ContactsListPane GtkEntry.image {
color: #888a85;
}
-ContactsViewWidget {
- -GtkTreeView-vertical-separator: 8;
-}
-
.contact-button:active {
border-color: #000000;
border-image: none;
diff --git a/src/contacts-cell-renderer-shape.vala b/src/contacts-cell-renderer-shape.vala
index 4fdb123..42cc7d2 100644
--- a/src/contacts-cell-renderer-shape.vala
+++ b/src/contacts-cell-renderer-shape.vala
@@ -208,26 +208,29 @@ public class Contacts.CellRendererShape : Gtk.CellRenderer {
private void do_get_size (Widget widget,
Gdk.Rectangle? cell_area,
Pango.Layout? layout,
- out int x_offset) {
+ out int x_offset,
+ out int y_offset) {
Pango.Rectangle rect;
- int xpad;
+ int xpad, ypad;
- get_padding (out xpad, null);
+ get_padding (out xpad, out ypad);
layout.get_pixel_extents (null, out rect);
if (cell_area != null) {
- rect.width = int.min (rect.width, cell_area.width - xpad);
+ rect.width = int.min (rect.width, cell_area.width - 2 * xpad);
if (widget.get_direction () == TextDirection.RTL)
x_offset = cell_area.width - (rect.width + xpad);
else
- x_offset = 0;
+ x_offset = xpad;
x_offset = int.max (x_offset, 0);
} else {
x_offset = 0;
}
+
+ y_offset = ypad;
}
public override void render (Cairo.Context cr,
@@ -239,6 +242,8 @@ public class Contacts.CellRendererShape : Gtk.CellRenderer {
Pango.Layout name_layout, presence_layout;
int name_x_offset = 0;
int presence_x_offset = 0;
+ int name_y_offset = 0;
+ int presence_y_offset = 0;
int xpad;
Pango.Rectangle name_rect;
Pango.Rectangle presence_rect;
@@ -249,14 +254,14 @@ public class Contacts.CellRendererShape : Gtk.CellRenderer {
get_padding (out xpad, null);
name_layout = get_name_layout (widget, cell_area, flags);
- do_get_size (widget, cell_area, name_layout, out name_x_offset);
+ do_get_size (widget, cell_area, name_layout, out name_x_offset, out name_y_offset);
name_layout.get_pixel_extents (null, out name_rect);
name_x_offset = name_x_offset - name_rect.x;
presence_layout = null;
if (name_layout.get_lines_readonly ().length () == 1) {
presence_layout = get_presence_layout (widget, cell_area, flags);
- do_get_size (widget, cell_area, presence_layout, out presence_x_offset);
+ do_get_size (widget, cell_area, presence_layout, out presence_x_offset, out presence_y_offset);
presence_layout.get_pixel_extents (null, out presence_rect);
presence_x_offset = presence_x_offset - presence_rect.x;
}
@@ -267,14 +272,14 @@ public class Contacts.CellRendererShape : Gtk.CellRenderer {
cr.clip ();
Gtk.render_layout (context, cr,
- cell_area.x + name_x_offset + xpad,
- cell_area.y + 0,
+ cell_area.x + name_x_offset,
+ cell_area.y + name_y_offset,
name_layout);
if (presence_layout != null)
Gtk.render_layout (context, cr,
- cell_area.x + presence_x_offset + xpad,
- cell_area.y + 48 - 11 - presence_layout.get_baseline () / Pango.SCALE,
+ cell_area.x + presence_x_offset,
+ cell_area.y + presence_y_offset + 48 - 11 - presence_layout.get_baseline () / Pango.SCALE,
presence_layout);
cr.restore ();
@@ -294,8 +299,11 @@ public class Contacts.CellRendererShape : Gtk.CellRenderer {
int width,
out int minimum_height,
out int natural_height) {
- minimum_height = 48;
- natural_height = 48;
+ int ypad;
+
+ get_padding (null, out ypad);
+ minimum_height = 48 + ypad;
+ natural_height = 48 + ypad;
}
public override void get_preferred_height (Widget widget,
@@ -319,4 +327,3 @@ public class Contacts.CellRendererShape : Gtk.CellRenderer {
}
}
}
-
diff --git a/src/contacts-view.vala b/src/contacts-view.vala
index cd2631a..f884d74 100644
--- a/src/contacts-view.vala
+++ b/src/contacts-view.vala
@@ -393,6 +393,8 @@ public class Contacts.ViewWidget : TreeView {
set_model (view.model);
set_headers_visible (false);
+ var row_padding = 4;
+
var selection = get_selection ();
selection.set_mode (SelectionMode.BROWSE);
selection.set_select_function ( (selection, model, path, path_currently_selected) => {
@@ -405,9 +407,11 @@ public class Contacts.ViewWidget : TreeView {
selection.changed.connect (contacts_selection_changed);
var column = new TreeViewColumn ();
+ column.set_spacing (4);
var text = new CellRendererText ();
text.set_alignment (0, 0);
+ text.set_padding (0, row_padding);
column.pack_start (text, false);
text.set ("weight", Pango.Weight.BOLD, "scale", 1.28, "width", 24);
column.set_cell_data_func (text, (column, cell, model, iter) => {
@@ -427,6 +431,7 @@ public class Contacts.ViewWidget : TreeView {
});
var icon = new CellRendererPixbuf ();
+ icon.set_padding (0, row_padding);
icon.xalign = 0.0f;
icon.yalign = 0.0f;
icon.width = 48 + 2;
@@ -449,7 +454,7 @@ public class Contacts.ViewWidget : TreeView {
});
shape = new CellRendererShape ();
- shape.set_padding (4, 0);
+ shape.set_padding (0, row_padding);
Pango.cairo_context_set_shape_renderer (get_pango_context (), shape.render_shape);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]