📄 gvcinit.c
字号:
option.img_origin.x = CW_USEDEFAULT;
option.img_origin.y = CW_USEDEFAULT;
option.img_size.x = CW_USEDEFAULT;
option.img_size.y = CW_USEDEFAULT;
option.img_max = FALSE;
option.drawmethod = IDM_DRAWDEF;
option.update = 2; /* Always do progressive update */
option.unit = IDM_UNITPT;
option.unitfine = 0;
option.pstotext = IDM_PSTOTEXTNORM - IDM_PSTOTEXTMENU - 1;
option.settings = TRUE;
option.button_show = TRUE;
option.fit_page = FALSE; /* Changed after 2.1 */
option.safer = TRUE;
option.media = IDM_A4;
strcpy(option.medianame, "A4");
option.media_rotate = FALSE;
option.user_width = 610;
option.user_height = 792;
option.epsf_clip = FALSE;
option.epsf_warn = FALSE;
option.ignore_dsc = FALSE;
option.dsc_warn = IDM_DSC_WARN;
option.show_bbox = FALSE;
option.redisplay = TRUE;
option.auto_orientation = TRUE; /* Added after 2.1 */
option.orientation = IDM_PORTRAIT;
option.swap_landscape = FALSE;
option.xdpi = DEFAULT_RESOLUTION;
option.ydpi = DEFAULT_RESOLUTION;
option.zoom_xdpi = 300;
option.zoom_ydpi = 300;
option.depth = 0;
option.alpha_text = 4;
option.alpha_graphics = 4;
option.save_dir = TRUE;
strcpy(option.printer_device, "djet500");
strcpy(option.printer_resolution, "300");
option.print_fixed_media = 1;
option.print_gdi_depth = IDC_MONO;
option.print_gdi_fixed_media = 1;
strcpy(option.convert_device, "pdfwrite");
strcpy(option.convert_resolution, "600");
option.convert_fixed_media = 1;
option.print_to_file = FALSE;
#ifdef _Windows
option.print_method = PRINT_GDI;
#else
option.print_method = PRINT_GS;
#endif
option.print_reverse = FALSE;
option.auto_bbox = TRUE;
option.configured = FALSE;
memset(usermedia, 0, sizeof(usermedia));
}
void
gsview_initc(int argc, char *argv[])
{
gs_addmessf("%s %s %s\n", GSVIEW_PRODUCT, GSVIEW_DOT_VERSION, GSVIEW_DATE);
if (debug) {
int i;
char filedir[MAXSTR];
gs_addmess("Debugging ON\n");
if (multithread)
gs_addmess("Multi Threaded\n");
else
gs_addmess("Single Threaded\n");
gs_addmess("Arguments:\n");
for (i=0; i<argc; i++)
gs_addmessf(" %s\n", argv[i]);
getcwd(filedir, sizeof(filedir));
gs_addmess("Working directory: ");
gs_addmess(filedir);
gs_addmess("\n");
}
play_sound(SOUND_START);
}
void
init_check_menu(void)
{
int i;
char thismedia[32];
/* Select the appropriate media */
if (!stricmp(option.medianame, MEDIA_USERDEFINED)) {
option.media = IDM_USERSIZE;
}
else {
for (i=IDM_MEDIAFIRST; i<IDM_USERSIZE13; i++) {
if (get_menu_string(IDM_MEDIAMENU, i, thismedia,
sizeof(thismedia))) {
if (!stricmp(thismedia, option.medianame)) {
option.media = i;
strncpy(option.medianame, thismedia,
sizeof(option.medianame));
break;
}
}
}
}
/* update menus */
check_menu_item(IDM_UNITMENU, option.unit, TRUE);
check_menu_item(IDM_UNITMENU, IDM_UNITFINE, option.unitfine);
check_menu_item(IDM_LANGMENU, option.language, TRUE);
check_menu_item(IDM_PSTOTEXTMENU, option.pstotext + IDM_PSTOTEXTMENU + 1, TRUE);
if (option.auto_orientation)
check_menu_item(IDM_ORIENTMENU, IDM_AUTOORIENT, TRUE);
else
check_menu_item(IDM_ORIENTMENU, option.orientation, TRUE);
check_menu_item(IDM_ORIENTMENU, IDM_SWAPLANDSCAPE, option.swap_landscape);
check_menu_item(IDM_MEDIAMENU, option.media, TRUE);
check_menu_item(IDM_MEDIAMENU, IDM_MEDIAROTATE, option.media_rotate);
#if defined(_Windows) || defined(OS2)
check_menu_item(IDM_OPTIONMENU, IDM_FITPAGE, option.fit_page);
#endif
check_menu_item(IDM_OPTIONMENU, IDM_SAVESETTINGS, option.settings);
check_menu_item(IDM_OPTIONMENU, IDM_BUTTONSHOW, option.button_show);
check_menu_item(IDM_OPTIONMENU, IDM_SAFER, option.safer);
check_menu_item(IDM_OPTIONMENU, IDM_SAVEDIR, option.save_dir);
check_menu_item(IDM_OPTIONMENU, IDM_AUTOREDISPLAY, option.redisplay);
check_menu_item(IDM_OPTIONMENU, IDM_EPSFCLIP, option.epsf_clip);
check_menu_item(IDM_OPTIONMENU, IDM_EPSFWARN, option.epsf_warn);
check_menu_item(IDM_OPTIONMENU, IDM_IGNOREDSC, option.ignore_dsc);
check_menu_item(IDM_DSCMENU, option.dsc_warn, TRUE);
check_menu_item(IDM_OPTIONMENU, IDM_SHOWBBOX, option.show_bbox);
}
#if UNIX
void
default_gsdll(char *buf)
{
strcpy(buf, GS_DLLNAME);
}
void
default_gsexe(char *buf)
{
strcpy(buf, GS_EXENAME);
}
void
default_gsinclude(char *buf)
{
buf[0] = '\0';
}
#else
void
default_gsdir(char *buf)
{
char *p;
/* assume that GS is in the adjacent directory */
convert_widechar(buf, szExePath, MAXSTR-1);
p = buf + strlen(buf) - 1; /* remove trailing slash */
if (*p == '\\')
*p = '\0';
p = strrchr(buf, '\\'); /* remove trailing gsview */
if (p)
*(++p) = '\0';
sprintf(buf+strlen(buf), "gs%d.%02d",
option.gsversion / 100, option.gsversion % 100);
}
void
default_gsdll(char *buf)
{
if (get_gs_string(option.gsversion, "GS_DLL", buf, MAXSTR))
return;
default_gsdir(buf);
strncat(buf, "\\bin\\", MAXSTR-1-strlen(buf));
strncat(buf, GS_DLLNAME, MAXSTR-1-strlen(buf));
}
void
default_gsexe(char *buf)
{
char *p;
if (get_gs_string(option.gsversion, "GS_DLL", buf, MAXSTR)) {
p = strrchr(buf, '\\'); /* remove trailing dll name */
if (p) {
*(++p) = '\0';
strcat(buf, GS_EXENAME);
return;
}
}
default_gsdir(buf);
strncat(buf, "\\bin\\", MAXSTR-1-strlen(buf));
strncat(buf, GS_EXENAME, MAXSTR-1-strlen(buf));
}
void
default_gsinclude(char *buf)
{
char destdir[MAXSTR];
if (get_gs_string(option.gsversion, "GS_LIB", buf, MAXSTR))
return;
default_gsdir(destdir);
default_gsinclude_from_path(buf, destdir);
}
/* return GS fontpath in buf, based on Ghostscript path in gspath */
/* Handles different paths pre/post GS 5.93 */
void
default_gsinclude_from_path(char *buf, char *gspath)
{
char temp[MAXSTR];
strcpy(buf, gspath);
if (option.gsversion >= 593)
strncat(buf, "\\lib", MAXSTR-2-strlen(buf));
strcat(buf, ";");
if (option.gsversion >= 810) {
strncat(buf, gspath, MAXSTR-2-strlen(buf));
strncat(buf, "\\Resource", MAXSTR-2-strlen(buf));
strcat(buf, ";");
}
strncat(buf, gspath, MAXSTR-1-strlen(buf));
if (option.gsversion >= 593) {
char *p;
p = strrchr(buf, '\\'); /* remove trailing \\gsN.NN */
if (p)
*p = '\0';
}
strncat(buf, "\\fonts", MAXSTR-1-strlen(buf));
gs_getcwd(temp, sizeof(temp)-1);
if (!gs_chdir("c:\\psfonts")) {
strncat(buf, ";", MAXSTR-1-strlen(buf));
strncat(buf, "c:\\psfonts", MAXSTR-1-strlen(buf));
}
gs_chdir(temp);
}
void
install_default(HWND hwnd)
{
char buf[MAXSTR];
default_gsdll(buf);
SetDlgItemTextA(hwnd, INSTALL_DLL, buf);
default_gsinclude(buf);
SetDlgItemTextA(hwnd, INSTALL_INCLUDE, buf);
strcpy(buf, "-dNOPLATFONTS -sFONTPATH=\042c:\\psfonts\042");
SetDlgItemTextA(hwnd, INSTALL_OTHER, buf);
}
#endif
int
gsview_changed(void)
{
char sysini[MAXSTR];
#ifndef UNIX
if (!getenv("TEMP")) {
gserror(IDS_NEEDTEMP, NULL, 0, 0);
putenv("TEMP=c:\\"); /* just in case the user ignores us */
}
#endif
if (option.configured) {
if (beta())
return 1; /* don't run if expired */
post_args();
return 0;
}
if (beta_warn())
return 1; /* don't run */
/* check if the system administrator has pre-configured GSview */
#ifdef UNIX
strncpy(sysini, szEtcPath, sizeof(sysini)-1);
#else
convert_widechar(sysini, szExePath, sizeof(sysini)-1);
#endif
strncat(sysini, INIFILE, sizeof(sysini)-1-strlen(sysini));
read_profile(sysini);
if (option.configured) {
/* pre configured INI file was found */
gsview_printer_profiles(); /* trust sys admin to have it correct */
/* don't bother running the configure wizard */
post_args();
return 0;
}
/* revert back to our copy of INI file */
read_profile(szIniFile);
check_language(); /* offer to change language if doesn't match WIN.INI */
if (config_wizard(FALSE) == 0)
post_args();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -