コード例 #1
0
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"));
}
コード例 #2
0
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);
}
コード例 #3
0
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));
}
コード例 #4
0
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;
}
コード例 #5
0
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);
}
コード例 #6
0
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));
}
コード例 #7
0
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);
}
コード例 #8
0
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);
}
コード例 #9
0
/*
 * 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);
}