gv/gv-3.6.8-I18N-mb.patch
OBS User autobuild 6fbb540bed Accepting request 33375 from Publishing
Copy from Publishing/gv based on submit request 33375 from user WernerFink

OBS-URL: https://build.opensuse.org/request/show/33375
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gv?expand=0&rev=9
2010-02-25 01:21:49 +00:00

797 lines
39 KiB
Diff

--- README.I18N
+++ README.I18N 2005-05-23 17:45:33.000000000 +0000
@@ -0,0 +1,28 @@
+GV I18N Fontset Patch for Japanese
+ Keio University in Japan
+ 1998 Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp>
+
+This patch make gv to support Japanese NLS.
+
+ if you can not see Japanese GV, please install
+ 10/12pt kanji fonts to X Window System, or edit
+ file `$(SRC)/src/gv_font_res-I18N_mb.dat' and
+ recompile.
+
+NEED:
+ Xaw3d 1.4, 1.5 has a fatal bug in MultiSrc.c line 735-740.
+ This GV's patch need Xaw3d library patched follow:
+
+diff -Ncr xc/lib/Xaw3d/MultiSrc.c xc-fix/lib/Xaw3d/MultiSrc.c
+*** xc/lib/Xaw3d/MultiSrc.c Fri May 15 04:03:23 1998
+--- xc-fix/lib/Xaw3d/MultiSrc.c Fri Dec 18 09:59:52 1998
+*** 735,740 ****
+--- 735,741 ----
+
+ if ( string_set || (old_src->multi_src.type != src->multi_src.type) ) {
+ RemoveOldStringOrFile(old_src, string_set);
++ src->multi_src.allocated_string = old_src->multi_src.allocated_string;
+ file = InitStringOrFile(src, string_set);
+
+ /* Load pieces does this logic for us, but it shouldn't. Its messy.*/
+
--- src/Makefile.am
+++ src/Makefile.am 2010-02-24 12:15:17.160125983 +0000
@@ -14,7 +14,7 @@ appdefaultsdir = $(pkgdatadir)
appdefaults_DATA = ../GV
-EXTRA_DIST=ad2c gv_font_res.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
+EXTRA_DIST=ad2c gv_font_res.dat gv_font_res-I18N_mb.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
gv_current.xbm gv_doc.xbm gv_empty.xbm gv_even.xbm gv_icon.xbm gv_odd.xbm \
gv_selected.xbm gv_unmark.xbm
@@ -217,7 +217,7 @@ gv_class.h : gv_class.ad
@echo "creating gv_class.h"
@sh $(srcdir)/ad2c gv_class.ad > gv_class.h
-gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_layout_res.dat gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat gv_intern_res_unix.dat
+gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_font_res-I18N_mb.dat $(srcdir)/gv_layout_res.dat gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat gv_intern_res_unix.dat
@echo "creating gv_class.ad"
cp $(srcdir)/gv_copyright.dat gv_class.ad
chmod u+w gv_class.ad
@@ -231,6 +231,7 @@ gv_class.ad : $(srcdir)/gv_font_res.dat
@cat $(srcdir)/gv_user_res.dat >> gv_class.ad
@cat gv_intern_res_unix.dat >> gv_class.ad
@cat gv_make_res.dat >> gv_class.ad
+ @cat $(srcdir)/gv_font_res-I18N_mb.dat >> gv_class.ad
@cat $(srcdir)/gv_font_res.dat >> gv_class.ad
@cat $(srcdir)/gv_misc_res.dat >> gv_class.ad
@cat $(srcdir)/gv_layout_res.dat >> gv_class.ad
@@ -278,3 +279,14 @@ if USE_MEMDEBUG_CODE
gv_SOURCES += d_mem.c d_mem.h d_xtmem.c d_xtmem.h
endif
+install-nls:
+ @for LNG in ja_JP.UTF-8 ko_KR.UTF-8; do \
+ test -f gv_nls_$$LNG.dat || continue; \
+ cat $(srcdir)/GV.ad > $(srcdir)/GV_$$LNG.ad; \
+ cat $(srcdir)/gv_nls_$$LNG.dat >> $(srcdir)/GV_$$LNG.ad; \
+ test -d $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults || \
+ $(mkdir_p) $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults; \
+ $(INSTALL) $(INSTALLFLAGS) \
+ $(srcdir)/GV_$$LNG.ad $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults/GV; \
+ done
+
--- src/dialog.c
+++ src/dialog.c 2010-02-24 13:05:21.608126304 +0000
@@ -31,6 +31,7 @@
#include "ac_config.h"
#include "config.h"
+#include "VlistP.h"
#include <stdio.h>
@@ -272,20 +273,27 @@ void DialogPopupSetText(s)
Arg args[10];
Cardinal n;
Widget response;
+ VlistWidget vw;
Dimension width;
# define DIALOG_POPUP_FREE_SPACE 50
# define DIALOG_POPUP_TEXT_MIN_WIDTH 100
String os;
Dimension lm,rm,bw,nw;
+ XFontSet fontset;
XFontStruct *font;
BEGINMESSAGE(DialogPopupSetText)
if (!s) {INFMESSAGE(no text) ENDMESSAGE(DialogPopupSetText) return;}
if (!dialogPopupCreated) makeDialogPopup();
response = XtNameToWidget(DIALOG_POPUP, "*dialog_text");
+ vw = (VlistWidget)response;
n=0;
- XtSetArg(args[n], XtNfont, &font); n++;
+ if( vw->simple.international == True ) {
+ XtSetArg(args[n], XtNfontSet, &fontset); n++;
+ } else {
+ XtSetArg(args[n], XtNfont, &font); n++;
+ }
XtSetArg(args[n], XtNleftMargin, &lm); n++;
XtSetArg(args[n], XtNrightMargin, &rm); n++;
XtSetArg(args[n], XtNborderWidth, &bw); n++;
@@ -293,8 +301,12 @@ void DialogPopupSetText(s)
XtSetArg(args[n], XtNwidth, &width); n++;
XtGetValues(response, args, n);
n=0;
- nw= ((font->max_bounds.width+font->min_bounds.width)*((Dimension)strlen(s))+1)/2
- +lm+rm+DIALOG_POPUP_FREE_SPACE+2*bw;
+ if( vw->simple.international == True )
+ nw= XmbTextEscapement( fontset, s, strlen(s));
+ else
+ nw= ((font->max_bounds.width+font->min_bounds.width)*((Dimension)strlen(s))+1)/2;
+ nw += lm+rm+DIALOG_POPUP_FREE_SPACE+2*bw;
+
if (nw<DIALOG_POPUP_TEXT_MIN_WIDTH) nw=DIALOG_POPUP_TEXT_MIN_WIDTH;
if (nw>width) {
INFIMESSAGE(new width,nw)
--- src/gv_font_res-I18N_mb.dat
+++ src/gv_font_res-I18N_mb.dat 2010-02-24 12:16:33.728125910 +0000
@@ -0,0 +1,55 @@
+
+!########## gv_font_res_linux.dat
+
+GV*international: True
+
+!##### FontSets
+
+GV*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*SmeBSB.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.processButton.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.Button*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.locator*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.dateButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.titleButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*infoVerboseButton.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.infoVerboseButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.prevPage*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.nextPage*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*newtoc.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button1.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button2.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button3.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*button4.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*fileSel*pathtext*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*confirmButton.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionsetupPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optionfsPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*Switch*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongsPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*dialogPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*dialogPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*dialogPopup*message*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*notePopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*notePopup*message*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*confirmPopup*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*confirmPopup*Button.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*versionPopup*Label*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*versionPopup*versionTexta*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*versionPopup*versionTextb*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*infoPopup*Text*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
--- src/gv_misc_res.dat
+++ src/gv_misc_res.dat 2005-05-23 17:45:33.000000000 +0000
@@ -220,6 +220,10 @@ GV*optionsetupPopup*scalesFrame.forcedWi
GV*optionsetupPopup*mediasFrame.forcedWidth: 240
GV*optionsetupPopup*mediasFrame.forcedHeight: 400
+!##### FileSet Popup
+
+GV*fileSelPopup.title: Open File
+
!##### Panner
GV*pannerFrame.frameType: sunken
@@ -321,6 +325,7 @@ GV*checkFile.label: Check File
GV*filters.label: Filters:
GV*dirs.label: Directories
GV*button1.label: Cancel
+GV*button2.label: Open File
GV*rescan.label: Rescan Directory
GV*screenSizeLabel.label: Screen Size (mm)
--- src/gv_nls_ja_JP.UTF-8.dat
+++ src/gv_nls_ja_JP.UTF-8.dat 2008-03-27 15:17:51.000000000 +0000
@@ -0,0 +1,202 @@
+!
+!** Copyright (C) 1995, 1996, 1997 Johannes Plass
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program; if not, write to the Free Software
+! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+!
+! Author: Johannes Plass (plass@thep.physik.uni-mainz.de)
+! Department of Physics
+! Johannes Gutenberg-University
+! Mainz, Germany
+!
+!
+! gv_ja_JP.eucJP.ad
+! Japanese NLS label for gv by
+! 1998 Yasuyuki Furukawa (yasu@on.cs.keio.ac.jp)
+!
+
+
+!##### Zoom Popup
+
+GV*zoomPopup.title: GV - 拡大画面
+
+!##### Info Popup
+
+GV*infoPopup.title: GhostScriptメッセージ
+
+!##### Dialog Popup
+
+GV*dialogPopup.title: ダイアログ
+
+!##### Note Popup
+
+GV*notePopup.title: メッセージ
+
+!##### Confirm Popup
+
+GV*confirmPopup.title: 確認
+
+!##### OptionsSetup Popup
+
+GV*optionfsPopup.title: ファイル選択オプション
+
+!##### OptionsGS Popup
+
+GV*optiongsPopup.title: Ghostscriptオプション
+
+!##### OptionsGV Popup
+
+GV*optiongvPopup.title: GVオプション
+
+!##### OptionsSetup Popup
+
+GV*optionsetupPopup.title: セットアップオプション
+
+!##### FileSet Popup
+
+GV*fileSelPopup.title: ファイルを開く
+
+!################################################
+!##### Labels
+!################################################
+
+GV*cancel.Label: キャンセル
+GV*dismiss.Label: 閉じる
+GV*apply.label: 適用
+GV*copyright.Label: 著作権
+GV*quit.Label: 終了
+GV*fileButton.Label: ファイル
+GV*open.Label: 開く ...
+GV*reopen.Label: 再オープン
+GV*update.Label: 更新
+GV*printAllPages.Label: 文章印刷 ...
+GV*printMarkedPages.Label: マークしたページの印刷...
+GV*saveAllPages.Label: 文章保存 ...
+GV*saveMarkedPages.Label: マークしたページの保存...
+GV*stateButton.Label: 環境設定
+GV*stop.Label: 割り込み停止
+GV*dsc.Label: 文書構造によるスペクト調整
+GV*eof.Label: EOFコメントを無視
+GV*antialias.Label: アンチエイリアス
+GV*watchFile.Label: 自動ファイル更新
+GV*showTitle.Label: タイトル表示
+GV*pixmap.Label: Backing Pixmap
+GV*size.Label: 自動サイズ変更
+GV*watch.Label: 自動ファイル更新
+GV*optionsgv.Label: GVオプション...
+GV*optionsfs.Label: ファイル選択オプション...
+GV*optionsgs.Label: Ghostscriptオプション...
+GV*optionssetup.Label: セットアップオプション...
+GV*pageButton.Label: ページ
+GV*next.Label: 次へ
+GV*show.Label: 再表示
+GV*prev.Label: 前へ
+GV*center.Label: 中央
+GV*pageButton*current.Label: 現在のページをマーク/解除
+GV*pageButton*even.Label: 偶数ページをマーク/解除
+GV*pageButton*odd.Label: 奇数ページをマーク/解除
+GV*pageButton*unmark.Label: 全マーク解除
+GV*processButton.Label: \ 実行
+GV*mark.Label: マーク
+GV*prevPage.Label: <<
+GV*nextPage.Label: >>
+GV*unmark.Label: マーク解除
+GV*automatic.Label: 自動
+GV*portrait.Label: ポートレート
+GV*landscape.Label: ランドスケープ
+GV*upsidedown.Label: 上下反転
+GV*seascape.Label: 逆ランドスケープ
+GV*swap.Label: ランドスケープ変換
+GV*toggleCurrent.label: 現在のページマーク/解除
+GV*toggleEven.label: 偶数ページマーク/解除
+GV*toggleOdd.label: 奇数ページマーク/解除
+GV*unmarkAll.label: 全マーク解除
+GV*printAll.label: 全印刷
+GV*printMarked.label: マーク部分印刷
+GV*saveAll.label: 全保存
+GV*saveMarked.label: マーク部分保存
+GV*openFile.label: 開く
+GV*redisplay.label: 再表示
+GV*updateFile.label: ファイル更新
+GV*checkFile.label: ファイルチェック
+
+GV*filters.label: フィルタ:
+GV*dirs.label: ディレクトリ
+GV*button1.label: キャンセル
+GV*button2.label: ファイルを開く
+GV*rescan.label: ディレクトリ再読込
+GV*screenSizeLabel.label: 画面サイズ[mm]
+
+GV*versionPopup*versionDone*label: 閉じる
+GV*dialogPopup*cancel.label: キャンセル
+GV*notePopup*done.label: 了解
+
+GV*confirmPopup*cancel.label: キャンセル
+GV*confirmPopup*done.label: 終了
+GV*save.label: 保存
+
+GV*optiongvPopup*mediaLabel.label: \ 用紙サイズ \
+GV*optiongvPopup*fmediaLabel.label: 判別不明時の用紙サイズ
+GV*optiongvPopup*orientLabel.label: \ 用紙の向き \
+GV*optiongvPopup*forientLabel.label: 判別不明時の用紙向き
+GV*optiongvPopup*magLabel.label: 拡大縮小
+GV*optiongvPopup*antialias.label: アンチエイリアス
+GV*optiongvPopup*respectDSC.label: DSCを有効
+GV*optiongvPopup*eof.label: EOFを無視
+GV*optiongvPopup*autoResize.label: 可変サイズ
+GV*optiongvPopup*swapLandscape.label: ランドスケープ変換
+GV*optiongvPopup*scalesLabel.label: \ スケール \
+
+GV*miscmenuLabel.label: その他メニューエントリ
+GV*magmenuLabel.label: 拡大メニューエントリ
+GV*mediasLabel.label: メディアの大きさ
+GV*confirmLabel.label: 終了時の確認
+GV*misc.label: その他
+GV*scrolling.label: スクロール反転
+GV*eyeGuide.label: スクロールガイド
+GV*confirmPrint.label: 印刷時の確認
+GV*uncompressLabel.label: 圧縮展開
+GV*autoCenter.label: 自動的に中央へ
+GV*printCommandLabel.label: 印刷コマンド
+GV*scratchDirLabel.label: スクラッチディレクトリ
+GV*saveDirLabel.label: 保存ディレクトリ
+GV*scalesLabel.label: スケール
+GV*scaleBaseLabel.label: スケールベース
+
+GV*safer.label: より安全に
+GV*quiet.label: 終了
+GV*defaults.label: システム標準値
+GV*scanLabel.label: PDF読み込み
+GV*convLabel.label: PDF変換
+GV*gsLabel.label: Postscriptエンジン
+GV*x11devLabel.label: デバイス
+GV*x11alphadevLabel.label: アンチエイリアスデバイス
+GV*argumentsLabel.label: 引数
+
+GV*filtersLabel.label: ファイル選択フィルタ
+GV*dirsLabel.label: ファイル選択ディレクトリ
+GV*filterLabel.label: 標準フィルタ
+
+GV*miscMenu.update.label: ファイル更新
+GV*miscMenu.redisplay.label: 再表示
+GV*miscMenu.stop.label: 割り込み停止
+GV*miscMenu.toggle_current.label: 現在のページマーク/解除
+GV*miscMenu.toggle_odd.label: 奇数ページマーク/解除
+GV*miscMenu.toggle_even.label: 偶数ページマーク/解除
+GV*miscMenu.unmark.label: 全マーク解除
+GV*miscMenu.print_all.label: 全印刷
+GV*miscMenu.print_marked.label: マーク部分印刷
+GV*miscMenu.save_all.label: 全保存
+GV*miscMenu.save_marked.label: マーク部分保存
+
--- src/gv_nls_ko_KR.UTF-8.dat
+++ src/gv_nls_ko_KR.UTF-8.dat 2008-03-27 15:41:29.000000000 +0000
@@ -0,0 +1,202 @@
+!
+!** Copyright (C) 1995, 1996, 1997 Johannes Plass
+!
+! This program is free software; you can redistribute it and/or modify
+! it under the terms of the GNU General Public License as published by
+! the Free Software Foundation; either version 2 of the License, or
+! (at your option) any later version.
+!
+! This program is distributed in the hope that it will be useful,
+! but WITHOUT ANY WARRANTY; without even the implied warranty of
+! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+! GNU General Public License for more details.
+!
+! You should have received a copy of the GNU General Public License
+! along with this program; if not, write to the Free Software
+! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+!
+! Author: Johannes Plass (plass@thep.physik.uni-mainz.de)
+! Department of Physics
+! Johannes Gutenberg-University
+! Mainz, Germany
+!
+!
+! gv_euc-kr.ad
+! Korean NLS label for gv by
+! 1999 Sang-Jin Hwang, (hsjlinux@netian.com)
+!
+
+
+!##### Zoom Popup
+
+GV*zoomPopup.title: GV - 확대
+
+!##### Info Popup
+
+GV*infoPopup.title: 고스트 스크립트 메시지
+
+!##### Dialog Popup
+
+GV*dialogPopup.title: 다이알로그
+
+!##### Note Popup
+
+GV*notePopup.title: 메시지
+
+!##### Confirm Popup
+
+GV*confirmPopup.title: 확인
+
+!##### OptionsSetup Popup
+
+GV*optionfsPopup.title: 파일 선택 옵션
+
+!##### OptionsGS Popup
+
+GV*optiongsPopup.title: 고스트 스크립트 옵션
+
+!##### OptionsGV Popup
+
+GV*optiongvPopup.title: GV 옵션
+
+!##### OptionsSetup Popup
+
+GV*optionsetupPopup.title: 설정 옵션
+
+!##### FileSet Popup
+
+GV*fileSelPopup.title: 파일 열기
+
+!################################################
+!##### Labels
+!################################################
+
+GV*cancel.Label: 취소
+GV*dismiss.Label: 닫기
+GV*apply.label: 적용
+GV*copyright.Label: 저작권
+GV*quit.Label: 종료
+GV*fileButton.Label: 파일
+GV*open.Label: 열기 ...
+GV*reopen.Label: 재열기
+GV*update.Label: 경신
+GV*printAllPages.Label: 문서 인쇄 ...
+GV*printMarkedPages.Label: 마크한 페이지 인쇄 ...
+GV*saveAllPages.Label: 문서 저장 ...
+GV*saveMarkedPages.Label: 마크한 페이지 저장 ...
+GV*stateButton.Label: 환경 설정
+GV*stop.Label: 중지
+GV*dsc.Label: 문서 구조화
+GV*eof.Label: EOF 주석 무시
+GV*antialias.Label: 매끄러운 화면 처리
+GV*watchFile.Label: 자동 파일경신
+GV*showTitle.Label: 타이틀 표시
+GV*pixmap.Label: Backing Pixmap
+GV*size.Label: 자동 크기 조절
+GV*watch.Label: 자동 파일경신
+GV*optionsgv.Label: GV 옵션 ...
+GV*optionsfs.Label: 파일 선택 옵션 ...
+GV*optionsgs.Label: 고스트 스크립트 옵션 ...
+GV*optionssetup.Label: 설정 옵션 ...
+GV*pageButton.Label: 페이지
+GV*next.Label: 다음
+GV*show.Label: 화면 재시작
+GV*prev.Label: 이전
+GV*center.Label: 중간
+GV*pageButton*current.Label: 현재페이지 마크/해제
+GV*pageButton*even.Label: 짝수페이지 마크/해제
+GV*pageButton*odd.Label: 홀수페이지 마크/해제
+GV*pageButton*unmark.Label: 전 마크 해제
+GV*processButton.Label: \ 진행중
+GV*mark.Label: 마크
+GV*prevPage.Label: <<
+GV*nextPage.Label: >>
+GV*unmark.Label: 표시 안함
+GV*automatic.Label: 자동
+GV*portrait.Label: Portrait
+GV*landscape.Label: Landscape
+GV*upsidedown.Label: 상하 반전
+GV*seascape.Label: Seascape
+GV*swap.Label: Landscape변환
+GV*toggleCurrent.label: 현재페이지 마크/해제
+GV*toggleEven.label: 짝수페이지 마크/해제
+GV*toggleOdd.label: 홀수페이지 마크/해제
+GV*unmarkAll.label: 모두 표시 안함
+GV*printAll.label: 모두 인쇄
+GV*printMarked.label: 마크부분 인쇄
+GV*saveAll.label: 모두 저장
+GV*saveMarked.label: 표시 저장
+GV*openFile.label: 열기
+GV*redisplay.label: 화면 재시작
+GV*updateFile.label: 파일경신
+GV*checkFile.label: 파일 확인
+
+GV*filters.label: 필터
+GV*dirs.label: 디렉토리
+GV*button1.label: 취소
+GV*button2.label: 파일 열기
+GV*rescan.label: 디렉토리 검색
+GV*screenSizeLabel.label: 회면 사이즈mm]
+
+GV*versionPopup*versionDone*label: 취소
+GV*dialogPopup*cancel.label: 취소
+GV*notePopup*done.label: 예
+
+GV*confirmPopup*cancel.label: 취소
+GV*confirmPopup*done.label: 종료
+GV*save.label: 저장
+
+GV*optiongvPopup*mediaLabel.label: \ 용지 사이즈 \
+GV*optiongvPopup*fmediaLabel.label: 불판명시의 용지 사이즈
+GV*optiongvPopup*orientLabel.label: \ 원 상태 \
+GV*optiongvPopup*forientLabel.label: 윈 상태로 복귀
+GV*optiongvPopup*magLabel.label: 확대축소
+GV*optiongvPopup*antialias.label: 다듬기
+GV*optiongvPopup*respectDSC.label: DSC를 유효
+GV*optiongvPopup*eof.label: EOF를 무시
+GV*optiongvPopup*autoResize.label: 가변 사이즈
+GV*optiongvPopup*swapLandscape.label: Landscape변환
+GV*optiongvPopup*scalesLabel.label: \ 스케일 \
+
+GV*miscmenuLabel.label: 기타 메뉴
+GV*magmenuLabel.label: 확대 메뉴 목록
+GV*mediasLabel.label: 미디어 크기
+GV*confirmLabel.label: 확인 종료
+GV*misc.label: 기타
+GV*scrolling.label: 스크롤 반전
+GV*eyeGuide.label: 스크롤 가이드
+GV*confirmPrint.label: 인쇄시 확인
+GV*uncompressLabel.label: 압축 전개
+GV*autoCenter.label: 자동적으로 중앙으로
+GV*printCommandLabel.label: 인쇄 명령어
+GV*scratchDirLabel.label: 스크레치 디렉토리
+GV*saveDirLabel.label: 디렉토리 저장
+GV*scalesLabel.label: 스케일
+GV*scaleBaseLabel.label: 기본 스케일
+
+GV*safer.label: 보다 안전하게
+GV*quiet.label: 종료
+GV*defaults.label: 시스템 표준값
+GV*scanLabel.label: PDF 검색
+GV*convLabel.label: PDF 변환
+GV*gsLabel.label: Postscript인터럽트
+GV*x11devLabel.label: 디바이스
+GV*x11alphadevLabel.label: 디바이스 조정
+GV*argumentsLabel.label: 인수
+
+GV*filtersLabel.label: 파일 선택 필터
+GV*dirsLabel.label: 파일 선택 디렉토리
+GV*filterLabel.label: 기본 필터
+
+GV*miscMenu.update.label: 파일경신
+GV*miscMenu.redisplay.label: 화면 재조정
+GV*miscMenu.stop.label: 인터럽트 중지
+GV*miscMenu.toggle_current.label: 현재페이지 마크/해제
+GV*miscMenu.toggle_odd.label: 홀수페이지 마크/해제
+GV*miscMenu.toggle_even.label: 짝수페이지 마크/해제
+GV*miscMenu.unmark.label: 모두 표시 안함
+GV*miscMenu.print_all.label: 모두 인쇄
+GV*miscMenu.print_marked.label: 마크 부분 인쇄
+GV*miscMenu.save_all.label: 모두 저장
+GV*miscMenu.save_marked.label: 표시 저장
+
--- src/info.c
+++ src/info.c 2008-03-27 14:58:14.000000000 +0000
@@ -36,6 +36,7 @@
#include "message.h"
#include "config.h"
+#include "VlistP.h"
#include <stdio.h>
#include <stdlib.h>
@@ -70,6 +71,20 @@ static Bool infoPopupCreated = False;
static Bool infoPopupVisible = False;
static int info_length;
+static int FontSetWidth( XFontSet fnt ) {
+ XRectangle ink_array_return, logical_array_return;
+ XRectangle overall_ink_return, overall_logical_return;
+ int num_chars_return;
+ XmbTextPerCharExtents( fnt, "A", 1,
+ &ink_array_return,
+ &logical_array_return, 1,
+ &num_chars_return,
+ &overall_ink_return,
+ &overall_logical_return );
+ return( overall_logical_return.width );
+}
+#define FontSetHeight(fnt) (XExtentsOfFontSet(fnt)->max_logical_extent.height)
+
/*###############################################################################
cb_popupInfoPopup
###############################################################################*/
@@ -193,7 +208,9 @@ void makeInfoPopup(void)
Cardinal n;
Dimension bottomMargin, leftMargin, rightMargin, topMargin;
Dimension width, height;
+ XFontSet fontset;
XFontStruct *font;
+ VlistWidget vw;
BEGINMESSAGE(makeInfoPopup)
@@ -221,20 +238,30 @@ void makeInfoPopup(void)
XtSetArg(args[n], XtNleft, XtChainLeft); n++;
XtSetArg(args[n], XtNright, XtChainRight); n++;
infodismiss = XtCreateManagedWidget("dismiss", buttonWidgetClass,infoform,args,n);
+ vw = (VlistWidget)infodismiss;
XtAddCallback(infodismiss, XtNcallback, cb_popdownInfoPopup,NULL);
XtInstallAccelerators(infoform, infodismiss);
XtInstallAccelerators(infotext, infodismiss);
n=0;
- XtSetArg(args[n], XtNfont, &font); n++;
+ if( vw->simple.international == True ) {
+ XtSetArg(args[n], XtNfontSet, &fontset); n++;
+ } else {
+ XtSetArg(args[n], XtNfont, &font); n++;
+ }
XtSetArg(args[n], XtNbottomMargin, &bottomMargin); n++;
XtSetArg(args[n], XtNleftMargin, &leftMargin); n++;
XtSetArg(args[n], XtNrightMargin, &rightMargin); n++;
XtSetArg(args[n], XtNtopMargin, &topMargin); n++;
XtGetValues(infotext,args,n);
- width = font->max_bounds.width * 80 + leftMargin + rightMargin;
- height = (font->ascent + font->descent) * 22 + topMargin + bottomMargin;
+ if( vw->simple.international == True ) {
+ width = FontSetWidth(fontset) * 80 + leftMargin + rightMargin;
+ height = FontSetHeight(fontset) * 22 + topMargin + bottomMargin;
+ } else {
+ width = font->max_bounds.width * 80 + leftMargin + rightMargin;
+ height = (font->ascent + font->descent) * 22 + topMargin + bottomMargin;
+ }
n=0;
XtSetArg(args[0], XtNwidth, width); n++;
--- src/main.c
+++ src/main.c 2008-03-27 14:58:53.000000000 +0000
@@ -408,6 +408,32 @@ int main(argc, argv)
/*### initializing toolkit and the application context ########*/
+ /*
+ Make sure that LC_NUMERIC is POSIX.
+ LC_NUMERIC must not use locales like de_DE.UTF-8 or de_DE@eurowhere
+ the decimal separator is ',' or gv will fail with the
+ message "**** Unable to open the initial device, quitting."
+ */
+ if (getenv("LC_ALL")) {
+ char *locale;
+ locale = getenv("LC_ALL");
+ unsetenv("LC_ALL");
+ setenv("LC_CTYPE", locale, 1);
+ setenv("LC_NUMERIC", locale, 1);
+ setenv("LC_TIME", locale, 1);
+ setenv("LC_COLLATE", locale, 1);
+ setenv("LC_MONETARY", locale, 1);
+ setenv("LC_MESSAGES", locale, 1);
+ setenv("LC_PAPER", locale, 1);
+ setenv("LC_NAME", locale, 1);
+ setenv("LC_ADDRESS", locale, 1);
+ setenv("LC_TELEPHONE", locale, 1);
+ setenv("LC_MEASUREMENT", locale, 1);
+ setenv("LC_IDENTIFICATION", locale, 1);
+ }
+ setenv("LC_NUMERIC", "POSIX", 1);
+ XtSetLanguageProc(NULL, NULL, NULL);
+
INFMESSAGE(initializing toolkit and the application context)
XtToolkitInitialize();
app_con = XtCreateApplicationContext();
--- src/misc_private.c
+++ src/misc_private.c 2010-02-24 13:11:25.712127659 +0000
@@ -48,6 +48,7 @@
#include "types.h"
#include "misc_private.h"
+#include "VlistP.h"
/*############################################################*/
/* update_label */
@@ -59,6 +60,7 @@ update_label(widget,text)
char *text;
{
LabelWidget w = (LabelWidget) widget;
+ VlistWidget vw = (VlistWidget) widget;
int shadow;
BEGINMESSAGE1(update_label)
@@ -78,26 +80,41 @@ update_label(widget,text)
if (text) { /* most of the following comes from X11/Xaw/Label.c */
Position x,y;
INFSMESSAGE(update_label,text)
- y = w->label.label_y + w->label.font->max_bounds.ascent;
+ if( vw->simple.international == True ) {
+ y = w->label.label_y - XExtentsOfFontSet(w->label.fontset)->max_logical_extent.y;
+ } else {
+ y = w->label.label_y + w->label.font->max_bounds.ascent;
+ }
if (w->label.justify == XtJustifyCenter) {
unsigned int width;
int len = (int) strlen(text);
- XFontStruct *fs = w->label.font;
- if (w->label.encoding) width = XTextWidth16 (fs, (XChar2b*)text, (int)(len/2) );
- else width = XTextWidth (fs, text , (int)(len) );
+ if( vw->simple.international == True ) {
+ XFontSet fs = w->label.fontset;
+ width = XmbTextEscapement(fs, text, (int)len );
+ } else {
+ XFontStruct *fs = w->label.font;
+ if (w->label.encoding) width = XTextWidth16 (fs, (XChar2b*)text, (int)(len/2) );
+ else width = XTextWidth (fs, text , (int)(len) );
+ }
x = (Position) ((w->core.width-width)/2);
} else {
x = w->label.internal_width + w->threeD.shadow_width;
}
- if (w->label.encoding) {
- XDrawString16(XtDisplay(widget), XtWindow(widget),
- w->label.normal_GC,
- x, y,(XChar2b*)text, (int)(strlen(text)));
+ if( vw->simple.international == True ) {
+ XmbDrawString(XtDisplay(widget), XtWindow(widget),
+ w->label.fontset, w->label.normal_GC,
+ x, y, text, (int)(strlen(text)));
} else {
- XDrawString(XtDisplay(widget), XtWindow(widget),
+ if (w->label.encoding) {
+ XDrawString16(XtDisplay(widget), XtWindow(widget),
+ w->label.normal_GC,
+ x, y,(XChar2b*)text, (int)(strlen(text)));
+ } else {
+ XDrawString(XtDisplay(widget), XtWindow(widget),
w->label.normal_GC,
x, y, text, (int)(strlen(text)));
+ }
}
}