[geany/geany-plugins] 3f3cfd: Added GTK+3 compatibility to the 'Debugger' plugin.

Benjamin Gaillard git-noreply at xxxxx
Fri May 10 08:33:39 UTC 2019


Branch:      refs/heads/master
Author:      Benjamin Gaillard <git at benjamin.gaillard.name>
Committer:   Benjamin Gaillard <git at benjamin.gaillard.name>
Date:        Mon, 18 Feb 2019 09:18:46 UTC
Commit:      3f3cfd9d148259c4fd6f18d9c077fe995cbb1f6b
             https://github.com/geany/geany-plugins/commit/3f3cfd9d148259c4fd6f18d9c077fe995cbb1f6b

Log Message:
-----------
Added GTK+3 compatibility to the 'Debugger' plugin.


Modified Paths:
--------------
    build/debugger.m4
    debugger/src/Makefile.am
    debugger/src/btnpanel.c
    debugger/src/cell_renderers/cellrendererbreakicon.c
    debugger/src/cell_renderers/cellrendererbreakicon.h
    debugger/src/cell_renderers/cellrendererframeicon.c
    debugger/src/cell_renderers/cellrendererframeicon.h
    debugger/src/cell_renderers/cellrenderertoggle.c
    debugger/src/cell_renderers/cellrenderertoggle.h
    debugger/src/dconfig.c
    debugger/src/debug.c
    debugger/src/dpaned.c
    debugger/src/gui.c
    debugger/src/plugin.c
    debugger/src/stree.c
    debugger/src/tpage.c

Modified: build/debugger.m4
9 lines changed, 7 insertions(+), 2 deletions(-)
===================================================================
@@ -1,10 +1,15 @@
 AC_DEFUN([GP_CHECK_DEBUGGER],
 [
     GP_ARG_DISABLE([Debugger], [auto])
-    GP_CHECK_PLUGIN_GTK2_ONLY([Debugger])
+
+    GP_CHECK_UTILSLIB([Debugger])
+    GP_CHECK_UTILSLIB_VTECOMPAT([Debugger])
+    GP_CHECK_GTK3([vte_package=vte-2.91 vte_version=0.46],
+                  [vte_package=vte vte_version=0.24])
     GP_CHECK_PLUGIN_DEPS([debugger], [VTE],
-                         [vte >= 0.24])
+                         [${vte_package} >= ${vte_version}])
     AC_CHECK_HEADERS([util.h pty.h libutil.h])
+
     GP_COMMIT_PLUGIN_STATUS([Debugger])
     AC_CONFIG_FILES([
         debugger/Makefile


Modified: debugger/src/Makefile.am
4 lines changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -71,9 +71,9 @@ debugger_la_SOURCES = \
 	cell_renderers/cellrenderertoggle.c \
 	cell_renderers/cellrenderertoggle.h
 
-debugger_la_LIBADD = $(COMMONLIBS) $(VTE_LIBS) -lutil
+debugger_la_LIBADD = $(COMMONLIBS) $(VTE_LIBS) -lutil $(top_builddir)/utils/src/libgeanypluginutils.la
 debugger_la_CFLAGS = $(AM_CFLAGS) $(VTE_CFLAGS) -DDBGPLUG_DATA_DIR=\"$(plugindatadir)\" -DPLUGIN_NAME=\"$(plugin)\"
-debugger_la_CPPFLAGS = $(AM_CPPFLAGS) -DG_LOG_DOMAIN=\"Debugger\"
+debugger_la_CPPFLAGS = $(AM_CPPFLAGS) -DG_LOG_DOMAIN=\"Debugger\" -I$(top_srcdir)/utils/src
 
 check_PROGRAMS = gdb_mi_test
 dist_check_SCRIPTS = tests/gdb_mi_test.sh


Modified: debugger/src/btnpanel.c
25 lines changed, 24 insertions(+), 1 deletions(-)
===================================================================
@@ -82,17 +82,26 @@ static void on_execute_until(GtkButton *button, gpointer user_data)
  */
 GtkWidget* btnpanel_create(on_toggle cb)
 {
+#if GTK_CHECK_VERSION(3, 0, 0)
+	GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, CP_BUTTONS_PAD);
+	GtkWidget *hbutton_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, CP_BUTTONS_PAD);
+#else
 	GtkWidget *vbox = gtk_vbox_new(FALSE, CP_BUTTONS_PAD);
-
 	GtkWidget *hbutton_box = gtk_hbox_new(FALSE, CP_BUTTONS_PAD);
+#endif
 
 	runbtn = create_button("run.gif", _("Run"));
 	g_signal_connect(G_OBJECT(runbtn), "clicked", G_CALLBACK (debug_run), (gpointer)TRUE);
 
 	gtk_box_pack_start(GTK_BOX(hbutton_box), runbtn, TRUE, TRUE, 0);
 	gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
 	
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbutton_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, CP_BUTTONS_PAD);
+	gtk_box_set_homogeneous(GTK_BOX(hbutton_box), TRUE);
+#else
 	hbutton_box = gtk_hbox_new(TRUE, CP_BUTTONS_PAD);
+#endif
 
 	restartbtn = create_button("restart.gif", _("Restart"));
 	g_signal_connect(G_OBJECT(restartbtn), "clicked", G_CALLBACK (debug_restart), (gpointer)TRUE);
@@ -104,7 +113,12 @@ GtkWidget* btnpanel_create(on_toggle cb)
 	gtk_box_pack_start(GTK_BOX(hbutton_box), stopbtn, FALSE, TRUE, 0);
 	gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbutton_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, CP_BUTTONS_PAD);
+	gtk_box_set_homogeneous(GTK_BOX(hbutton_box), TRUE);
+#else
 	hbutton_box = gtk_hbox_new(TRUE, CP_BUTTONS_PAD);
+#endif
 
 	stepoverbtn = create_button("step_over.gif", _("Step over"));
 	g_signal_connect(G_OBJECT(stepoverbtn), "clicked", G_CALLBACK (debug_step_over), (gpointer)TRUE);
@@ -116,7 +130,12 @@ GtkWidget* btnpanel_create(on_toggle cb)
 	gtk_box_pack_start(GTK_BOX(hbutton_box), stepinbtn, FALSE, TRUE, 0);
 	gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbutton_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, CP_BUTTONS_PAD);
+	gtk_box_set_homogeneous(GTK_BOX(hbutton_box), TRUE);
+#else
 	hbutton_box = gtk_hbox_new(TRUE, CP_BUTTONS_PAD);
+#endif
 
 	stepoutbtn = create_button("step_out.gif", _("Step out"));
 	g_signal_connect(G_OBJECT(stepoutbtn), "clicked", G_CALLBACK (debug_step_out), (gpointer)TRUE);
@@ -128,7 +147,11 @@ GtkWidget* btnpanel_create(on_toggle cb)
 	gtk_box_pack_start(GTK_BOX(hbutton_box), runcursorbtn, FALSE, TRUE, 0);
 	gtk_box_pack_start(GTK_BOX(vbox), hbutton_box, FALSE, TRUE, 0);
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+	optbtn = create_stock_button("preferences-system", _("Settings"));
+#else
 	optbtn = create_stock_button(GTK_STOCK_PREFERENCES, _("Settings"));
+#endif
 	g_signal_connect(G_OBJECT(optbtn), "clicked", G_CALLBACK (on_settings), NULL);
 	gtk_box_pack_end(GTK_BOX(vbox), optbtn, FALSE, FALSE, 0);
 


Modified: debugger/src/cell_renderers/cellrendererbreakicon.c
84 lines changed, 73 insertions(+), 11 deletions(-)
===================================================================
@@ -40,6 +40,27 @@ enum {
   PROP_HITSCOUNT
 };
 
+struct _CellRendererBreakIcon
+{
+  GtkCellRenderer parent;
+
+  guint enabled;
+  const gchar* condition;
+  guint hitscount;
+
+  GdkPixbuf *pixbuf_enabled;
+  GdkPixbuf *pixbuf_disabled;
+  GdkPixbuf *pixbuf_conditional;
+  GdkPixbuf *pixbuf_file;
+};
+
+struct _CellRendererBreakIconClass
+{
+  GtkCellRendererClass parent_class;
+
+  void (*clicked)(CellRendererBreakIcon *cell_renderer_toggle, const gchar *path);
+};
+
 static gpointer parent_class;
 static guint clicked_signal;
 
@@ -136,14 +157,23 @@ static void cell_renderer_break_icon_set_property (GObject *object, guint param_
 /*
  * get size of a cell
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static void cell_renderer_break_icon_get_size(GtkCellRenderer *cell, GtkWidget *widget, const GdkRectangle *cell_area, 
+	gint *x_offset, gint *y_offset, gint *width, gint *height)
+#else
 static void cell_renderer_break_icon_get_size(GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, 
 	gint *x_offset, gint *y_offset, gint *width, gint *height)
+#endif
 {
 	CellRendererBreakIcon *cellbreakpoint = (CellRendererBreakIcon *) cell;
 	gint pixbuf_width  = 0;
 	gint pixbuf_height = 0;
 	gint calc_width;
 	gint calc_height;
+	gint xpad;
+	gint ypad;
+	gfloat xalign;
+	gfloat yalign;
 	
 	if (cellbreakpoint->pixbuf_enabled)
 	{
@@ -166,21 +196,24 @@ static void cell_renderer_break_icon_get_size(GtkCellRenderer *cell, GtkWidget *
 		pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellbreakpoint->pixbuf_file));
 	}
 	
-	calc_width  = (gint) cell->xpad * 2 + pixbuf_width;
-	calc_height = (gint) cell->ypad * 2 + pixbuf_height;
+	gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
+	calc_width  = xpad * 2 + pixbuf_width;
+	calc_height = ypad * 2 + pixbuf_height;
+
+	gtk_cell_renderer_get_alignment(cell, &xalign, &yalign);
 	
 	if (cell_area && pixbuf_width > 0 && pixbuf_height > 0)
 	{
 		if (x_offset)
 		{
 			*x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
-				(1.0 - cell->xalign) : cell->xalign) * 
+				(1.0 - xalign) : xalign) * 
 				(cell_area->width - calc_width));
 			*x_offset = MAX (*x_offset, 0);
 		}
 		if (y_offset)
 		{
-			*y_offset = (cell->yalign * (cell_area->height - calc_height));
+			*y_offset = (yalign * (cell_area->height - calc_height));
 			*y_offset = MAX (*y_offset, 0);
 		}
 	}
@@ -200,33 +233,53 @@ static void cell_renderer_break_icon_get_size(GtkCellRenderer *cell, GtkWidget *
 /*
  * render a cell
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static void cell_renderer_break_icon_render(GtkCellRenderer *cell, cairo_t *cr, GtkWidget *widget,
+	const GdkRectangle *background_area, const GdkRectangle *cell_area, GtkCellRendererState flags)
+#else
 static void cell_renderer_break_icon_render(GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget,
 	GdkRectangle *background_area, GdkRectangle *cell_area, GdkRectangle *expose_area, GtkCellRendererState flags)
+#endif
 {
 	CellRendererBreakIcon *cellbreakpoint = (CellRendererBreakIcon*) cell;
 	
 	GdkPixbuf *pixbuf = NULL;
 	
 	GdkRectangle pix_rect;
 	GdkRectangle draw_rect;
+
+	gint xpad;
+	gint ypad;
+
+	gboolean is_expander;
+
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cairo_t *cr;
+#endif
 	
 	cell_renderer_break_icon_get_size (cell, widget, cell_area,
 		&pix_rect.x,
 		&pix_rect.y,
 		&pix_rect.width,
 		&pix_rect.height);
 	
-	pix_rect.x += cell_area->x + cell->xpad;
-	pix_rect.y += cell_area->y + cell->ypad;
-	pix_rect.width  -= cell->xpad * 2;
-	pix_rect.height -= cell->ypad * 2;
-	
+	gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
+	pix_rect.x += cell_area->x + xpad;
+	pix_rect.y += cell_area->y + ypad;
+	pix_rect.width  -= xpad * 2;
+	pix_rect.height -= ypad * 2;
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+	if (!gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect))
+#else
 	if (!gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) ||
 		!gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect))
+#endif
 		return;
+
+	g_object_get(cell, "is-expander", &is_expander, NULL);
 	
-	if (cell->is_expander)
+	if (is_expander)
 	{
 		pixbuf = cellbreakpoint->pixbuf_file;
 	}
@@ -246,20 +299,29 @@ static void cell_renderer_break_icon_render(GtkCellRenderer *cell, GdkDrawable *
 	if (!pixbuf)
 		return;
 	
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cr = gdk_cairo_create (window);
+#endif
 	
 	gdk_cairo_set_source_pixbuf (cr, pixbuf, pix_rect.x, pix_rect.y);
 	gdk_cairo_rectangle (cr, &draw_rect);
 	cairo_fill (cr);
 	
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cairo_destroy (cr);
+#endif
 }
 
 /*
  * activate callback
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gint cell_renderer_break_icon_activate(GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path,
+	const GdkRectangle *background_area, const GdkRectangle *cell_area, GtkCellRendererState flags)
+#else
 static gint cell_renderer_break_icon_activate(GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path,
 	GdkRectangle *background_area, GdkRectangle *cell_area, GtkCellRendererState  flags)
+#endif
 {
 	if (!event ||
 		(
@@ -284,7 +346,7 @@ static void cell_renderer_break_icon_init (CellRendererBreakIcon *cell)
 	cell->condition = NULL;
 	cell->hitscount = 0;
 	
-	cell_renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
+	g_object_set(cell_renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
 
 	cell->pixbuf_enabled = cell->pixbuf_disabled = cell->pixbuf_conditional = cell->pixbuf_file = 0;
 }


Modified: debugger/src/cell_renderers/cellrendererbreakicon.h
21 lines changed, 0 insertions(+), 21 deletions(-)
===================================================================
@@ -36,27 +36,6 @@ G_BEGIN_DECLS
 typedef struct _CellRendererBreakIcon CellRendererBreakIcon;
 typedef struct _CellRendererBreakIconClass CellRendererBreakIconClass;
 
-struct _CellRendererBreakIcon
-{
-  GtkCellRenderer parent;
-
-  guint GSEAL (enabled);
-  const gchar* GSEAL(condition);
-  guint GSEAL (hitscount);
-
-  GdkPixbuf *GSEAL (pixbuf_enabled);
-  GdkPixbuf *GSEAL (pixbuf_disabled);
-  GdkPixbuf *GSEAL (pixbuf_conditional);
-  GdkPixbuf *GSEAL (pixbuf_file);
-};
-
-struct _CellRendererBreakIconClass
-{
-  GtkCellRendererClass parent_class;
-
-  void (*clicked)(CellRendererBreakIcon *cell_renderer_toggle, const gchar *path);
-};
-
 GType					cell_renderer_break_icon_get_type(void);
 GtkCellRenderer*		cell_renderer_break_icon_new (void);
 


Modified: debugger/src/cell_renderers/cellrendererframeicon.c
74 lines changed, 64 insertions(+), 10 deletions(-)
===================================================================
@@ -36,14 +36,36 @@ enum {
   PROP_ACTIVE_FRAME,
 };
 
+struct _CellRendererFrameIcon
+{
+  GtkCellRenderer parent;
+
+  guint active_frame;
+
+  GdkPixbuf *pixbuf_active;
+  GdkPixbuf *pixbuf_highlighted;
+};
+
+struct _CellRendererFrameIconClass
+{
+  GtkCellRendererClass parent_class;
+
+  void (*clicked)(CellRendererFrameIcon *cell_renderer_toggle, const gchar *path);
+};
+
 static gpointer parent_class;
 static guint clicked_signal;
 
 /*
  * activate callback
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gint cell_renderer_frame_icon_activate(GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path,
+	const GdkRectangle *background_area, const GdkRectangle *cell_area, GtkCellRendererState  flags)
+#else
 static gint cell_renderer_frame_icon_activate(GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path,
 	GdkRectangle *background_area, GdkRectangle *cell_area, GtkCellRendererState  flags)
+#endif
 {
 	if (!event ||
 		(
@@ -116,14 +138,23 @@ static void cell_renderer_frame_icon_set_property (GObject *object, guint param_
 /*
  * get size of a cell
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static void cell_renderer_frame_icon_get_size(GtkCellRenderer *cell, GtkWidget *widget, const GdkRectangle *cell_area, 
+	gint *x_offset, gint *y_offset, gint *width, gint *height)
+#else
 static void cell_renderer_frame_icon_get_size(GtkCellRenderer *cell, GtkWidget *widget, GdkRectangle *cell_area, 
 	gint *x_offset, gint *y_offset, gint *width, gint *height)
+#endif
 {
 	CellRendererFrameIcon *cellframe = (CellRendererFrameIcon *) cell;
 	gint pixbuf_width  = 0;
 	gint pixbuf_height = 0;
 	gint calc_width;
 	gint calc_height;
+	gint xpad;
+	gint ypad;
+	gfloat xalign;
+	gfloat yalign;
 	
 	if (cellframe->pixbuf_active)
 	{
@@ -136,21 +167,24 @@ static void cell_renderer_frame_icon_get_size(GtkCellRenderer *cell, GtkWidget *
 		pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellframe->pixbuf_highlighted));
 	}
 	
-	calc_width  = (gint) cell->xpad * 2 + pixbuf_width;
-	calc_height = (gint) cell->ypad * 2 + pixbuf_height;
+	gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
+	calc_width  = xpad * 2 + pixbuf_width;
+	calc_height = ypad * 2 + pixbuf_height;
+
+	gtk_cell_renderer_get_alignment(cell, &xalign, &yalign);
 	
 	if (cell_area && pixbuf_width > 0 && pixbuf_height > 0)
 	{
 		if (x_offset)
 		{
 			*x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
-				(1.0 - cell->xalign) : cell->xalign) * 
+				(1.0 - xalign) : xalign) * 
 				(cell_area->width - calc_width));
 			*x_offset = MAX (*x_offset, 0);
 		}
 		if (y_offset)
 		{
-			*y_offset = (cell->yalign * (cell_area->height - calc_height));
+			*y_offset = (yalign * (cell_area->height - calc_height));
 			*y_offset = MAX (*y_offset, 0);
 		}
 	}
@@ -170,30 +204,46 @@ static void cell_renderer_frame_icon_get_size(GtkCellRenderer *cell, GtkWidget *
 /*
  * render a cell
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static void cell_renderer_frame_icon_render(GtkCellRenderer *cell, cairo_t *cr, GtkWidget *widget,
+	const GdkRectangle *background_area, const GdkRectangle *cell_area, GtkCellRendererState flags)
+#else
 static void cell_renderer_frame_icon_render(GtkCellRenderer *cell, GdkDrawable *window, GtkWidget *widget,
 	GdkRectangle *background_area, GdkRectangle *cell_area, GdkRectangle *expose_area, GtkCellRendererState flags)
+#endif
 {
 	CellRendererFrameIcon *cellframe = (CellRendererFrameIcon*) cell;
 	
 	GdkPixbuf *pixbuf = NULL;
 	
 	GdkRectangle pix_rect;
 	GdkRectangle draw_rect;
+
+	gint xpad;
+	gint ypad;
+
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cairo_t *cr;
+#endif
 	
 	cell_renderer_frame_icon_get_size (cell, widget, cell_area,
 		&pix_rect.x,
 		&pix_rect.y,
 		&pix_rect.width,
 		&pix_rect.height);
 	
-	pix_rect.x += cell_area->x + cell->xpad;
-	pix_rect.y += cell_area->y + cell->ypad;
-	pix_rect.width  -= cell->xpad * 2;
-	pix_rect.height -= cell->ypad * 2;
-	
+	gtk_cell_renderer_get_padding(cell, &xpad, &ypad);
+	pix_rect.x += cell_area->x + xpad;
+	pix_rect.y += cell_area->y + ypad;
+	pix_rect.width  -= xpad * 2;
+	pix_rect.height -= ypad * 2;
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+	if (!gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect))
+#else
 	if (!gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) ||
 		!gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect))
+#endif
 		return;
 	
 	if (cellframe->active_frame)
@@ -208,13 +258,17 @@ static void cell_renderer_frame_icon_render(GtkCellRenderer *cell, GdkDrawable *
 	if (!pixbuf)
 		return;
 	
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cr = gdk_cairo_create (window);
+#endif
 	
 	gdk_cairo_set_source_pixbuf (cr, pixbuf, pix_rect.x, pix_rect.y);
 	gdk_cairo_rectangle (cr, &draw_rect);
 	cairo_fill (cr);
 	
+#if !GTK_CHECK_VERSION(3, 0, 0)
 	cairo_destroy (cr);
+#endif
 }
 
 /*
@@ -226,7 +280,7 @@ static void cell_renderer_frame_icon_init (CellRendererFrameIcon *cell)
 	
 	cell->active_frame = FALSE;
 	
-	cell_renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
+	g_object_set(cell_renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
 
 	cell->pixbuf_active = cell->pixbuf_highlighted = 0;
 }


Modified: debugger/src/cell_renderers/cellrendererframeicon.h
17 lines changed, 0 insertions(+), 17 deletions(-)
===================================================================
@@ -36,23 +36,6 @@ G_BEGIN_DECLS
 typedef struct _CellRendererFrameIcon CellRendererFrameIcon;
 typedef struct _CellRendererFrameIconClass CellRendererFrameIconClass;
 
-struct _CellRendererFrameIcon
-{
-  GtkCellRenderer parent;
-
-  guint GSEAL (active_frame);
-
-  GdkPixbuf *GSEAL (pixbuf_active);
-  GdkPixbuf *GSEAL (pixbuf_highlighted);
-};
-
-struct _CellRendererFrameIconClass
-{
-  GtkCellRendererClass parent_class;
-
-  void (*clicked)(CellRendererFrameIcon *cell_renderer_toggle, const gchar *path);
-};
-
 GType					cell_renderer_frame_icon_get_type(void);
 GtkCellRenderer*		cell_renderer_frame_icon_new (void);
 


Modified: debugger/src/cell_renderers/cellrenderertoggle.c
17 lines changed, 16 insertions(+), 1 deletions(-)
===================================================================
@@ -29,11 +29,26 @@
 
 #include "cellrenderertoggle.h"
 
+struct _CellRendererToggle
+{
+  GtkCellRendererToggle parent;
+};
+
+struct _CellRendererToggleClass
+{
+  GtkCellRendererToggleClass parent_class;
+};
+
 /*
  * handles an activation and sends a toggle signal is its cell renderer has been clicked
  */
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gint cell_renderer_toggle_activate(GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path,
+	const GdkRectangle *background_area, const GdkRectangle *cell_area, GtkCellRendererState  flags)
+#else
 static gint cell_renderer_toggle_activate(GtkCellRenderer *cell, GdkEvent *event, GtkWidget *widget, const gchar *path,
 	GdkRectangle *background_area, GdkRectangle *cell_area, GtkCellRendererState  flags)
+#endif
 {
 	if (!event ||
 		(
@@ -53,7 +68,7 @@ static gint cell_renderer_toggle_activate(GtkCellRenderer *cell, GdkEvent *event
 static void cell_renderer_toggle_init (CellRendererToggle *cell)
 {
 	GtkCellRenderer *cell_renderer = (GtkCellRenderer*)cell;
-	cell_renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
+	g_object_set(cell_renderer, "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE, NULL);
 }
 
 /*


Modified: debugger/src/cell_renderers/cellrenderertoggle.h
10 lines changed, 0 insertions(+), 10 deletions(-)
===================================================================
@@ -36,16 +36,6 @@ G_BEGIN_DECLS
 typedef struct _CellRendererToggle CellRendererToggle;
 typedef struct _CellRendererToggleClass CellRendererToggleClass;
 
-struct _CellRendererToggle
-{
-  GtkCellRendererToggle parent;
-};
-
-struct _CellRendererToggleClass
-{
-  GtkCellRendererToggleClass parent_class;
-};
-
 GType					cell_renderer_toggle_get_type(void);
 GtkCellRenderer*		cell_renderer_toggle_new (void);
 


Modified: debugger/src/dconfig.c
44 lines changed, 24 insertions(+), 20 deletions(-)
===================================================================
@@ -67,8 +67,8 @@ static GKeyFile *keyfile_project = NULL;
 static gboolean debug_config_loading = FALSE;
 
 /* saving thread staff */
-static GMutex *change_config_mutex;
-static GCond *cond;
+static GMutex change_config_mutex;
+static GCond cond;
 static GThread *saving_thread;
 
 /* flags that indicate that part of a config has been changed and
@@ -269,8 +269,8 @@ static void save_to_keyfile(GKeyFile *keyfile)
  */
 static gpointer saving_thread_func(gpointer data)
 {
-	GTimeVal interval;
-	g_mutex_lock(change_config_mutex);
+	gint64 interval;
+	g_mutex_lock(&change_config_mutex);
 	do
 	{
 		if (
@@ -308,11 +308,10 @@ static gpointer saving_thread_func(gpointer data)
 			debug_config_changed = FALSE;
 		}
 
-		g_get_current_time(&interval);
-		g_time_val_add(&interval, SAVING_INTERVAL);
+		interval = g_get_monotonic_time() + SAVING_INTERVAL;
 	}
-	while (!g_cond_timed_wait(cond, change_config_mutex, &interval));
-	g_mutex_unlock(change_config_mutex);
+	while (!g_cond_wait_until(&cond, &change_config_mutex, interval));
+	g_mutex_unlock(&change_config_mutex);
 	
 	return NULL;
 }
@@ -324,9 +323,9 @@ void config_set_debug_changed(void)
 {
 	if (!debug_config_loading)
 	{
-		g_mutex_lock(change_config_mutex);
+		g_mutex_lock(&change_config_mutex);
 		debug_config_changed = TRUE;
-		g_mutex_unlock(change_config_mutex);
+		g_mutex_unlock(&change_config_mutex);
 	}
 }
 
@@ -337,7 +336,7 @@ void config_set_panel(int config_part, gpointer config_value, ...)
 {
 	va_list ap;
 	
-	g_mutex_lock(change_config_mutex);
+	g_mutex_lock(&change_config_mutex);
 	
 	va_start(ap, config_value);
 	
@@ -395,7 +394,7 @@ void config_set_panel(int config_part, gpointer config_value, ...)
 	va_end(ap);
 	
 	panel_config_changed = TRUE;
-	g_mutex_unlock(change_config_mutex);
+	g_mutex_unlock(&change_config_mutex);
 }
 
 /*
@@ -458,21 +457,21 @@ void config_init(void)
 		g_free(data);
 	}
 
-	change_config_mutex = g_mutex_new();
-	cond = g_cond_new();
-	saving_thread = g_thread_create(saving_thread_func, NULL, TRUE, NULL);
+	g_mutex_init(&change_config_mutex);
+	g_cond_init(&cond);
+	saving_thread = g_thread_new(NULL, saving_thread_func, NULL);
 }	
 
 /*
  *	destroy
  */
 void config_destroy(void)
 {
-	g_cond_signal(cond);
+	g_cond_signal(&cond);
 	g_thread_join(saving_thread);
 	
-	g_mutex_free(change_config_mutex);
-	g_cond_free(cond);
+	g_mutex_clear(&change_config_mutex);
+	g_cond_clear(&cond);
 
 	g_free(plugin_config_path);
 	
@@ -642,9 +641,9 @@ static void on_configure_response(GtkDialog* dialog, gint response, gpointer use
 	{
 		g_key_file_set_boolean(keyfile_plugin, "saving_settings", "save_to_project", newvalue);
 
-		g_mutex_lock(change_config_mutex);
+		g_mutex_lock(&change_config_mutex);
 		panel_config_changed = TRUE;
-		g_mutex_unlock(change_config_mutex);
+		g_mutex_unlock(&change_config_mutex);
 
 		if (geany_data->app->project)
 		{
@@ -668,8 +667,13 @@ static void on_configure_response(GtkDialog* dialog, gint response, gpointer use
  */
 GtkWidget *config_plugin_configure(GtkDialog *dialog)
 {
+#if GTK_CHECK_VERSION(3, 0, 0)
+	GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
+	GtkWidget *_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
+#else
 	GtkWidget *vbox = gtk_vbox_new(FALSE, 6);
 	GtkWidget *_hbox = gtk_hbox_new(FALSE, 6);
+#endif
 	
 	save_to_project_btn = gtk_check_button_new_with_label(_("Save debug session data to a project"));
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(save_to_project_btn), config_get_save_to_project());


Modified: debugger/src/debug.c
39 lines changed, 25 insertions(+), 14 deletions(-)
===================================================================
@@ -56,6 +56,7 @@ int grantpt(int fd);
 	#include "config.h"
 #endif
 #include <geanyplugin.h>
+#include <gp_vtecompat.h>
 extern GeanyData		*geany_data;
 
 #include "tpage.h"
@@ -320,7 +321,7 @@ static void on_watch_dragged_callback(GtkWidget *wgt, GdkDragContext *context, i
     gpointer userdata)
 {
 	/* string that is dragged */
-	gchar *expression = (gchar*)seldata->data;
+	gchar *expression = (gchar*)gtk_selection_data_get_data(seldata);
 	GtkTreePath *path = NULL;
 	GtkTreeViewDropPosition pos;
 	GtkTreePath *empty_path;
@@ -1000,6 +1001,10 @@ void debug_init(void)
 	gchar *font;
 	GtkTextBuffer *buffer;
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+	VtePty *pty;
+#endif
+
 	/* create watch page */
 	wtree = wtree_init(on_watch_expanded_callback,
 		on_watch_dragged_callback,
@@ -1009,32 +1014,23 @@ void debug_init(void)
 	wmodel = gtk_tree_view_get_model(GTK_TREE_VIEW(wtree));
 	wstore = GTK_TREE_STORE(wmodel);
 	
-	tab_watch = gtk_scrolled_window_new(
-		gtk_tree_view_get_hadjustment(GTK_TREE_VIEW(wtree)),
-		gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(wtree))
-	);
+	tab_watch = gtk_scrolled_window_new(NULL, NULL);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tab_watch),
 		GTK_POLICY_AUTOMATIC,
 		GTK_POLICY_AUTOMATIC);
 	gtk_container_add(GTK_CONTAINER(tab_watch), wtree);
 
 	/* create autos page */
 	atree = atree_init(on_watch_expanded_callback, on_watch_button_pressed_callback);
-	tab_autos = gtk_scrolled_window_new(
-		gtk_tree_view_get_hadjustment(GTK_TREE_VIEW(atree)),
-		gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(atree))
-	);
+	tab_autos = gtk_scrolled_window_new(NULL, NULL);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tab_autos),
 		GTK_POLICY_AUTOMATIC,
 		GTK_POLICY_AUTOMATIC);
 	gtk_container_add(GTK_CONTAINER(tab_autos), atree);
 	
 	/* create stack trace page */
 	stree = stree_init(editor_open_position, on_select_thread, on_select_frame);
-	tab_call_stack = gtk_scrolled_window_new(
-		gtk_tree_view_get_hadjustment(GTK_TREE_VIEW(stree )),
-		gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(stree ))
-	);
+	tab_call_stack = gtk_scrolled_window_new(NULL, NULL);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tab_call_stack),
 		GTK_POLICY_AUTOMATIC,
 		GTK_POLICY_AUTOMATIC);
@@ -1048,12 +1044,23 @@ void debug_init(void)
 		    NULL);
 	grantpt(pty_master);
 	unlockpt(pty_master);
+#if GTK_CHECK_VERSION(3, 0, 0)
+	pty = vte_pty_new_foreign_sync(pty_master, NULL, NULL);
+	vte_terminal_set_pty(VTE_TERMINAL(terminal), pty);
+	g_object_unref(pty);
+	scrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(terminal)));
+#else
 	vte_terminal_set_pty(VTE_TERMINAL(terminal), pty_master);
 	scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(VTE_TERMINAL(terminal)->adjustment));
-	GTK_WIDGET_UNSET_FLAGS(scrollbar, GTK_CAN_FOCUS);
+#endif
+	gtk_widget_set_can_focus(GTK_WIDGET(scrollbar), FALSE);
 	tab_terminal = gtk_frame_new(NULL);
 	gtk_frame_set_shadow_type (GTK_FRAME(tab_terminal), GTK_SHADOW_NONE);
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
 	hbox = gtk_hbox_new(FALSE, 0);
+#endif
 	gtk_container_add(GTK_CONTAINER(tab_terminal), hbox);
 	gtk_box_pack_start(GTK_BOX(hbox), terminal, TRUE, TRUE, 0);
 	gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, FALSE, 0);
@@ -1078,7 +1085,11 @@ void debug_init(void)
 	
 	debugger_messages_textview =  gtk_text_view_new();
 	gtk_text_view_set_editable (GTK_TEXT_VIEW (debugger_messages_textview), FALSE);
+#if GTK_CHECK_VERSION(3, 0, 0)
+	gtk_container_add(GTK_CONTAINER(tab_messages), debugger_messages_textview);
+#else
 	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(tab_messages), debugger_messages_textview);
+#endif
 	
 	/* create tex tags */
 	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(debugger_messages_textview));


Modified: debugger/src/dpaned.c
6 lines changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -40,7 +40,7 @@ extern GeanyData		*geany_data;
 #include "stree.h"
 #include "dconfig.h"
 
-#define NOTEBOOK_GROUP 438948394
+#define NOTEBOOK_GROUP "notebook-438948394"
 #define HPANED_BORDER_WIDTH 4
 
 #define CONNECT_PAGE_SIGNALS(X) \
@@ -287,8 +287,8 @@ void dpaned_init(void)
 	/* setup notebooks */
 	gtk_notebook_set_scrollable(GTK_NOTEBOOK(debug_notebook_left), TRUE);
 	gtk_notebook_set_scrollable(GTK_NOTEBOOK(debug_notebook_right), TRUE);
-	gtk_notebook_set_group_id(GTK_NOTEBOOK(debug_notebook_left), NOTEBOOK_GROUP);
-	gtk_notebook_set_group_id (GTK_NOTEBOOK(debug_notebook_right), NOTEBOOK_GROUP);
+	gtk_notebook_set_group_name(GTK_NOTEBOOK(debug_notebook_left), NOTEBOOK_GROUP);
+	gtk_notebook_set_group_name(GTK_NOTEBOOK(debug_notebook_right), NOTEBOOK_GROUP);
 	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_notebook_left), GTK_POS_TOP);
 	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_notebook_right), GTK_POS_TOP);
 	


Modified: debugger/src/gui.c
4 lines changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -52,7 +52,11 @@ GtkWidget* create_button(const gchar *icon, const gchar *tooltip)
 GtkWidget* create_stock_button(const gchar *stockid, const gchar *tooltip)
 {
 	GtkWidget *btn = gtk_button_new();
+#if GTK_CHECK_VERSION(3, 0, 0)
+	GtkWidget *image = gtk_image_new_from_icon_name(stockid, GTK_ICON_SIZE_MENU);
+#else
 	GtkWidget *image = gtk_image_new_from_stock (stockid, GTK_ICON_SIZE_MENU);
+#endif
 	gtk_widget_show(image);
 	gtk_button_set_image(GTK_BUTTON(btn), image);
 


Modified: debugger/src/plugin.c
4 lines changed, 4 insertions(+), 0 deletions(-)
===================================================================
@@ -97,7 +97,11 @@ void plugin_init(GeanyData *data)
 	pixbufs_init();
 
 	/* main box */
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 7);
+#else
 	hbox = gtk_hbox_new(FALSE, 7);
+#endif
 	gtk_container_set_border_width(GTK_CONTAINER(hbox), 6);
 
 	/* add target page */


Modified: debugger/src/stree.c
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -197,7 +197,7 @@ static void on_render_line(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell
 		g_object_set(cell, "text", "", NULL);
 	else
 	{
-		GValue value = {0};
+		GValue value = G_VALUE_INIT;
 
 		g_value_init(&value, G_TYPE_INT);
 		g_value_set_int (&value, f->line);


Modified: debugger/src/tpage.c
70 lines changed, 62 insertions(+), 8 deletions(-)
===================================================================
@@ -33,6 +33,7 @@
 	#include "config.h"
 #endif
 #include "geanyplugin.h"
+#include <gp_gtkcompat.h>
 
 extern GeanyData		*geany_data;
 
@@ -161,23 +162,41 @@ void tpage_pack_widgets(gboolean tabbed)
 	{
 		GtkWidget *hbox, *rbox, *lbox;
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+		root = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING);
+#else
 		root = gtk_vbox_new(FALSE, SPACING);
+#endif
 		gtk_container_set_border_width(GTK_CONTAINER(root), ROOT_BORDER_WIDTH);
 	
 		/* filename */
+#if GTK_CHECK_VERSION(3, 0, 0)
+		hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING);
+#else
 		hbox = gtk_hbox_new(FALSE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(root), hbox, FALSE, FALSE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), target_label, FALSE, FALSE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), target_name, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), target_button_browse, FALSE, FALSE, 0);
 		
 		/* lower hbox */
+#if GTK_CHECK_VERSION(3, 0, 0)
+		hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING);
+		gtk_box_set_homogeneous(GTK_BOX(hbox), TRUE);
+#else
 		hbox = gtk_hbox_new(TRUE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(root), hbox, TRUE, TRUE, 0);
 
 		/* lower left and right vboxes */
+#if GTK_CHECK_VERSION(3, 0, 0)
+		lbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING);
+		rbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING);
+#else
 		lbox = gtk_vbox_new(FALSE, SPACING);
 		rbox = gtk_vbox_new(FALSE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(hbox), lbox, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), rbox, TRUE, TRUE, 0);
 
@@ -187,7 +206,11 @@ void tpage_pack_widgets(gboolean tabbed)
 		/* arguments */
 		gtk_box_pack_start(GTK_BOX(rbox), args_frame, TRUE, TRUE, 0);
 		/* debugger type */
+#if GTK_CHECK_VERSION(3, 0, 0)
+		hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING);
+#else
 		hbox = gtk_hbox_new(FALSE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(hbox), debugger_label, FALSE, FALSE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), debugger_cmb, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(rbox), hbox, FALSE, FALSE, 0);
@@ -196,27 +219,45 @@ void tpage_pack_widgets(gboolean tabbed)
 	{
 		GtkWidget *lbox, *rbox, *hbox;
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+		root = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING);
+		gtk_box_set_homogeneous(GTK_BOX(root), TRUE);
+#else
 		root = gtk_hbox_new(TRUE, SPACING);
+#endif
 		gtk_container_set_border_width(GTK_CONTAINER(root), ROOT_BORDER_WIDTH);
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+		lbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING);
+		rbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, SPACING);
+#else
 		lbox = gtk_vbox_new(FALSE, SPACING);
 		rbox = gtk_vbox_new(FALSE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(root), lbox, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(root), rbox, TRUE, TRUE, 0);
 
 		/* environment */
 		gtk_box_pack_start(GTK_BOX(lbox), env_frame, TRUE, TRUE, 0);
 
 		/* target */
+#if GTK_CHECK_VERSION(3, 0, 0)
+		hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING);
+#else
 		hbox = gtk_hbox_new(FALSE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(hbox), target_label, FALSE, FALSE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), target_name, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), target_button_browse, FALSE, FALSE, 0);
 		gtk_box_pack_start(GTK_BOX(rbox), hbox, FALSE, FALSE, 0);
 		/* arguments */
 		gtk_box_pack_start(GTK_BOX(rbox), args_frame, TRUE, TRUE, 0);
 		/* debugger type */
+#if GTK_CHECK_VERSION(3, 0, 0)
+		hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, SPACING);
+#else
 		hbox = gtk_hbox_new(FALSE, SPACING);
+#endif
 		gtk_box_pack_start(GTK_BOX(hbox), debugger_label, FALSE, FALSE, 0);
 		gtk_box_pack_start(GTK_BOX(hbox), debugger_cmb, TRUE, TRUE, 0);
 		gtk_box_pack_start(GTK_BOX(rbox), hbox, FALSE, FALSE, 0);
@@ -233,7 +274,11 @@ void tpage_pack_widgets(gboolean tabbed)
 		gtk_container_remove(GTK_CONTAINER(tab_target), oldroot);
 	}
 
+#if GTK_CHECK_VERSION(3, 0, 0)
+	gtk_box_pack_start(GTK_BOX(tab_target), root, TRUE, TRUE, 0);
+#else
 	gtk_container_add(GTK_CONTAINER(tab_target), root);
+#endif
 	gtk_widget_show_all(tab_target);
 }
 
@@ -250,27 +295,32 @@ static void tpage_create_widgets(void)
 	/* target */
 	target_label = gtk_label_new(_("Target:"));
 	target_name = gtk_entry_new ();
+#if GTK_CHECK_VERSION(3, 0, 0)
+	gtk_editable_set_editable(GTK_EDITABLE(target_name), FALSE);
+	target_button_browse = create_stock_button("document-open", _("Browse"));
+#else
 	gtk_entry_set_editable(GTK_ENTRY(target_name), FALSE);
 	target_button_browse = create_stock_button(GTK_STOCK_OPEN, _("Browse"));
+#endif
 	gtk_widget_set_size_request(target_button_browse, BROWSE_BUTTON_WIDTH, 0);
 	g_signal_connect(G_OBJECT(target_button_browse), "clicked", G_CALLBACK (on_target_browse_clicked), NULL);
 
 	/* debugger */
 	debugger_label = gtk_label_new(_("Debugger:")); 
-	debugger_cmb = gtk_combo_box_new_text();
+	debugger_cmb = gtk_combo_box_text_new();
 	modules = debug_get_modules();
 	for (iter = modules; iter; iter = iter->next)
 	{
-		gtk_combo_box_append_text(GTK_COMBO_BOX(debugger_cmb), (gchar*)iter->data);
+		gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(debugger_cmb), (gchar*)iter->data);
 	}
 	g_list_free(modules);
 	gtk_combo_box_set_active(GTK_COMBO_BOX(debugger_cmb), 0);
 
 	/* arguments */
 	args_frame = gtk_frame_new(_("Command Line Arguments"));
-	hbox = gtk_hbox_new(FALSE, 0);
-	gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
-	args_textview = gtk_text_view_new ();
+	hbox = gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hbox), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+	args_textview = gtk_text_view_new();
 	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(args_textview), GTK_WRAP_CHAR);
 	buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(args_textview));
 	g_signal_connect(G_OBJECT(buffer), "changed", G_CALLBACK (on_arguments_changed), NULL);
@@ -279,8 +329,8 @@ static void tpage_create_widgets(void)
 
 	/* environment */
 	env_frame = gtk_frame_new(_("Environment Variables"));
-	hbox = gtk_hbox_new(FALSE, 0);
-	gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
+	hbox = gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hbox), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	tree = envtree_init();
 	gtk_container_add(GTK_CONTAINER(hbox), tree);
 	gtk_container_add(GTK_CONTAINER(env_frame), hbox);
@@ -366,7 +416,7 @@ int tpage_get_debug_module_index(void)
  */
 gchar* tpage_get_debugger(void)
 {
-	return gtk_combo_box_get_active_text(GTK_COMBO_BOX(debugger_cmb));
+	return gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(debugger_cmb));
 }
 
 /*
@@ -404,7 +454,11 @@ GList* tpage_get_environment(void)
  */
 void tpage_init(void)
 {
+#if GTK_CHECK_VERSION(3, 0, 0)
+	tab_target = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
 	tab_target = gtk_vbox_new(FALSE, 0);
+#endif
 	tpage_create_widgets();
 }
 



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Plugins-Commits mailing list