diff options
author | Conor Curran <conor.curran@canonical.com> | 2010-06-28 17:54:39 +0100 |
---|---|---|
committer | Conor Curran <conor.curran@canonical.com> | 2010-06-28 17:54:39 +0100 |
commit | 33395ee8bff3e3d4b42bc40823eb9efe88f1611d (patch) | |
tree | deae1f8e0fb1d5fa557b193f0e0fc51aeee3450d | |
parent | 574e1ce1c2a021eabcbe3122f0e2d5845f3293f0 (diff) | |
download | ayatana-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.c | 100 | ||||
-rw-r--r-- | src/play-button.h | 48 | ||||
-rw-r--r-- | src/transport-widget.c | 4 |
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 { |