aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/indicator-sound.c1
-rw-r--r--src/title-menu-item.vala68
-rw-r--r--src/title-widget.c247
-rw-r--r--src/title-widget.h52
4 files changed, 0 insertions, 368 deletions
diff --git a/src/indicator-sound.c b/src/indicator-sound.c
index 8daf06c..4708e0f 100644
--- a/src/indicator-sound.c
+++ b/src/indicator-sound.c
@@ -31,7 +31,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "indicator-sound.h"
#include "transport-widget.h"
#include "metadata-widget.h"
-#include "title-widget.h"
#include "volume-widget.h"
#include "voip-input-widget.h"
#include "dbus-shared-names.h"
diff --git a/src/title-menu-item.vala b/src/title-menu-item.vala
deleted file mode 100644
index 07294fc..0000000
--- a/src/title-menu-item.vala
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-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/>.
-*/
-
-using Dbusmenu;
-using DbusmenuTitle;
-using Gee;
-
-public class TitleMenuitem : PlayerItem
-{
- public TitleMenuitem(PlayerController parent)
- {
- Object(item_type: MENUITEM_TYPE, owner: parent);
- }
-
- construct
- {
- this.property_set(MENUITEM_NAME, this.owner.app_info.get_name());
- this.property_set(MENUITEM_ICON, this.owner.icon_name);
- this.property_set_bool(MENUITEM_RUNNING, false);
- }
-
- public override void handle_event(string name, Variant input_value, uint timestamp)
- {
- if(this.owner.current_state == PlayerController.state.OFFLINE)
- {
- this.owner.instantiate();
- }
- else if(this.owner.current_state == PlayerController.state.CONNECTED){
- this.owner.mpris_bridge.expose();
- }
- }
-
- public void alter_label (string new_title)
- {
- if (new_title == null) return;
- this.property_set (MENUITEM_NAME, new_title);
- }
-
- public void toggle_active_triangle(bool update)
- {
- this.property_set_bool(MENUITEM_RUNNING, update);
- }
-
- public static HashSet<string> attributes_format()
- {
- HashSet<string> attrs = new HashSet<string>();
- attrs.add(MENUITEM_NAME);
- attrs.add(MENUITEM_RUNNING);
- attrs.add(MENUITEM_ICON);
- return attrs;
- }
-} \ No newline at end of file
diff --git a/src/title-widget.c b/src/title-widget.c
deleted file mode 100644
index e463582..0000000
--- a/src/title-widget.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
-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 "title-widget.h"
-#include "common-defs.h"
-#include <gtk/gtk.h>
-#include <libindicator/indicator-image-helper.h>
-
-
-typedef struct _TitleWidgetPrivate TitleWidgetPrivate;
-
-struct _TitleWidgetPrivate
-{
- DbusmenuMenuitem* twin_item;
-};
-
-#define TITLE_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TITLE_WIDGET_TYPE, TitleWidgetPrivate))
-
-/* Prototypes */
-static void title_widget_class_init (TitleWidgetClass *klass);
-static void title_widget_init (TitleWidget *self);
-static void title_widget_dispose (GObject *object);
-static void title_widget_finalize (GObject *object);
-
-// keyevent consumers
-static gboolean title_widget_button_release_event (GtkWidget *menuitem,
- GdkEventButton *event);
-
-// Dbusmenuitem properties update callback
-static void title_widget_property_update(DbusmenuMenuitem* item, gchar* property,
- GVariant* value, gpointer userdata);
-static void title_widget_set_twin_item( TitleWidget* self,
- DbusmenuMenuitem* twin_item);
-static gboolean title_widget_triangle_draw_cb (GtkWidget *widget,
- GdkEventExpose *event,
- gpointer data);
-
-G_DEFINE_TYPE (TitleWidget, title_widget, GTK_TYPE_IMAGE_MENU_ITEM);
-
-static void
-title_widget_class_init (TitleWidgetClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- widget_class->button_release_event = title_widget_button_release_event;
-
- g_type_class_add_private (klass, sizeof (TitleWidgetPrivate));
-
- gobject_class->dispose = title_widget_dispose;
- gobject_class->finalize = title_widget_finalize;
-}
-
-static void
-title_widget_init (TitleWidget *self)
-{
- //g_debug("TitleWidget::title_widget_init");
-}
-
-static void
-title_widget_set_icon(TitleWidget *self)
-{
- TitleWidgetPrivate *priv = TITLE_WIDGET_GET_PRIVATE(self);
-
- gint padding = 0;
- gtk_widget_style_get(GTK_WIDGET(self), "horizontal-padding", &padding, NULL);
- gint width, height;
- gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height);
-
- GString* banshee_string = g_string_new ( "banshee" );
- GString* app_panel = g_string_new ( g_utf8_strdown ( dbusmenu_menuitem_property_get(priv->twin_item, DBUSMENU_TITLE_MENUITEM_NAME),
- -1 ));
- GtkWidget * icon = NULL;
-
- // Not ideal but apparently we want the banshee icon to be the greyscale one
- // and any others to be the icon from the desktop file => colour.
- if ( g_string_equal ( banshee_string, app_panel ) == TRUE &&
- gtk_icon_theme_has_icon ( gtk_icon_theme_get_default(), app_panel->str ) ){
- g_string_append ( app_panel, "-panel" );
- icon = gtk_image_new_from_icon_name ( app_panel->str,
- GTK_ICON_SIZE_MENU );
- }
- else{
- icon = gtk_image_new_from_icon_name ( g_strdup (dbusmenu_menuitem_property_get ( priv->twin_item, DBUSMENU_TITLE_MENUITEM_ICON )),
- GTK_ICON_SIZE_MENU );
- }
- g_string_free ( app_panel, FALSE) ;
- g_string_free ( banshee_string, FALSE) ;
-
- gtk_widget_set_size_request(icon, width
- + 5 /* ref triangle is 5x9 pixels */
- + 1 /* padding */,
- height);
- gtk_misc_set_alignment(GTK_MISC(icon), 0.5 /* right aligned */, 0);
- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(self), GTK_WIDGET(icon));
- gtk_widget_show(icon);
-}
-
-static void
-title_widget_dispose (GObject *object)
-{
- G_OBJECT_CLASS (title_widget_parent_class)->dispose (object);
-}
-
-static void
-title_widget_finalize (GObject *object)
-{
- G_OBJECT_CLASS (title_widget_parent_class)->finalize (object);
-}
-
-/* Suppress/consume keyevents */
-static gboolean
-title_widget_button_release_event (GtkWidget *menuitem,
- GdkEventButton *event)
-{
- //g_debug("TitleWidget::menu_press_event");
- TitleWidgetPrivate * priv = TITLE_WIDGET_GET_PRIVATE(menuitem);
-
- GVariant* new_title_event = g_variant_new_boolean(TRUE);
- dbusmenu_menuitem_handle_event (priv->twin_item,
- "Title menu event",
- new_title_event,
- 0);
- return FALSE;
-}
-
-static void
-title_widget_property_update (DbusmenuMenuitem* item, gchar* property,
- GVariant* value, gpointer userdata)
-{
- g_return_if_fail (IS_TITLE_WIDGET (userdata));
- TitleWidget* mitem = TITLE_WIDGET(userdata);
- if(g_ascii_strcasecmp(DBUSMENU_TITLE_MENUITEM_NAME, property) == 0){
- gtk_menu_item_set_label (GTK_MENU_ITEM(mitem),
- g_variant_get_string(value, NULL));
- }
- else if(g_ascii_strcasecmp(DBUSMENU_TITLE_MENUITEM_ICON, property) == 0){
- title_widget_set_icon (mitem);
- }
-}
-
-static void
-title_widget_set_twin_item(TitleWidget* self,
- DbusmenuMenuitem* twin_item)
-{
- TitleWidgetPrivate *priv = TITLE_WIDGET_GET_PRIVATE(self);
-
- priv->twin_item = twin_item;
-
- g_signal_connect (G_OBJECT (twin_item),
- "property-changed",
- G_CALLBACK (title_widget_property_update),
- self);
- g_signal_connect_after (G_OBJECT (self),
- "expose_event",
- G_CALLBACK (title_widget_triangle_draw_cb),
- twin_item);
-
- gtk_menu_item_set_label (GTK_MENU_ITEM(self),
- dbusmenu_menuitem_property_get(priv->twin_item,
- DBUSMENU_TITLE_MENUITEM_NAME));
- title_widget_set_icon(self);
-}
-
-static gboolean
-title_widget_triangle_draw_cb (GtkWidget *widget, GdkEventExpose *event, gpointer data)
-{
- GtkStyle *style;
- cairo_t *cr;
- int x, y, arrow_width, arrow_height;
-
- if (!GTK_IS_WIDGET (widget)) return FALSE;
- if (!DBUSMENU_IS_MENUITEM (data)) return FALSE;
-
- /* render the triangle indicator only if the application is running */
- if (! dbusmenu_menuitem_property_get_bool (DBUSMENU_MENUITEM(data),
- DBUSMENU_TITLE_MENUITEM_RUNNING)){
- return FALSE;
- }
-
- /* get style */
- style = gtk_widget_get_style (widget);
-
- /* set arrow position / dimensions */
- arrow_width = 5; /* the pixel-based reference triangle is 5x9 */
- arrow_height = 9;
- x = widget->allocation.x;
- y = widget->allocation.y + widget->allocation.height/2.0 - (double)arrow_height/2.0;
-
- /* initialize cairo drawing area */
- cr = (cairo_t*) gdk_cairo_create (widget->window);
-
- /* set line width */
- cairo_set_line_width (cr, 1.0);
-
- /* cairo drawing code */
- cairo_move_to (cr, x, y);
- cairo_line_to (cr, x, y + arrow_height);
- cairo_line_to (cr, x + arrow_width, y + (double)arrow_height/2.0);
- cairo_close_path (cr);
- cairo_set_source_rgb (cr, style->fg[gtk_widget_get_state(widget)].red/65535.0,
- style->fg[gtk_widget_get_state(widget)].green/65535.0,
- style->fg[gtk_widget_get_state(widget)].blue/65535.0);
- cairo_fill (cr);
-
- /* remember to destroy cairo context to avoid leaks */
- cairo_destroy (cr);
-
- return FALSE;
-}
-
- /**
- * transport_new:
- * @returns: a new #TitleWidget.
- **/
-GtkWidget*
-title_widget_new(DbusmenuMenuitem *item)
-{
- GtkWidget* widget = g_object_new (TITLE_WIDGET_TYPE,
- NULL);
- gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (widget), TRUE);
- title_widget_set_twin_item((TitleWidget*)widget, item);
-
- return widget;
-}
-
diff --git a/src/title-widget.h b/src/title-widget.h
deleted file mode 100644
index 2be904a..0000000
--- a/src/title-widget.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-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 __TITLE_WIDGET_H__
-#define __TITLE_WIDGET_H__
-
-#include <gtk/gtkimagemenuitem.h>
-#include <libdbusmenu-glib/menuitem.h>
-
-
-G_BEGIN_DECLS
-
-#define TITLE_WIDGET_TYPE (title_widget_get_type ())
-#define TITLE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TITLE_WIDGET_TYPE, TitleWidget))
-#define TITLE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TITLE_WIDGET_TYPE, TitleWidgetClass))
-#define IS_TITLE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TITLE_WIDGET_TYPE))
-#define IS_TITLE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TITLE_WIDGET_TYPE))
-#define TITLE_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TITLE_WIDGET_TYPE, TitleWidgetClass))
-
-typedef struct _TitleWidget TitleWidget;
-typedef struct _TitleWidgetClass TitleWidgetClass;
-
-struct _TitleWidgetClass {
- GtkImageMenuItemClass parent_class;
-};
-
-struct _TitleWidget {
- GtkImageMenuItem parent;
-};
-
-GType title_widget_get_type (void);
-GtkWidget* title_widget_new(DbusmenuMenuitem *twin_item);
-
-G_END_DECLS
-
-#endif
-