aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2010-06-28 17:54:39 +0100
committerConor Curran <conor.curran@canonical.com>2010-06-28 17:54:39 +0100
commit33395ee8bff3e3d4b42bc40823eb9efe88f1611d (patch)
treedeae1f8e0fb1d5fa557b193f0e0fc51aeee3450d
parent574e1ce1c2a021eabcbe3122f0e2d5845f3293f0 (diff)
downloadayatana-indicator-sound-33395ee8bff3e3d4b42bc40823eb9efe88f1611d.tar.gz
ayatana-indicator-sound-33395ee8bff3e3d4b42bc40823eb9efe88f1611d.tar.bz2
ayatana-indicator-sound-33395ee8bff3e3d4b42bc40823eb9efe88f1611d.zip
new playbutton for cairo drawing
-rw-r--r--src/play-button.c100
-rw-r--r--src/play-button.h48
-rw-r--r--src/transport-widget.c4
3 files changed, 150 insertions, 2 deletions
diff --git a/src/play-button.c b/src/play-button.c
new file mode 100644
index 0000000..ab441ea
--- /dev/null
+++ b/src/play-button.c
@@ -0,0 +1,100 @@
+/*
+Copyright 2010 Canonical Ltd.
+
+Authors:
+ Conor Curran <conor.curran@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 3, as published
+by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib/gi18n.h>
+#include "play-button.h"
+#include "common-defs.h"
+#include <gtk/gtk.h>
+
+
+typedef struct _PlayButtonPrivate PlayButtonPrivate;
+
+struct _PlayButtonPrivate
+{
+
+};
+
+#define PLAY_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLAY_BUTTON_TYPE, PlayButtonPrivate))
+
+/* Gobject boiler plate */
+static void play_button_class_init (PlayButtonClass *klass);
+static void play_button_init (PlayButton *self);
+static void play_button_dispose (GObject *object);
+static void play_button_finalize (GObject *object);
+
+static gboolean play_button_expose (GtkWidget *button, GdkEventExpose *event);
+
+G_DEFINE_TYPE (PlayButton, play_button, GTK_TYPE_DRAWING_AREA);
+
+
+static void
+play_button_class_init (PlayButtonClass *klass)
+{
+ g_type_class_add_private (klass, sizeof (PlayButtonPrivate));
+ GtkWidgetClass* widget_class;
+
+ widget_class = GTK_WIDGET_CLASS (klass);
+
+ widget_class->expose_event = play_button_expose;
+
+ gobject_class->dispose = play_button_dispose;
+ gobject_class->finalize = play_button_finalize;
+
+}
+
+static void
+play_button_init (PlayButton *self)
+{
+ g_debug("PlayButton::play_button_init");
+}
+
+static void
+play_button_dispose (GObject *object)
+{
+ G_OBJECT_CLASS (play_button_parent_class)->dispose (object);
+}
+
+static void
+play_button_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (play_button_parent_class)->finalize (object);
+}
+
+static gboolean
+play_button_expose (GtkWidget *button, GdkEventExpose *event)
+{
+return FALSE;
+}
+
+
+
+/**
+* play_button_new:
+* @returns: a new #PlayButton.
+**/
+GtkWidget*
+play_button_new()
+{
+ return g_object_new(PLAY_BUTTON_TYPE, NULL);
+}
+
diff --git a/src/play-button.h b/src/play-button.h
new file mode 100644
index 0000000..a1e18f7
--- /dev/null
+++ b/src/play-button.h
@@ -0,0 +1,48 @@
+/*
+Copyright 2010 Canonical Ltd.
+
+Authors:
+ Conor Curran <conor.curran@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 3, as published
+by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef __PLAY_BUTTON_H__
+#define __PLAY_BUTTON_H__
+
+G_BEGIN_DECLS
+
+#define PLAY_BUTTON_TYPE (play_button_get_type ())
+#define PLAY_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLAY_BUTTON_TYPE, PlayButton))
+#define PLAY_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLAY_BUTTON_TYPE, PlayButtonClass))
+#define IS_PLAY_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLAY_BUTTON_TYPE))
+#define IS_PLAY_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLAY_BUTTON_TYPE))
+#define PLAY_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLAY_BUTTON_TYPE, PlayButtonClass))
+
+typedef struct _PlayButton PlayButton;
+typedef struct _PlayButtonClass PlayButtonClass;
+
+struct _PlayButtonClass {
+ GtkDrawingAreaClass parent_class;
+};
+
+struct _PlayButton {
+ GtkDrawingArea parent;
+};
+
+GType play_button_get_type (void);
+GtkWidget* play_button_new();
+
+G_END_DECLS
+
+#endif
+
diff --git a/src/transport-widget.c b/src/transport-widget.c
index bc9df53..a86e37b 100644
--- a/src/transport-widget.c
+++ b/src/transport-widget.c
@@ -34,8 +34,8 @@ typedef struct _TransportWidgetPrivate TransportWidgetPrivate;
struct _TransportWidgetPrivate
{
- GtkWidget* hbox;
- GtkWidget* play_button;
+ //GtkWidget* hbox;
+ //GtkWidget* play_button;
};
enum {