static void cairo_main_icon_constructed (GObject *object) { CairoMainIconPrivate * priv = GET_PRIVATE (object); GdkPixbuf * pbuf; gint size = awn_applet_get_size (priv->applet); G_OBJECT_CLASS (cairo_main_icon_parent_class)->constructed (object); awn_themed_icon_set_info_simple (AWN_THEMED_ICON(object),"cairo-menu",awn_applet_get_uid (priv->applet),"gnome-main-menu"); awn_themed_icon_set_size (AWN_THEMED_ICON (object),size); gtk_drag_dest_set (GTK_WIDGET (object), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, drop_types, n_drop_types, GDK_ACTION_COPY | GDK_ACTION_ASK); /* call our function in the module */ priv->menu_instance = get_menu_instance (priv->applet, (GetRunCmdFunc)cairo_menu_applet_get_run_cmd, (GetSearchCmdFunc)cairo_menu_applet_get_search_cmd, (AddIconFunc) cairo_menu_applet_add_icon, (CheckMenuHiddenFunc) cairo_menu_applet_check_hidden_menu, NULL, 0); g_idle_add ( (GSourceFunc)queue_menu_build, object); awn_icon_set_tooltip_text (AWN_ICON (object), _("Main Menu")); }
void awn_applet_simple_set_icon_info (AwnAppletSimple *applet, GStrv states, GStrv icon_names) { gchar *applet_name=NULL; g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet)); g_return_if_fail (states); g_return_if_fail (icon_names); g_object_get (applet, "canonical-name",&applet_name, NULL); g_return_if_fail (applet_name); applet->priv->last_set_icon = ICON_THEMED_MANY; awn_themed_icon_set_size (AWN_THEMED_ICON (applet->priv->icon), awn_applet_get_size (AWN_APPLET (applet))); awn_themed_icon_set_info (AWN_THEMED_ICON (applet->priv->icon), applet_name, awn_applet_get_uid (AWN_APPLET (applet)), states, icon_names); g_free (applet_name); }
static void size_changed_cb (CairoMainIcon * icon,gint size) { CairoMainIconPrivate * priv = GET_PRIVATE (icon); awn_themed_icon_set_size (AWN_THEMED_ICON (icon),awn_applet_get_size (priv->applet)); }
static gboolean _button_clicked_event (CairoMainIcon *icon, GdkEventButton *event, gpointer null) { g_return_val_if_fail (AWN_IS_CAIRO_MAIN_ICON(icon), FALSE); CairoMainIconPrivate * priv = GET_PRIVATE (icon); if (event->button == 1) { awn_icon_popup_gtk_menu (AWN_ICON (icon), priv->menu, event->button, event->time); if (!priv->autohide_cookie) { priv->autohide_cookie = awn_applet_inhibit_autohide (AWN_APPLET(priv->applet),"CairoMenu" ); } g_object_set(awn_overlayable_get_effects (AWN_OVERLAYABLE(icon)), "depressed", FALSE,NULL); } else if (event->button == 3) { GtkWidget * item; if (!priv->context_menu) { priv->context_menu = awn_applet_create_default_menu (AWN_APPLET(priv->applet)); gtk_menu_set_screen(GTK_MENU(priv->context_menu), NULL); item = awn_themed_icon_create_remove_custom_icon_item (AWN_THEMED_ICON(icon),NULL); gtk_menu_shell_append (GTK_MENU_SHELL(priv->context_menu), item); /* item = gtk_image_menu_item_new_with_label("Applet Preferences"); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(item), gtk_image_new_from_stock (GTK_STOCK_PREFERENCES,GTK_ICON_SIZE_MENU)); gtk_widget_show(item); gtk_menu_shell_append(GTK_MENU_SHELL(priv->context_menu), item); */ // g_signal_connect(G_OBJECT(item), "button-press-event", G_CALLBACK(_show_prefs), NULL); item=awn_applet_create_about_item_simple(AWN_APPLET(priv->applet), "Copyright 2007,2008, 2009 Rodney Cryderman <*****@*****.**>", AWN_APPLET_LICENSE_GPLV2, VERSION); gtk_menu_shell_append(GTK_MENU_SHELL(priv->context_menu), item); g_signal_connect(G_OBJECT(priv->context_menu), "deactivate", G_CALLBACK(_deactivate_event), icon); } if (!priv->autohide_cookie) { priv->autohide_cookie = awn_applet_inhibit_autohide (AWN_APPLET(priv->applet),"CairoMenu" ); } awn_icon_popup_gtk_menu (AWN_ICON (icon), priv->context_menu, event->button, event->time); g_object_set(awn_overlayable_get_effects (AWN_OVERLAYABLE(icon)), "depressed", FALSE,NULL); awn_utils_show_menu_images (GTK_MENU (priv->context_menu)); } else { return TRUE; } awn_icon_set_is_active (AWN_ICON(icon), TRUE); return TRUE; }
void awn_applet_simple_set_icon_state (AwnAppletSimple *applet, const gchar *state) { g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet)); g_return_if_fail (state); if (applet->priv->last_set_icon == ICON_THEMED_MANY) awn_themed_icon_set_state (AWN_THEMED_ICON (applet->priv->icon), state); }
static void awn_applet_simple_size_changed (AwnApplet *applet, gint size) { AwnAppletSimplePrivate *priv = AWN_APPLET_SIMPLE (applet)->priv; if (!AWN_IS_ICON (priv->icon)) return; if (priv->last_set_icon == ICON_THEMED_SIMPLE || priv->last_set_icon == ICON_THEMED_MANY) awn_themed_icon_set_size (AWN_THEMED_ICON (priv->icon), size); awn_applet_simple_position_changed (applet, awn_applet_get_pos_type (applet)); }
void awn_applet_simple_set_icon_name (AwnAppletSimple *applet, const gchar *icon_name) { gchar *applet_name; g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet)); g_return_if_fail (icon_name); g_object_get (applet, "canonical-name",&applet_name, NULL); g_return_if_fail (applet_name); applet->priv->last_set_icon = ICON_THEMED_SIMPLE; awn_themed_icon_set_size (AWN_THEMED_ICON (applet->priv->icon), awn_applet_get_size (AWN_APPLET (applet))); awn_themed_icon_set_info_simple (AWN_THEMED_ICON (applet->priv->icon), applet_name, awn_applet_get_uid (AWN_APPLET (applet)), icon_name); g_free (applet_name); }
void awn_applet_simple_set_icon_surface (AwnAppletSimple *applet, cairo_surface_t *surface) { AwnAppletSimplePrivate *priv; g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet)); g_return_if_fail (surface); priv = applet->priv; /* Make sure AwnThemedIcon doesn't update the icon of it's own accord */ if (priv->last_set_icon == ICON_THEMED_SIMPLE || priv->last_set_icon == ICON_THEMED_MANY) awn_themed_icon_clear_info (AWN_THEMED_ICON (priv->icon)); priv->last_set_icon = ICON_CAIRO; awn_icon_set_from_surface (AWN_ICON (priv->icon), surface); }
/* * PUBLIC FUNCTIONS */ void awn_applet_simple_set_icon_pixbuf (AwnAppletSimple *applet, GdkPixbuf *pixbuf) { AwnAppletSimplePrivate *priv; g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet)); g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); priv = applet->priv; /* Make sure AwnThemedIcon doesn't update the icon of it's own accord */ if (priv->last_set_icon == ICON_THEMED_SIMPLE || priv->last_set_icon == ICON_THEMED_MANY) awn_themed_icon_clear_info (AWN_THEMED_ICON (priv->icon)); priv->last_set_icon = ICON_PIXBUF; awn_icon_set_from_pixbuf (AWN_ICON (priv->icon), pixbuf); }