]> spindle.queued.net Git - midori/commitdiff
Rewrite Midori.PanedAction in Vala
authorChristian Dywan <christian@twotoasts.de>
Sun, 27 May 2012 13:08:23 +0000 (15:08 +0200)
committerChristian Dywan <christian@twotoasts.de>
Sun, 27 May 2012 13:08:23 +0000 (15:08 +0200)
Also fix errors in the build.

extensions/wscript_build
midori/midori-browser.c
midori/midori-panedaction.c [deleted file]
midori/midori-panedaction.h [deleted file]
midori/midori-panedaction.vala [new file with mode: 0644]
midori/wscript_build

index b4031ee870f6650f6e460885be6ee6c872e68a31..152d8206ff7d51591cb190e7a42711dc141bc350 100644 (file)
@@ -33,11 +33,11 @@ for extension in extensions:
 
     obj = bld.new_task_gen ('cc', 'shlib')
     obj.target = target
-    obj.includes = '..'
+    obj.includes = '.. ../katze ../midori'
     obj.source = source
     obj.uselib = 'UNIQUE LIBSOUP GIO GTK SQLITE WEBKIT LIBXML HILDON'
     obj.vapi_dirs = '../midori ../katze'
-    obj.packages = 'glib-2.0 gio-2.0 libsoup-2.4 midori katze'
+    obj.packages = 'glib-2.0 gio-2.0 libsoup-2.4 midori midori-core katze'
     if bld.env['HAVE_GTK3']:
         obj.packages += ' gtk+-3.0 webkitgtk-3.0'
     else:
index d30fc1cb88da042ec3b88725fca915ab5343dfa4..22d74f593b657c76dbeba15ccdd960593db08570 100644 (file)
@@ -19,7 +19,6 @@
 #include "midori-panel.h"
 #include "midori-locationaction.h"
 #include "midori-searchaction.h"
-#include "midori-panedaction.h"
 #include "midori-findbar.h"
 #include "midori-transferbar.h"
 #include "midori-platform.h"
diff --git a/midori/midori-panedaction.c b/midori/midori-panedaction.c
deleted file mode 100644 (file)
index e858b8a..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- Copyright (C) 2011 Peter Hatina <phatina@redhat.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#include <string.h>
-#include <katze/katze.h>
-#include "midori-panedaction.h"
-
-struct _MidoriPanedActionChild
-{
-    GtkWidget* widget;
-    gchar* name;
-    gboolean resize;
-    gboolean shrink;
-};
-
-struct _MidoriPanedAction
-{
-    GtkAction parent_instance;
-    GtkWidget* hpaned;
-    GtkWidget* toolitem;
-    struct _MidoriPanedActionChild child1;
-    struct _MidoriPanedActionChild child2;
-};
-
-struct _MidoriPanedActionClass
-{
-    GtkActionClass parent_class;
-};
-
-G_DEFINE_TYPE (MidoriPanedAction, midori_paned_action, GTK_TYPE_ACTION);
-
-static GtkWidget*
-midori_paned_action_create_tool_item (GtkAction *action);
-
-static void
-midori_paned_action_finalize (GObject* object);
-
-static void
-midori_paned_action_init (MidoriPanedAction* paned_action)
-{
-    paned_action->hpaned = NULL;
-    paned_action->toolitem = NULL;
-    memset ((void*) &paned_action->child1, 0, sizeof (struct _MidoriPanedActionChild));
-    memset ((void*) &paned_action->child2, 0, sizeof (struct _MidoriPanedActionChild));
-}
-
-static void
-midori_paned_action_finalize (GObject* object)
-{
-    MidoriPanedAction* paned_action = MIDORI_PANED_ACTION (object);
-
-    g_object_unref (G_OBJECT (paned_action->toolitem));
-    g_object_unref (G_OBJECT (paned_action->hpaned));
-    katze_assign (paned_action->child1.name, NULL);
-    katze_assign (paned_action->child2.name, NULL);
-
-    G_OBJECT_CLASS (midori_paned_action_parent_class)->finalize (object);
-}
-
-static void
-midori_paned_action_class_init (MidoriPanedActionClass* class)
-{
-    GObjectClass* gobject_class;
-    GtkActionClass* action_class;
-
-    gobject_class = G_OBJECT_CLASS (class);
-    gobject_class->finalize = midori_paned_action_finalize;
-
-    action_class = GTK_ACTION_CLASS (class);
-    action_class->create_tool_item = midori_paned_action_create_tool_item;
-}
-
-static GtkWidget*
-midori_paned_action_create_tool_item (GtkAction* action)
-{
-    MidoriPanedAction* paned_action = MIDORI_PANED_ACTION (action);
-    GtkWidget* alignment = gtk_alignment_new (0.0f, 0.5f, 1.0f, 0.1f);
-    paned_action->hpaned = gtk_hpaned_new ();
-    paned_action->toolitem = GTK_WIDGET (gtk_tool_item_new ());
-    gtk_tool_item_set_expand (GTK_TOOL_ITEM (paned_action->toolitem), TRUE);
-    gtk_container_add (GTK_CONTAINER (paned_action->toolitem), alignment);
-    gtk_container_add (GTK_CONTAINER (alignment), GTK_WIDGET (paned_action->hpaned));
-
-    gtk_paned_pack1 (GTK_PANED (paned_action->hpaned),
-        paned_action->child1.widget,
-        paned_action->child1.resize,
-        paned_action->child1.shrink);
-    gtk_paned_pack2 (GTK_PANED (paned_action->hpaned),
-        paned_action->child2.widget,
-        paned_action->child2.resize,
-        paned_action->child2.shrink);
-
-    gtk_widget_show_all (GTK_WIDGET (paned_action->toolitem));
-    return paned_action->toolitem;
-}
-
-/**
- * midori_paned_action_set_child1:
- * @paned_action: a #MidoriPanedAction
- * @child1: a #GtkWidget to be added into GtkHPaned container
- * @name: string name for the child2
- * @resize: should child1 expand when the MidoriPanedAction is resized
- * @shrink: can child1 be made smaller than its requisition
- **/
-void
-midori_paned_action_set_child1 (MidoriPanedAction* paned_action,
-                                GtkWidget* child1,
-                                const gchar* name,
-                                gboolean resize,
-                                gboolean shrink)
-{
-    g_return_if_fail (MIDORI_IS_PANED_ACTION (paned_action));
-
-    katze_assign (paned_action->child1.name, g_strdup (name));
-    paned_action->child1.widget = child1;
-    paned_action->child1.resize = resize;
-    paned_action->child1.shrink = shrink;
-}
-
-/**
- * midori_paned_action_set_child1:
- * @paned_action: a #MidoriPanedAction
- * @child2: a #GtkWidget to be added into GtkHPaned container
- * @name: string name for the child2
- * @resize: should child2 expand when the MidoriPanedAction is resized
- * @shrink: can child2 be made smaller than its requisition
- **/
-void
-midori_paned_action_set_child2 (MidoriPanedAction* paned_action,
-                                GtkWidget* child2,
-                                const gchar* name,
-                                gboolean resize,
-                                gboolean shrink)
-{
-    g_return_if_fail (MIDORI_IS_PANED_ACTION (paned_action));
-
-    katze_assign (paned_action->child2.name, g_strdup (name));
-    paned_action->child2.widget = child2;
-    paned_action->child2.resize = resize;
-    paned_action->child2.shrink = shrink;
-}
-
-/**
- * midori_paned_action_get_child1:
- * @paned_action: a #MidoriPanedAction
- *
- * returns the first child held in GtkHPaned container
- **/
-GtkWidget*
-midori_paned_action_get_child1 (MidoriPanedAction* paned_action)
-{
-    g_return_val_if_fail (MIDORI_IS_PANED_ACTION (paned_action), NULL);
-
-    return paned_action->child1.widget;
-}
-
-/**
- * midori_paned_action_get_child1:
- * @paned_action: a #MidoriPanedAction
- *
- * returns the second child held in GtkHPaned container
- **/
-GtkWidget*
-midori_paned_action_get_child2 (MidoriPanedAction* paned_action)
-{
-    g_return_val_if_fail (MIDORI_IS_PANED_ACTION (paned_action), NULL);
-
-    return paned_action->child2.widget;
-}
-
-/**
- * midori_paned_action_get_child1:
- * @paned_action: a #MidoriPanedAction
- * @name: string name for one of the children
- *
- * returns a child specified by its name
- **/
-GtkWidget*
-midori_paned_action_get_child_by_name (MidoriPanedAction* paned_action,
-                                       const gchar* name)
-{
-    g_return_val_if_fail (MIDORI_IS_PANED_ACTION (paned_action), NULL);
-    g_return_val_if_fail (name != NULL, NULL);
-
-    if (g_strcmp0 (name, paned_action->child1.name) == 0)
-        return midori_paned_action_get_child1 (paned_action);
-    else if (g_strcmp0 (name, paned_action->child2.name) == 0)
-        return midori_paned_action_get_child2 (paned_action);
-
-    return NULL;
-}
-
-/**
- * midori_paned_action_get_child1_name:
- * @paned_action a #MidoriPanedAction
- *
- * Returns: The name of the first child
- **/
-const gchar*
-midori_paned_action_get_child1_name (MidoriPanedAction* paned_action)
-{
-    g_return_val_if_fail (MIDORI_IS_PANED_ACTION (paned_action), NULL);
-
-    return paned_action->child1.name;
-}
-
-/**
- * midori_paned_action_get_child2_name:
- * @paned_action a #MidoriPanedAction
- *
- * Returns: The name of the second child
- **/
-const gchar*
-midori_paned_action_get_child2_name (MidoriPanedAction* paned_action)
-{
-    g_return_val_if_fail (MIDORI_IS_PANED_ACTION (paned_action), NULL);
-
-    return paned_action->child2.name;
-}
diff --git a/midori/midori-panedaction.h b/midori/midori-panedaction.h
deleted file mode 100644 (file)
index 5844473..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Copyright (C) 2011 Peter Hatina <phatina@redhat.com>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#ifndef __MIDORI_PANED_ACTION_H__
-#define __MIDORI_PANED_ACTION_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define MIDORI_TYPE_PANED_ACTION \
-    (midori_paned_action_get_type ())
-#define MIDORI_PANED_ACTION(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIDORI_TYPE_PANED_ACTION, MidoriPanedAction))
-#define MIDORI_PANED_ACTION_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_CAST ((klass),  MIDORI_PANED_ACTION, MidoriPanedActionClass))
-#define MIDORI_IS_PANED_ACTION(obj) \
-    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIDORI_TYPE_PANED_ACTION))
-#define MIDORI_IS_PANED_ACTION_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_TYPE ((klass),  MIDORI_TYPE_PANED_ACTION))
-#define MIDORI_PANED_ACTION_GET_CLASS(obj) \
-    (G_TYPE_INSTANCE_GET_CLASS ((obj),  MIDORI_TYPE_PANED_ACTION, MidoriPanedActionClass))
-
-typedef struct _MidoriPanedAction                  MidoriPanedAction;
-typedef struct _MidoriPanedActionClass             MidoriPanedActionClass;
-
-GType
-midori_paned_action_get_type                       (void) G_GNUC_CONST;
-
-void
-midori_paned_action_set_child1                     (MidoriPanedAction* paned_action,
-                                                    GtkWidget* child1,
-                                                    const gchar* name,
-                                                    gboolean resize,
-                                                    gboolean shrink);
-
-void
-midori_paned_action_set_child2                     (MidoriPanedAction* paned_action,
-                                                    GtkWidget* child2,
-                                                    const gchar* name,
-                                                    gboolean resize,
-                                                    gboolean shrink);
-
-GtkWidget*
-midori_paned_action_get_child1                     (MidoriPanedAction* paned_action);
-
-GtkWidget*
-midori_paned_action_get_child2                     (MidoriPanedAction* paned_action);
-
-GtkWidget*
-midori_paned_action_get_child_by_name              (MidoriPanedAction* paned_action,
-                                                    const gchar* name);
-
-const gchar*
-midori_paned_action_get_child1_name                (MidoriPanedAction* paned_action);
-
-const gchar*
-midori_paned_action_get_child2_name                (MidoriPanedAction* paned_action);
-
-G_END_DECLS
-
-#endif // __MIDORI_PANED_ACTION_H__
diff --git a/midori/midori-panedaction.vala b/midori/midori-panedaction.vala
new file mode 100644 (file)
index 0000000..dd7ecde
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ Copyright (C) 2011 Peter Hatina <phatina@redhat.com>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ See the file COPYING for the full license text.
+*/
+
+namespace Midori {
+    public class PanedAction : Gtk.Action {
+        Gtk.HPaned? hpaned = null;
+        Gtk.ToolItem? toolitem = null;
+        Child child1 = new Child();
+        Child child2 = new Child();
+
+        private struct Child {
+            protected Gtk.Widget widget;
+            string name;
+            bool resize;
+            bool shrink;
+        }
+
+        public override unowned Gtk.Widget create_tool_item () {
+            Gtk.Alignment alignment = new Gtk.Alignment (0.0f, 0.5f, 1.0f, 0.1f);
+            hpaned = new Gtk.HPaned ();
+            toolitem = new Gtk.ToolItem ();
+            toolitem.set_expand (true);
+            toolitem.add (alignment);
+            alignment.add (hpaned);
+
+            hpaned.pack1 (child1.widget, child1.resize, child1.shrink);
+            hpaned.pack2 (child2.widget, child2.resize, child2.shrink);
+            toolitem.show_all ();
+            return toolitem;
+        }
+
+        public void set_child1 (Gtk.Widget widget, string name, bool resize, bool shrink) {
+            child1.widget = widget;
+            child1.name = name;
+            child1.resize = resize;
+            child1.shrink = shrink;
+        }
+
+        public void set_child2 (Gtk.Widget widget, string name, bool resize, bool shrink) {
+            child2.widget = widget;
+            child2.name = name;
+            child2.resize = resize;
+            child2.shrink = shrink;
+        }
+
+        public Gtk.Widget? get_child1 () {
+            return child1.widget;
+        }
+
+        public Gtk.Widget? get_child2 () {
+            return child2.widget;
+        }
+
+        public Gtk.Widget? get_child_by_name (string name) {
+            if (name == child1.name)
+                return child1.widget;
+            else if (name == child2.name)
+                return child2.widget;
+            return null;
+        }
+
+        public string get_child1_name () {
+            return child1.name;
+        }
+
+        public string get_child2_name () {
+            return child2.name;
+        }
+    }
+}
+
index e0ee7e693c8424ef51c30a339bab537268c71bdf..4290505e3a2544bf648c7c845f4b33444322efe3 100644 (file)
@@ -18,7 +18,12 @@ if progressive or Options.commands['check']:
     obj.uselib = libs
     obj.add_marshal_file ('marshal.list', 'midori_cclosure_marshal')
     obj.install_path = None
-    obj.packages = 'glib-2.0 gio-2.0 gtk+-2.0 libsoup-2.4 webkit-1.0'
+    obj.vapi_dirs = '../midori ../katze'
+    obj.packages = 'glib-2.0 gio-2.0 libsoup-2.4'
+    if bld.env['HAVE_GTK3']:
+        obj.packages += ' gtk+-3.0 webkitgtk-3.0'
+    else:
+        obj.packages += ' gtk+-2.0 webkit-1.0'
     bld.add_group ()
 
 if progressive: