comparison src/layout.c @ 1549:7302ff300a52

show color management status on statusbar
author nadvornik
date Mon, 13 Apr 2009 14:39:50 +0000
parents 2a3efbdf73b0
children e6da3a90e7b2 f1d22c2174c1
comparison
equal deleted inserted replaced
1548:b5608391f479 1549:7302ff300a52
389 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); 389 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
390 390
391 return button; 391 return button;
392 } 392 }
393 393
394 #if 0
395 static GtkWidget *layout_color_button(LayoutWindow *lw) 394 static GtkWidget *layout_color_button(LayoutWindow *lw)
396 { 395 {
397 GtkWidget *button; 396 GtkWidget *button;
398 GtkWidget *image; 397 GtkWidget *image;
399 gboolean enable;
400 398
401 button = gtk_button_new(); 399 button = gtk_button_new();
402 image = gtk_image_new_from_stock(GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU); 400 image = gtk_image_new_from_stock(GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU);
403 gtk_container_add(GTK_CONTAINER(button), image); 401 gtk_container_add(GTK_CONTAINER(button), image);
404 gtk_widget_show(image); 402 gtk_widget_show(image);
405 g_signal_connect(G_OBJECT(button), "clicked",
406 G_CALLBACK(layout_color_button_press_cb), lw);
407 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); 403 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
408 404
409 #ifdef HAVE_LCMS 405 gtk_widget_set_sensitive(GTK_BIN(button)->child, FALSE);
410 enable = (lw->image) ? lw->image->color_profile_enable : FALSE;
411 #else
412 enable = FALSE;
413 #endif
414 gtk_widget_set_sensitive(image, enable);
415 406
416 return button; 407 return button;
417 } 408 }
418 #endif
419 /* 409 /*
420 *----------------------------------------------------------------------------- 410 *-----------------------------------------------------------------------------
421 * write button 411 * write button
422 *----------------------------------------------------------------------------- 412 *-----------------------------------------------------------------------------
423 */ 413 */
558 } 548 }
559 549
560 void layout_status_update_image(LayoutWindow *lw) 550 void layout_status_update_image(LayoutWindow *lw)
561 { 551 {
562 guint64 n; 552 guint64 n;
563 553 gchar *image_profile;
554 gchar *screen_profile;
555
564 if (!layout_valid(&lw) || !lw->image) return; 556 if (!layout_valid(&lw) || !lw->image) return;
565 557
566 n = layout_list_count(lw, NULL); 558 n = layout_list_count(lw, NULL);
567 559
568 if (!n) 560 if (!n)
606 g_free(b); 598 g_free(b);
607 599
608 gtk_label_set_text(GTK_LABEL(lw->info_details), text); 600 gtk_label_set_text(GTK_LABEL(lw->info_details), text);
609 g_free(text); 601 g_free(text);
610 } 602 }
603
604 if (layout_image_color_profile_get_status(lw, &image_profile, &screen_profile))
605 {
606 gchar *buf;
607 gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, TRUE);
608 buf = g_strdup_printf(_("Image profile: %s\nScreen profile: %s"), image_profile, screen_profile);
609 /* FIXME: not sure if a tooltip is the best form of presentation */
610 gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_color), buf);
611 g_free(image_profile);
612 g_free(screen_profile);
613 g_free(buf);
614 }
615 else
616 {
617 gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, FALSE);
618 gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_color), NULL);
619 }
611 } 620 }
612 621
613 void layout_status_update_all(LayoutWindow *lw) 622 void layout_status_update_all(LayoutWindow *lw)
614 { 623 {
615 layout_status_update_progress(lw, 0.0, NULL); 624 layout_status_update_progress(lw, 0.0, NULL);
677 686
678 lw->info_sort = layout_sort_button(lw); 687 lw->info_sort = layout_sort_button(lw);
679 gtk_box_pack_start(GTK_BOX(hbox), lw->info_sort, FALSE, FALSE, 0); 688 gtk_box_pack_start(GTK_BOX(hbox), lw->info_sort, FALSE, FALSE, 0);
680 gtk_widget_show(lw->info_sort); 689 gtk_widget_show(lw->info_sort);
681 690
691 lw->info_color = layout_color_button(lw);
692 gtk_widget_show(lw->info_color);
693
682 lw->info_write = layout_write_button(lw); 694 lw->info_write = layout_write_button(lw);
683 gtk_widget_show(lw->info_write); 695 gtk_widget_show(lw->info_write);
684 696
697 if (small_format) gtk_box_pack_end(GTK_BOX(hbox), lw->info_color, FALSE, FALSE, 0);
685 if (small_format) gtk_box_pack_end(GTK_BOX(hbox), lw->info_write, FALSE, FALSE, 0); 698 if (small_format) gtk_box_pack_end(GTK_BOX(hbox), lw->info_write, FALSE, FALSE, 0);
686 699
687 lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format)); 700 lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
688 701
689 if (small_format) 702 if (small_format)
695 else 708 else
696 { 709 {
697 hbox = lw->info_box; 710 hbox = lw->info_box;
698 } 711 }
699 lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE); 712 lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
713 if (!small_format) gtk_box_pack_start(GTK_BOX(hbox), lw->info_color, FALSE, FALSE, 0);
700 if (!small_format) gtk_box_pack_start(GTK_BOX(hbox), lw->info_write, FALSE, FALSE, 0); 714 if (!small_format) gtk_box_pack_start(GTK_BOX(hbox), lw->info_write, FALSE, FALSE, 0);
701 lw->info_pixel = layout_status_label(NULL, hbox, FALSE, PIXEL_LABEL_WIDTH, TRUE); 715 lw->info_pixel = layout_status_label(NULL, hbox, FALSE, PIXEL_LABEL_WIDTH, TRUE);
702 if (lw->options.info_pixel_hidden) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel)); 716 if (lw->options.info_pixel_hidden) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel));
703 lw->info_zoom = layout_status_label(NULL, hbox, FALSE, ZOOM_LABEL_WIDTH, FALSE); 717 lw->info_zoom = layout_status_label(NULL, hbox, FALSE, ZOOM_LABEL_WIDTH, FALSE);
704 } 718 }
1626 lw->vf = NULL; 1640 lw->vf = NULL;
1627 1641
1628 lw->info_box = NULL; 1642 lw->info_box = NULL;
1629 lw->info_progress_bar = NULL; 1643 lw->info_progress_bar = NULL;
1630 lw->info_sort = NULL; 1644 lw->info_sort = NULL;
1645 lw->info_color = NULL;
1631 lw->info_status = NULL; 1646 lw->info_status = NULL;
1632 lw->info_details = NULL; 1647 lw->info_details = NULL;
1633 lw->info_pixel = NULL; 1648 lw->info_pixel = NULL;
1634 lw->info_zoom = NULL; 1649 lw->info_zoom = NULL;
1635 1650