📄 gvxdlg.c.orig
字号:
gtk_widget_show (scrolled_window);
/* Create the CList for the pages */
clist = gtk_clist_new(1);
gtk_clist_set_shadow_type (GTK_CLIST(clist), GTK_SHADOW_OUT);
/* We must set the default columnn width, in pixels */
gtk_clist_set_column_width (GTK_CLIST(clist), 0, 64);
/* Add the CList widget to the horizontal box and show it. */
gtk_container_add(GTK_CONTAINER(scrolled_window), clist);
gtk_widget_show(clist);
/* Create and place the buttons in a vbox at the right */
vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 5);
gtk_widget_show(vbox);
button_ok = gtk_button_new_with_label(get_string(IDS_AAOK));
button_cancel = gtk_button_new_with_label(get_string(IDS_AACANCEL));
if (multiple) {
button_all = gtk_button_new_with_label(get_string(IDS_AAALL));
button_odd = gtk_button_new_with_label(get_string(IDS_AAODD));
button_even = gtk_button_new_with_label(get_string(IDS_AAEVEN));
button_reverse = gtk_check_button_new_with_label(get_string(IDS_AAREVERSE));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button_reverse),
psfile.page_list.reverse);
}
gtk_box_pack_start(GTK_BOX(vbox), button_ok, FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(vbox), button_cancel, FALSE, FALSE, 5);
if (multiple) {
gtk_box_pack_start(GTK_BOX(vbox), button_all, FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(vbox), button_odd, FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(vbox), button_even, FALSE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(vbox), button_reverse, FALSE, FALSE, 5);
}
/* Connect our callbacks to the three buttons */
gtk_signal_connect(GTK_OBJECT(button_ok), "clicked",
GTK_SIGNAL_FUNC(modal_ok), &rc);
gtk_signal_connect(GTK_OBJECT(button_cancel), "clicked",
GTK_SIGNAL_FUNC(modal_cancel), &rc);
if (multiple) {
gtk_signal_connect(GTK_OBJECT(button_all), "clicked",
GTK_SIGNAL_FUNC(selpage_all),
(gpointer) clist);
gtk_signal_connect(GTK_OBJECT(button_odd), "clicked",
GTK_SIGNAL_FUNC(selpage_odd),
(gpointer) clist);
gtk_signal_connect(GTK_OBJECT(button_even), "clicked",
GTK_SIGNAL_FUNC(selpage_even),
(gpointer) clist);
}
gtk_widget_show(button_ok);
gtk_widget_show(button_cancel);
if (multiple) {
gtk_widget_show(button_all);
gtk_widget_show(button_odd);
gtk_widget_show(button_even);
gtk_widget_show(button_reverse);
}
if (multiple)
gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_EXTENDED);
p = buf;
for (i=0; i< (int)(psfile.dsc->page_count); i++) {
page_ordlabel(buf, i);
gtk_clist_append( (GtkCList *) clist, &p);
if ((multiple && psfile.page_list.select[i])
|| (i == psfile.page_list.current)) {
gtk_clist_select_row(GTK_CLIST(clist), i, 0);
}
}
/* show dialog and wait for OK, Cancel or close */
gtk_window_set_focus(GTK_WINDOW(window), button_ok);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_widget_show(window);
gtk_main();
if (rc == IDOK) {
GList *l = GTK_CLIST(clist)->selection;
for (i = 0; i < (int)psfile.dsc->page_count; i++)
psfile.page_list.select[i] = FALSE;
while (l) {
psfile.page_list.current = (int)(l->data);
psfile.page_list.select[(int)(l->data)] = TRUE;
l = g_list_next(l);
}
if (psfile.page_list.current >= 0)
*ppage = psfile.page_list.current + 1;
if (multiple)
psfile.page_list.reverse =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button_reverse));
}
gtk_widget_destroy(window);
return (rc == IDOK);
}
void info_add(GtkWidget *table, const char *str1, const char *str2, int *y)
{
GtkWidget *label1 = gtk_label_new(str1);
GtkWidget *label2 = gtk_label_new(str2);
GtkWidget *con1, *con2;
con1 = gtk_alignment_new(1, 0, 0, 0);
gtk_container_add(GTK_CONTAINER(con1), label1);
con2 = gtk_alignment_new(0, 0, 0, 0);
gtk_container_add(GTK_CONTAINER(con2), label2);
gtk_widget_show(label1);
gtk_widget_show(label2);
gtk_widget_show(con1);
gtk_widget_show(con2);
gtk_table_attach_defaults(GTK_TABLE(table), con1, 0, 1, *y, (*y)+1);
gtk_table_attach_defaults(GTK_TABLE(table), con2, 2, 3, *y, (*y)+1);
(*y)++;
}
void show_info(void)
{
GtkWidget *window; /* main dialog window */
GtkWidget *table;
GtkWidget *button_ok;
GtkWidget *spacer;
CDSC *dsc = psfile.dsc;
char buf[MAXSTR];
char *p;
int y = 0;
int n;
window=gtk_window_new(GTK_WINDOW_DIALOG);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
gtk_window_set_title(GTK_WINDOW(window), get_string(IDS_AAINFO));
table = gtk_table_new(12, 3, FALSE);
gtk_container_add(GTK_CONTAINER(window), table);
if (psfile.name[0] != '\0') {
info_add(table, get_string(IDS_AAFILEC), psfile.name, &y);
if (dsc) {
p = buf;
*p = '\0';
if (psfile.gzip) {
strcpy(p, "gzip ");
p += strlen(p);
}
if (psfile.bzip2) {
strcpy(p, "bzip2 ");
p += strlen(p);
}
if (psfile.ctrld)
load_string(IDS_CTRLD, p, sizeof(buf));
if (psfile.pjl)
load_string(IDS_PJL, p, sizeof(buf));
p += strlen(p);
if (psfile.ispdf) {
load_string(IDS_PDF, p, sizeof(buf)-strlen(buf));
}
else if (dsc->epsf) {
switch (psfile.preview) {
case IDS_EPSI:
load_string(IDS_EPSI, p, sizeof(buf)-strlen(buf));
break;
case IDS_EPST:
load_string(IDS_EPST, p, sizeof(buf)-strlen(buf));
break;
case IDS_EPSW:
load_string(IDS_EPSW, p, sizeof(buf)-strlen(buf));
break;
default:
load_string(IDS_EPSF, p, sizeof(buf)-strlen(buf));
}
}
else
load_string(IDS_DSC, p, sizeof(buf)-strlen(buf));
info_add(table, get_string(IDS_AATYPEC), buf, &y);
info_add(table, get_string(IDS_AATITLEC), dsc->dsc_title ? dsc->dsc_title : "", &y);
info_add(table, get_string(IDS_AADATEC), dsc->dsc_date ? dsc->dsc_date : "", &y);
if (dsc->bbox)
sprintf(buf, "%d %d %d %d", dsc->bbox->llx, dsc->bbox->lly,
dsc->bbox->urx, dsc->bbox->ury);
else
buf[0]='\0';
info_add(table, get_string(IDS_AABOUNDINGBOXC), buf, &y);
switch(dsc->page_orientation) {
case CDSC_LANDSCAPE:
load_string(IDS_LANDSCAPE, buf, sizeof(buf));
break;
case CDSC_PORTRAIT:
load_string(IDS_PORTRAIT, buf, sizeof(buf));
break;
default:
buf[0] = '\0';
}
info_add(table, get_string(IDS_AAORIENTATIONC), buf, &y);
switch(dsc->page_order) {
case CDSC_ASCEND:
load_string(IDS_ASCEND, buf, sizeof(buf));
break;
case CDSC_DESCEND:
load_string(IDS_DESCEND, buf, sizeof(buf));
break;
case CDSC_SPECIAL:
load_string(IDS_SPECIAL, buf, sizeof(buf));
break;
default:
buf[0] = '\0';
}
info_add(table, get_string(IDS_AAPAGEORDERC), buf, &y);
if (dsc->page_media && dsc->page_media->name) {
sprintf(buf,"%.200s %g %g",dsc->page_media->name,
dsc->page_media->width, dsc->page_media->height);
}
else {
buf[0] = '\0';
}
info_add(table, get_string(IDS_AADEFAULTMEDIAC), buf, &y);
sprintf(buf, "%d", dsc->page_count);
info_add(table, get_string(IDS_AAPAGESC), buf, &y);
n = map_page(psfile.pagenum - 1);
if (dsc->page_count)
sprintf(buf, "\"%.200s\" %d", dsc->page[n].label ?
dsc->page[n].label : "", psfile.pagenum);
else
buf[0] = '\0';
info_add(table, get_string(IDS_AAPAGEC), buf, &y);
}
}
else
info_add(table, get_string(IDS_AAFILEC), get_string(IDS_NOFILE), &y);
/* add a blank line and set minimum spacing */
spacer = gtk_label_new(" ");
gtk_widget_show(spacer);
gtk_table_attach_defaults(GTK_TABLE(table), spacer, 1, 2, y, y+1);
info_add(table, " ", " ", &y);
button_ok = gtk_button_new_with_label("OK");
gtk_widget_show(button_ok);
gtk_table_attach_defaults(GTK_TABLE(table), button_ok, 0, 1, y, y+1);
gtk_widget_show(GTK_WIDGET(table));
modal_dialog(window, button_ok, NULL);
gtk_widget_destroy(window);
}
void add_about(GtkWidget *w, const char *str)
{
GtkWidget *label = label = gtk_label_new(str);
GtkWidget *align = gtk_alignment_new(0, 0, 0, 0);
gtk_container_add(GTK_CONTAINER(align), label);
gtk_box_pack_start(GTK_BOX(w), align, FALSE, FALSE, 0);
gtk_widget_show(label);
gtk_widget_show(align);
}
void show_about(void)
{
GtkWidget *window; /* main dialog window */
GtkWidget *vbox;
GtkWidget *button_ok = NULL;
char buf[MAXSTR];
int rc = 0;
gs_addmess("show_about: not implemented fully\n");
window=gtk_window_new(GTK_WINDOW_DIALOG);
gtk_window_set_title(GTK_WINDOW(window), get_string(IDS_AAABOUTX11));
gtk_signal_connect(GTK_OBJECT(window), "delete-event",
GTK_SIGNAL_FUNC(modal_delete), &rc);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show(vbox);
sprintf(buf, "GSview %s %s %s", get_string(IDS_AACOPY1), GSVIEW_DOT_VERSION,
GSVIEW_DATE);
add_about(vbox, buf);
add_about(vbox, get_string(IDS_AACOPY2));
add_about(vbox,"");
add_about(vbox, GSVIEW_COPYRIGHT1);
add_about(vbox, GSVIEW_COPYRIGHT2);
add_about(vbox,"");
add_about(vbox, get_string(IDS_AACOPY4));
add_about(vbox, get_string(IDS_AACOPY5));
add_about(vbox, get_string(IDS_AACOPY6));
add_about(vbox, get_string(IDS_AACOPY7));
add_about(vbox, get_string(IDS_AACOPY8));
add_about(vbox, get_string(IDS_AACOPY9));
add_about(vbox, get_string(IDS_AACOPY10));
add_about(vbox, get_string(IDS_AACOPY11));
add_about(vbox, get_string(IDS_AACOPY12));
add_about(vbox, get_string(IDS_AACOPY13));
add_about(vbox, get_string(IDS_AACOPY14));
add_about(vbox,"");
add_about(vbox, get_string(IDS_AACOPY19));
add_about(vbox,"");
/*
ICON ID_GSVIEW, ABOUT_ICON, 8, 8, 18, 20
*/
sprintf(buf, "%s %s", get_string(IDS_AAREGTOC), registration_name);
add_about(vbox, buf);
strcpy(buf, get_string(IDS_AANUMBERC));
if (registration_receipt != 0)
sprintf(buf, "%s %u", get_string(IDS_AANUMBERC), registration_receipt);
add_about(vbox, buf);
/* Create and place OK button at the bottom */
button_ok = gtk_button_new_with_label(get_string(IDS_AAOK));
gtk_box_pack_start(GTK_BOX(vbox), button_ok, FALSE, FALSE, 5);
gtk_signal_connect(GTK_OBJECT(button_ok), "clicked",
GTK_SIGNAL_FUNC(modal_ok), &rc);
gtk_widget_show(button_ok);
/* show dialog and wait for OK or close */
gtk_window_set_focus(GTK_WINDOW(window), button_ok);
gtk_window_set_modal(GTK_WINDOW(window), TRUE);
gtk_widget_show(window);
gtk_main();
gtk_widget_destroy(window);
}
typedef struct {
PSBBOX *bbox;
GtkWidget *label;
int bboxindex;
} GETBBOX;
GETBBOX bbox_data;
void bbox_click(void)
{
float x, y;
GETBBOX *gb = &bbox_data;
if (debug & DEBUG_GENERAL)
gs_addmessf("bbox_click: index=%d\n", gb->bboxindex);
if (!get_cursorpos(&x, &y)) {
gtk_main_quit();
}
switch(gb->bboxindex) {
case 0:
gb->bbox->llx = (int)x;
break;
case 1:
gb->bbox->lly = (int)y;
break;
case 2:
gb->bbox->urx = (int)x;
break;
case 3:
gb->bbox->ury = (int)y;
gb->bbox->valid = TRUE;
gtk_main_quit();
break;
}
gb->bboxindex++;
if (gb->bboxindex <= 3) {
gtk_label_set_text(GTK_LABEL(gb->label),
get_string(IDS_BBPROMPT+gb->bboxindex));
}
}
BOOL get_bbox(void)
{
int rc;
GtkWidget *window;
GETBBOX *gb = &bbox_data;
gb->bbox = &bbox;
gb->bbox->valid = FALSE;
gb->bbox->llx = gb->bbox->lly = gb->bbox->urx = gb->bbox->ury = 0;
gb->bboxindex = 0;
if ((gsdll.state != GS_PAGE) && (gsdll.state != GS_IDLE)) {
gserror(IDS_EPSNOBBOX, NULL, MB_ICONEXCLAMATION, SOUND_ERROR);
return FALSE;
}
/* display modeless dialog */
window=gtk_window_new(GTK_WINDOW_DIALOG);
gtk_window_set_title(GTK_WINDOW(window), get_string(IDS_AABOUNDINGBOX));
gtk_signal_connect(GTK_OBJECT(window), "delete-event",
GTK_SIGNAL_FUNC(modal_delete), &rc);
gb->label = gtk_label_new(get_string(IDS_BBPROMPT+gb->bboxindex));
gtk_container_set_border_width(GTK_CONTAINER(gb->label), 10);
gtk_container_add(GTK_CONTAINER(window), gb->label);
gtk_widget_show(gb->label);
gtk_widget_show(window);
/* this is not modal, since we want the image scroll bars to work */
getting_bbox = TRUE;
gtk_main();
gtk_widget_destroy(window);
getting_bbox = FALSE;
return bbox.valid;
}
BOOL pstoeps_warn(void)
{
GtkWidget *window; /* main dialog window */
GtkWidget *hbox;
GtkWidget *vbox;
GtkWidget *label;
GtkWidget *check;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -