예제 #1
0
static void radio_clicked_cb(GtkWidget *w, gpointer id)
{
	GtkWidget *img;
	GdkPixbuf *pb;
	guint status = o2_get_status();

	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)) == FALSE)
		return;

	if(g_strcasecmp(id, "1") == 0)
		status = TLEN_PRESENCE_AVAILABLE;
	else if(g_strcasecmp(id, "2") == 0)
		status = TLEN_PRESENCE_CHATTY;
	else if(g_strcasecmp(id, "3") == 0)
		status = TLEN_PRESENCE_DND;
	else if(g_strcasecmp(id, "4") == 0)
		status = TLEN_PRESENCE_AWAY;
	else if(g_strcasecmp(id, "5") == 0)
		status = TLEN_PRESENCE_EXT_AWAY;
	else if(g_strcasecmp(id, "6") == 0)
		status = TLEN_PRESENCE_INVISIBLE;
	else if(g_strcasecmp(id, "7") == 0)
		status = TLEN_PRESENCE_UNAVAILABLE;

	img = lookup_widget(win_desc, "image_status");
	pb = gtk_image_get_pixbuf(GTK_IMAGE(get_status_icon(status)));
	gtk_image_set_from_pixbuf(GTK_IMAGE(img), pb);

	win_desc_status = status;
}
예제 #2
0
파일: main.c 프로젝트: henux/gtk-feed
/* Program main function. */
int
main (int argc, char **argv)
{
  /* Initialize GTK and other libraries. */
  g_thread_init (NULL);
  gdk_threads_init ();
  gtk_init (&argc, &argv);

  /* Initialize the application. */
  g_set_application_name ("GTK Feed Reader");
  gtk_window_set_default_icon_name ("gtk-feed");
  load_feeds ();
  get_status_icon ();

  /* Run the main loop. */
  gtk_main ();
  save_feeds ();

  return 0;
}
예제 #3
0
void win_desc_show()
{
	GtkWidget *b;
	GdkPixbuf *pb;
	guint status = o2_get_status();
	gchar *desc;

	if(win_desc != NULL)
		gtk_widget_show_all(win_desc);

	win_desc = create_win_desc();
	gtk_widget_show_all(win_desc);

	pb = gtk_image_get_pixbuf(GTK_IMAGE(get_status_icon(o2_get_status())));
	gtk_window_set_icon(GTK_WINDOW(win_desc), pb);

	b = lookup_widget(win_desc, "radio_avail");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "1");
	if(status == TLEN_PRESENCE_AVAILABLE)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "radio_chatty");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "2");
	if(status == TLEN_PRESENCE_CHATTY)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "radio_dnd");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "3");
	if(status == TLEN_PRESENCE_DND)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "radio_away");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "4");
	if(status == TLEN_PRESENCE_AWAY)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "radio_bbl");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "5");
	if(status == TLEN_PRESENCE_EXT_AWAY)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "radio_invisible");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "6");
	if(status == TLEN_PRESENCE_INVISIBLE)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "radio_unavail");
	g_signal_connect(G_OBJECT(b), "toggled",
		G_CALLBACK(radio_clicked_cb), "7");
	if(status == TLEN_PRESENCE_UNAVAILABLE)
		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b), TRUE);

	b = lookup_widget(win_desc, "image_status");

	gtk_image_set_from_pixbuf(GTK_IMAGE(b), pb);
	gtk_widget_queue_draw(b);

	b = lookup_widget(win_desc, "entry_desc");
	desc = toutf(o2_get_desc());
	if(desc != NULL) {
		gtk_entry_set_text(GTK_ENTRY(b), desc);
	}
	g_free(desc);
	gtk_widget_grab_focus(b);

	b = lookup_widget(win_desc, "btn_ustaw");
	g_signal_connect(G_OBJECT(b), "clicked",
		G_CALLBACK(accept_clicked_cb), NULL);

	b = lookup_widget(win_desc, "btn_anuluj");
	g_signal_connect(G_OBJECT(b), "clicked",
		G_CALLBACK(cancel_clicked_cb), NULL);

	g_signal_connect(G_OBJECT(win_desc), "delete_event",
		G_CALLBACK(cancel_clicked_cb), NULL);
}