Nicer properties dialog
This commit is contained in:
parent
2354f01e9a
commit
8b18428460
|
@ -395,14 +395,15 @@ void pdfviewer_open(PDFviewer * pdfviewer, char const * uri)
|
||||||
|
|
||||||
|
|
||||||
/* pdfviewer_properties */
|
/* pdfviewer_properties */
|
||||||
static GtkWidget * _properties_label(PDFviewer * pdfviewer, char const * label,
|
static GtkWidget * _properties_label(PDFviewer * pdfviewer,
|
||||||
char const * value);
|
GtkSizeGroup * group, char const * label, char const * value);
|
||||||
static GtkWidget * _properties_label_date(PDFviewer * pdfviewer,
|
static GtkWidget * _properties_label_date(PDFviewer * pdfviewer,
|
||||||
char const * label, time_t t);
|
GtkSizeGroup * group, char const * label, time_t t);
|
||||||
|
|
||||||
void pdfviewer_properties(PDFviewer * pdfviewer)
|
void pdfviewer_properties(PDFviewer * pdfviewer)
|
||||||
{
|
{
|
||||||
GtkWidget * dialog;
|
GtkWidget * dialog;
|
||||||
|
GtkSizeGroup * group;
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
GtkWidget * hbox;
|
GtkWidget * hbox;
|
||||||
GtkWidget * widget;
|
GtkWidget * widget;
|
||||||
|
@ -416,6 +417,7 @@ void pdfviewer_properties(PDFviewer * pdfviewer)
|
||||||
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||||
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL);
|
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL);
|
||||||
gtk_window_set_default_size(GTK_WINDOW(dialog), 300, 200);
|
gtk_window_set_default_size(GTK_WINDOW(dialog), 300, 200);
|
||||||
|
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
||||||
#if GTK_CHECK_VERSION(2, 14, 0)
|
#if GTK_CHECK_VERSION(2, 14, 0)
|
||||||
vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
|
vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
|
||||||
#else
|
#else
|
||||||
|
@ -431,44 +433,44 @@ void pdfviewer_properties(PDFviewer * pdfviewer)
|
||||||
free(p);
|
free(p);
|
||||||
/* author */
|
/* author */
|
||||||
p = poppler_document_get_author(pdfviewer->pdf->document);
|
p = poppler_document_get_author(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label(pdfviewer, "Author: ", p);
|
hbox = _properties_label(pdfviewer, group, "Author: ", p);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
free(p);
|
free(p);
|
||||||
/* subject */
|
/* subject */
|
||||||
p = poppler_document_get_subject(pdfviewer->pdf->document);
|
p = poppler_document_get_subject(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label(pdfviewer, "Subject: ", p);
|
hbox = _properties_label(pdfviewer, group, "Subject: ", p);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
free(p);
|
free(p);
|
||||||
/* keywords */
|
/* keywords */
|
||||||
p = poppler_document_get_keywords(pdfviewer->pdf->document);
|
p = poppler_document_get_keywords(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label(pdfviewer, "Keywords: ", p);
|
hbox = _properties_label(pdfviewer, group, "Keywords: ", p);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
free(p);
|
free(p);
|
||||||
/* creator */
|
/* creator */
|
||||||
p = poppler_document_get_creator(pdfviewer->pdf->document);
|
p = poppler_document_get_creator(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label(pdfviewer, "Creator: ", p);
|
hbox = _properties_label(pdfviewer, group, "Creator: ", p);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
free(p);
|
free(p);
|
||||||
/* producer */
|
/* producer */
|
||||||
p = poppler_document_get_producer(pdfviewer->pdf->document);
|
p = poppler_document_get_producer(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label(pdfviewer, "Producer: ", p);
|
hbox = _properties_label(pdfviewer, group, "Producer: ", p);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
free(p);
|
free(p);
|
||||||
/* creation time */
|
/* creation time */
|
||||||
t = poppler_document_get_creation_date(pdfviewer->pdf->document);
|
t = poppler_document_get_creation_date(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label_date(pdfviewer, "Created on: ", t);
|
hbox = _properties_label_date(pdfviewer, group, "Created on: ", t);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
/* modification time */
|
/* modification time */
|
||||||
t = poppler_document_get_modification_date(pdfviewer->pdf->document);
|
t = poppler_document_get_modification_date(pdfviewer->pdf->document);
|
||||||
hbox = _properties_label_date(pdfviewer, "Modified on: ", t);
|
hbox = _properties_label_date(pdfviewer, group, "Modified on: ", t);
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
gtk_widget_show_all(vbox);
|
gtk_widget_show_all(vbox);
|
||||||
gtk_dialog_run(GTK_DIALOG(dialog));
|
gtk_dialog_run(GTK_DIALOG(dialog));
|
||||||
gtk_widget_destroy(dialog);
|
gtk_widget_destroy(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkWidget * _properties_label(PDFviewer * pdfviewer, char const * label,
|
static GtkWidget * _properties_label(PDFviewer * pdfviewer,
|
||||||
char const * value)
|
GtkSizeGroup * group, char const * label, char const * value)
|
||||||
{
|
{
|
||||||
GtkWidget * hbox;
|
GtkWidget * hbox;
|
||||||
GtkWidget * widget;
|
GtkWidget * widget;
|
||||||
|
@ -476,6 +478,8 @@ static GtkWidget * _properties_label(PDFviewer * pdfviewer, char const * label,
|
||||||
hbox = gtk_hbox_new(FALSE, 4);
|
hbox = gtk_hbox_new(FALSE, 4);
|
||||||
widget = gtk_label_new(label);
|
widget = gtk_label_new(label);
|
||||||
gtk_widget_modify_font(widget, pdfviewer->bold);
|
gtk_widget_modify_font(widget, pdfviewer->bold);
|
||||||
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
|
gtk_size_group_add_widget(group, widget);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
widget = gtk_label_new((value != NULL) ? value : "");
|
widget = gtk_label_new((value != NULL) ? value : "");
|
||||||
gtk_label_set_ellipsize(GTK_LABEL(widget), PANGO_ELLIPSIZE_END);
|
gtk_label_set_ellipsize(GTK_LABEL(widget), PANGO_ELLIPSIZE_END);
|
||||||
|
@ -485,14 +489,14 @@ static GtkWidget * _properties_label(PDFviewer * pdfviewer, char const * label,
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkWidget * _properties_label_date(PDFviewer * pdfviewer,
|
static GtkWidget * _properties_label_date(PDFviewer * pdfviewer,
|
||||||
char const * label, time_t t)
|
GtkSizeGroup * group, char const * label, time_t t)
|
||||||
{
|
{
|
||||||
char buf[256];
|
char buf[256];
|
||||||
struct tm tm;
|
struct tm tm;
|
||||||
|
|
||||||
localtime_r(&t, &tm);
|
localtime_r(&t, &tm);
|
||||||
strftime(buf, sizeof(buf), "%b %d %Y, %H:%M:%S", &tm);
|
strftime(buf, sizeof(buf), "%b %d %Y, %H:%M:%S", &tm);
|
||||||
return _properties_label(pdfviewer, label, buf);
|
return _properties_label(pdfviewer, group, label, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user