[gedit] Port gedit to GtkOverlay
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Port gedit to GtkOverlay
- Date: Mon, 13 Jun 2011 11:35:32 +0000 (UTC)
commit caa8ca99570d344b7ec68801ab358b0a49cd5048
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Mon Jun 13 13:37:37 2011 +0200
Port gedit to GtkOverlay
gedit/Makefile.am | 4 -
gedit/gedit-animatable.c | 3 +-
gedit/gedit-animated-overlay.c | 38 +---
gedit/gedit-animated-overlay.h | 13 +-
gedit/gedit-floating-slider.c | 16 +-
gedit/gedit-floating-slider.h | 9 +-
gedit/gedit-overlay-child.c | 362 ---------------------------
gedit/gedit-overlay-child.h | 89 -------
gedit/gedit-overlay.c | 532 ----------------------------------------
gedit/gedit-overlay.h | 70 ------
gedit/gedit-view-frame.c | 28 +--
11 files changed, 35 insertions(+), 1129 deletions(-)
---
diff --git a/gedit/Makefile.am b/gedit/Makefile.am
index df39644..7748d3d 100644
--- a/gedit/Makefile.am
+++ b/gedit/Makefile.am
@@ -120,8 +120,6 @@ NOINST_H_FILES = \
gedit-language-manager.h \
gedit-multi-notebook.h \
gedit-notebook.h \
- gedit-overlay.h \
- gedit-overlay-child.h \
gedit-plugins-engine.h \
gedit-print-job.h \
gedit-print-preview.h \
@@ -204,8 +202,6 @@ libgedit_c_files = \
gedit-message.c \
gedit-multi-notebook.c \
gedit-notebook.c \
- gedit-overlay.c \
- gedit-overlay-child.c \
gedit-panel.c \
gedit-plugins-engine.c \
gedit-print-job.c \
diff --git a/gedit/gedit-animatable.c b/gedit/gedit-animatable.c
index 9a1c943..d2aec96 100644
--- a/gedit/gedit-animatable.c
+++ b/gedit/gedit-animatable.c
@@ -20,11 +20,10 @@
*/
#include "gedit-animatable.h"
-#include "gedit-overlay-child.h"
#include "theatrics/gedit-theatrics-choreographer.h"
#include "theatrics/gedit-theatrics-enum-types.h"
-G_DEFINE_INTERFACE(GeditAnimatable, gedit_animatable, GEDIT_TYPE_OVERLAY_CHILD)
+G_DEFINE_INTERFACE(GeditAnimatable, gedit_animatable, GTK_TYPE_WIDGET)
void
gedit_animatable_default_init (GeditAnimatableInterface *iface)
diff --git a/gedit/gedit-animated-overlay.c b/gedit/gedit-animated-overlay.c
index c0856d9..8160f2f 100644
--- a/gedit/gedit-animated-overlay.c
+++ b/gedit/gedit-animated-overlay.c
@@ -29,7 +29,7 @@ struct _GeditAnimatedOverlayPrivate
GeditTheatricsStage *stage;
};
-G_DEFINE_TYPE (GeditAnimatedOverlay, gedit_animated_overlay, GEDIT_TYPE_OVERLAY)
+G_DEFINE_TYPE (GeditAnimatedOverlay, gedit_animated_overlay, GTK_TYPE_OVERLAY)
static void
gedit_animated_overlay_dispose (GObject *object)
@@ -148,46 +148,26 @@ on_animation_state_changed (GeditAnimatable *animatable,
/**
* gedit_animated_overlay_new:
- * @main_widget: a #GtkWidget
- * @relative_widget: (allow-none): a #Gtkwidget
*
- * Creates a new #GeditAnimatedOverlay. If @relative_widget is not %NULL the
- * floating widgets will be placed in relation to it, if not @main_widget will
- * be use for this purpose.
+ * Creates a new #GeditAnimatedOverlay.
*
* Returns: a new #GeditAnimatedOverlay object.
*/
GtkWidget *
-gedit_animated_overlay_new (GtkWidget *main_widget,
- GtkWidget *relative_widget)
+gedit_animated_overlay_new (void)
{
- return g_object_new (GEDIT_TYPE_ANIMATED_OVERLAY,
- "main-widget", main_widget,
- "relative-widget", relative_widget,
- NULL);
+ return g_object_new (GEDIT_TYPE_ANIMATED_OVERLAY, NULL);
}
void
-gedit_animated_overlay_add (GeditAnimatedOverlay *overlay,
- GeditAnimatable *animatable)
+gedit_animated_overlay_add_animated_overlay (GeditAnimatedOverlay *overlay,
+ GeditAnimatable *animatable)
{
- GeditOverlayChildPosition position;
- guint offset, duration;
-
- g_return_if_fail (GEDIT_IS_OVERLAY (overlay));
+ g_return_if_fail (GEDIT_IS_ANIMATED_OVERLAY (overlay));
g_return_if_fail (GEDIT_IS_ANIMATABLE (animatable));
- g_object_get (G_OBJECT (animatable),
- "position", &position,
- "offset", &offset,
- "duration", &duration,
- NULL);
-
- /* FIXME: check that the widget is not already added */
-
- gedit_overlay_add (GEDIT_OVERLAY (overlay),
- GTK_WIDGET (animatable),
- position, offset);
+ gtk_overlay_add_overlay (GTK_OVERLAY (overlay),
+ GTK_WIDGET (animatable));
g_signal_connect (animatable,
"notify::animation-state",
diff --git a/gedit/gedit-animated-overlay.h b/gedit/gedit-animated-overlay.h
index f181108..748b074 100644
--- a/gedit/gedit-animated-overlay.h
+++ b/gedit/gedit-animated-overlay.h
@@ -22,8 +22,8 @@
#ifndef __GEDIT_ANIMATED_OVERLAY_H__
#define __GEDIT_ANIMATED_OVERLAY_H__
+#include <gtk/gtk.h>
#include "gedit-animatable.h"
-#include "gedit-overlay.h"
#include "theatrics/gedit-theatrics-choreographer.h"
G_BEGIN_DECLS
@@ -42,23 +42,22 @@ typedef struct _GeditAnimatedOverlayPrivate GeditAnimatedOverlayPrivate;
struct _GeditAnimatedOverlay
{
- GeditOverlay parent;
+ GtkOverlay parent;
GeditAnimatedOverlayPrivate *priv;
};
struct _GeditAnimatedOverlayClass
{
- GeditOverlayClass parent_class;
+ GtkOverlayClass parent_class;
};
GType gedit_animated_overlay_get_type (void) G_GNUC_CONST;
-GtkWidget *gedit_animated_overlay_new (GtkWidget *main_widget,
- GtkWidget *relative_widget);
+GtkWidget *gedit_animated_overlay_new (void);
-void gedit_animated_overlay_add (GeditAnimatedOverlay *overlay,
- GeditAnimatable *animatable);
+void gedit_animated_overlay_add_animated_overlay (GeditAnimatedOverlay *overlay,
+ GeditAnimatable *animatable);
G_END_DECLS
diff --git a/gedit/gedit-floating-slider.c b/gedit/gedit-floating-slider.c
index 34d329e..974b0f4 100644
--- a/gedit/gedit-floating-slider.c
+++ b/gedit/gedit-floating-slider.c
@@ -49,14 +49,12 @@ enum
PROP_ORIENTATION
};
-G_DEFINE_TYPE_EXTENDED (GeditFloatingSlider,
- gedit_floating_slider,
- GEDIT_TYPE_OVERLAY_CHILD,
+G_DEFINE_TYPE_EXTENDED (GeditFloatingSlider, gedit_floating_slider, GTK_TYPE_BIN,
0,
G_IMPLEMENT_INTERFACE (GEDIT_TYPE_ANIMATABLE,
NULL)
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE,
- NULL))
+ NULL))
static void
gedit_floating_slider_finalize (GObject *object)
@@ -158,8 +156,6 @@ gedit_floating_slider_get_preferred_width (GtkWidget *widget,
GtkWidget *child;
gint width;
- GTK_WIDGET_CLASS (gedit_floating_slider_parent_class)->get_preferred_width (widget, minimum, natural);
-
child = gtk_bin_get_child (GTK_BIN (widget));
if (child != NULL)
@@ -193,8 +189,6 @@ gedit_floating_slider_get_preferred_height (GtkWidget *widget,
GtkWidget *child;
gint height;
- GTK_WIDGET_CLASS (gedit_floating_slider_parent_class)->get_preferred_height (widget, minimum, natural);
-
child = gtk_bin_get_child (GTK_BIN (widget));
if (child != NULL)
@@ -316,11 +310,9 @@ gedit_floating_slider_init (GeditFloatingSlider *slider)
}
GtkWidget *
-gedit_floating_slider_new (GtkWidget *widget)
+gedit_floating_slider_new (void)
{
- return g_object_new (GEDIT_TYPE_FLOATING_SLIDER,
- "widget", widget,
- NULL);
+ return g_object_new (GEDIT_TYPE_FLOATING_SLIDER, NULL);
}
/* ex:set ts=8 noet: */
diff --git a/gedit/gedit-floating-slider.h b/gedit/gedit-floating-slider.h
index b5e635d..7576439 100644
--- a/gedit/gedit-floating-slider.h
+++ b/gedit/gedit-floating-slider.h
@@ -28,7 +28,6 @@
#include <glib-object.h>
#include <gtk/gtk.h>
#include "theatrics/gedit-theatrics-choreographer.h"
-#include "gedit-overlay-child.h"
G_BEGIN_DECLS
@@ -46,19 +45,19 @@ typedef struct _GeditFloatingSliderPrivate GeditFloatingSliderPrivate;
struct _GeditFloatingSlider
{
- GeditOverlayChild parent;
-
+ GtkBin parent;
+
GeditFloatingSliderPrivate *priv;
};
struct _GeditFloatingSliderClass
{
- GeditOverlayChildClass parent_class;
+ GtkBinClass parent_class;
};
GType gedit_floating_slider_get_type (void) G_GNUC_CONST;
-GtkWidget *gedit_floating_slider_new (GtkWidget *widget);
+GtkWidget *gedit_floating_slider_new (void);
G_END_DECLS
diff --git a/gedit/gedit-view-frame.c b/gedit/gedit-view-frame.c
index a69bb98..578983d 100644
--- a/gedit/gedit-view-frame.c
+++ b/gedit/gedit-view-frame.c
@@ -39,7 +39,7 @@
#define GEDIT_VIEW_FRAME_SEARCH_DIALOG_TIMEOUT (30*1000) /* 30 seconds */
#define MIN_SEARCH_COMPLETION_KEY_LEN 3
-#define SEARCH_POPUP_OFFSET 12
+#define SEARCH_POPUP_MARGIN 12
#define GEDIT_VIEW_FRAME_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GEDIT_TYPE_VIEW_FRAME, GeditViewFramePrivate))
@@ -1418,7 +1418,6 @@ gedit_view_frame_init (GeditViewFrame *frame)
{
GeditDocument *doc;
GtkWidget *sw;
- GeditOverlayChildPosition position;
frame->priv = GEDIT_VIEW_FRAME_GET_PRIVATE (frame);
@@ -1450,33 +1449,28 @@ gedit_view_frame_init (GeditViewFrame *frame)
gtk_widget_show (sw);
- frame->priv->overlay = gedit_animated_overlay_new (sw, frame->priv->view);
+ frame->priv->overlay = gedit_animated_overlay_new ();
+ gtk_container_add (GTK_CONTAINER (frame->priv->overlay), sw);
gtk_widget_show (frame->priv->overlay);
gtk_box_pack_start (GTK_BOX (frame), frame->priv->overlay, TRUE, TRUE, 0);
/* Add slider */
- if (gtk_widget_get_direction (GTK_WIDGET (frame)) == GTK_TEXT_DIR_RTL)
- {
- position = GEDIT_OVERLAY_CHILD_POSITION_NORTH_WEST;
- }
- else
- {
- position = GEDIT_OVERLAY_CHILD_POSITION_NORTH_EAST;
- }
-
frame->priv->search_widget = create_search_widget (frame);
- frame->priv->slider = gedit_floating_slider_new (frame->priv->search_widget);
+ frame->priv->slider = gedit_floating_slider_new ();
+ gtk_container_add (GTK_CONTAINER (frame->priv->slider),
+ frame->priv->search_widget);
+ gtk_widget_set_halign (frame->priv->slider, GTK_ALIGN_END);
+ gtk_widget_set_valign (frame->priv->slider, GTK_ALIGN_START);
+ gtk_widget_set_margin_right (frame->priv->slider, SEARCH_POPUP_MARGIN);
g_object_set (G_OBJECT (frame->priv->slider),
- "position", position,
- "offset", SEARCH_POPUP_OFFSET,
"easing", GEDIT_THEATRICS_CHOREOGRAPHER_EASING_EXPONENTIAL_IN_OUT,
"blocking", GEDIT_THEATRICS_CHOREOGRAPHER_BLOCKING_DOWNSTAGE,
"orientation", GTK_ORIENTATION_VERTICAL,
NULL);
- gedit_animated_overlay_add (GEDIT_ANIMATED_OVERLAY (frame->priv->overlay),
- GEDIT_ANIMATABLE (frame->priv->slider));
+ gedit_animated_overlay_add_animated_overlay (GEDIT_ANIMATED_OVERLAY (frame->priv->overlay),
+ GEDIT_ANIMATABLE (frame->priv->slider));
}
GeditViewFrame *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]