aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/misc/e-attachment-button.c23
-rw-r--r--widgets/misc/e-calendar-item.c36
-rw-r--r--widgets/misc/e-calendar.c6
-rw-r--r--widgets/misc/e-canvas-background.c11
-rw-r--r--widgets/misc/e-canvas-utils.c40
-rw-r--r--widgets/misc/e-canvas.c18
-rw-r--r--widgets/misc/e-cell-renderer-combo.c12
-rw-r--r--widgets/misc/e-combo-cell-editable.c19
-rw-r--r--widgets/misc/e-dateedit.c107
-rw-r--r--widgets/misc/e-map.c293
-rw-r--r--widgets/misc/e-map.h11
-rw-r--r--widgets/misc/e-menu-tool-button.c2
-rw-r--r--widgets/misc/e-paned.c12
-rw-r--r--widgets/misc/e-send-options.c16
-rw-r--r--widgets/misc/e-spinner.c22
-rw-r--r--widgets/misc/ea-calendar-item.c2
-rw-r--r--widgets/text/e-text.c156
17 files changed, 500 insertions, 286 deletions
diff --git a/widgets/misc/e-attachment-button.c b/widgets/misc/e-attachment-button.c
index adf40d4df4..192344068b 100644
--- a/widgets/misc/e-attachment-button.c
+++ b/widgets/misc/e-attachment-button.c
@@ -81,6 +81,7 @@ attachment_button_menu_position (GtkMenu *menu,
{
GtkRequisition menu_requisition;
GtkTextDirection direction;
+ GtkAllocation allocation;
GdkRectangle monitor;
GdkScreen *screen;
GdkWindow *window;
@@ -99,24 +100,28 @@ attachment_button_menu_position (GtkMenu *menu,
monitor_num = 0;
gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+ gtk_widget_get_allocation (widget, &allocation);
+
gdk_window_get_origin (window, x, y);
- *x += widget->allocation.x;
- *y += widget->allocation.y;
+ *x += allocation.x;
+ *y += allocation.y;
direction = gtk_widget_get_direction (widget);
if (direction == GTK_TEXT_DIR_LTR)
- *x += MAX (widget->allocation.width - menu_requisition.width, 0);
- else if (menu_requisition.width > widget->allocation.width)
- *x -= menu_requisition.width - widget->allocation.width;
+ *x += MAX (allocation.width - menu_requisition.width, 0);
+ else if (menu_requisition.width > allocation.width)
+ *x -= menu_requisition.width - allocation.width;
+
+ gtk_widget_get_allocation (toggle_button, &allocation);
- if ((*y + toggle_button->allocation.height +
+ if ((*y + allocation.height +
menu_requisition.height) <= monitor.y + monitor.height)
- *y += toggle_button->allocation.height;
+ *y += allocation.height;
else if ((*y - menu_requisition.height) >= monitor.y)
*y -= menu_requisition.height;
else if (monitor.y + monitor.height -
- (*y + toggle_button->allocation.height) > *y)
- *y += toggle_button->allocation.height;
+ (*y + allocation.height) > *y)
+ *y += allocation.height;
else
*y -= menu_requisition.height;
diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c
index 742dd763a8..6f54327033 100644
--- a/widgets/misc/e-calendar-item.c
+++ b/widgets/misc/e-calendar-item.c
@@ -898,7 +898,7 @@ e_calendar_item_update (GnomeCanvasItem *item,
item_class->update (item, affine, clip_path, flags);
calitem = E_CALENDAR_ITEM (item);
- style = GTK_WIDGET (item->canvas)->style;
+ style = gtk_widget_get_style (GTK_WIDGET (item->canvas));
xthickness = style->xthickness;
ythickness = style->ythickness;
@@ -1037,7 +1037,7 @@ e_calendar_item_draw (GnomeCanvasItem *canvas_item,
x, y, width, height);
#endif
calitem = E_CALENDAR_ITEM (canvas_item);
- style = GTK_WIDGET (canvas_item->canvas)->style;
+ style = gtk_widget_get_style (GTK_WIDGET (canvas_item->canvas));
/* Set up Pango prerequisites */
font_desc = calitem->font_desc;
@@ -1172,7 +1172,7 @@ e_calendar_item_draw_month (ECalendarItem *calitem,
#endif
item = GNOME_CANVAS_ITEM (calitem);
widget = GTK_WIDGET (item->canvas);
- style = widget->style;
+ style = gtk_widget_get_style (widget);
cr = gdk_cairo_create (drawable);
@@ -1419,7 +1419,7 @@ e_calendar_item_draw_day_numbers (ECalendarItem *calitem,
item = GNOME_CANVAS_ITEM (calitem);
widget = GTK_WIDGET (item->canvas);
- style = widget->style;
+ style = gtk_widget_get_style (widget);
cr = gdk_cairo_create (drawable);
@@ -1952,7 +1952,7 @@ e_calendar_item_recalc_sizes (ECalendarItem *calitem)
PangoLayout *layout;
canvas_item = GNOME_CANVAS_ITEM (calitem);
- style = GTK_WIDGET (canvas_item->canvas)->style;
+ style = gtk_widget_get_style (GTK_WIDGET (canvas_item->canvas));
if (!style)
return;
@@ -2062,7 +2062,7 @@ e_calendar_item_get_day_style (ECalendarItem *calitem,
GtkStyle *style;
widget = GTK_WIDGET (GNOME_CANVAS_ITEM (calitem)->canvas);
- style = widget->style;
+ style = gtk_widget_get_style (widget);
*bg_color = NULL;
*fg_color = NULL;
@@ -2075,7 +2075,7 @@ e_calendar_item_get_day_style (ECalendarItem *calitem,
*box_color = &calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX];
if (prev_or_next_month)
- *fg_color = &style->mid[GTK_WIDGET_STATE (widget)];
+ *fg_color = &style->mid[gtk_widget_get_state (widget)];
if (selected) {
if (has_focus) {
@@ -2400,7 +2400,7 @@ e_calendar_item_convert_position_to_day (ECalendarItem *calitem,
item = GNOME_CANVAS_ITEM (calitem);
widget = GTK_WIDGET (item->canvas);
- style = widget->style;
+ style = gtk_widget_get_style (widget);
font_desc = calitem->font_desc;
if (!font_desc)
@@ -3181,21 +3181,24 @@ e_calendar_item_set_selection_if_emission (ECalendarItem *calitem,
void
e_calendar_item_style_set (GtkWidget *widget, ECalendarItem *calitem)
{
+ GtkStyle *style;
GdkColor *color;
- color = &widget->style->bg[GTK_STATE_SELECTED];
+ style = gtk_widget_get_style (widget);
+
+ color = &style->bg[GTK_STATE_SELECTED];
calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX] = *color;
- color = &widget->style->base[GTK_STATE_NORMAL];
+ color = &style->base[GTK_STATE_NORMAL];
calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG] = *color;
- color = &widget->style->bg[GTK_STATE_SELECTED];
+ color = &style->bg[GTK_STATE_SELECTED];
calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED] = *color;
- color = &widget->style->fg[GTK_STATE_INSENSITIVE];
+ color = &style->fg[GTK_STATE_INSENSITIVE];
calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG] = *color;
- color = &widget->style->fg[GTK_STATE_INSENSITIVE];
+ color = &style->fg[GTK_STATE_INSENSITIVE];
calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG] = *color;
}
@@ -3376,13 +3379,16 @@ static void
e_calendar_item_on_menu_item_activate (GtkWidget *menuitem,
ECalendarItem *calitem)
{
+ GtkWidget *parent;
gint year, month_offset, month;
gpointer data;
- data = g_object_get_data (G_OBJECT (menuitem->parent), "year");
+ parent = gtk_widget_get_parent (menuitem);
+ data = g_object_get_data (G_OBJECT (parent), "year");
year = GPOINTER_TO_INT (data);
- data = g_object_get_data (G_OBJECT (menuitem->parent), "month_offset");
+ parent = gtk_widget_get_parent (menuitem);
+ data = g_object_get_data (G_OBJECT (parent), "month_offset");
month_offset = GPOINTER_TO_INT (data);
data = g_object_get_data (G_OBJECT (menuitem), "month");
diff --git a/widgets/misc/e-calendar.c b/widgets/misc/e-calendar.c
index 44e4568656..384d4ce664 100644
--- a/widgets/misc/e-calendar.c
+++ b/widgets/misc/e-calendar.c
@@ -308,6 +308,7 @@ e_calendar_size_allocate (GtkWidget *widget,
{
ECalendar *cal;
GtkStyle *style;
+ GtkAllocation old_allocation;
PangoFontDescription *font_desc;
PangoContext *pango_context;
PangoFontMetrics *font_metrics;
@@ -330,8 +331,9 @@ e_calendar_size_allocate (GtkWidget *widget,
/* Set the scroll region to its allocated size, if changed. */
gnome_canvas_get_scroll_region (GNOME_CANVAS (cal),
NULL, NULL, &old_x2, &old_y2);
- new_x2 = widget->allocation.width - 1;
- new_y2 = widget->allocation.height - 1;
+ gtk_widget_get_allocation (widget, &old_allocation);
+ new_x2 = old_allocation.width - 1;
+ new_y2 = old_allocation.height - 1;
if (old_x2 != new_x2 || old_y2 != new_y2)
gnome_canvas_set_scroll_region (GNOME_CANVAS (cal),
0, 0, new_x2, new_y2);
diff --git a/widgets/misc/e-canvas-background.c b/widgets/misc/e-canvas-background.c
index 898fe0628a..f9879c2614 100644
--- a/widgets/misc/e-canvas-background.c
+++ b/widgets/misc/e-canvas-background.c
@@ -337,11 +337,14 @@ static void
ecb_realize (GnomeCanvasItem *item)
{
ECanvasBackground *ecb = E_CANVAS_BACKGROUND (item);
+ GdkWindow *bin_window;
if (GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->realize)
GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->realize (item);
- ecb->priv->gc = gdk_gc_new (item->canvas->layout.bin_window);
+ bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (item->canvas));
+
+ ecb->priv->gc = gdk_gc_new (bin_window);
get_color (ecb);
if (!item->canvas->aa)
gdk_gc_set_foreground (ecb->priv->gc, &ecb->priv->color);
@@ -430,11 +433,13 @@ ecb_style_set (ECanvasBackground *ecb,
GtkStyle *previous_style)
{
GnomeCanvasItem *item = GNOME_CANVAS_ITEM (ecb);
+ GtkStyle *style;
+
+ style = gtk_widget_get_style (GTK_WIDGET (item->canvas));
if (GTK_WIDGET_REALIZED (item->canvas)) {
gdk_gc_set_foreground (
- ecb->priv->gc, &GTK_WIDGET(item->canvas)->
- style->base[GTK_STATE_NORMAL]);
+ ecb->priv->gc, &style->base[GTK_STATE_NORMAL]);
gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (ecb));
}
}
diff --git a/widgets/misc/e-canvas-utils.c b/widgets/misc/e-canvas-utils.c
index e69bb9c980..9e097b02bd 100644
--- a/widgets/misc/e-canvas-utils.c
+++ b/widgets/misc/e-canvas-utils.c
@@ -68,19 +68,31 @@ e_canvas_show_area (GnomeCanvas *canvas, double x1, double y1, double x2, double
{
GtkAdjustment *h, *v;
gint dx = 0, dy = 0;
+ gdouble page_size;
+ gdouble lower;
+ gdouble upper;
+ gdouble value;
g_return_if_fail (canvas != NULL);
g_return_if_fail (GNOME_IS_CANVAS (canvas));
h = gtk_layout_get_hadjustment(GTK_LAYOUT(canvas));
- dx = compute_offset(x1, x2, h->value, h->value + h->page_size);
+ page_size = gtk_adjustment_get_page_size (h);
+ lower = gtk_adjustment_get_lower (h);
+ upper = gtk_adjustment_get_upper (h);
+ value = gtk_adjustment_get_value (h);
+ dx = compute_offset(x1, x2, value, value + page_size);
if (dx)
- gtk_adjustment_set_value(h, CLAMP(h->value + dx, h->lower, h->upper - h->page_size));
+ gtk_adjustment_set_value(h, CLAMP(value + dx, lower, upper - page_size));
v = gtk_layout_get_vadjustment(GTK_LAYOUT(canvas));
- dy = compute_offset(y1, y2, v->value, v->value + v->page_size);
+ page_size = gtk_adjustment_get_page_size (v);
+ lower = gtk_adjustment_get_lower (v);
+ upper = gtk_adjustment_get_upper (v);
+ value = gtk_adjustment_get_value (v);
+ dy = compute_offset(y1, y2, value, value + page_size);
if (dy)
- gtk_adjustment_set_value(v, CLAMP(v->value + dy, v->lower, v->upper - v->page_size));
+ gtk_adjustment_set_value(v, CLAMP(value + dy, lower, upper - page_size));
}
void
@@ -100,18 +112,30 @@ e_canvas_area_shown (GnomeCanvas *canvas, double x1, double y1, double x2, doubl
{
GtkAdjustment *h, *v;
gint dx = 0, dy = 0;
+ gdouble page_size;
+ gdouble lower;
+ gdouble upper;
+ gdouble value;
g_return_val_if_fail (canvas != NULL, FALSE);
g_return_val_if_fail (GNOME_IS_CANVAS (canvas), FALSE);
h = gtk_layout_get_hadjustment(GTK_LAYOUT(canvas));
- dx = compute_offset(x1, x2, h->value, h->value + h->page_size);
- if (CLAMP(h->value + dx, h->lower, h->upper - h->page_size) - h->value != 0)
+ page_size = gtk_adjustment_get_page_size (h);
+ lower = gtk_adjustment_get_lower (h);
+ upper = gtk_adjustment_get_upper (h);
+ value = gtk_adjustment_get_value (h);
+ dx = compute_offset(x1, x2, value, value + page_size);
+ if (CLAMP(value + dx, lower, upper - page_size) - value != 0)
return FALSE;
v = gtk_layout_get_vadjustment(GTK_LAYOUT(canvas));
- dy = compute_offset(y1, y2, v->value, v->value + v->page_size);
- if (CLAMP(v->value + dy, v->lower, v->upper - v->page_size) - v->value != 0)
+ page_size = gtk_adjustment_get_page_size (v);
+ lower = gtk_adjustment_get_lower (v);
+ upper = gtk_adjustment_get_upper (v);
+ value = gtk_adjustment_get_value (v);
+ dy = compute_offset(y1, y2, value, value + page_size);
+ if (CLAMP(value + dy, lower, upper - page_size) - value != 0)
return FALSE;
return TRUE;
}
diff --git a/widgets/misc/e-canvas.c b/widgets/misc/e-canvas.c
index 5f719fed80..f1b7713f43 100644
--- a/widgets/misc/e-canvas.c
+++ b/widgets/misc/e-canvas.c
@@ -458,6 +458,7 @@ static gint
e_canvas_button (GtkWidget *widget, GdkEventButton *event)
{
GnomeCanvas *canvas;
+ GdkWindow *bin_window;
gint mask;
gint retval;
@@ -468,6 +469,7 @@ e_canvas_button (GtkWidget *widget, GdkEventButton *event)
retval = FALSE;
canvas = GNOME_CANVAS (widget);
+ bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (canvas));
d(g_print ("button %d, event type %d, grabbed=%p, current=%p\n",
event->button,
@@ -477,7 +479,7 @@ e_canvas_button (GtkWidget *widget, GdkEventButton *event)
/* dispatch normally regardless of the event's window if an item has
has a pointer grab in effect */
- if (!canvas->grabbed_item && event->window != canvas->layout.bin_window)
+ if (!canvas->grabbed_item && event->window != bin_window)
return retval;
switch (event->button) {
@@ -557,17 +559,20 @@ void
e_canvas_item_grab_focus (GnomeCanvasItem *item, gboolean widget_too)
{
GnomeCanvasItem *focused_item;
+ GdkWindow *bin_window;
GdkEvent ev;
g_return_if_fail (item != NULL);
g_return_if_fail (GNOME_IS_CANVAS_ITEM (item));
g_return_if_fail (gtk_widget_get_can_focus (GTK_WIDGET (item->canvas)));
+ bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (item->canvas));
+
focused_item = item->canvas->focused_item;
if (focused_item) {
ev.focus_change.type = GDK_FOCUS_CHANGE;
- ev.focus_change.window = GTK_LAYOUT (item->canvas)->bin_window;
+ ev.focus_change.window = bin_window;
ev.focus_change.send_event = FALSE;
ev.focus_change.in = FALSE;
@@ -582,7 +587,7 @@ e_canvas_item_grab_focus (GnomeCanvasItem *item, gboolean widget_too)
if (item) {
ev.focus_change.type = GDK_FOCUS_CHANGE;
- ev.focus_change.window = GTK_LAYOUT (item->canvas)->bin_window;
+ ev.focus_change.window = bin_window;
ev.focus_change.send_event = FALSE;
ev.focus_change.in = TRUE;
@@ -665,13 +670,16 @@ static void
e_canvas_realize (GtkWidget *widget)
{
ECanvas *ecanvas = E_CANVAS (widget);
+ GdkWindow *window;
if (GTK_WIDGET_CLASS (e_canvas_parent_class)->realize)
(* GTK_WIDGET_CLASS (e_canvas_parent_class)->realize) (widget);
- gdk_window_set_back_pixmap (GTK_LAYOUT (widget)->bin_window, NULL, FALSE);
+ window = gtk_layout_get_bin_window (GTK_LAYOUT (widget));
+ gdk_window_set_back_pixmap (window, NULL, FALSE);
- gtk_im_context_set_client_window (ecanvas->im_context, widget->window);
+ window = gtk_widget_get_window (widget);
+ gtk_im_context_set_client_window (ecanvas->im_context, window);
}
static void
diff --git a/widgets/misc/e-cell-renderer-combo.c b/widgets/misc/e-cell-renderer-combo.c
index ab03c73f2b..96079032fe 100644
--- a/widgets/misc/e-cell-renderer-combo.c
+++ b/widgets/misc/e-cell-renderer-combo.c
@@ -62,15 +62,23 @@ ecrc_start_editing (GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, c
ECellRendererCombo *combo_cell = E_CELL_RENDERER_COMBO (cell);
GtkCellRendererText *text_cell = GTK_CELL_RENDERER_TEXT (cell);
EComboCellEditable *editable;
+ gboolean is_editable;
+ gchar *text;
- if (!text_cell->editable)
+ g_object_get (text_cell, "editable", &is_editable, NULL);
+
+ if (!is_editable)
return NULL;
+ g_object_get (text_cell, "text", &text, NULL);
+
editable = E_COMBO_CELL_EDITABLE (e_combo_cell_editable_new ());
- e_combo_cell_editable_set_text (editable, text_cell->text);
+ e_combo_cell_editable_set_text (editable, text);
e_combo_cell_editable_set_list (editable, combo_cell->priv->list);
gtk_widget_show (GTK_WIDGET (editable));
+ g_free (text);
+
g_signal_connect (editable, "editing-done", G_CALLBACK (ecrc_editing_done), combo_cell);
combo_cell->priv->editable = g_object_ref (editable);
diff --git a/widgets/misc/e-combo-cell-editable.c b/widgets/misc/e-combo-cell-editable.c
index 3d3c777986..98cd0b17c5 100644
--- a/widgets/misc/e-combo-cell-editable.c
+++ b/widgets/misc/e-combo-cell-editable.c
@@ -73,14 +73,16 @@ static gboolean
popup_button_press_cb (GtkWidget *widget, GdkEventButton *event, EComboCellEditable *ecce)
{
GtkAllocation alloc;
+ GdkWindow *window;
gdouble rel_x, rel_y;
gint win_x, win_y;
if (event->button != 1)
return FALSE;
- gdk_window_get_root_origin (widget->window, &win_x, &win_y);
- alloc = ecce->priv->popup->allocation;
+ window = gtk_widget_get_window (widget);
+ gdk_window_get_root_origin (window, &win_x, &win_y);
+ gtk_widget_get_allocation (ecce->priv->popup, &alloc);
rel_x = event->x_root - win_x - alloc.x;
rel_y = event->y_root - win_y - alloc.y;
@@ -217,6 +219,7 @@ show_popup (EComboCellEditable *ecce)
{
gint row;
GtkAllocation alloc;
+ GdkWindow *window;
gint x, y;
if (!ecce->priv->list)
@@ -227,14 +230,18 @@ show_popup (EComboCellEditable *ecce)
set_cursor (ecce->priv->tree_view, row);
gtk_editable_select_region (GTK_EDITABLE (ecce->priv->entry), 0, 0);
- gdk_window_get_origin (GTK_WIDGET (ecce)->window, &x, &y);
- alloc = GTK_WIDGET (ecce)->allocation;
+
+ window = gtk_widget_get_window (GTK_WIDGET (ecce));
+ gtk_widget_get_allocation (GTK_WIDGET (ecce), &alloc);
+ gdk_window_get_origin (window, &x, &y);
position_popup (ecce, x, y + alloc.height, alloc.height);
- gtk_grab_add (GTK_WIDGET (ecce->priv->popup));
+ gtk_grab_add (ecce->priv->popup);
gtk_widget_grab_focus (GTK_WIDGET (ecce->priv->tree_view));
- grab_popup (GTK_WIDGET (ecce->priv->popup)->window);
+
+ window = gtk_widget_get_window (ecce->priv->popup);
+ grab_popup (window);
}
static void
diff --git a/widgets/misc/e-dateedit.c b/widgets/misc/e-dateedit.c
index a16bcefaf8..acc4cb353d 100644
--- a/widgets/misc/e-dateedit.c
+++ b/widgets/misc/e-dateedit.c
@@ -532,6 +532,7 @@ create_children (EDateEdit *dedit)
ECalendar *calendar;
GtkWidget *frame, *arrow;
GtkWidget *vbox, *bbox;
+ GtkWidget *child;
AtkObject *a11y;
GtkListStore *time_store;
GList *cells;
@@ -590,11 +591,13 @@ create_children (EDateEdit *dedit)
GTK_TREE_MODEL (time_store), 0);
g_object_unref (time_store);
+ child = gtk_bin_get_child (GTK_BIN (priv->time_combo));
+
/* We need to make sure labels are right-aligned, since we want
* digits to line up, and with a nonproportional font, the width
* of a space != width of a digit. Technically, only 12-hour
* format needs this, but we do it always, for consistency. */
- g_object_set (GTK_BIN (priv->time_combo)->child, "xalign", 1.0, NULL);
+ g_object_set (child, "xalign", 1.0, NULL);
cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (priv->time_combo));
if (cells) {
g_object_set (GTK_CELL_RENDERER (cells->data), "xalign", 1.0, NULL);
@@ -609,22 +612,18 @@ create_children (EDateEdit *dedit)
atk_object_set_description (a11y, _("Drop-down combination box to select time"));
atk_object_set_name (a11y, _("Time"));
- g_signal_connect (GTK_BIN (priv->time_combo)->child,
- "key_press_event",
- G_CALLBACK (on_time_entry_key_press),
- dedit);
- g_signal_connect (GTK_BIN (priv->time_combo)->child,
- "key_release_event",
- G_CALLBACK (on_time_entry_key_release),
- dedit);
- g_signal_connect_after (GTK_BIN (priv->time_combo)->child,
- "focus_out_event",
- G_CALLBACK (on_time_entry_focus_out),
- dedit);
- g_signal_connect_after (priv->time_combo,
- "changed",
- G_CALLBACK (on_date_edit_time_selected),
- dedit);
+ g_signal_connect (
+ child, "key_press_event",
+ G_CALLBACK (on_time_entry_key_press), dedit);
+ g_signal_connect (
+ child, "key_release_event",
+ G_CALLBACK (on_time_entry_key_release), dedit);
+ g_signal_connect_after (
+ child, "focus_out_event",
+ G_CALLBACK (on_time_entry_focus_out), dedit);
+ g_signal_connect_after (
+ priv->time_combo, "changed",
+ G_CALLBACK (on_date_edit_time_selected), dedit);
if (priv->show_time || priv->make_time_insensitive)
gtk_widget_show (priv->time_combo);
@@ -719,15 +718,17 @@ static void
e_date_edit_grab_focus (GtkWidget *widget)
{
EDateEdit *dedit;
+ GtkWidget *child;
g_return_if_fail (E_IS_DATE_EDIT (widget));
dedit = E_DATE_EDIT (widget);
+ child = gtk_bin_get_child (GTK_BIN (dedit->priv->time_combo));
if (dedit->priv->show_date)
gtk_widget_grab_focus (dedit->priv->date_entry);
else
- gtk_widget_grab_focus (GTK_BIN (dedit->priv->time_combo)->child);
+ gtk_widget_grab_focus (child);
}
/**
@@ -1359,6 +1360,7 @@ e_date_edit_show_date_popup (EDateEdit *dedit)
{
EDateEditPrivate *priv;
ECalendar *calendar;
+ GdkWindow *window;
struct tm mtm;
const gchar *date_text;
GDate selected_day;
@@ -1386,17 +1388,20 @@ e_date_edit_show_date_popup (EDateEdit *dedit)
emissions. */
calendar->calitem->selection_changed = FALSE;
- position_date_popup (dedit);
+ position_date_popup (dedit);
gtk_widget_show (priv->cal_popup);
gtk_widget_grab_focus (priv->cal_popup);
gtk_grab_add (priv->cal_popup);
- gdk_pointer_grab (priv->cal_popup->window, TRUE,
- (GDK_BUTTON_PRESS_MASK
- | GDK_BUTTON_RELEASE_MASK
- | GDK_POINTER_MOTION_MASK),
- NULL, NULL, GDK_CURRENT_TIME);
- gdk_keyboard_grab (priv->cal_popup->window, TRUE, GDK_CURRENT_TIME);
- gdk_window_focus (priv->cal_popup->window, GDK_CURRENT_TIME);
+
+ window = gtk_widget_get_window (priv->cal_popup);
+ gdk_pointer_grab (
+ window, TRUE,
+ GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
+ GDK_POINTER_MOTION_MASK,
+ NULL, NULL, GDK_CURRENT_TIME);
+ gdk_keyboard_grab (window, TRUE, GDK_CURRENT_TIME);
+ gdk_window_focus (window, GDK_CURRENT_TIME);
}
/* This positions the date popup below and to the left of the arrow button,
@@ -1407,6 +1412,8 @@ position_date_popup (EDateEdit *dedit)
gint x, y;
gint win_x, win_y;
gint bwidth, bheight;
+ GtkWidget *toplevel;
+ GdkWindow *window;
GtkRequisition cal_req, button_req;
gint screen_width, screen_height;
@@ -1423,9 +1430,9 @@ position_date_popup (EDateEdit *dedit)
gtk_widget_get_toplevel (dedit->priv->date_button),
bwidth - cal_req.width, bheight, &x, &y);
- gdk_window_get_origin (
- gtk_widget_get_toplevel (dedit->priv->date_button)->window,
- &win_x, &win_y);
+ toplevel = gtk_widget_get_toplevel (dedit->priv->date_button);
+ window = gtk_widget_get_window (toplevel);
+ gdk_window_get_origin (window, &win_x, &win_y);
x += win_x;
y += win_y;
@@ -1503,8 +1510,12 @@ on_date_popup_key_press (GtkWidget *widget,
GdkEventKey *event,
EDateEdit *dedit)
{
+ GdkWindow *window;
+
+ window = gtk_widget_get_window (dedit->priv->cal_popup);
+
if (event->keyval != GDK_Escape) {
- gdk_keyboard_grab (dedit->priv->cal_popup->window, TRUE, GDK_CURRENT_TIME);
+ gdk_keyboard_grab (window, TRUE, GDK_CURRENT_TIME);
return FALSE;
}
@@ -1541,7 +1552,7 @@ on_date_popup_button_press (GtkWidget *widget,
while (child) {
if (child == widget)
return FALSE;
- child = child->parent;
+ child = gtk_widget_get_parent (child);
}
}
@@ -1700,12 +1711,16 @@ static void
on_date_edit_time_selected (GtkComboBox *combo,
EDateEdit *dedit)
{
+ GtkWidget *child;
+
+ child = gtk_bin_get_child (GTK_BIN (combo));
+
/* We only want to emit signals when an item is selected explicitly,
not when it is selected by the silly combo update thing. */
if (gtk_combo_box_get_active (combo) == -1)
return;
- if (!GTK_WIDGET_MAPPED (GTK_BIN (combo)->child))
+ if (!GTK_WIDGET_MAPPED (child))
return;
e_date_edit_check_time_changed (dedit);
@@ -1740,6 +1755,10 @@ on_time_entry_key_press (GtkWidget *widget,
GdkEventKey *event,
EDateEdit *dedit)
{
+ GtkWidget *child;
+
+ child = gtk_bin_get_child (GTK_BIN (dedit->priv->time_combo));
+
/* I'd like to use Alt+Up/Down for popping up the list, like Win32,
but the combo steals any Up/Down keys, so we use Alt+Return. */
#if 0
@@ -1748,9 +1767,8 @@ on_time_entry_key_press (GtkWidget *widget,
#else
if (event->state & GDK_MOD1_MASK && event->keyval == GDK_Return) {
#endif
- g_signal_stop_emission_by_name (widget,
- "key_press_event");
- g_signal_emit_by_name (GTK_BIN (dedit->priv->time_combo)->child, "activate", 0);
+ g_signal_stop_emission_by_name (widget, "key_press_event");
+ g_signal_emit_by_name (child, "activate", 0);
return TRUE;
}
@@ -1946,14 +1964,17 @@ static void
e_date_edit_update_time_entry (EDateEdit *dedit)
{
EDateEditPrivate *priv;
+ GtkWidget *child;
gchar buffer[40];
struct tm tmp_tm = { 0 };
priv = dedit->priv;
+ child = gtk_bin_get_child (GTK_BIN (priv->time_combo));
+
if (priv->time_set_to_none || !priv->time_is_valid) {
gtk_combo_box_set_active (GTK_COMBO_BOX (priv->time_combo), -1);
- gtk_entry_set_text (GTK_ENTRY (GTK_BIN (priv->time_combo)->child), "");
+ gtk_entry_set_text (GTK_ENTRY (child), "");
} else {
GtkTreeModel *model;
GtkTreeIter iter;
@@ -1982,8 +2003,7 @@ e_date_edit_update_time_entry (EDateEdit *dedit)
if (!priv->use_24_hour_format && buffer[0] == '0')
buffer[0] = ' ';
- gtk_entry_set_text (GTK_ENTRY (GTK_BIN (priv->time_combo)->child),
- buffer);
+ gtk_entry_set_text (GTK_ENTRY (child), buffer);
/* truncate left spaces */
b = buffer;
@@ -2046,10 +2066,13 @@ e_date_edit_update_time_combo_state (EDateEdit *dedit)
}
if (clear_entry) {
+ GtkWidget *child;
+
/* Only clear it if it isn't empty already. */
- text = gtk_entry_get_text (GTK_ENTRY (GTK_BIN (priv->time_combo)->child));
+ child = gtk_bin_get_child (GTK_BIN (priv->time_combo));
+ text = gtk_entry_get_text (GTK_ENTRY (child));
if (text[0])
- gtk_entry_set_text (GTK_ENTRY (GTK_BIN (priv->time_combo)->child), "");
+ gtk_entry_set_text (GTK_ENTRY (child), "");
}
gtk_widget_set_sensitive (priv->time_combo, sensitive);
@@ -2114,6 +2137,7 @@ static void
e_date_edit_check_time_changed (EDateEdit *dedit)
{
EDateEditPrivate *priv;
+ GtkWidget *child;
const gchar *time_text;
struct tm tmp_tm;
gboolean none = FALSE, valid = TRUE, time_changed;
@@ -2123,7 +2147,8 @@ e_date_edit_check_time_changed (EDateEdit *dedit)
tmp_tm.tm_hour = 0;
tmp_tm.tm_min = 0;
- time_text = gtk_entry_get_text (GTK_ENTRY (GTK_BIN (priv->time_combo)->child));
+ child = gtk_bin_get_child (GTK_BIN (priv->time_combo));
+ time_text = gtk_entry_get_text (GTK_ENTRY (child));
if (field_set_to_none (time_text))
none = TRUE;
else if (!e_date_edit_parse_time (dedit, time_text, &tmp_tm))
diff --git a/widgets/misc/e-map.c b/widgets/misc/e-map.c
index 26640cf121..3169c97c78 100644
--- a/widgets/misc/e-map.c
+++ b/widgets/misc/e-map.c
@@ -55,8 +55,7 @@ EMapZoomState;
/* Private part of the EMap structure */
-typedef struct
-{
+struct _EMapPrivate {
/* Pointer to map image */
GdkPixbuf *map_pixbuf, *map_render_pixbuf;
@@ -76,8 +75,7 @@ typedef struct
/* Dots */
GPtrArray *points;
-}
-EMapPrivate;
+};
/* Internal prototypes */
@@ -293,7 +291,10 @@ e_map_unmap (GtkWidget *widget)
static void
e_map_realize (GtkWidget *widget)
{
+ GtkAllocation allocation;
GdkWindowAttr attr;
+ GdkWindow *window;
+ GtkStyle *style;
gint attr_mask;
g_return_if_fail (widget != NULL);
@@ -301,11 +302,13 @@ e_map_realize (GtkWidget *widget)
GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
+ gtk_widget_get_allocation (widget, &allocation);
+
attr.window_type = GDK_WINDOW_CHILD;
- attr.x = widget->allocation.x;
- attr.y = widget->allocation.y;
- attr.width = widget->allocation.width;
- attr.height = widget->allocation.height;
+ attr.x = allocation.x;
+ attr.y = allocation.y;
+ attr.width = allocation.width;
+ attr.height = allocation.height;
attr.wclass = GDK_INPUT_OUTPUT;
attr.visual = gdk_rgb_get_visual ();
attr.colormap = gdk_rgb_get_colormap ();
@@ -315,12 +318,16 @@ e_map_realize (GtkWidget *widget)
attr_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
- widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attr, attr_mask);
- gdk_window_set_user_data (widget->window, widget);
+ window = gdk_window_new (
+ gtk_widget_get_parent_window (widget), &attr, attr_mask);
+ gtk_widget_set_window (widget, window);
+ gdk_window_set_user_data (window, widget);
- widget->style = gtk_style_attach (widget->style, widget->window);
+ style = gtk_widget_get_style (widget);
+ style = gtk_style_attach (style, window);
+ gtk_widget_set_style (widget, style);
- gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
+ gdk_window_set_back_pixmap (window, NULL, FALSE);
update_render_pixbuf (E_MAP (widget), GDK_INTERP_BILINEAR, TRUE);
}
@@ -373,11 +380,16 @@ e_map_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
/* Resize the window */
- widget->allocation = *allocation;
+ gtk_widget_set_allocation (widget, allocation);
- if (GTK_WIDGET_REALIZED (widget))
- {
- gdk_window_move_resize (widget->window, allocation->x, allocation->y, allocation->width, allocation->height);
+ if (GTK_WIDGET_REALIZED (widget)) {
+ GdkWindow *window;
+
+ window = gtk_widget_get_window (widget);
+
+ gdk_window_move_resize (
+ window, allocation->x, allocation->y,
+ allocation->width, allocation->height);
area.x = 0;
area.y = 0;
@@ -558,18 +570,25 @@ e_map_key_press (GtkWidget *widget, GdkEventKey *event)
if (do_scroll)
{
+ gint page_size;
+ gint upper;
gint x, y;
- x = CLAMP (priv->xofs + xofs, 0, priv->hadj->upper - priv->hadj->page_size);
- y = CLAMP (priv->yofs + yofs, 0, priv->vadj->upper - priv->vadj->page_size);
+ page_size = gtk_adjustment_get_page_size (priv->hadj);
+ upper = gtk_adjustment_get_upper (priv->hadj);
+ x = CLAMP (priv->xofs + xofs, 0, upper - page_size);
+
+ page_size = gtk_adjustment_get_page_size (priv->vadj);
+ upper = gtk_adjustment_get_upper (priv->vadj);
+ y = CLAMP (priv->yofs + yofs, 0, upper - page_size);
scroll_to (view, x, y);
g_signal_handlers_block_matched (priv->hadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
g_signal_handlers_block_matched (priv->vadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
- priv->hadj->value = x;
- priv->vadj->value = y;
+ gtk_adjustment_set_value (priv->hadj, x);
+ gtk_adjustment_set_value (priv->vadj, y);
g_signal_emit_by_name (priv->hadj, "value_changed");
g_signal_emit_by_name (priv->vadj, "value_changed");
@@ -830,15 +849,17 @@ gboolean
e_map_point_is_in_view (EMap *map, EMapPoint *point)
{
EMapPrivate *priv;
+ GtkAllocation allocation;
double x, y;
priv = map->priv;
if (!priv->map_render_pixbuf) return FALSE;
e_map_world_to_window (map, point->longitude, point->latitude, &x, &y);
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
- if (x >= 0 && x < GTK_WIDGET (map)->allocation.width &&
- y >= 0 && y < GTK_WIDGET (map)->allocation.height)
+ if (x >= 0 && x < allocation.width &&
+ y >= 0 && y < allocation.height)
return TRUE;
return FALSE;
@@ -882,11 +903,14 @@ static void
repaint_visible (EMap *map)
{
GdkRectangle area;
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
area.x = 0;
area.y = 0;
- area.width = GTK_WIDGET (map)->allocation.width;
- area.height = GTK_WIDGET (map)->allocation.height;
+ area.width = allocation.width;
+ area.height = allocation.height;
request_paint_area (map, &area);
}
@@ -918,36 +942,39 @@ load_map_background (EMap *view, gchar *name)
}
static void
-update_render_pixbuf (EMap *map, GdkInterpType interp, gboolean render_overlays)
+update_render_pixbuf (EMap *map,
+ GdkInterpType interp,
+ gboolean render_overlays)
{
EMapPrivate *priv;
EMapPoint *point;
+ GtkAllocation allocation;
gint width, height, orig_width, orig_height;
double zoom;
gint i;
- if (!GTK_WIDGET_REALIZED (GTK_WIDGET (map))) return;
+ if (!GTK_WIDGET_REALIZED (map))
+ return;
+
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
/* Set up value shortcuts */
priv = map->priv;
- width = GTK_WIDGET (map)->allocation.width;
- height = GTK_WIDGET (map)->allocation.height;
+ width = allocation.width;
+ height = allocation.height;
orig_width = gdk_pixbuf_get_width (priv->map_pixbuf);
orig_height = gdk_pixbuf_get_height (priv->map_pixbuf);
/* Compute scaled width and height based on the extreme dimension */
if ((double) width / orig_width > (double) height / orig_height)
- {
zoom = (double) width / (double) orig_width;
- }
else
- {
zoom = (double) height / (double) orig_height;
- }
- if (priv->zoom_state == E_MAP_ZOOMED_IN) zoom *= 2.0;
+ if (priv->zoom_state == E_MAP_ZOOMED_IN)
+ zoom *= 2.0;
height = (orig_height * zoom) + 0.5;
width = (orig_width * zoom) + 0.5;
@@ -1014,12 +1041,22 @@ request_paint_area (EMap *view, GdkRectangle *area)
if (gdk_pixbuf_get_colorspace (priv->map_render_pixbuf) == GDK_COLORSPACE_RGB && !gdk_pixbuf_get_has_alpha (priv->map_render_pixbuf) &&
gdk_pixbuf_get_bits_per_sample (priv->map_render_pixbuf) == 8)
{
+ GtkStyle *style;
+ GdkWindow *window;
guchar *pixels;
gint rowstride;
+ style = gtk_widget_get_style (GTK_WIDGET (view));
+ window = gtk_widget_get_window (GTK_WIDGET (view));
+
rowstride = gdk_pixbuf_get_rowstride (priv->map_render_pixbuf);
- pixels = gdk_pixbuf_get_pixels (priv->map_render_pixbuf) + (area->y + priv->yofs) * rowstride + 3 * (area->x + priv->xofs);
- gdk_draw_rgb_image_dithalign (GTK_WIDGET (view)->window, GTK_WIDGET (view)->style->black_gc, area->x, area->y, width, height, GDK_RGB_DITHER_NORMAL, pixels, rowstride, 0, 0);
+ pixels = gdk_pixbuf_get_pixels (priv->map_render_pixbuf) +
+ (area->y + priv->yofs) * rowstride + 3 *
+ (area->x + priv->xofs);
+ gdk_draw_rgb_image_dithalign (
+ window, style->black_gc, area->x, area->y,
+ width, height, GDK_RGB_DITHER_NORMAL, pixels,
+ rowstride, 0, 0);
return;
}
@@ -1112,23 +1149,22 @@ static void
center_at (EMap *map, gint x, gint y, gboolean scroll)
{
EMapPrivate *priv;
- gint pb_width, pb_height,
- view_width, view_height;
+ GtkAllocation allocation;
+ gint pb_width, pb_height;
priv = map->priv;
pb_width = E_MAP_GET_WIDTH (map);
pb_height = E_MAP_GET_HEIGHT (map);
- view_width = GTK_WIDGET (map)->allocation.width;
- view_height = GTK_WIDGET (map)->allocation.height;
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
- x = CLAMP (x - (view_width / 2), 0, pb_width - view_width);
- y = CLAMP (y - (view_height / 2), 0, pb_height - view_height);
+ x = CLAMP (x - (allocation.width / 2), 0, pb_width - allocation.width);
+ y = CLAMP (y - (allocation.height / 2), 0, pb_height - allocation.height);
- if (scroll) scroll_to (map, x, y);
- else
- {
+ if (scroll)
+ scroll_to (map, x, y);
+ else {
priv->xofs = x;
priv->yofs = y;
}
@@ -1138,8 +1174,8 @@ static void
smooth_center_at (EMap *map, gint x, gint y)
{
EMapPrivate *priv;
- gint pb_width, pb_height,
- view_width, view_height;
+ GtkAllocation allocation;
+ gint pb_width, pb_height;
gint dx, dy;
priv = map->priv;
@@ -1147,15 +1183,15 @@ smooth_center_at (EMap *map, gint x, gint y)
pb_width = E_MAP_GET_WIDTH (map);
pb_height = E_MAP_GET_HEIGHT (map);
- view_width = GTK_WIDGET (map)->allocation.width;
- view_height = GTK_WIDGET (map)->allocation.height;
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
- x = CLAMP (x - (view_width / 2), 0, pb_width - view_width);
- y = CLAMP (y - (view_height / 2), 0, pb_height - view_height);
+ x = CLAMP (x - (allocation.width / 2), 0, pb_width - allocation.width);
+ y = CLAMP (y - (allocation.height / 2), 0, pb_height - allocation.height);
for (;;)
{
- if (priv->xofs == x && priv->yofs == y) break;
+ if (priv->xofs == x && priv->yofs == y)
+ break;
dx = (x < priv->xofs) ? -1 : (x > priv->xofs) ? 1 : 0;
dy = (y < priv->yofs) ? -1 : (y > priv->yofs) ? 1 : 0;
@@ -1172,8 +1208,8 @@ scroll_to (EMap *view, gint x, gint y)
EMapPrivate *priv;
gint xofs, yofs;
GdkWindow *window;
+ GtkAllocation allocation;
GdkGC *gc;
- gint width, height;
gint src_x, src_y;
gint dest_x, dest_y;
#if 0 /* see comment below */
@@ -1187,30 +1223,31 @@ scroll_to (EMap *view, gint x, gint y)
xofs = x - priv->xofs;
yofs = y - priv->yofs;
- if (xofs == 0 && yofs == 0) return;
+ if (xofs == 0 && yofs == 0)
+ return;
priv->xofs = x;
priv->yofs = y;
- if (!GTK_WIDGET_DRAWABLE (view)) return;
+ if (!GTK_WIDGET_DRAWABLE (view))
+ return;
- width = GTK_WIDGET (view)->allocation.width;
- height = GTK_WIDGET (view)->allocation.height;
+ gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
- if (abs (xofs) >= width || abs (yofs) >= height)
+ if (abs (xofs) >= allocation.width || abs (yofs) >= allocation.height)
{
GdkRectangle area;
area.x = 0;
area.y = 0;
- area.width = width;
- area.height = height;
+ area.width = allocation.width;
+ area.height = allocation.height;
request_paint_area (view, &area);
return;
}
- window = GTK_WIDGET (view)->window;
+ window = gtk_widget_get_window (GTK_WIDGET (view));
/* Copy the window area */
@@ -1222,7 +1259,12 @@ scroll_to (EMap *view, gint x, gint y)
gc = gdk_gc_new (window);
gdk_gc_set_exposures (gc, TRUE);
- gdk_draw_drawable (GDK_DRAWABLE (window), gc, GDK_DRAWABLE (window), src_x, src_y, dest_x, dest_y, width - abs (xofs), height - abs (yofs));
+ gdk_draw_drawable (
+ GDK_DRAWABLE (window),
+ gc, GDK_DRAWABLE (window),
+ src_x, src_y, dest_x, dest_y,
+ allocation.width - abs (xofs),
+ allocation.height - abs (yofs));
g_object_unref (gc);
@@ -1232,10 +1274,10 @@ scroll_to (EMap *view, gint x, gint y)
{
GdkRectangle r;
- r.x = xofs < 0 ? 0 : width - xofs;
+ r.x = xofs < 0 ? 0 : allocation.width - xofs;
r.y = 0;
r.width = abs (xofs);
- r.height = height;
+ r.height = allocation.height;
request_paint_area (view, &r);
}
@@ -1245,8 +1287,8 @@ scroll_to (EMap *view, gint x, gint y)
GdkRectangle r;
r.x = 0;
- r.y = yofs < 0 ? 0 : height - yofs;
- r.width = width;
+ r.y = yofs < 0 ? 0 : allocation.height - yofs;
+ r.width = allocation.width;
r.height = abs (yofs);
request_paint_area (view, &r);
@@ -1493,6 +1535,7 @@ blowup_window_area (GdkWindow *window, gint area_x, gint area_y, gint target_x,
static void
zoom_in_smooth (EMap *map)
{
+ GtkAllocation allocation;
GdkRectangle area;
EMapPrivate *priv;
GdkWindow *window;
@@ -1502,13 +1545,15 @@ zoom_in_smooth (EMap *map)
g_return_if_fail (map);
g_return_if_fail (GTK_WIDGET_REALIZED (GTK_WIDGET (map)));
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
+
area.x = 0;
area.y = 0;
- area.width = GTK_WIDGET (map)->allocation.width;
- area.height = GTK_WIDGET (map)->allocation.height;
+ area.width = allocation.width;
+ area.height = allocation.height;
priv = map->priv;
- window = GTK_WIDGET (map)->window;
+ window = gtk_widget_get_window (GTK_WIDGET (map));
width = gdk_pixbuf_get_width (priv->map_render_pixbuf);
height = gdk_pixbuf_get_height (priv->map_render_pixbuf);
@@ -1549,24 +1594,33 @@ zoom_in_smooth (EMap *map)
static void
zoom_in (EMap *map)
{
+ GtkAllocation allocation;
GdkRectangle area;
EMapPrivate *priv;
double x, y;
priv = map->priv;
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
+
area.x = 0;
area.y = 0;
- area.width = GTK_WIDGET (map)->allocation.width;
- area.height = GTK_WIDGET (map)->allocation.height;
+ area.width = allocation.width;
+ area.height = allocation.height;
priv->zoom_state = E_MAP_ZOOMED_IN;
update_render_pixbuf (map, GDK_INTERP_BILINEAR, TRUE);
- e_map_world_to_window (map, priv->zoom_target_long, priv->zoom_target_lat, &x, &y);
- priv->xofs = CLAMP (priv->xofs + x - area.width / 2.0, 0, E_MAP_GET_WIDTH (map) - area.width);
- priv->yofs = CLAMP (priv->yofs + y - area.height / 2.0, 0, E_MAP_GET_HEIGHT (map) - area.height);
+ e_map_world_to_window (
+ map, priv->zoom_target_long,
+ priv->zoom_target_lat, &x, &y);
+ priv->xofs = CLAMP (
+ priv->xofs + x - area.width / 2.0,
+ 0, E_MAP_GET_WIDTH (map) - area.width);
+ priv->yofs = CLAMP (
+ priv->yofs + y - area.height / 2.0,
+ 0, E_MAP_GET_HEIGHT (map) - area.height);
request_paint_area (map, &area);
}
@@ -1574,6 +1628,7 @@ zoom_in (EMap *map)
static void
zoom_out (EMap *map)
{
+ GtkAllocation allocation;
GdkRectangle area;
EMapPrivate *priv;
double longitude, latitude;
@@ -1581,15 +1636,18 @@ zoom_out (EMap *map)
priv = map->priv;
+ gtk_widget_get_allocation (GTK_WIDGET (map), &allocation);
+
area.x = 0;
area.y = 0;
- area.width = GTK_WIDGET (map)->allocation.width;
- area.height = GTK_WIDGET (map)->allocation.height;
+ area.width = allocation.width;
+ area.height = allocation.height;
/* Must be done before update_render_pixbuf() */
- e_map_window_to_world (map, area.width / 2, area.height / 2,
- &longitude, &latitude);
+ e_map_window_to_world (
+ map, area.width / 2, area.height / 2,
+ &longitude, &latitude);
priv->zoom_state = E_MAP_ZOOMED_OUT;
update_render_pixbuf (map, GDK_INTERP_BILINEAR, TRUE);
@@ -1632,65 +1690,78 @@ static void
adjustment_changed_cb (GtkAdjustment *adj, gpointer data)
{
EMap *view;
- EMapPrivate *priv;
+ gint hadj_value;
+ gint vadj_value;
view = E_MAP (data);
- priv = view->priv;
- scroll_to (view, priv->hadj->value, priv->vadj->value);
+ hadj_value = gtk_adjustment_get_value (view->priv->hadj);
+ vadj_value = gtk_adjustment_get_value (view->priv->vadj);
+
+ scroll_to (view, hadj_value, vadj_value);
}
static void
set_scroll_area (EMap *view)
{
EMapPrivate *priv;
+ GtkAllocation allocation;
+ gint upper, page_size;
priv = view->priv;
if (!GTK_WIDGET_REALIZED (GTK_WIDGET (view))) return;
if (!priv->hadj || !priv->vadj) return;
+ g_object_freeze_notify (G_OBJECT (priv->hadj));
+ g_object_freeze_notify (G_OBJECT (priv->vadj));
+
+ gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
+
/* Set scroll increments */
- priv->hadj->page_size = GTK_WIDGET (view)->allocation.width;
- priv->hadj->page_increment = GTK_WIDGET (view)->allocation.width / 2;
- priv->hadj->step_increment = SCROLL_STEP_SIZE;
+ gtk_adjustment_set_page_size (priv->hadj, allocation.width);
+ gtk_adjustment_set_page_increment (priv->hadj, allocation.width / 2);
+ gtk_adjustment_set_step_increment (priv->hadj, SCROLL_STEP_SIZE);
- priv->vadj->page_size = GTK_WIDGET (view)->allocation.height;
- priv->vadj->page_increment = GTK_WIDGET (view)->allocation.height / 2;
- priv->vadj->step_increment = SCROLL_STEP_SIZE;
+ gtk_adjustment_set_page_size (priv->vadj, allocation.height);
+ gtk_adjustment_set_page_increment (priv->vadj, allocation.height / 2);
+ gtk_adjustment_set_step_increment (priv->vadj, SCROLL_STEP_SIZE);
/* Set scroll bounds and new offsets */
- priv->hadj->lower = 0;
- if (priv->map_render_pixbuf)
- priv->hadj->upper = gdk_pixbuf_get_width (priv->map_render_pixbuf);
-
- priv->vadj->lower = 0;
- if (priv->map_render_pixbuf)
- priv->vadj->upper = gdk_pixbuf_get_height (priv->map_render_pixbuf);
+ gtk_adjustment_set_lower (priv->hadj, 0);
+ if (priv->map_render_pixbuf) {
+ gint width = gdk_pixbuf_get_width (priv->map_render_pixbuf);
+ gtk_adjustment_set_upper (priv->hadj, width);
+ }
- g_signal_emit_by_name (priv->hadj, "changed");
- g_signal_emit_by_name (priv->vadj, "changed");
+ gtk_adjustment_set_lower (priv->vadj, 0);
+ if (priv->map_render_pixbuf) {
+ gint height = gdk_pixbuf_get_height (priv->map_render_pixbuf);
+ gtk_adjustment_set_upper (priv->vadj, height);
+ }
- priv->xofs = CLAMP (priv->xofs, 0, priv->hadj->upper - priv->hadj->page_size);
- priv->yofs = CLAMP (priv->yofs, 0, priv->vadj->upper - priv->vadj->page_size);
+ g_object_thaw_notify (G_OBJECT (priv->hadj));
+ g_object_thaw_notify (G_OBJECT (priv->vadj));
- if (priv->hadj->value != priv->xofs)
- {
- priv->hadj->value = priv->xofs;
+ upper = gtk_adjustment_get_upper (priv->hadj);
+ page_size = gtk_adjustment_get_page_size (priv->hadj);
+ priv->xofs = CLAMP (priv->xofs, 0, upper - page_size);
- g_signal_handlers_block_matched (priv->hadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
- g_signal_emit_by_name (priv->hadj, "value_changed");
- g_signal_handlers_unblock_matched (priv->hadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
- }
+ upper = gtk_adjustment_get_upper (priv->vadj);
+ page_size = gtk_adjustment_get_page_size (priv->vadj);
+ priv->yofs = CLAMP (priv->yofs, 0, upper - page_size);
- if (priv->vadj->value != priv->yofs)
- {
- priv->vadj->value = priv->yofs;
+ g_signal_handlers_block_matched (
+ priv->hadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
+ gtk_adjustment_set_value (priv->hadj, priv->xofs);
+ g_signal_handlers_unblock_matched (
+ priv->hadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
- g_signal_handlers_block_matched (priv->vadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
- g_signal_emit_by_name (priv->vadj, "value_changed");
- g_signal_handlers_unblock_matched (priv->vadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
- }
+ g_signal_handlers_block_matched (
+ priv->vadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
+ gtk_adjustment_set_value (priv->vadj, priv->yofs);
+ g_signal_handlers_unblock_matched (
+ priv->vadj, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view);
}
diff --git a/widgets/misc/e-map.h b/widgets/misc/e-map.h
index 6c0e44e93b..b3d7997401 100644
--- a/widgets/misc/e-map.h
+++ b/widgets/misc/e-map.h
@@ -34,18 +34,15 @@
typedef struct _EMap EMap;
typedef struct _EMapClass EMapClass;
+typedef struct _EMapPrivate EMapPrivate;
typedef struct _EMapPoint EMapPoint;
-struct _EMap
-{
+struct _EMap {
GtkWidget widget;
-
- /* Private data */
- gpointer priv;
+ EMapPrivate *priv;
};
-struct _EMapClass
-{
+struct _EMapClass {
GtkWidgetClass parent_class;
/* Notification signals */
diff --git a/widgets/misc/e-menu-tool-button.c b/widgets/misc/e-menu-tool-button.c
index fcf73d6c4e..0d9599c2f4 100644
--- a/widgets/misc/e-menu-tool-button.c
+++ b/widgets/misc/e-menu-tool-button.c
@@ -50,7 +50,7 @@ menu_tool_button_get_first_menu_item (GtkMenuToolButton *menu_tool_button)
if (!GTK_IS_MENU (menu))
return NULL;
- /* XXX GTK+ 2.12 provides no accessor function. */
+ /* XXX GTK+ 2.18 provides no accessor function. */
children = GTK_MENU_SHELL (menu)->children;
if (children == NULL)
return NULL;
diff --git a/widgets/misc/e-paned.c b/widgets/misc/e-paned.c
index 83f9614e74..2b4701b9ff 100644
--- a/widgets/misc/e-paned.c
+++ b/widgets/misc/e-paned.c
@@ -93,7 +93,7 @@ paned_notify_orientation_cb (EPaned *paned)
static void
paned_notify_position_cb (EPaned *paned)
{
- GtkAllocation *allocation;
+ GtkAllocation allocation;
GtkOrientable *orientable;
GtkOrientation orientation;
gdouble proportion;
@@ -106,20 +106,20 @@ paned_notify_position_cb (EPaned *paned)
orientable = GTK_ORIENTABLE (paned);
orientation = gtk_orientable_get_orientation (orientable);
- allocation = &GTK_WIDGET (paned)->allocation;
+ gtk_widget_get_allocation (GTK_WIDGET (paned), &allocation);
position = gtk_paned_get_position (GTK_PANED (paned));
g_object_freeze_notify (G_OBJECT (paned));
if (orientation == GTK_ORIENTATION_HORIZONTAL) {
- position = MAX (0, allocation->width - position);
- proportion = (gdouble) position / allocation->width;
+ position = MAX (0, allocation.width - position);
+ proportion = (gdouble) position / allocation.width;
paned->priv->hposition = position;
g_object_notify (G_OBJECT (paned), "hposition");
} else {
- position = MAX (0, allocation->height - position);
- proportion = (gdouble) position / allocation->height;
+ position = MAX (0, allocation.height - position);
+ proportion = (gdouble) position / allocation.height;
paned->priv->vposition = position;
g_object_notify (G_OBJECT (paned), "vposition");
diff --git a/widgets/misc/e-send-options.c b/widgets/misc/e-send-options.c
index c134bfba6e..4f2ad8a9a4 100644
--- a/widgets/misc/e-send-options.c
+++ b/widgets/misc/e-send-options.c
@@ -260,7 +260,7 @@ sensitize_widgets (ESendOptionsDialog *sod)
}
static void
-expiration_toggled_cb (GtkWidget *toggle, gpointer data)
+expiration_toggled_cb (GtkToggleButton *toggle, gpointer data)
{
gboolean active;
ESendOptionsDialog *sod;
@@ -269,13 +269,13 @@ expiration_toggled_cb (GtkWidget *toggle, gpointer data)
sod = data;
priv = sod->priv;
- active = GTK_TOGGLE_BUTTON (toggle)->active;
+ active = gtk_toggle_button_get_active (toggle);
gtk_widget_set_sensitive (priv->expire_after, active);
}
static void
-reply_request_toggled_cb (GtkWidget *toggle, gpointer data)
+reply_request_toggled_cb (GtkToggleButton *toggle, gpointer data)
{
gboolean active;
ESendOptionsDialog *sod;
@@ -283,7 +283,7 @@ reply_request_toggled_cb (GtkWidget *toggle, gpointer data)
sod = data;
priv = sod->priv;
- active = GTK_TOGGLE_BUTTON (toggle)->active;
+ active = gtk_toggle_button_get_active (toggle);
gtk_widget_set_sensitive (priv->reply_convenient, active);
gtk_widget_set_sensitive (priv->reply_within, active);
@@ -292,7 +292,7 @@ reply_request_toggled_cb (GtkWidget *toggle, gpointer data)
}
static void
-delay_delivery_toggled_cb (GtkWidget *toggle, gpointer data)
+delay_delivery_toggled_cb (GtkToggleButton *toggle, gpointer data)
{
gboolean active;
ESendOptionsDialog *sod;
@@ -300,13 +300,13 @@ delay_delivery_toggled_cb (GtkWidget *toggle, gpointer data)
sod = data;
priv = sod->priv;
- active = GTK_TOGGLE_BUTTON (toggle)->active;
+ active = gtk_toggle_button_get_active (toggle);
gtk_widget_set_sensitive (priv->delay_until, active);
}
static void
-sent_item_toggled_cb (GtkWidget *toggle, gpointer data)
+sent_item_toggled_cb (GtkToggleButton *toggle, gpointer data)
{
gboolean active;
ESendOptionsDialog *sod;
@@ -314,7 +314,7 @@ sent_item_toggled_cb (GtkWidget *toggle, gpointer data)
sod = data;
priv = sod->priv;
- active = GTK_TOGGLE_BUTTON (toggle)->active;
+ active = gtk_toggle_button_get_active (toggle);
gtk_widget_set_sensitive (priv->delivered, active);
gtk_widget_set_sensitive (priv->delivered_opened, active);
diff --git a/widgets/misc/e-spinner.c b/widgets/misc/e-spinner.c
index 3e7b732def..c95f26b0a7 100644
--- a/widgets/misc/e-spinner.c
+++ b/widgets/misc/e-spinner.c
@@ -640,7 +640,9 @@ e_spinner_expose (GtkWidget *widget,
ESpinner *spinner = E_SPINNER (widget);
ESpinnerDetails *details = spinner->details;
ESpinnerImages *images;
+ GtkAllocation allocation;
GdkPixbuf *pixbuf;
+ GdkWindow *window;
GdkGC *gc;
gint x_offset, y_offset, width, height;
GdkRectangle pix_area, dest;
@@ -675,12 +677,14 @@ e_spinner_expose (GtkWidget *widget,
width = gdk_pixbuf_get_width (pixbuf);
height = gdk_pixbuf_get_height (pixbuf);
+ gtk_widget_get_allocation (widget, &allocation);
+
/* Compute the offsets for the image centered on our allocation */
- x_offset = (widget->allocation.width - width) / 2;
- y_offset = (widget->allocation.height - height) / 2;
+ x_offset = (allocation.width - width) / 2;
+ y_offset = (allocation.height - height) / 2;
- pix_area.x = x_offset + widget->allocation.x;
- pix_area.y = y_offset + widget->allocation.y;
+ pix_area.x = x_offset + allocation.x;
+ pix_area.y = y_offset + allocation.y;
pix_area.width = width;
pix_area.height = height;
@@ -689,10 +693,12 @@ e_spinner_expose (GtkWidget *widget,
return FALSE;
}
- gc = gdk_gc_new (widget->window);
- gdk_draw_pixbuf (widget->window, gc, pixbuf,
- dest.x - x_offset - widget->allocation.x,
- dest.y - y_offset - widget->allocation.y,
+ window = gtk_widget_get_window (widget);
+
+ gc = gdk_gc_new (window);
+ gdk_draw_pixbuf (window, gc, pixbuf,
+ dest.x - x_offset - allocation.x,
+ dest.y - y_offset - allocation.y,
dest.x, dest.y,
dest.width, dest.height,
GDK_RGB_DITHER_MAX, 0, 0);
diff --git a/widgets/misc/ea-calendar-item.c b/widgets/misc/ea-calendar-item.c
index 82c118bf82..17188ed66c 100644
--- a/widgets/misc/ea-calendar-item.c
+++ b/widgets/misc/ea-calendar-item.c
@@ -1166,7 +1166,7 @@ e_calendar_item_get_day_extents (ECalendarItem *calitem,
item = GNOME_CANVAS_ITEM (calitem);
widget = GTK_WIDGET (item->canvas);
- style = widget->style;
+ style = gtk_widget_get_style (widget);
/* Set up Pango prerequisites */
font_desc = calitem->font_desc;
diff --git a/widgets/text/e-text.c b/widgets/text/e-text.c
index fc73af5cae..7e91650231 100644
--- a/widgets/text/e-text.c
+++ b/widgets/text/e-text.c
@@ -418,6 +418,10 @@ reset_layout (EText *text)
create_layout (text);
}
else {
+ GtkStyle *style;
+
+ style = gtk_widget_get_style (GTK_WIDGET (item->canvas));
+
context = pango_layout_get_context (text->layout);
font_options = get_font_options();
@@ -426,14 +430,14 @@ reset_layout (EText *text)
pango_layout_context_changed (text->layout);
text->font_desc = pango_font_description_new ();
- if (!pango_font_description_get_size_is_absolute ((GTK_WIDGET (item->canvas))->style->font_desc))
+ if (!pango_font_description_get_size_is_absolute (style->font_desc))
pango_font_description_set_size (text->font_desc,
- pango_font_description_get_size ((GTK_WIDGET (item->canvas))->style->font_desc));
+ pango_font_description_get_size (style->font_desc));
else
pango_font_description_set_absolute_size (text->font_desc,
- pango_font_description_get_size ((GTK_WIDGET (item->canvas))->style->font_desc));
+ pango_font_description_get_size (style->font_desc));
pango_font_description_set_family (text->font_desc,
- pango_font_description_get_family ((GTK_WIDGET (item->canvas))->style->font_desc));
+ pango_font_description_get_family (style->font_desc));
pango_layout_set_font_description (text->layout, text->font_desc);
pango_layout_set_text (text->layout, text->text, -1);
@@ -1240,6 +1244,7 @@ static void
e_text_realize (GnomeCanvasItem *item)
{
EText *text;
+ GdkWindow *bin_window;
text = E_TEXT (item);
@@ -1248,7 +1253,9 @@ e_text_realize (GnomeCanvasItem *item)
create_layout (text);
- text->gc = gdk_gc_new (item->canvas->layout.bin_window);
+ bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (item->canvas));
+ text->gc = gdk_gc_new (bin_window);
+
/* FIXME: Color brokenness ... */
#if 0
gdk_color_context_query_color (item->canvas->cc, &text->color);
@@ -1380,13 +1387,19 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
GdkGC *main_gc;
GnomeCanvas *canvas;
GtkWidget *widget;
+ GdkWindow *window;
+ GtkStyle *style;
+ GtkStateType state;
text = E_TEXT (item);
canvas = GNOME_CANVAS_ITEM(text)->canvas;
widget = GTK_WIDGET(canvas);
+ state = gtk_widget_get_state (widget);
+ style = gtk_widget_get_style (widget);
+ window = gtk_widget_get_window (widget);
if (text->draw_background || text->draw_button) {
- main_gc = widget->style->fg_gc[GTK_WIDGET_STATE (widget)];
+ main_gc = style->fg_gc[state];
} else {
main_gc = text->gc;
}
@@ -1404,7 +1417,7 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
if (text->draw_borders) {
- gtk_paint_shadow (widget->style, drawable,
+ gtk_paint_shadow (style, drawable,
GTK_STATE_NORMAL, GTK_SHADOW_IN,
NULL, widget, "entry",
thisx, thisy, thiswidth, thisheight);
@@ -1412,47 +1425,56 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
}
if (text->draw_background) {
- gtk_paint_flat_box (widget->style, drawable,
- GTK_WIDGET_STATE(widget), GTK_SHADOW_NONE,
+ gtk_paint_flat_box (style, drawable,
+ state, GTK_SHADOW_NONE,
NULL, widget, "entry_bg",
- thisx + widget->style->xthickness,
- thisy + widget->style->ythickness,
- thiswidth - widget->style->xthickness * 2,
- thisheight - widget->style->ythickness * 2);
+ thisx + style->xthickness,
+ thisy + style->ythickness,
+ thiswidth - style->xthickness * 2,
+ thisheight - style->ythickness * 2);
}
}
if (text->draw_button) {
+ GtkAllocation allocation;
gint xoff = item->x1 - x;
gint yoff = item->y1 - y;
widget = GTK_WIDGET (item->canvas);
+ gtk_widget_get_allocation (widget, &allocation);
- xoff -= widget->allocation.x;
- yoff -= widget->allocation.y;
+ xoff -= allocation.x;
+ yoff -= allocation.y;
- widget = widget->parent;
+ widget = gtk_widget_get_parent (widget);
while (widget && !GTK_IS_BUTTON(widget)) {
if (!GTK_WIDGET_NO_WINDOW (widget)) {
widget = NULL;
break;
}
- widget = widget->parent;
+ widget = gtk_widget_get_parent (widget);
}
if (widget) {
- GtkButton *button = GTK_BUTTON (widget);
GtkShadowType shadow_type;
+ GtkAllocation allocation;
+ GtkReliefStyle relief;
+ guint border_width;
gint thisx, thisy, thisheight, thiswidth;
gint default_spacing;
GdkRectangle area;
+
area.x = 0;
area.y = 0;
area.width = width;
area.height = height;
+ gtk_widget_get_allocation (widget, &allocation);
+ relief = gtk_button_get_relief (GTK_BUTTON (widget));
+ border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
+
#define DEFAULT_SPACING 7
#if 0
- default_spacing = gtk_style_get_prop_experimental (widget->style,
+ default_spacing = gtk_style_get_prop_experimental (style,
"GtkButton::default_spacing",
DEFAULT_SPACING);
#endif
@@ -1460,21 +1482,21 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
thisx = 0;
thisy = 0;
- thiswidth = widget->allocation.width - GTK_CONTAINER (widget)->border_width * 2;
- thisheight = widget->allocation.height - GTK_CONTAINER (widget)->border_width * 2;
+ thiswidth = allocation.width - border_width * 2;
+ thisheight = allocation.height - border_width * 2;
if (gtk_widget_has_default (widget) &&
- GTK_BUTTON (widget)->relief == GTK_RELIEF_NORMAL)
+ relief == GTK_RELIEF_NORMAL)
{
- gtk_paint_box (widget->style, drawable,
+ gtk_paint_box (style, drawable,
GTK_STATE_NORMAL, GTK_SHADOW_IN,
&area, widget, "buttondefault",
thisx + xoff, thisy + yoff, thiswidth, thisheight);
}
if (gtk_widget_get_can_default (widget)) {
- thisx += widget->style->xthickness;
- thisy += widget->style->ythickness;
+ thisx += style->xthickness;
+ thisy += style->ythickness;
thiswidth -= 2 * thisx + default_spacing;
thisheight -= 2 * thisy + default_spacing;
thisx += (1 + default_spacing) / 2;
@@ -1488,18 +1510,18 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
thisheight -= 2;
}
- if (GTK_WIDGET_STATE (widget) == GTK_STATE_ACTIVE)
+ if (state == GTK_STATE_ACTIVE)
shadow_type = GTK_SHADOW_IN;
else
shadow_type = GTK_SHADOW_OUT;
- if ((button->relief != GTK_RELIEF_NONE) ||
- ((GTK_WIDGET_STATE(widget) != GTK_STATE_NORMAL) &&
- (GTK_WIDGET_STATE(widget) != GTK_STATE_INSENSITIVE)))
- gtk_paint_box (widget->style, drawable,
- GTK_WIDGET_STATE (widget),
+ if ((relief != GTK_RELIEF_NONE) ||
+ ((state != GTK_STATE_NORMAL) &&
+ (state != GTK_STATE_INSENSITIVE)))
+ gtk_paint_box (style, drawable, state,
shadow_type, &area, widget, "button",
- thisx + xoff, thisy + yoff, thiswidth, thisheight);
+ thisx + xoff, thisy + yoff,
+ thiswidth, thisheight);
if (GTK_WIDGET_HAS_FOCUS (widget)) {
thisx -= 1;
@@ -1507,9 +1529,10 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
thiswidth += 2;
thisheight += 2;
- gtk_paint_focus (widget->style, widget->window, GTK_WIDGET_STATE (widget),
+ gtk_paint_focus (style, window, state,
&area, widget, "button",
- thisx + xoff, thisy + yoff, thiswidth - 1, thisheight - 1);
+ thisx + xoff, thisy + yoff,
+ thiswidth - 1, thisheight - 1);
}
}
}
@@ -1572,11 +1595,11 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
end_index = g_utf8_offset_to_pointer(text->text, end_index) - text->text;
if (text->has_selection) {
- selection_gc = widget->style->base_gc [GTK_STATE_SELECTED];
- text_gc = widget->style->text_gc[GTK_STATE_SELECTED];
+ selection_gc = style->base_gc [GTK_STATE_SELECTED];
+ text_gc = style->text_gc[GTK_STATE_SELECTED];
} else {
- selection_gc = widget->style->base_gc [GTK_STATE_ACTIVE];
- text_gc = widget->style->text_gc[GTK_STATE_ACTIVE];
+ selection_gc = style->base_gc [GTK_STATE_ACTIVE];
+ text_gc = style->text_gc[GTK_STATE_ACTIVE];
}
gdk_gc_set_clip_rectangle (selection_gc, clip_rect);
@@ -1952,6 +1975,7 @@ _do_tooltip (gpointer data)
ArtPoint origin = {0, 0};
ArtPoint pixel_origin;
gint canvas_x, canvas_y;
+ GnomeCanvas *text_canvas;
GnomeCanvasItem *tooltip_text;
double tooltip_width;
double tooltip_height;
@@ -1961,11 +1985,15 @@ _do_tooltip (gpointer data)
double x1, x2, y1, y2;
#endif
GnomeCanvasItem *rect;
+ GtkAdjustment *adjustment;
GtkWidget *tooltip_window; /* GtkWindow for displaying the tooltip */
+ GdkWindow *window;
text->tooltip_count = 0;
- if (E_CANVAS(GNOME_CANVAS_ITEM(text)->canvas)->tooltip_window || text->editing || !text->num_lines) {
+ text_canvas = GNOME_CANVAS_ITEM (text)->canvas;
+
+ if (E_CANVAS(text_canvas)->tooltip_window || text->editing || !text->num_lines) {
text->tooltip_timeout = 0;
return FALSE;
}
@@ -1990,11 +2018,14 @@ _do_tooltip (gpointer data)
gnome_canvas_item_i2c_affine(GNOME_CANVAS_ITEM(text), i2c);
art_affine_point (&pixel_origin, &origin, i2c);
- gdk_window_get_origin (GTK_WIDGET(GNOME_CANVAS_ITEM(text)->canvas)->window, &canvas_x, &canvas_y);
+ window = gtk_widget_get_window (GTK_WIDGET (text_canvas));
+ gdk_window_get_origin (window, &canvas_x, &canvas_y);
pixel_origin.x += canvas_x;
pixel_origin.y += canvas_y;
- pixel_origin.x -= (gint) gtk_layout_get_hadjustment(GTK_LAYOUT(GNOME_CANVAS_ITEM(text)->canvas))->value;
- pixel_origin.y -= (gint) gtk_layout_get_vadjustment(GTK_LAYOUT(GNOME_CANVAS_ITEM(text)->canvas))->value;
+ adjustment = gtk_layout_get_hadjustment (GTK_LAYOUT (text_canvas));
+ pixel_origin.x -= (gint) gtk_adjustment_get_value (adjustment);
+ adjustment = gtk_layout_get_vadjustment (GTK_LAYOUT (text_canvas));
+ pixel_origin.y -= (gint) gtk_adjustment_get_value (adjustment);
tooltip_window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_container_set_border_width (GTK_CONTAINER (tooltip_window), 1);
@@ -2118,13 +2149,17 @@ _do_tooltip (gpointer data)
tooltip_destroy, text);
g_object_ref (text);
- e_canvas_popup_tooltip (E_CANVAS(GNOME_CANVAS_ITEM(text)->canvas),
- tooltip_window,
- pixel_origin.x - 2 + tooltip_x,
- pixel_origin.y - 2 + tooltip_y);
- gdk_keyboard_grab (tooltip_window->window, FALSE, GDK_CURRENT_TIME);
+ e_canvas_popup_tooltip (
+ E_CANVAS (text_canvas), tooltip_window,
+ pixel_origin.x - 2 + tooltip_x,
+ pixel_origin.y - 2 + tooltip_y);
- g_signal_connect (tooltip_window, "key-press-event", G_CALLBACK (tooltip_ungrab), text);
+ window = gtk_widget_get_window (tooltip_window);
+ gdk_keyboard_grab (window, FALSE, GDK_CURRENT_TIME);
+
+ g_signal_connect (
+ tooltip_window, "key-press-event",
+ G_CALLBACK (tooltip_ungrab), text);
text->tooltip_owner = TRUE;
@@ -2144,8 +2179,13 @@ start_editing (EText *text)
text->editing = TRUE;
if (text->pointer_in) {
+ GdkWindow *window;
+
+ window = gtk_widget_get_window (
+ GTK_WIDGET (GNOME_CANVAS_ITEM (text)->canvas));
+
if (text->default_cursor_shown && (!text->draw_borders)) {
- gdk_window_set_cursor (GTK_WIDGET (GNOME_CANVAS_ITEM (text)->canvas)->window, text->i_cursor);
+ gdk_window_set_cursor (window, text->i_cursor);
text->default_cursor_shown = FALSE;
}
}
@@ -2170,7 +2210,11 @@ e_text_stop_editing (EText *text)
text->editing = FALSE;
if ( (!text->default_cursor_shown) && (!text->draw_borders) ) {
- gdk_window_set_cursor (GTK_WIDGET (GNOME_CANVAS_ITEM (text)->canvas)->window, text->default_cursor);
+ GdkWindow *window;
+
+ window = gtk_widget_get_window (
+ GTK_WIDGET (GNOME_CANVAS_ITEM (text)->canvas));
+ gdk_window_set_cursor (window, text->default_cursor);
text->default_cursor_shown = TRUE;
}
if (text->timer) {
@@ -2200,6 +2244,7 @@ e_text_event (GnomeCanvasItem *item, GdkEvent *event)
{
EText *text = E_TEXT(item);
ETextEventProcessorEvent e_tep_event;
+ GdkWindow *window;
static EText *save_text = NULL;
@@ -2208,6 +2253,8 @@ e_text_event (GnomeCanvasItem *item, GdkEvent *event)
if (!text->model)
return 0;
+ window = gtk_widget_get_window (GTK_WIDGET (item->canvas));
+
e_tep_event.type = event->type;
switch (event->type) {
case GDK_FOCUS_CHANGE:
@@ -2463,7 +2510,7 @@ e_text_event (GnomeCanvasItem *item, GdkEvent *event)
text->pointer_in = TRUE;
if (text->editing || text->draw_borders) {
if ( text->default_cursor_shown ) {
- gdk_window_set_cursor(GTK_WIDGET(item->canvas)->window, text->i_cursor);
+ gdk_window_set_cursor(window, text->i_cursor);
text->default_cursor_shown = FALSE;
}
}
@@ -2481,7 +2528,7 @@ e_text_event (GnomeCanvasItem *item, GdkEvent *event)
text->pointer_in = FALSE;
if (text->editing || text->draw_borders) {
if ( ! text->default_cursor_shown ) {
- gdk_window_set_cursor(GTK_WIDGET(item->canvas)->window, text->default_cursor);
+ gdk_window_set_cursor(window, text->default_cursor);
text->default_cursor_shown = TRUE;
}
}
@@ -2666,7 +2713,10 @@ popup_menu_placement_cb (GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpo
GnomeCanvas *parent = item->canvas;
if (parent) {
- gdk_window_get_origin (((GtkWidget*) parent)->window, x, y);
+ GdkWindow *window;
+
+ window = gtk_widget_get_window (GTK_WIDGET (parent));
+ gdk_window_get_origin (window, x, y);
*x += item->x1 + text->width / 2;
*y += item->y1 + text->height / 2;
}