Ejemplo n.º 1
0
/* Startup calls and initializations */
static void clipit_init() {
	/* Create clipboard */
	primary = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
	clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
	g_timeout_add(CHECK_INTERVAL, item_check, NULL);

	/* Read preferences */
	read_preferences();

	/* Read history */
	if (prefs.save_history)
		read_history();

	/* Bind global keys */
	keybinder_init();
	keybinder_bind(prefs.history_key, history_hotkey, NULL);
	keybinder_bind(prefs.actions_key, actions_hotkey, NULL);
	keybinder_bind(prefs.menu_key, menu_hotkey, NULL);
	keybinder_bind(prefs.search_key, search_hotkey, NULL);
	keybinder_bind(prefs.offline_key, offline_hotkey, NULL);

	/* Create status icon */
	if (!prefs.no_icon)
	{
#ifdef HAVE_APPINDICATOR
	create_app_indicator(1);
#else
	status_icon = gtk_status_icon_new_from_icon_name("clipit-trayicon");
	gtk_status_icon_set_tooltip((GtkStatusIcon*)status_icon, _("Clipboard Manager"));
	g_signal_connect((GObject*)status_icon, "button_press_event", (GCallback)status_icon_clicked, NULL);
#endif
	}
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
    GtkWidget *item;
    GtkMenuShell *menu;

    gtk_init(&argc, &argv);

    /* Status icon */
    status_icon = gtk_status_icon_new_from_icon_name(LOGO_ICON);
    gtk_status_icon_set_visible(status_icon, TRUE);

    g_signal_connect(G_OBJECT(status_icon), "button_press_event",
        G_CALLBACK(status_icon_on_button_press), NULL);

    /* App menu */
    app_menu = gtk_menu_new();
    menu = GTK_MENU_SHELL(app_menu);

    /* Story items */
    for (guint i = 0; i < MAX_STORIES; i++) {
        menu_init_item(&stories[i]);
    }

    /* Settings menu */
    settings_menu = gtk_menu_new();
    menu = GTK_MENU_SHELL(settings_menu);

    /* Refresh */
    item = gtk_menu_item_new_with_mnemonic(_("_Refresh"));
    gpointer immediate = GINT_TO_POINTER(FALSE);
    g_signal_connect(item, "activate", G_CALLBACK(refresh_stories), immediate);
    gtk_menu_shell_append(menu, item);

    gtk_menu_shell_append(menu, gtk_separator_menu_item_new());

    /* About */
    item = gtk_menu_item_new_with_mnemonic(_("_About"));
    g_signal_connect(item, "activate", G_CALLBACK(menu_on_about), NULL);
    gtk_menu_shell_append(menu, item);

    /* Quit */
    item = gtk_menu_item_new_with_mnemonic(_("_Quit"));
    g_signal_connect(item, "activate", G_CALLBACK(gtk_main_quit), NULL);
    gtk_menu_shell_append(menu, item);

    gtk_widget_show_all(app_menu);
    gtk_widget_show_all(settings_menu);

    if (!(gmulticurl = gmulticurl_new()))
        g_warning("gmulticurl init error");

    gtk_main();

    if (gmulticurl_cleanup(gmulticurl))
        g_warning("gmulticurl init error");

    return 0;
}
Ejemplo n.º 3
0
void remmina_icon_init(void)
{
	if (!remmina_icon.icon && !remmina_pref.disable_tray_icon)
	{
#ifdef HAVE_LIBAPPINDICATOR
		remmina_icon.icon = app_indicator_new ("remmina-icon", "remmina", APP_INDICATOR_CATEGORY_OTHER);
		app_indicator_set_icon_theme_path (remmina_icon.icon, REMMINA_DATADIR G_DIR_SEPARATOR_S "icons");

		app_indicator_set_status (remmina_icon.icon, APP_INDICATOR_STATUS_ACTIVE);
		app_indicator_set_title (remmina_icon.icon, "Remmina");
		remmina_icon_populate_menu ();
#else
		remmina_icon.icon = gtk_status_icon_new_from_icon_name("remmina");

		gtk_status_icon_set_title(remmina_icon.icon, _("Remmina Remote Desktop Client"));
		gtk_status_icon_set_tooltip_text(remmina_icon.icon, _("Remmina Remote Desktop Client"));

		g_signal_connect(G_OBJECT(remmina_icon.icon), "popup-menu", G_CALLBACK(remmina_icon_on_popup_menu), NULL);
		g_signal_connect(G_OBJECT(remmina_icon.icon), "activate", G_CALLBACK(remmina_icon_on_activate), NULL);
#endif
		remmina_widget_pool_hold(TRUE);
	}
	else
		if (remmina_icon.icon)
		{
#ifdef HAVE_LIBAPPINDICATOR
			app_indicator_set_status (remmina_icon.icon, remmina_pref.disable_tray_icon ?
					APP_INDICATOR_STATUS_PASSIVE : APP_INDICATOR_STATUS_ACTIVE);
#else
			gtk_status_icon_set_visible(remmina_icon.icon, !remmina_pref.disable_tray_icon);
#endif
			remmina_widget_pool_hold(!remmina_pref.disable_tray_icon);
		}
	if (!remmina_icon.avahi)
	{
		remmina_icon.avahi = remmina_avahi_new();
	}
	if (remmina_icon.avahi)
	{
		if (remmina_pref.applet_enable_avahi)
		{
			if (!remmina_icon.avahi->started)
				remmina_avahi_start(remmina_icon.avahi);
		}
		else
		{
			remmina_avahi_stop(remmina_icon.avahi);
		}
	}
	if (!remmina_icon.autostart_file)
	{
		remmina_icon.autostart_file = g_strdup_printf("%s/.config/autostart/remmina-applet.desktop", g_get_home_dir());
		remmina_icon_create_autostart_file();
	}
}
Ejemplo n.º 4
0
int main(void)
{
	gtk_init(0, 0);
	// Status icon
	GtkStatusIcon *status_icon = gtk_status_icon_new_from_icon_name("exit");
	g_signal_connect(status_icon, "button-press-event", G_CALLBACK(on_button_press), 0);

	// main loop
	gtk_main();
	return 0;
}
Ejemplo n.º 5
0
static GtkStatusIcon *si_create(void)
{
    GtkStatusIcon *icon;
    GtkIconTheme *theme;

    theme = gtk_icon_theme_get_default();

    if (gtk_icon_theme_has_icon(theme, "audacious-panel"))
        icon = gtk_status_icon_new_from_icon_name("audacious-panel");
    else if (gtk_icon_theme_has_icon(theme, "audacious"))
        icon = gtk_status_icon_new_from_icon_name("audacious");
    else
    {
        gchar * path = g_strdup_printf ("%s/images/audacious.png",
         aud_get_path (AUD_PATH_DATA_DIR));
        icon = gtk_status_icon_new_from_file (path);
        g_free (path);
    }

    return icon;
}
Ejemplo n.º 6
0
void display_status_icon ()
{
    status_icon = gtk_status_icon_new_from_icon_name ("fortuner");
    gtk_status_icon_set_visible (status_icon, TRUE); 

    gtk_status_icon_set_tooltip_text (status_icon, "Fortuner");

    // Connect signals
    g_signal_connect (G_OBJECT (status_icon), "popup-menu",
              G_CALLBACK (popup_menu), NULL);

    g_signal_connect (G_OBJECT (status_icon), "activate",
              G_CALLBACK (activate), NULL);
}
static void
thunar_progress_dialog_shown (ThunarProgressDialog *dialog)
{
  _thunar_return_if_fail (THUNAR_IS_PROGRESS_DIALOG (dialog));

  /* show the status icon */
  if (dialog->status_icon == NULL)
    {
      dialog->status_icon = gtk_status_icon_new_from_icon_name ("stock_folder-copy");
      thunar_progress_dialog_update_status_icon (dialog);
      g_signal_connect_swapped (dialog->status_icon, "button-press-event",
                                G_CALLBACK (thunar_progress_dialog_toggled),
                                GTK_WIDGET (dialog));
    }
}
Ejemplo n.º 8
0
GtkStatusIcon *init_notification(void)
{
	notify_init("bluetooth-manager");

	statusicon = gtk_status_icon_new_from_icon_name(icon_name);
	gtk_status_icon_set_title (GTK_STATUS_ICON (statusicon),
				   _("Bluetooth"));
	gtk_status_icon_set_tooltip_markup(statusicon, tooltip);

	/* XXX: Make sure the status icon is actually shown */
	gtk_status_icon_set_visible(statusicon, FALSE);
	gtk_status_icon_set_visible(statusicon, TRUE);

	return statusicon;
}
Ejemplo n.º 9
0
int main(int argc, char *argv[])
{
    GtkWidget *item;
    GtkMenuShell *menu;
    GError *error = NULL;

    if (!gtk_init_with_args(&argc, &argv, NULL, NULL, NULL, &error)) {
        fprintf(stderr, "gtk init: %s\n", error->message);
        g_error_free(error);
        return 1;
    }

    /* Status icon */
    status_icon = gtk_status_icon_new_from_icon_name(LOGO_ICON);
    gtk_status_icon_set_visible(status_icon, TRUE);

    g_signal_connect(G_OBJECT(status_icon), "button_press_event",
        G_CALLBACK(status_icon_on_button_press), NULL);

    /* App menu */
    app_menu = gtk_menu_new();
    menu = GTK_MENU_SHELL(app_menu);

    /* Settings menu */
    settings_menu = gtk_menu_new();
    menu = GTK_MENU_SHELL(settings_menu);

    /* About */
    item = gtk_menu_item_new_with_mnemonic(_("_About"));
    g_signal_connect(item, "activate", G_CALLBACK(menu_on_about), NULL);
    gtk_menu_shell_append(menu, item);

    /* Quit */
    item = gtk_menu_item_new_with_mnemonic(_("_Quit"));
    g_signal_connect(item, "activate", G_CALLBACK(menu_on_quit), NULL);

    gtk_menu_shell_append(menu, item);

    init_xcb();

    gtk_widget_show_all(app_menu);
    gtk_widget_show_all(settings_menu);

    gtk_main();

    return 0;
}
Ejemplo n.º 10
0
static GtkWidget *
get_progress_window (void)
{
    static GtkWidget *progress_window = NULL;
    GtkWidget *vbox;

    if (progress_window != NULL)
    {
        return progress_window;
    }

    progress_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_resizable (GTK_WINDOW (progress_window),
                              FALSE);
    gtk_container_set_border_width (GTK_CONTAINER (progress_window), 10);

    gtk_window_set_title (GTK_WINDOW (progress_window),
                          _("File Operations"));
    gtk_window_set_wmclass (GTK_WINDOW (progress_window),
                            "file_progress", "Caja");
    gtk_window_set_position (GTK_WINDOW (progress_window),
                             GTK_WIN_POS_CENTER);
    gtk_window_set_icon_name (GTK_WINDOW (progress_window),
                              "system-file-manager");

    vbox = gtk_vbox_new (FALSE, 0);
    gtk_box_set_spacing (GTK_BOX (vbox), 5);

    gtk_container_add (GTK_CONTAINER (progress_window),
                       vbox);

    gtk_widget_show_all (progress_window);

    g_signal_connect (progress_window,
                      "delete_event",
                      (GCallback)delete_event, NULL);

    status_icon = gtk_status_icon_new_from_icon_name ("system-file-manager");
    g_signal_connect (status_icon, "activate",
                      (GCallback)status_icon_activate_cb,
                      progress_window);

    gtk_status_icon_set_visible (status_icon, FALSE);

    return progress_window;
}
Ejemplo n.º 11
0
int
main(int argc, char *argv[])
{
	DHCPCD_CONNECTION *con;

	setlocale(LC_ALL, "");
	bindtextdomain(PACKAGE, NULL);
	bind_textdomain_codeset(PACKAGE, "UTF-8");
	textdomain(PACKAGE);

	gtk_init(&argc, &argv);
	g_set_application_name("Network Configurator");
	gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(),
	    ICONDIR);
	status_icon = gtk_status_icon_new_from_icon_name("network-offline");

	gtk_status_icon_set_tooltip_text(status_icon,
	    _("Connecting to dhcpcd ..."));
	gtk_status_icon_set_visible(status_icon, true);
	online = false;
#ifdef NOTIFY
	notify_init(PACKAGE);
#endif

	g_message(_("Connecting ..."));
	con = dhcpcd_new();
	if (con ==  NULL) {
		g_critical("libdhcpcd: %s", strerror(errno));
		exit(EXIT_FAILURE);
	}
	dhcpcd_set_progname(con, "dhcpcd-gtk");
	dhcpcd_set_status_callback(con, dhcpcd_status_cb, NULL);
	dhcpcd_set_if_callback(con, dhcpcd_if_cb, NULL);
	dhcpcd_wpa_set_scan_callback(con, dhcpcd_wpa_scan_cb, NULL);
	//dhcpcd_wpa_set_status_callback(con, dhcpcd_wpa_status_cb, NULL);
	if (dhcpcd_try_open(con))
		g_timeout_add(DHCPCD_RETRYOPEN, dhcpcd_try_open, con);

	menu_init(status_icon, con);

	gtk_main();
	dhcpcd_close(con);
	dhcpcd_free(con);
	return 0;
}
Ejemplo n.º 12
0
static void
progress_ui_handler_ensure_status_icon (NemoProgressUIHandler *self)
{
	GtkStatusIcon *status_icon;

	if (self->priv->status_icon != NULL) {
		return;
	}

	status_icon = gtk_status_icon_new_from_icon_name ("progress-0-symbolic");
	g_signal_connect (status_icon, "button-release-event",
			  (GCallback) status_icon_button_release_cb,
			  self);

	gtk_status_icon_set_visible (status_icon, FALSE);

	self->priv->status_icon = status_icon;
}
Ejemplo n.º 13
0
int main (int argc, char *argv[])
{
#ifdef ENABLE_NLS
    bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
    textdomain (GETTEXT_PACKAGE);
#endif

    gtk_init (&argc, &argv);
    g_set_application_name (_("Task Manager"));

    settings = xtm_settings_get_default ();

    status_icon = gtk_status_icon_new_from_icon_name ("utilities-system-monitor");
    show_hide_status_icon ();
    g_signal_connect (status_icon, "activate", G_CALLBACK (status_icon_activated), NULL);
    g_signal_connect (status_icon, "popup-menu", G_CALLBACK (status_icon_popup_menu), NULL);

    window = xtm_process_window_new ();
    gtk_widget_show (window);

    task_manager = xtm_task_manager_new (xtm_process_window_get_model (XTM_PROCESS_WINDOW (window)));
    g_message ("Running as %s on %s", xtm_task_manager_get_username (task_manager), xtm_task_manager_get_hostname (task_manager));

    init_timeout ();
    g_signal_connect (settings, "notify::refresh-rate", G_CALLBACK (refresh_rate_changed), NULL);
    g_signal_connect_after (settings, "notify::more-precision", G_CALLBACK (force_timeout_update), NULL);
    g_signal_connect_after (settings, "notify::full-command-line", G_CALLBACK (force_timeout_update), NULL);
    g_signal_connect (settings, "notify::show-status-icon", G_CALLBACK (show_hide_status_icon), NULL);

    g_signal_connect (window, "destroy", G_CALLBACK (destroy_window), NULL);
    g_signal_connect (window, "delete-event", G_CALLBACK (delete_window), NULL);

    gtk_main ();

    if (timeout > 0)
        g_source_remove (timeout);
    g_object_unref (window);
    g_object_unref (status_icon);
    g_object_unref (task_manager);
    g_object_unref (settings);

    return 0;
}
Ejemplo n.º 14
0
/* Creates the singleton status icon object.  Subsequent calls will return
   the same status icon object. */
GtkStatusIcon *
get_status_icon ()
{
  static GtkStatusIcon *status_icon = NULL;

  if (status_icon == NULL) {
    status_icon = gtk_status_icon_new_from_icon_name ("gtk-feed");

    g_signal_connect (status_icon,
                      "activate",
                      G_CALLBACK(on_icon_activate),
                      NULL);

    g_signal_connect (status_icon,
                      "popup-menu",
                      G_CALLBACK(on_icon_popup_menu),
                      NULL);
  }

  return status_icon;
}
Ejemplo n.º 15
0
Archivo: gnac-ui.c Proyecto: GNOME/gnac
void
gnac_ui_show_trayicon(void)
{
  if (!gnac_settings_ui_get_boolean(GNAC_KEY_TRAY_ICON)) return;

  GtkWidget *main_window = gnac_ui_get_widget("main_window");

  if (!trayicon) {
    trayicon = gtk_status_icon_new_from_icon_name("gnac");
    gtk_status_icon_set_has_tooltip(trayicon, TRUE);
    
    g_signal_connect(G_OBJECT(trayicon), "query-tooltip",
        G_CALLBACK(gnac_ui_query_tooltip_cb), NULL);
    g_signal_connect(G_OBJECT(trayicon), "activate", 
        G_CALLBACK(gnac_ui_on_trayicon), NULL);
    g_signal_connect(G_OBJECT(trayicon), "popup-menu", 
        G_CALLBACK(gnac_ui_on_trayicon_popup), NULL);
  }
  
  gtk_window_get_position(GTK_WINDOW(main_window), &root_x, &root_y);
  gtk_status_icon_set_visible(trayicon, TRUE);
}
Ejemplo n.º 16
0
static void *gtk_thread(void *arg)
{
	struct gtk_mod *mod = arg;
	GtkMenuShell *app_menu;
	GtkWidget *item;
	GError *err = NULL;
	struct le *le;

	gdk_threads_init();
	gtk_init(0, NULL);

	g_set_application_name("baresip");
	mod->app = g_application_new ("com.creytiv.baresip",
			G_APPLICATION_FLAGS_NONE);

	g_application_register (G_APPLICATION (mod->app), NULL, &err);
	if (err != NULL) {
		warning ("Unable to register GApplication: %s",
				err->message);
		g_error_free (err);
		err = NULL;
	}

#ifdef USE_LIBNOTIFY
	notify_init("baresip");
#endif

	mod->status_icon = gtk_status_icon_new_from_icon_name("call-start");
	gtk_status_icon_set_tooltip_text (mod->status_icon, "baresip");

	g_signal_connect(G_OBJECT(mod->status_icon),
			"button_press_event",
			G_CALLBACK(status_icon_on_button_press), mod);
	gtk_status_icon_set_visible(mod->status_icon, TRUE);

	mod->contacts_inited = false;
	mod->dial_dialog = NULL;
	mod->call_windows = NULL;
	mod->incoming_call_menus = NULL;

	/* App menu */
	mod->app_menu = gtk_menu_new();
	app_menu = GTK_MENU_SHELL(mod->app_menu);

	/* Account submenu */
	mod->accounts_menu = gtk_menu_new();
	mod->accounts_menu_group = NULL;
	item = gtk_menu_item_new_with_mnemonic("_Account");
	gtk_menu_shell_append(app_menu, item);
	gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),
			mod->accounts_menu);

	/* Add accounts to submenu */
	for (le = list_head(uag_list()); le; le = le->next) {
		struct ua *ua = le->data;
		accounts_menu_add_item(mod, ua);
	}

	/* Status submenu */
	mod->status_menu = gtk_menu_new();
	item = gtk_menu_item_new_with_mnemonic("_Status");
	gtk_menu_shell_append(GTK_MENU_SHELL(app_menu), item);
	gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), mod->status_menu);

	/* Open */
	item = gtk_radio_menu_item_new_with_label(NULL, "Open");
	g_object_set_data(G_OBJECT(item), "presence",
			GINT_TO_POINTER(PRESENCE_OPEN));
	g_signal_connect(item, "activate",
			G_CALLBACK(menu_on_presence_set), mod);
	gtk_menu_shell_append(GTK_MENU_SHELL(mod->status_menu), item);
	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), TRUE);

	/* Closed */
	item = gtk_radio_menu_item_new_with_label_from_widget(
			GTK_RADIO_MENU_ITEM(item), "Closed");
	g_object_set_data(G_OBJECT(item), "presence",
			GINT_TO_POINTER(PRESENCE_CLOSED));
	g_signal_connect(item, "activate",
			G_CALLBACK(menu_on_presence_set), mod);
	gtk_menu_shell_append(GTK_MENU_SHELL(mod->status_menu), item);

	gtk_menu_shell_append(app_menu, gtk_separator_menu_item_new());

	/* Dial */
	item = gtk_menu_item_new_with_mnemonic("_Dial...");
	gtk_menu_shell_append(app_menu, item);
	g_signal_connect(G_OBJECT(item), "activate",
			G_CALLBACK(menu_on_dial), mod);

	/* Dial contact */
	mod->contacts_menu = gtk_menu_new();
	item = gtk_menu_item_new_with_mnemonic("Dial _contact");
	gtk_menu_shell_append(app_menu, item);
	gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),
			mod->contacts_menu);

	gtk_menu_shell_append(app_menu, gtk_separator_menu_item_new());

	/* About */
	item = gtk_menu_item_new_with_mnemonic("A_bout");
	g_signal_connect(G_OBJECT(item), "activate",
			G_CALLBACK(menu_on_about), mod);
	gtk_menu_shell_append(app_menu, item);

	gtk_menu_shell_append(app_menu, gtk_separator_menu_item_new());

	/* Quit */
	item = gtk_menu_item_new_with_mnemonic("_Quit");
	g_signal_connect(G_OBJECT(item), "activate",
			G_CALLBACK(menu_on_quit), mod);
	gtk_menu_shell_append(app_menu, item);

	g_action_map_add_action_entries(G_ACTION_MAP(mod->app),
			app_entries, G_N_ELEMENTS(app_entries), mod);

	info("gtk_menu starting\n");

	uag_event_register( ua_event_handler, mod );
	mod->run = true;
	gtk_main();
	mod->run = false;
	uag_event_unregister(ua_event_handler);

	if (mod->dial_dialog) {
		mem_deref(mod->dial_dialog);
		mod->dial_dialog = NULL;
	}

	return NULL;
}
Ejemplo n.º 17
0
void create_main_window ()
{
	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

	GtkUIManager		*ui_manager		= gtk_ui_manager_new ();
	GtkActionGroup		*action_group	= create_action_group ();

	GError	 *error	= NULL;
	gchar	 *ui_path = rookie_misc_get_ui_path ("AppUI.ui");

	gtk_ui_manager_insert_action_group (ui_manager, action_group, 0);
	gtk_ui_manager_add_ui_from_file (ui_manager, ui_path, &error);
	handle_critical_error (error);
	g_free (ui_path);

	eggicon = gtk_status_icon_new_from_icon_name ("rookie");
	init_actions (action_group);

	menubar = gtk_ui_manager_get_widget (ui_manager, "/menubar");
	toolbar = gtk_ui_manager_get_widget (ui_manager, "/toolbar");
	statbar = create_statusbar ();
	mainbox = gtk_vbox_new (FALSE, 0);

	mainpopup = gtk_ui_manager_get_widget (ui_manager, "/m_popup");
	viewpopup = gtk_ui_manager_get_widget (ui_manager, "/v_popup");
	statpopup = gtk_ui_manager_get_widget (ui_manager, "/s_popup");

	gtk_toolbar_set_icon_size (GTK_TOOLBAR(toolbar),
							   GTK_ICON_SIZE_LARGE_TOOLBAR);
	gtk_toolbar_set_style (GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH);

	sw1	= gtk_scrolled_window_new (NULL, NULL);
	sw2 = gtk_scrolled_window_new (NULL, NULL);

	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

	sidepane = create_sidepane ();
	gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(sw1), sidepane);

	view	= g_download_list_controller_get_view ();
	gtk_container_add (GTK_CONTAINER (sw2), view);

	bottompane = create_bottom_pane ();

	vpaned = gtk_vpaned_new ();
	gtk_paned_add1 (GTK_PANED(vpaned), sw2);
	gtk_paned_add2 (GTK_PANED(vpaned), bottompane);

	hpaned = gtk_hpaned_new ();
	gtk_paned_add1 (GTK_PANED(hpaned), sw1);
	gtk_paned_add2 (GTK_PANED(hpaned), vpaned);

	gtk_paned_set_position (GTK_PANED(hpaned), rookie_settings_get_sidepane_width ());
	gtk_paned_set_position (GTK_PANED(vpaned), rookie_settings_get_bottompane_width ());

	gtk_window_add_accel_group (GTK_WINDOW(window), gtk_ui_manager_get_accel_group(ui_manager));
	gtk_window_set_title (GTK_WINDOW(window), _("Rookie Download Manager"));
	gtk_window_set_icon_name (GTK_WINDOW(window), "rookie");

	gtk_box_pack_start (GTK_BOX(mainbox), menubar, FALSE, FALSE, 0);
	gtk_box_pack_start (GTK_BOX(mainbox), toolbar, FALSE, FALSE, 0);
	gtk_box_pack_start (GTK_BOX(mainbox), hpaned, TRUE, TRUE, 0);
	gtk_box_pack_end (GTK_BOX(mainbox), statbar, FALSE, FALSE, 0);

	relayout_mainbox ();
	gtk_container_add (GTK_CONTAINER(window), mainbox);
	gtk_window_set_geometry_hints (GTK_WINDOW (window), window, NULL,
								   GDK_HINT_USER_SIZE | GDK_HINT_USER_POS | GDK_HINT_POS);

	gtk_window_resize (GTK_WINDOW(window),
					   rookie_settings_get_window_width (),
					   rookie_settings_get_window_height());

	rookie_settings_bind (ROOKIE_TOOLBAR_VISIBLE, toolbar, "visible");
	rookie_settings_bind (ROOKIE_STATUSBAR_VISIBLE, statbar, "visible");

	/* Signals */
	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(view));

	g_download_list_foreach ((GFunc)g_downloadable_connect_signals, NULL);

	g_signal_connect (eggicon, "activate",
					  G_CALLBACK(on_egg_icon_activate), NULL);
	g_signal_connect (eggicon, "popup-menu",
					  G_CALLBACK(on_egg_icon_popup_menu), NULL);
	g_signal_connect (window, "delete-event",
					  G_CALLBACK(on_window_delete), NULL);

	g_signal_connect (g_download_list_get (), "download-added",
					  G_CALLBACK (on_download_added), NULL);
	g_signal_connect (g_download_list_get (), "download-removed",
					  G_CALLBACK (on_download_removed), NULL);
	g_signal_connect (view, "button-press-event",
					  G_CALLBACK(on_view_button_press), selection);

	g_signal_connect (selection, "changed",
					  G_CALLBACK(on_selection_change), NULL);
}
Ejemplo n.º 18
0
int lassi_tray_init(LassiTrayInfo *i, LassiServer *server) {
    GtkActionEntry  entries[] =
    {
#if GTK_CHECK_VERSION(2,14,0)
        {"Help", GTK_STOCK_HELP, NULL,
         NULL, NULL,
         G_CALLBACK (on_help_activate)},
#endif
        {"Preferences", GTK_STOCK_PREFERENCES, NULL,
         NULL, NULL,
         G_CALLBACK (on_prefs_activate)},
        {"Quit", GTK_STOCK_QUIT, NULL,
         NULL, NULL,
         G_CALLBACK (gtk_main_quit)}
    };
    GtkActionGroup *actions;
    GError         *error = NULL;

    g_assert(i);
    g_assert(server);

    memset(i, 0, sizeof(*i));
    i->server = server;

    notify_init("Mango Lassi");

    i->status_icon = gtk_status_icon_new_from_icon_name(ICON_IDLE);

    i->ui_manager = gtk_ui_manager_new ();
    actions = gtk_action_group_new ("mango-lassi-popup");
    gtk_action_group_add_actions (actions,
                                  entries,
                                  G_N_ELEMENTS (entries),
                                  i);
    gtk_ui_manager_insert_action_group (i->ui_manager, actions, -1);
    gtk_ui_manager_add_ui_from_string (i->ui_manager,
                                       "<popup>"
                                         "<menuitem action='Preferences'/>"
#if GTK_CHECK_VERSION(2,14,0)
                                         "<menuitem action='Help'/>"
#endif
                                         "<separator />"
                                         "<menuitem action='Quit'/>"
                                       "</popup>",
                                       -1,
                                       &error);
    if (error) {
        GtkWidget* dialog = gtk_message_dialog_new (NULL, 0,
                                                    GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
                                                    "%s", _("Initialization Error"));
        gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
                                                  _("Cannot initialize the user interface: %s"),
                                                  error->message);

        g_error_free (error);

        gtk_dialog_run (GTK_DIALOG (dialog));

        gtk_widget_destroy (dialog);
        return 1;
    }

    i->menu = gtk_ui_manager_get_widget (i->ui_manager, "/ui/popup");

    g_signal_connect(G_OBJECT(i->status_icon), "popup_menu", G_CALLBACK(on_tray_popup_menu), i);
    g_signal_connect(G_OBJECT(i->status_icon), "activate", G_CALLBACK(on_tray_activate), i);

    lassi_tray_update(i, 0);

    return 0;
}