diff Modules/stdwinmodule.c @ 184:1b08df41587b legacy-trunk

More flexible font setting (mainly for the Mac).
author Guido van Rossum <guido@python.org>
date Thu, 04 Apr 1991 15:24:07 +0000
parents 0cee01b68d9c
children 89115e7534d5
line wrap: on
line diff
--- a/Modules/stdwinmodule.c	Thu Apr 04 15:21:57 1991 +0000
+++ b/Modules/stdwinmodule.c	Thu Apr 04 15:24:07 1991 +0000
@@ -459,11 +459,54 @@
 	drawingobject *self;
 	object *args;
 {
-	TEXTATTR saveattr, winattr;
-	object *str;
-	if (!getstrarg(args, &str))
+	object *font, *style;
+	int size;
+	if (args == NULL) {
+		err_badarg();
+		return NULL;
+	}
+	if (is_stringobject(args)) {
+		font = args;
+		style = NULL;
+		size = 0;
+	}
+	else if (is_tupleobject(args)) {
+		int n = gettuplesize(args);
+		if (n == 2) {
+			if (!getstrintarg(args, &font, &size))
+				return NULL;
+			style = NULL;
+		}
+		else if (!getstrstrintarg(args, &font, &style, &size))
+			return NULL;
+	}
+	else {
+		err_badarg();
 		return NULL;
-	wsetfont(getstringvalue(str));
+	}
+	if (getstringsize(font) != 0)
+		wsetfont(getstringvalue(font));
+	if (style != NULL) {
+		switch (*getstringvalue(style)) {
+		case 'b':
+			wsetbold();
+			break;
+		case 'i':
+			wsetitalic();
+			break;
+		case 'o':
+			wsetbolditalic();
+			break;
+		case 'u':
+			wsetunderline();
+			break;
+		default:
+			wsetplain();
+			break;
+		}
+	}
+	if (size != 0)
+		wsetsize(size);
 	INCREF(None);
 	return None;
 }