[Xfce4-commits] <midori:master> Rewrite Midori.PanedAction in Vala
Christian Dywan
noreply at xfce.org
Sun May 27 15:14:01 CEST 2012
Updating branch refs/heads/master
to 85153f3b49875fd7f1ff5c462b441a14473bef64 (commit)
from cece70cc685deec067898ca7dcd5658d7909bc69 (commit)
commit 85153f3b49875fd7f1ff5c462b441a14473bef64
Author: Christian Dywan <christian at twotoasts.de>
Date: Sun May 27 15:08:23 2012 +0200
Rewrite Midori.PanedAction in Vala
Also fix errors in the build.
extensions/wscript_build | 4 +-
midori/midori-browser.c | 1 -
midori/midori-panedaction.c | 227 ----------------------------------------
midori/midori-panedaction.h | 70 ------------
midori/midori-panedaction.vala | 79 ++++++++++++++
midori/wscript_build | 7 +-
6 files changed, 87 insertions(+), 301 deletions(-)
diff --git a/extensions/wscript_build b/extensions/wscript_build
index b4031ee..152d820 100644
--- a/extensions/wscript_build
+++ b/extensions/wscript_build
@@ -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:
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index d30fc1c..22d74f5 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -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
index e858b8a..0000000
--- a/midori/midori-panedaction.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- Copyright (C) 2011 Peter Hatina <phatina at 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
index 5844473..0000000
--- a/midori/midori-panedaction.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- Copyright (C) 2011 Peter Hatina <phatina at 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
index 0000000..dd7ecde
--- /dev/null
+++ b/midori/midori-panedaction.vala
@@ -0,0 +1,79 @@
+/*
+ Copyright (C) 2011 Peter Hatina <phatina at 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;
+ }
+ }
+}
+
diff --git a/midori/wscript_build b/midori/wscript_build
index e0ee7e6..4290505 100644
--- a/midori/wscript_build
+++ b/midori/wscript_build
@@ -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:
More information about the Xfce4-commits
mailing list