static int tray_focus_cb (char *word[], void *userdata) { tray_stop_flash (); tray_reset_counts (); return HEXCHAT_EAT_NONE; }
gboolean tray_toggle_visibility(gboolean force_hide) { static int x, y; static GdkScreen *screen; GtkWindow *win; session *sess = sess_list->data; if (!sticon) return FALSE; win = fe_gui_info_ptr(sess, 0); tray_stop_flash(); tray_reset_counts(); if (!win) return FALSE; if (force_hide || GTK_WIDGET_VISIBLE(win)) { gtk_window_get_position(win, &x, &y); screen = gtk_window_get_screen(win); gtk_widget_hide(GTK_WIDGET(win)); } else { gtk_window_set_screen(win, screen); gtk_window_move(win, x, y); gtk_widget_show(GTK_WIDGET (win)); gtk_window_present(win); } return TRUE; }
static void tray_cleanup (void) { tray_stop_flash (); if (sticon) { g_object_unref ((GObject *)sticon); sticon = NULL; } }
static void tray_ui_hide() { tray_stop_flash(); if (sticon) { g_object_unref ((GObject *)sticon); sticon = NULL; } }
gboolean tray_toggle_visibility (gboolean force_hide) { static int x, y; static GdkScreen *screen; static int maximized; GtkWindow *win; if (!sticon) return FALSE; /* ph may have an invalid context now */ hexchat_set_context (ph, hexchat_find_context (ph, NULL, NULL)); win = GTK_WINDOW (hexchat_get_info (ph, "gtkwin_ptr")); tray_stop_flash (); tray_reset_counts (); if (!win) return FALSE; #if GTK_CHECK_VERSION(2,20,0) if (force_hide || gtk_widget_get_visible (GTK_WIDGET (win))) #else if (force_hide || GTK_WIDGET_VISIBLE (win)) #endif { if (prefs.hex_gui_tray_away) hexchat_command (ph, "ALLSERV AWAY"); gtk_window_get_position (win, &x, &y); screen = gtk_window_get_screen (win); maximized = prefs.hex_gui_win_state; gtk_widget_hide (GTK_WIDGET (win)); } else { if (prefs.hex_gui_tray_away) hexchat_command (ph, "ALLSERV BACK"); gtk_window_set_screen (win, screen); gtk_window_move (win, x, y); if (maximized) gtk_window_maximize (win); gtk_widget_show (GTK_WIDGET (win)); gtk_window_present (win); } return TRUE; }
void fe_tray_set_file (const char *filename) { tray_apply_setup (); if (!sticon) return; tray_stop_flash (); if (filename) { custom_icon1 = tray_icon_from_file (filename); gtk_status_icon_set_from_pixbuf (sticon, custom_icon1); tray_status = TS_CUSTOM; } }
static void tray_set_flash (TrayIcon icon) { if (!sticon) return; /* already flashing the same icon */ if (flash_tag && gtk_status_icon_get_pixbuf (sticon) == icon) return; /* no flashing if window is focused */ if (tray_get_window_status () == WS_FOCUSED) return; tray_stop_flash (); gtk_status_icon_set_from_pixbuf (sticon, icon); flash_tag = g_timeout_add (TIMEOUT, (GSourceFunc) tray_timeout_cb, icon); }
void fe_tray_set_flash (const char *filename1, const char *filename2, int tout) { tray_apply_setup (); if (!sticon) return; tray_stop_flash (); if (tout == -1) tout = TIMEOUT; custom_icon1 = tray_icon_from_file (filename1); if (filename2) custom_icon2 = tray_icon_from_file (filename2); gtk_status_icon_set_from_pixbuf (sticon, custom_icon1); flash_tag = g_timeout_add (tout, (GSourceFunc) tray_timeout_cb, NULL); tray_status = TS_CUSTOM; }
gboolean tray_toggle_visibility (gboolean force_hide) { static int x, y; static GdkScreen *screen; GtkWindow *win; if (!sticon) return FALSE; /* ph may have an invalid context now */ xchat_set_context (ph, xchat_find_context (ph, NULL, NULL)); win = (GtkWindow *)xchat_get_info (ph, "win_ptr"); tray_stop_flash (); tray_reset_counts (); if (!win) return FALSE; #if GTK_CHECK_VERSION(2,20,0) if (force_hide || gtk_widget_get_visible (win)) #else if (force_hide || GTK_WIDGET_VISIBLE (win)) #endif { gtk_window_get_position (win, &x, &y); screen = gtk_window_get_screen (win); gtk_widget_hide (GTK_WIDGET (win)); } else { gtk_window_set_screen (win, screen); gtk_window_move (win, x, y); gtk_widget_show (GTK_WIDGET (win)); gtk_window_present (win); } return TRUE; }
void fe_tray_set_icon (feicon icon) { tray_apply_setup (); if (!sticon) return; tray_stop_flash (); switch (icon) { case FE_ICON_NORMAL: break; case FE_ICON_MESSAGE: case FE_ICON_PRIVMSG: tray_set_flash (ICON_MSG); break; case FE_ICON_HIGHLIGHT: tray_set_flash (ICON_HILIGHT); break; case FE_ICON_FILEOFFER: tray_set_flash (ICON_FILE); } }
static void tray_focus_cb(gpointer *unused) { tray_stop_flash(); tray_reset_counts(); }