--- a/WinWorkstation.st Thu Jul 22 14:51:03 2010 +0200
+++ b/WinWorkstation.st Thu Jul 22 18:32:24 2010 +0200
@@ -4871,110 +4871,110 @@
OBJ
__charSetSymbolFor(int charSet)
{
- char *s;
+ OBJ s;
switch (charSet) {
case ANSI_CHARSET:
- s = "ms-ansi";
+ s = @symbol('ms-ansi');
break;
case DEFAULT_CHARSET:
- s = "ms-default";
+ s = @symbol('ms-default');
break;
case SYMBOL_CHARSET:
- s = "ms-symbol";
+ s = @symbol('ms-symbol');
break;
case SHIFTJIS_CHARSET:
- s = "ms-shiftjis";
+ s = @symbol('ms-shiftjis');
break;
case GB2312_CHARSET:
- s = "ms-gb2312";
+ s = @symbol('ms-gb2312');
break;
case HANGEUL_CHARSET:
- s = "ms-hangeul";
+ s = @symbol('ms-hangeul');
break;
# if defined(HANGUL_CHARSET) && (HANGUL_CHARSET != HANGEUL_CHARSET)
case HANGUL_CHARSET:
- s = "ms-hangul";
+ s = @symbol('ms-hangul');
break;
# endif
case CHINESEBIG5_CHARSET:
- s = "ms-chinesebig5";
+ s = @symbol('ms-chinesebig5');
break;
case OEM_CHARSET:
- s = "ms-oem";
+ s = @symbol('ms-oem');
break;
# ifdef JOHAB_CHARSET
case JOHAB_CHARSET:
- s = "ms-johab";
+ s = @symbol('ms-johab');
break;
# endif
# ifdef HEBREW_CHARSET
case HEBREW_CHARSET:
- s = "ms-hebrew";
+ s = @symbol('ms-hebrew');
break;
# endif
# ifdef ARABIC_CHARSET
case ARABIC_CHARSET:
- s = "ms-arabic";
+ s = @symbol('ms-arabic');
break;
# endif
# ifdef GREEK_CHARSET
case GREEK_CHARSET:
- s = "ms-greek";
+ s = @symbol('ms-greek');
break;
# endif
# ifdef TURKISH_CHARSET
case TURKISH_CHARSET:
- s = "ms-turkish";
+ s = @symbol('ms-turkish');
break;
# endif
# ifdef RUSSIAN_CHARSET
case RUSSIAN_CHARSET:
- s = "ms-russian";
+ s = @symbol('ms-russian');
break;
# endif
# ifdef EASTEUROPE_CHARSET
case EASTEUROPE_CHARSET:
- s = "ms-easteurope";
+ s = @symbol('ms-easteurope');
break;
# endif
# ifdef BALTIC_CHARSET
case BALTIC_CHARSET:
- s = "ms-baltic";
+ s = @symbol('ms-baltic');
break;
# endif
# ifdef VIETNAMESE_CHARSET
case VIETNAMESE_CHARSET:
- s = "ms-vietnamese";
+ s = @symbol('ms-vietnamese');
break;
# endif
# ifdef THAI_CHARSET
case THAI_CHARSET:
- s = "ms-thai";
+ s = @symbol('ms-thai');
break;
# endif
# ifdef MAC_CHARSET
case MAC_CHARSET:
- s = "ms-mac";
+ s = @symbol('ms-mac');
break;
# endif
# ifdef UNICODE_CHARSET
case UNICODE_CHARSET:
- s = "ms-unicode";
+ s = @symbol('ms-unicode');
break;
# endif
default:
- s = "unknown";
- break;
- }
- return __MKSYMBOL(s, 0);
+ s = @symbol(unknown);
+ break;
+ }
+ return s;
}
OBJ
__extractLogicalFontParameters(LOGFONT *lplf)
{
OBJ newArray, t;
- char *s;
+ OBJ s;
DPRINTF((" lfHeight %d\n", lplf->lfHeight ));
DPRINTF((" lfWidth %d\n", lplf->lfWidth ));
@@ -5003,30 +5003,26 @@
case FW_EXTRABOLD:
case FW_SEMIBOLD:
case FW_BOLD:
- s = "bold";
+ s = @symbol(bold);
break;
case FW_NORMAL:
#if 0
- s = "normal";
+ s = @symbol(normal);
break;
#endif
case FW_MEDIUM:
- s = "medium";
+ s = @symbol(medium);
break;
case FW_THIN:
case FW_EXTRALIGHT:
case FW_LIGHT:
- s = "demi";
+ s = @symbol(demi);
break;
default:
- s = "other";
+ s = @symbol(other);
break;
}
- __PROTECT__(newArray);
- t = __MKSTRING(s);
- __UNPROTECT__(newArray);
- __ArrayInstPtr(newArray)->a_element[5] = t; __STORE(newArray, t);
-
+ __ArrayInstPtr(newArray)->a_element[5] = s; __STORE(newArray, s);
__ArrayInstPtr(newArray)->a_element[6] = __MKSMALLINT(lplf->lfItalic);
__ArrayInstPtr(newArray)->a_element[7] = __MKSMALLINT(lplf->lfUnderline);
__ArrayInstPtr(newArray)->a_element[8] = __MKSMALLINT(lplf->lfStrikeOut);
@@ -5040,45 +5036,40 @@
if( lplf->lfItalic == TRUE ) {
if( lplf->lfUnderline == TRUE ) {
if( lplf->lfStrikeOut == TRUE ) {
- s = "italic-underline-strikeOut";
+ s = @symbol('italic-underline-strikeOut');
} else {
- s = "italic-underline";
+ s = @symbol('italic-underline');
}
} else {
if( lplf->lfStrikeOut == TRUE ) {
- s = "italic-strikeOut";
+ s = @symbol('italic-strikeOut');
} else {
- s = "italic";
+ s = @symbol('italic');
}
}
} else {
if( lplf->lfUnderline == TRUE ) {
if( lplf->lfStrikeOut == TRUE ) {
- s = "roman-underline-strikeOut";
+ s = @symbol('roman-underline-strikeOut');
} else {
- s = "roman-underline";
+ s = @symbol('roman-underline');
}
} else {
if( lplf->lfStrikeOut == TRUE ) {
- s = "roman-strikeOut";
+ s = @symbol('roman-strikeOut');
} else {
- s = "roman";
+ s = @symbol('roman');
}
}
}
- __PROTECT__(newArray);
- t = __MKSYMBOL(s, 0);
- __UNPROTECT__(newArray);
- __ArrayInstPtr(newArray)->a_element[14] = t; __STORE(newArray, t);
+ __ArrayInstPtr(newArray)->a_element[14] = s; __STORE(newArray, s);
__PROTECT__(newArray);
t = __MKSTRING(lplf->lfFaceName);
__UNPROTECT__(newArray);
__ArrayInstPtr(newArray)->a_element[15] = t; __STORE(newArray, t);
- __PROTECT__(newArray);
t = __charSetSymbolFor(lplf->lfCharSet);
- __UNPROTECT__(newArray);
__ArrayInstPtr(newArray)->a_element[16] = t; __STORE(newArray, t);
return newArray;
@@ -13194,69 +13185,69 @@
"
%{
-
if (__isExternalAddress(fontId)
- && __isArray(rawData)
- && (__arraySize(rawData) >= 11)) {
- SIZE size;
- int avgWidth;
- HGDIOBJ hFont;
- HGDIOBJ prevFont;
- TEXTMETRIC tmet;
- static char *s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- static int len;
- OBJ t;
-
- hFont = _HGDIOBJVal(fontId);
-
- /*
- * temporarily set this font in the tmpDC (root-) context
- */
+ && __isArray(rawData)
+ && (__arraySize(rawData) >= 11)) {
+ SIZE size;
+ int avgWidth;
+ HGDIOBJ hFont;
+ HGDIOBJ prevFont;
+ TEXTMETRIC tmet;
+ OBJ t;
+
+ hFont = _HGDIOBJVal(fontId);
+
+ /*
+ * temporarily set this font in the tmpDC (root-) context
+ */
#ifdef CACHE_LAST_TMP_FONT
- if (__tmpDC_hfont != hFont) {
- prevFont = SelectObject(__tmpDC, hFont);
- if (__tmpDC_prev_hfont == NULL) {
- __tmpDC_prev_hfont = prevFont;
- }
- __tmpDC_hfont = hFont;
- }
-#else
- prevFont = SelectObject(__tmpDC, hFont);
-#endif
- GetTextMetricsW(__tmpDC, &tmet);
- if (len == 0) {
- len = strlen(s);
- }
+ if (__tmpDC_hfont != hFont) {
+ prevFont = SelectObject(__tmpDC, hFont);
+ if (__tmpDC_prev_hfont == NULL) {
+ __tmpDC_prev_hfont = prevFont;
+ }
+ __tmpDC_hfont = hFont;
+ }
+#else
+ prevFont = SelectObject(__tmpDC, hFont);
+#endif
+ GetTextMetricsW(__tmpDC, &tmet);
#if 0
- GetTextExtentPoint32(__tmpDC, s, len, &size);
- avgWidth = (size.cx / (len / 2) + 1) / 2;
-#else
- avgWidth = tmet.tmAveCharWidth;
+ {
+ static char *s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ static int len;
+
+ if (len == 0) {
+ len = strlen(s);
+ }
+ GetTextExtentPoint32(__tmpDC, s, len, &size);
+ avgWidth = (size.cx / (len / 2) + 1) / 2;
+ }
+#else
+ avgWidth = tmet.tmAveCharWidth;
#endif
#ifndef CACHE_LAST_TMP_FONT
- SelectObject(__tmpDC, prevFont);
-#endif
-
- __ArrayInstPtr(rawData)->a_element[0] = __MKSMALLINT(tmet.tmAscent); /* ascent -> (data at:1) */
- __ArrayInstPtr(rawData)->a_element[1] = __MKSMALLINT(tmet.tmDescent); /* descent -> (data at:2) */
- __ArrayInstPtr(rawData)->a_element[2] = __MKSMALLINT(tmet.tmAscent); /* maxAscent -> (data at:3) */
- __ArrayInstPtr(rawData)->a_element[3] = __MKSMALLINT(tmet.tmDescent); /* maxDescent -> (data at:4) */
- __ArrayInstPtr(rawData)->a_element[4] = __MKSMALLINT(avgWidth); /* minWidth -> (data at:5) */
- __ArrayInstPtr(rawData)->a_element[5] = __MKSMALLINT(tmet.tmMaxCharWidth); /* maxWidth -> (data at:6) */
- __ArrayInstPtr(rawData)->a_element[6] = __MKSMALLINT(avgWidth); /* avgWidth -> (data at:7) */
- __ArrayInstPtr(rawData)->a_element[7] = __MKSMALLINT(tmet.tmFirstChar); /* min -> (data at:8) */
- __ArrayInstPtr(rawData)->a_element[8] = __MKSMALLINT(tmet.tmLastChar); /* max -> (data at:9) */
- __ArrayInstPtr(rawData)->a_element[9] = __MKSMALLINT(tmet.tmDefaultChar); /* default -> (data at:10) */
- __PROTECT__(rawData);
- t = __charSetSymbolFor(tmet.tmCharSet);
- __UNPROTECT__(rawData);
- __ArrayInstPtr(rawData)->a_element[10]= t; __STORE(rawData, t); /* charSet -> (data at:11) */
-
- DPRINTF(("textMetrics h=%x avgAsc=%d avgDesc=%d minW=%d maxW=%d avgW=%d\n",
- hFont, tmet.tmAscent, tmet.tmDescent, avgWidth, tmet.tmMaxCharWidth,
- tmet.tmAveCharWidth));
- RETURN (self);
+ SelectObject(__tmpDC, prevFont);
+#endif
+
+ __ArrayInstPtr(rawData)->a_element[0] = __MKSMALLINT(tmet.tmAscent); /* ascent -> (data at:1) */
+ __ArrayInstPtr(rawData)->a_element[1] = __MKSMALLINT(tmet.tmDescent); /* descent -> (data at:2) */
+ __ArrayInstPtr(rawData)->a_element[2] = __MKSMALLINT(tmet.tmAscent); /* maxAscent -> (data at:3) */
+ __ArrayInstPtr(rawData)->a_element[3] = __MKSMALLINT(tmet.tmDescent); /* maxDescent -> (data at:4) */
+ __ArrayInstPtr(rawData)->a_element[4] = __MKSMALLINT(avgWidth); /* minWidth -> (data at:5) */
+ __ArrayInstPtr(rawData)->a_element[5] = __MKSMALLINT(tmet.tmMaxCharWidth); /* maxWidth -> (data at:6) */
+ __ArrayInstPtr(rawData)->a_element[6] = __MKSMALLINT(avgWidth); /* avgWidth -> (data at:7) */
+ __ArrayInstPtr(rawData)->a_element[7] = __MKSMALLINT(tmet.tmFirstChar); /* min -> (data at:8) */
+ __ArrayInstPtr(rawData)->a_element[8] = __MKSMALLINT(tmet.tmLastChar); /* max -> (data at:9) */
+ __ArrayInstPtr(rawData)->a_element[9] = __MKSMALLINT(tmet.tmDefaultChar); /* default -> (data at:10) */
+ t = __charSetSymbolFor(tmet.tmCharSet);
+ __ArrayInstPtr(rawData)->a_element[10]= t; __STORE(rawData, t); /* charSet -> (data at:11) */
+
+ DPRINTF(("textMetrics h=%x avgAsc=%d avgDesc=%d minW=%d maxW=%d avgW=%d\n",
+ hFont, tmet.tmAscent, tmet.tmDescent, avgWidth, tmet.tmMaxCharWidth,
+ tmet.tmAveCharWidth));
+ RETURN (self);
}
RETURN (nil);
%}
@@ -18847,11 +18838,11 @@
!WinWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.425 2010-07-22 12:51:03 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.426 2010-07-22 16:32:24 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.425 2010-07-22 12:51:03 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.426 2010-07-22 16:32:24 stefan Exp $'
! !
WinWorkstation initialize!