- Added DrawThemeTextBox()

- fixed GetThemeTextDimensions(): it has an in/out Point arg, not just out.
This commit is contained in:
Just van Rossum 2002-01-02 15:11:44 +00:00
parent 1ca65c0738
commit 4f6fe52424
3 changed files with 50 additions and 4 deletions

View File

@ -660,6 +660,40 @@ static PyObject *App_UseThemeFont(PyObject *_self, PyObject *_args)
#if TARGET_API_MAC_CARBON
static PyObject *App_DrawThemeTextBox(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
OSStatus _err;
CFStringRef inString;
ThemeFontID inFontID;
ThemeDrawState inState;
Boolean inWrapToWidth;
Rect inBoundingBox;
SInt16 inJust;
if (!PyArg_ParseTuple(_args, "O&HlbO&h",
CFStringRefObj_Convert, &inString,
&inFontID,
&inState,
&inWrapToWidth,
PyMac_GetRect, &inBoundingBox,
&inJust))
return NULL;
_err = DrawThemeTextBox(inString,
inFontID,
inState,
inWrapToWidth,
&inBoundingBox,
inJust,
NULL);
if (_err != noErr) return PyMac_Error(_err);
Py_INCREF(Py_None);
_res = Py_None;
return _res;
}
#endif
#if TARGET_API_MAC_CARBON
static PyObject *App_TruncateThemeText(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@ -702,11 +736,12 @@ static PyObject *App_GetThemeTextDimensions(PyObject *_self, PyObject *_args)
Boolean inWrapToWidth;
Point ioBounds;
SInt16 outBaseline;
if (!PyArg_ParseTuple(_args, "O&Hlb",
if (!PyArg_ParseTuple(_args, "O&HlbO&",
CFStringRefObj_Convert, &inString,
&inFontID,
&inState,
&inWrapToWidth))
&inWrapToWidth,
PyMac_GetPoint, &ioBounds))
return NULL;
_err = GetThemeTextDimensions(inString,
inFontID,
@ -1203,6 +1238,11 @@ static PyMethodDef App_methods[] = {
{"UseThemeFont", (PyCFunction)App_UseThemeFont, 1,
"(ThemeFontID inFontID, ScriptCode inScript) -> None"},
#if TARGET_API_MAC_CARBON
{"DrawThemeTextBox", (PyCFunction)App_DrawThemeTextBox, 1,
"(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Rect inBoundingBox, SInt16 inJust) -> None"},
#endif
#if TARGET_API_MAC_CARBON
{"TruncateThemeText", (PyCFunction)App_TruncateThemeText, 1,
"(CFMutableStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, SInt16 inPixelWidthLimit, TruncCode inTruncWhere) -> (Boolean outTruncated)"},
@ -1210,7 +1250,7 @@ static PyMethodDef App_methods[] = {
#if TARGET_API_MAC_CARBON
{"GetThemeTextDimensions", (PyCFunction)App_GetThemeTextDimensions, 1,
"(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth) -> (Point ioBounds, SInt16 outBaseline)"},
"(CFStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, Boolean inWrapToWidth, Point ioBounds) -> (Point ioBounds, SInt16 outBaseline)"},
#endif
#if TARGET_API_MAC_CARBON

View File

@ -48,7 +48,6 @@ class MyScanner(Scanner):
"appearanceBadTextColorIndexErr",
"appearanceThemeHasNoAccents",
"appearanceBadCursorIndexErr",
"DrawThemeTextBox", # Funny void* out param
]
def makegreylist(self):
@ -58,6 +57,7 @@ class MyScanner(Scanner):
'GetThemeTextShadowOutset',
'GetThemeTextDimensions',
'TruncateThemeText',
'DrawThemeTextBox',
])]
def makeblacklisttypes(self):
@ -80,6 +80,10 @@ class MyScanner(Scanner):
def makerepairinstructions(self):
return [
([("void", 'inContext', "OutMode")],
[("NULL", 'inContext', "InMode")]),
([("Point", 'ioBounds', "OutMode")],
[("Point", 'ioBounds', "InOutMode")]),
]
if __name__ == "__main__":

View File

@ -27,6 +27,8 @@ from macsupport import *
#WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
RgnHandle = FakeType("(RgnHandle)0")
NULL = FakeType("NULL")
# XXXX Should be next, but this will break a lot of code...
# RgnHandle = OpaqueByValueType("RgnHandle", "OptResObj")