[tracker/gtk3: 2/2] tracker-search-bar: Port to GTK+ 3
- From: Jürg Billeter <juergbi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/gtk3: 2/2] tracker-search-bar: Port to GTK+ 3
- Date: Fri, 11 Feb 2011 11:02:47 +0000 (UTC)
commit 72ec3a4d503ede1cf3d1477d16195f1bda6230a2
Author: Jürg Billeter <j bitron ch>
Date: Wed Feb 9 12:02:26 2011 +0100
tracker-search-bar: Port to GTK+ 3
configure.ac | 4 +-
src/tracker-search-bar/Makefile.am | 2 +-
src/tracker-search-bar/tracker-aligned-window.c | 18 ++---
src/tracker-search-bar/tracker-applet.c | 13 ++-
src/tracker-search-bar/tracker-results-window.c | 107 +++++++++++++++--------
5 files changed, 88 insertions(+), 56 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 54e75d8..79a7cc1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -417,11 +417,11 @@ TRACKER_SEARCH_BAR_REQUIRED="glib-2.0 >= $GLIB_REQUIRED
gio-unix-2.0 >= $GLIB_REQUIRED
gthread-2.0 >= $GLIB_REQUIRED
gmodule-2.0 >= $GLIB_REQUIRED
- gtk+-2.0 >= $GTK_REQUIRED
+ gtk+-3.0 >= $GTK_REQUIRED
gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED
pango >= $PANGO_REQUIRED
gee-1.0 >= $GEE_REQUIRED
- libpanelapplet-3.0"
+ libpanelapplet-4.0"
PKG_CHECK_MODULES(TRACKER_SEARCH_BAR, [$TRACKER_SEARCH_BAR_REQUIRED],
[have_tracker_search_bar=yes],
diff --git a/src/tracker-search-bar/Makefile.am b/src/tracker-search-bar/Makefile.am
index 1f6180b..b5772dc 100644
--- a/src/tracker-search-bar/Makefile.am
+++ b/src/tracker-search-bar/Makefile.am
@@ -29,7 +29,7 @@ tracker_search_bar_LDADD = \
$(TRACKER_SEARCH_BAR_LIBS)
# Panel applet
-appletdir = $(datadir)/gnome-panel/applets
+appletdir = $(datadir)/gnome-panel/4.0/applets
applet_in_files = org.gnome.panel.SearchBar.panel-applet.in
applet_DATA = $(applet_in_files:.panel-applet.in=.panel-applet)
diff --git a/src/tracker-search-bar/tracker-aligned-window.c b/src/tracker-search-bar/tracker-aligned-window.c
index bcc7852..a83fc95 100644
--- a/src/tracker-search-bar/tracker-aligned-window.c
+++ b/src/tracker-search-bar/tracker-aligned-window.c
@@ -91,8 +91,6 @@ tracker_aligned_window_init (TrackerAlignedWindow *aligned_window)
priv->motion_id = 0;
/* set window properties */
- window->type = GTK_WINDOW_TOPLEVEL;
-
gtk_window_set_decorated (window, FALSE);
gtk_window_set_type_hint (window, GDK_WINDOW_TYPE_HINT_DOCK);
}
@@ -155,12 +153,11 @@ tracker_aligned_window_position (TrackerAlignedWindow *window)
gdk_flush ();
- gdk_window_get_geometry (GTK_WIDGET (window)->window,
+ gdk_window_get_geometry (gtk_widget_get_window (GTK_WIDGET (window)),
NULL,
NULL,
&our_width,
- &our_height,
- NULL);
+ &our_height);
/* stick, skip taskbar and pager */
gtk_window_stick (GTK_WINDOW (window));
@@ -171,15 +168,14 @@ tracker_aligned_window_position (TrackerAlignedWindow *window)
gtk_widget_realize (align_widget);
/* get the positional and dimensional attributes of the align widget */
- gdk_window_get_origin (align_widget->window,
+ gdk_window_get_origin (gtk_widget_get_window (align_widget),
&entry_x,
&entry_y);
- gdk_window_get_geometry (align_widget->window,
+ gdk_window_get_geometry (gtk_widget_get_window (align_widget),
NULL,
NULL,
&entry_width,
- &entry_height,
- NULL);
+ &entry_height);
if (entry_x + our_width < gdk_screen_width ()) {
x = entry_x + 1;
@@ -235,14 +231,14 @@ tracker_aligned_window_motion_notify_cb (GtkWidget *widget,
GtkAllocation alloc;
GdkRectangle rect;
- alloc = GTK_WIDGET (aligned_window)->allocation;
+ gtk_widget_get_allocation (GTK_WIDGET (aligned_window), &alloc);
rect.x = 0;
rect.y = 0;
rect.width = alloc.width;
rect.height = alloc.height;
- gdk_window_invalidate_rect (GTK_WIDGET (aligned_window)->window,
+ gdk_window_invalidate_rect (gtk_widget_get_window (GTK_WIDGET (aligned_window)),
&rect,
FALSE);
diff --git a/src/tracker-search-bar/tracker-applet.c b/src/tracker-search-bar/tracker-applet.c
index 831618f..1211f20 100644
--- a/src/tracker-search-bar/tracker-applet.c
+++ b/src/tracker-search-bar/tracker-applet.c
@@ -98,7 +98,7 @@ applet_entry_start_search (TrackerApplet *applet)
g_object_set (applet->results, "query", text, NULL);
}
- if (!GTK_WIDGET_VISIBLE (applet->results)) {
+ if (!gtk_widget_get_visible (applet->results)) {
tracker_results_window_popup (TRACKER_RESULTS_WINDOW (applet->results));
}
}
@@ -158,14 +158,14 @@ applet_entry_key_press_event_cb (GtkWidget *widget,
GdkEventKey *event,
TrackerApplet *applet)
{
- if (event->keyval == GDK_Escape) {
+ if (event->keyval == GDK_KEY_Escape) {
if (!applet->results) {
return FALSE;
}
gtk_widget_destroy (applet->results);
applet->results = NULL;
- } else if (event->keyval == GDK_Down) {
+ } else if (event->keyval == GDK_KEY_Down) {
if (!applet->results) {
return FALSE;
}
@@ -252,22 +252,25 @@ applet_change_orient_cb (GtkWidget *widget,
gpointer user_data)
{
TrackerApplet *applet;
+ GtkAllocation alloc;
guint new_size;
applet = user_data;
new_size = applet->size;
+ gtk_widget_get_allocation (GTK_WIDGET (applet->parent), &alloc);
+
switch (orient) {
case PANEL_APPLET_ORIENT_LEFT:
case PANEL_APPLET_ORIENT_RIGHT:
applet->orient = GTK_ORIENTATION_VERTICAL;
- new_size = GTK_WIDGET (applet->parent)->allocation.width;
+ new_size = alloc.width;
break;
case PANEL_APPLET_ORIENT_UP:
case PANEL_APPLET_ORIENT_DOWN:
applet->orient = GTK_ORIENTATION_HORIZONTAL;
- new_size = GTK_WIDGET (applet->parent)->allocation.height;
+ new_size = alloc.height;
break;
}
diff --git a/src/tracker-search-bar/tracker-results-window.c b/src/tracker-search-bar/tracker-results-window.c
index 22a9822..111b240 100644
--- a/src/tracker-search-bar/tracker-results-window.c
+++ b/src/tracker-search-bar/tracker-results-window.c
@@ -227,30 +227,34 @@ struct FindCategory {
gboolean found;
};
-static void results_window_constructed (GObject *object);
-static void results_window_finalize (GObject *object);
-static void results_window_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void results_window_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-static gboolean results_window_key_press_event (GtkWidget *widget,
- GdkEventKey *event);
-static gboolean results_window_button_press_event (GtkWidget *widget,
- GdkEventButton *event);
-static void results_window_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void results_window_screen_changed (GtkWidget *widget,
- GdkScreen *prev_screen);
-static void model_set_up (TrackerResultsWindow *window);
-static void search_get (TrackerResultsWindow *window,
- TrackerCategory category);
-static void search_start (TrackerResultsWindow *window);
-static void search_query_free (SearchQuery *sq);
-static gchar * category_to_string (TrackerCategory category);
+static void results_window_constructed (GObject *object);
+static void results_window_finalize (GObject *object);
+static void results_window_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void results_window_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
+static gboolean results_window_key_press_event (GtkWidget *widget,
+ GdkEventKey *event);
+static gboolean results_window_button_press_event (GtkWidget *widget,
+ GdkEventButton *event);
+static void results_window_get_preferred_width (GtkWidget *widget,
+ gint *minimal_width,
+ gint *natural_width);
+static void results_window_get_preferred_height (GtkWidget *widget,
+ gint *minimal_height,
+ gint *natural_height);
+static void results_window_screen_changed (GtkWidget *widget,
+ GdkScreen *prev_screen);
+static void model_set_up (TrackerResultsWindow *window);
+static void search_get (TrackerResultsWindow *window,
+ TrackerCategory category);
+static void search_start (TrackerResultsWindow *window);
+static void search_query_free (SearchQuery *sq);
+static gchar * category_to_string (TrackerCategory category);
enum {
COL_CATEGORY_ID,
@@ -284,7 +288,8 @@ tracker_results_window_class_init (TrackerResultsWindowClass *klass)
widget_class->key_press_event = results_window_key_press_event;
widget_class->button_press_event = results_window_button_press_event;
- widget_class->size_request = results_window_size_request;
+ widget_class->get_preferred_width = results_window_get_preferred_width;
+ widget_class->get_preferred_height = results_window_get_preferred_height;
widget_class->screen_changed = results_window_screen_changed;
g_object_class_install_property (object_class,
@@ -515,7 +520,7 @@ results_window_key_press_event (GtkWidget *widget,
{
TrackerResultsWindowPrivate *priv;
- if (event->keyval == GDK_Escape) {
+ if (event->keyval == GDK_KEY_Escape) {
gtk_widget_hide (widget);
return TRUE;
@@ -523,9 +528,9 @@ results_window_key_press_event (GtkWidget *widget,
priv = TRACKER_RESULTS_WINDOW_GET_PRIVATE (widget);
- if (event->keyval != GDK_Return &&
+ if (event->keyval != GDK_KEY_Return &&
(*event->string != '\0' ||
- event->keyval == GDK_BackSpace)) {
+ event->keyval == GDK_KEY_BackSpace)) {
GtkWidget *entry;
entry = tracker_aligned_window_get_widget (TRACKER_ALIGNED_WINDOW (widget));
@@ -544,8 +549,12 @@ static gboolean
results_window_button_press_event (GtkWidget *widget,
GdkEventButton *event)
{
- if (event->x < 0 || event->x > widget->allocation.width ||
- event->y < 0 || event->y > widget->allocation.height) {
+ GtkAllocation alloc;
+
+ gtk_widget_get_allocation (widget, &alloc);
+
+ if (event->x < 0 || event->x > alloc.width ||
+ event->y < 0 || event->y > alloc.height) {
/* Click happened outside window, pop it down */
gtk_widget_hide (widget);
return TRUE;
@@ -566,20 +575,20 @@ results_window_size_request (GtkWidget *widget,
GtkRequisition child_req;
guint border_width;
- gtk_widget_size_request (GTK_BIN (widget)->child, &child_req);
+ gtk_widget_size_request (gtk_bin_get_child (GTK_BIN (widget)), &child_req);
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
requisition->width = child_req.width + (2 * border_width);
requisition->height = child_req.height + (2 * border_width);
- if (GTK_WIDGET_REALIZED (widget)) {
+ if (gtk_widget_get_realized (widget)) {
GdkScreen *screen;
GdkRectangle monitor_geom;
guint monitor_num;
/* make it no larger than half the monitor size */
screen = gtk_widget_get_screen (widget);
- monitor_num = gdk_screen_get_monitor_at_window (screen, widget->window);
+ monitor_num = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor_geom);
@@ -589,6 +598,30 @@ results_window_size_request (GtkWidget *widget,
}
static void
+results_window_get_preferred_width (GtkWidget *widget,
+ gint *minimal_width,
+ gint *natural_width)
+{
+ GtkRequisition requisition;
+
+ results_window_size_request (widget, &requisition);
+
+ *minimal_width = *natural_width = requisition.width;
+}
+
+static void
+results_window_get_preferred_height (GtkWidget *widget,
+ gint *minimal_height,
+ gint *natural_height)
+{
+ GtkRequisition requisition;
+
+ results_window_size_request (widget, &requisition);
+
+ *minimal_height = *natural_height = requisition.height;
+}
+
+static void
results_window_screen_changed (GtkWidget *widget,
GdkScreen *prev_screen)
{
@@ -1439,14 +1472,14 @@ grab_popup_window (TrackerResultsWindow *window)
priv = TRACKER_RESULTS_WINDOW_GET_PRIVATE (window);
/* Grab pointer */
- status = gdk_pointer_grab (widget->window,
+ status = gdk_pointer_grab (gtk_widget_get_window (widget),
TRUE,
GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK,
NULL, NULL,
time);
if (status == GDK_GRAB_SUCCESS) {
- status = gdk_keyboard_grab (widget->window, TRUE, time);
+ status = gdk_keyboard_grab (gtk_widget_get_window (widget), TRUE, time);
}
if (status == GDK_GRAB_SUCCESS) {
@@ -1486,10 +1519,10 @@ tracker_results_window_popup (TrackerResultsWindow *window)
/* Force scroll to top-left */
vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->scrolled_window));
- gtk_adjustment_set_value (vadj, vadj->lower);
+ gtk_adjustment_set_value (vadj, gtk_adjustment_get_lower (vadj));
hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (priv->scrolled_window));
- gtk_adjustment_set_value (hadj, hadj->lower);
+ gtk_adjustment_set_value (hadj, gtk_adjustment_get_lower (hadj));
g_idle_add ((GSourceFunc) grab_popup_window, window);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]