Kaydet (Commit) 4f6fe524 authored tarafından Just van Rossum's avatar Just van Rossum

- Added DrawThemeTextBox()

- fixed GetThemeTextDimensions(): it has an in/out Point arg, not just out.
üst 1ca65c07
...@@ -660,6 +660,40 @@ static PyObject *App_UseThemeFont(PyObject *_self, PyObject *_args) ...@@ -660,6 +660,40 @@ static PyObject *App_UseThemeFont(PyObject *_self, PyObject *_args)
#if TARGET_API_MAC_CARBON #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) static PyObject *App_TruncateThemeText(PyObject *_self, PyObject *_args)
{ {
PyObject *_res = NULL; PyObject *_res = NULL;
...@@ -702,11 +736,12 @@ static PyObject *App_GetThemeTextDimensions(PyObject *_self, PyObject *_args) ...@@ -702,11 +736,12 @@ static PyObject *App_GetThemeTextDimensions(PyObject *_self, PyObject *_args)
Boolean inWrapToWidth; Boolean inWrapToWidth;
Point ioBounds; Point ioBounds;
SInt16 outBaseline; SInt16 outBaseline;
if (!PyArg_ParseTuple(_args, "O&Hlb", if (!PyArg_ParseTuple(_args, "O&HlbO&",
CFStringRefObj_Convert, &inString, CFStringRefObj_Convert, &inString,
&inFontID, &inFontID,
&inState, &inState,
&inWrapToWidth)) &inWrapToWidth,
PyMac_GetPoint, &ioBounds))
return NULL; return NULL;
_err = GetThemeTextDimensions(inString, _err = GetThemeTextDimensions(inString,
inFontID, inFontID,
...@@ -1203,6 +1238,11 @@ static PyMethodDef App_methods[] = { ...@@ -1203,6 +1238,11 @@ static PyMethodDef App_methods[] = {
{"UseThemeFont", (PyCFunction)App_UseThemeFont, 1, {"UseThemeFont", (PyCFunction)App_UseThemeFont, 1,
"(ThemeFontID inFontID, ScriptCode inScript) -> None"}, "(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 #if TARGET_API_MAC_CARBON
{"TruncateThemeText", (PyCFunction)App_TruncateThemeText, 1, {"TruncateThemeText", (PyCFunction)App_TruncateThemeText, 1,
"(CFMutableStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, SInt16 inPixelWidthLimit, TruncCode inTruncWhere) -> (Boolean outTruncated)"}, "(CFMutableStringRef inString, ThemeFontID inFontID, ThemeDrawState inState, SInt16 inPixelWidthLimit, TruncCode inTruncWhere) -> (Boolean outTruncated)"},
...@@ -1210,7 +1250,7 @@ static PyMethodDef App_methods[] = { ...@@ -1210,7 +1250,7 @@ static PyMethodDef App_methods[] = {
#if TARGET_API_MAC_CARBON #if TARGET_API_MAC_CARBON
{"GetThemeTextDimensions", (PyCFunction)App_GetThemeTextDimensions, 1, {"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 #endif
#if TARGET_API_MAC_CARBON #if TARGET_API_MAC_CARBON
......
...@@ -48,7 +48,6 @@ class MyScanner(Scanner): ...@@ -48,7 +48,6 @@ class MyScanner(Scanner):
"appearanceBadTextColorIndexErr", "appearanceBadTextColorIndexErr",
"appearanceThemeHasNoAccents", "appearanceThemeHasNoAccents",
"appearanceBadCursorIndexErr", "appearanceBadCursorIndexErr",
"DrawThemeTextBox", # Funny void* out param
] ]
def makegreylist(self): def makegreylist(self):
...@@ -58,6 +57,7 @@ class MyScanner(Scanner): ...@@ -58,6 +57,7 @@ class MyScanner(Scanner):
'GetThemeTextShadowOutset', 'GetThemeTextShadowOutset',
'GetThemeTextDimensions', 'GetThemeTextDimensions',
'TruncateThemeText', 'TruncateThemeText',
'DrawThemeTextBox',
])] ])]
def makeblacklisttypes(self): def makeblacklisttypes(self):
...@@ -80,6 +80,10 @@ class MyScanner(Scanner): ...@@ -80,6 +80,10 @@ class MyScanner(Scanner):
def makerepairinstructions(self): def makerepairinstructions(self):
return [ return [
([("void", 'inContext', "OutMode")],
[("NULL", 'inContext', "InMode")]),
([("Point", 'ioBounds', "OutMode")],
[("Point", 'ioBounds', "InOutMode")]),
] ]
if __name__ == "__main__": if __name__ == "__main__":
......
...@@ -27,6 +27,8 @@ from macsupport import * ...@@ -27,6 +27,8 @@ from macsupport import *
#WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX) #WindowPeek = OpaqueByValueType("WindowPeek", OBJECTPREFIX)
RgnHandle = FakeType("(RgnHandle)0") RgnHandle = FakeType("(RgnHandle)0")
NULL = FakeType("NULL")
# XXXX Should be next, but this will break a lot of code... # XXXX Should be next, but this will break a lot of code...
# RgnHandle = OpaqueByValueType("RgnHandle", "OptResObj") # RgnHandle = OpaqueByValueType("RgnHandle", "OptResObj")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment