|
28 | 28 | #include <CFString.h> |
29 | 29 | #include <CFURL.h> |
30 | 30 | #include <CFPropertyList.h> |
| 31 | +#include <CFPreferences.h> |
31 | 32 | #else |
32 | 33 | #include <CoreServices/CoreServices.h> |
33 | 34 | #endif |
@@ -3320,6 +3321,323 @@ static PyObject *CF_CFDictionaryCreateMutableCopy(PyObject *_self, PyObject *_ar |
3320 | 3321 | return _res; |
3321 | 3322 | } |
3322 | 3323 |
|
| 3324 | +static PyObject *CF_CFPreferencesCopyAppValue(PyObject *_self, PyObject *_args) |
| 3325 | +{ |
| 3326 | + PyObject *_res = NULL; |
| 3327 | + CFTypeRef _rv; |
| 3328 | + CFStringRef key; |
| 3329 | + CFStringRef applicationID; |
| 3330 | +#ifndef CFPreferencesCopyAppValue |
| 3331 | + PyMac_PRECHECK(CFPreferencesCopyAppValue); |
| 3332 | +#endif |
| 3333 | + if (!PyArg_ParseTuple(_args, "O&O&", |
| 3334 | + CFStringRefObj_Convert, &key, |
| 3335 | + CFStringRefObj_Convert, &applicationID)) |
| 3336 | + return NULL; |
| 3337 | + _rv = CFPreferencesCopyAppValue(key, |
| 3338 | + applicationID); |
| 3339 | + _res = Py_BuildValue("O&", |
| 3340 | + CFTypeRefObj_New, _rv); |
| 3341 | + return _res; |
| 3342 | +} |
| 3343 | + |
| 3344 | +static PyObject *CF_CFPreferencesGetAppBooleanValue(PyObject *_self, PyObject *_args) |
| 3345 | +{ |
| 3346 | + PyObject *_res = NULL; |
| 3347 | + Boolean _rv; |
| 3348 | + CFStringRef key; |
| 3349 | + CFStringRef applicationID; |
| 3350 | + Boolean keyExistsAndHasValidFormat; |
| 3351 | +#ifndef CFPreferencesGetAppBooleanValue |
| 3352 | + PyMac_PRECHECK(CFPreferencesGetAppBooleanValue); |
| 3353 | +#endif |
| 3354 | + if (!PyArg_ParseTuple(_args, "O&O&", |
| 3355 | + CFStringRefObj_Convert, &key, |
| 3356 | + CFStringRefObj_Convert, &applicationID)) |
| 3357 | + return NULL; |
| 3358 | + _rv = CFPreferencesGetAppBooleanValue(key, |
| 3359 | + applicationID, |
| 3360 | + &keyExistsAndHasValidFormat); |
| 3361 | + _res = Py_BuildValue("ll", |
| 3362 | + _rv, |
| 3363 | + keyExistsAndHasValidFormat); |
| 3364 | + return _res; |
| 3365 | +} |
| 3366 | + |
| 3367 | +static PyObject *CF_CFPreferencesGetAppIntegerValue(PyObject *_self, PyObject *_args) |
| 3368 | +{ |
| 3369 | + PyObject *_res = NULL; |
| 3370 | + CFIndex _rv; |
| 3371 | + CFStringRef key; |
| 3372 | + CFStringRef applicationID; |
| 3373 | + Boolean keyExistsAndHasValidFormat; |
| 3374 | +#ifndef CFPreferencesGetAppIntegerValue |
| 3375 | + PyMac_PRECHECK(CFPreferencesGetAppIntegerValue); |
| 3376 | +#endif |
| 3377 | + if (!PyArg_ParseTuple(_args, "O&O&", |
| 3378 | + CFStringRefObj_Convert, &key, |
| 3379 | + CFStringRefObj_Convert, &applicationID)) |
| 3380 | + return NULL; |
| 3381 | + _rv = CFPreferencesGetAppIntegerValue(key, |
| 3382 | + applicationID, |
| 3383 | + &keyExistsAndHasValidFormat); |
| 3384 | + _res = Py_BuildValue("ll", |
| 3385 | + _rv, |
| 3386 | + keyExistsAndHasValidFormat); |
| 3387 | + return _res; |
| 3388 | +} |
| 3389 | + |
| 3390 | +static PyObject *CF_CFPreferencesSetAppValue(PyObject *_self, PyObject *_args) |
| 3391 | +{ |
| 3392 | + PyObject *_res = NULL; |
| 3393 | + CFStringRef key; |
| 3394 | + CFTypeRef value; |
| 3395 | + CFStringRef applicationID; |
| 3396 | +#ifndef CFPreferencesSetAppValue |
| 3397 | + PyMac_PRECHECK(CFPreferencesSetAppValue); |
| 3398 | +#endif |
| 3399 | + if (!PyArg_ParseTuple(_args, "O&O&O&", |
| 3400 | + CFStringRefObj_Convert, &key, |
| 3401 | + CFTypeRefObj_Convert, &value, |
| 3402 | + CFStringRefObj_Convert, &applicationID)) |
| 3403 | + return NULL; |
| 3404 | + CFPreferencesSetAppValue(key, |
| 3405 | + value, |
| 3406 | + applicationID); |
| 3407 | + Py_INCREF(Py_None); |
| 3408 | + _res = Py_None; |
| 3409 | + return _res; |
| 3410 | +} |
| 3411 | + |
| 3412 | +static PyObject *CF_CFPreferencesAddSuitePreferencesToApp(PyObject *_self, PyObject *_args) |
| 3413 | +{ |
| 3414 | + PyObject *_res = NULL; |
| 3415 | + CFStringRef applicationID; |
| 3416 | + CFStringRef suiteID; |
| 3417 | +#ifndef CFPreferencesAddSuitePreferencesToApp |
| 3418 | + PyMac_PRECHECK(CFPreferencesAddSuitePreferencesToApp); |
| 3419 | +#endif |
| 3420 | + if (!PyArg_ParseTuple(_args, "O&O&", |
| 3421 | + CFStringRefObj_Convert, &applicationID, |
| 3422 | + CFStringRefObj_Convert, &suiteID)) |
| 3423 | + return NULL; |
| 3424 | + CFPreferencesAddSuitePreferencesToApp(applicationID, |
| 3425 | + suiteID); |
| 3426 | + Py_INCREF(Py_None); |
| 3427 | + _res = Py_None; |
| 3428 | + return _res; |
| 3429 | +} |
| 3430 | + |
| 3431 | +static PyObject *CF_CFPreferencesRemoveSuitePreferencesFromApp(PyObject *_self, PyObject *_args) |
| 3432 | +{ |
| 3433 | + PyObject *_res = NULL; |
| 3434 | + CFStringRef applicationID; |
| 3435 | + CFStringRef suiteID; |
| 3436 | +#ifndef CFPreferencesRemoveSuitePreferencesFromApp |
| 3437 | + PyMac_PRECHECK(CFPreferencesRemoveSuitePreferencesFromApp); |
| 3438 | +#endif |
| 3439 | + if (!PyArg_ParseTuple(_args, "O&O&", |
| 3440 | + CFStringRefObj_Convert, &applicationID, |
| 3441 | + CFStringRefObj_Convert, &suiteID)) |
| 3442 | + return NULL; |
| 3443 | + CFPreferencesRemoveSuitePreferencesFromApp(applicationID, |
| 3444 | + suiteID); |
| 3445 | + Py_INCREF(Py_None); |
| 3446 | + _res = Py_None; |
| 3447 | + return _res; |
| 3448 | +} |
| 3449 | + |
| 3450 | +static PyObject *CF_CFPreferencesAppSynchronize(PyObject *_self, PyObject *_args) |
| 3451 | +{ |
| 3452 | + PyObject *_res = NULL; |
| 3453 | + Boolean _rv; |
| 3454 | + CFStringRef applicationID; |
| 3455 | +#ifndef CFPreferencesAppSynchronize |
| 3456 | + PyMac_PRECHECK(CFPreferencesAppSynchronize); |
| 3457 | +#endif |
| 3458 | + if (!PyArg_ParseTuple(_args, "O&", |
| 3459 | + CFStringRefObj_Convert, &applicationID)) |
| 3460 | + return NULL; |
| 3461 | + _rv = CFPreferencesAppSynchronize(applicationID); |
| 3462 | + _res = Py_BuildValue("l", |
| 3463 | + _rv); |
| 3464 | + return _res; |
| 3465 | +} |
| 3466 | + |
| 3467 | +static PyObject *CF_CFPreferencesCopyValue(PyObject *_self, PyObject *_args) |
| 3468 | +{ |
| 3469 | + PyObject *_res = NULL; |
| 3470 | + CFTypeRef _rv; |
| 3471 | + CFStringRef key; |
| 3472 | + CFStringRef applicationID; |
| 3473 | + CFStringRef userName; |
| 3474 | + CFStringRef hostName; |
| 3475 | +#ifndef CFPreferencesCopyValue |
| 3476 | + PyMac_PRECHECK(CFPreferencesCopyValue); |
| 3477 | +#endif |
| 3478 | + if (!PyArg_ParseTuple(_args, "O&O&O&O&", |
| 3479 | + CFStringRefObj_Convert, &key, |
| 3480 | + CFStringRefObj_Convert, &applicationID, |
| 3481 | + CFStringRefObj_Convert, &userName, |
| 3482 | + CFStringRefObj_Convert, &hostName)) |
| 3483 | + return NULL; |
| 3484 | + _rv = CFPreferencesCopyValue(key, |
| 3485 | + applicationID, |
| 3486 | + userName, |
| 3487 | + hostName); |
| 3488 | + _res = Py_BuildValue("O&", |
| 3489 | + CFTypeRefObj_New, _rv); |
| 3490 | + return _res; |
| 3491 | +} |
| 3492 | + |
| 3493 | +static PyObject *CF_CFPreferencesCopyMultiple(PyObject *_self, PyObject *_args) |
| 3494 | +{ |
| 3495 | + PyObject *_res = NULL; |
| 3496 | + CFDictionaryRef _rv; |
| 3497 | + CFArrayRef keysToFetch; |
| 3498 | + CFStringRef applicationID; |
| 3499 | + CFStringRef userName; |
| 3500 | + CFStringRef hostName; |
| 3501 | +#ifndef CFPreferencesCopyMultiple |
| 3502 | + PyMac_PRECHECK(CFPreferencesCopyMultiple); |
| 3503 | +#endif |
| 3504 | + if (!PyArg_ParseTuple(_args, "O&O&O&O&", |
| 3505 | + CFArrayRefObj_Convert, &keysToFetch, |
| 3506 | + CFStringRefObj_Convert, &applicationID, |
| 3507 | + CFStringRefObj_Convert, &userName, |
| 3508 | + CFStringRefObj_Convert, &hostName)) |
| 3509 | + return NULL; |
| 3510 | + _rv = CFPreferencesCopyMultiple(keysToFetch, |
| 3511 | + applicationID, |
| 3512 | + userName, |
| 3513 | + hostName); |
| 3514 | + _res = Py_BuildValue("O&", |
| 3515 | + CFDictionaryRefObj_New, _rv); |
| 3516 | + return _res; |
| 3517 | +} |
| 3518 | + |
| 3519 | +static PyObject *CF_CFPreferencesSetValue(PyObject *_self, PyObject *_args) |
| 3520 | +{ |
| 3521 | + PyObject *_res = NULL; |
| 3522 | + CFStringRef key; |
| 3523 | + CFTypeRef value; |
| 3524 | + CFStringRef applicationID; |
| 3525 | + CFStringRef userName; |
| 3526 | + CFStringRef hostName; |
| 3527 | +#ifndef CFPreferencesSetValue |
| 3528 | + PyMac_PRECHECK(CFPreferencesSetValue); |
| 3529 | +#endif |
| 3530 | + if (!PyArg_ParseTuple(_args, "O&O&O&O&O&", |
| 3531 | + CFStringRefObj_Convert, &key, |
| 3532 | + CFTypeRefObj_Convert, &value, |
| 3533 | + CFStringRefObj_Convert, &applicationID, |
| 3534 | + CFStringRefObj_Convert, &userName, |
| 3535 | + CFStringRefObj_Convert, &hostName)) |
| 3536 | + return NULL; |
| 3537 | + CFPreferencesSetValue(key, |
| 3538 | + value, |
| 3539 | + applicationID, |
| 3540 | + userName, |
| 3541 | + hostName); |
| 3542 | + Py_INCREF(Py_None); |
| 3543 | + _res = Py_None; |
| 3544 | + return _res; |
| 3545 | +} |
| 3546 | + |
| 3547 | +static PyObject *CF_CFPreferencesSetMultiple(PyObject *_self, PyObject *_args) |
| 3548 | +{ |
| 3549 | + PyObject *_res = NULL; |
| 3550 | + CFDictionaryRef keysToSet; |
| 3551 | + CFArrayRef keysToRemove; |
| 3552 | + CFStringRef applicationID; |
| 3553 | + CFStringRef userName; |
| 3554 | + CFStringRef hostName; |
| 3555 | +#ifndef CFPreferencesSetMultiple |
| 3556 | + PyMac_PRECHECK(CFPreferencesSetMultiple); |
| 3557 | +#endif |
| 3558 | + if (!PyArg_ParseTuple(_args, "O&O&O&O&O&", |
| 3559 | + CFDictionaryRefObj_Convert, &keysToSet, |
| 3560 | + CFArrayRefObj_Convert, &keysToRemove, |
| 3561 | + CFStringRefObj_Convert, &applicationID, |
| 3562 | + CFStringRefObj_Convert, &userName, |
| 3563 | + CFStringRefObj_Convert, &hostName)) |
| 3564 | + return NULL; |
| 3565 | + CFPreferencesSetMultiple(keysToSet, |
| 3566 | + keysToRemove, |
| 3567 | + applicationID, |
| 3568 | + userName, |
| 3569 | + hostName); |
| 3570 | + Py_INCREF(Py_None); |
| 3571 | + _res = Py_None; |
| 3572 | + return _res; |
| 3573 | +} |
| 3574 | + |
| 3575 | +static PyObject *CF_CFPreferencesSynchronize(PyObject *_self, PyObject *_args) |
| 3576 | +{ |
| 3577 | + PyObject *_res = NULL; |
| 3578 | + Boolean _rv; |
| 3579 | + CFStringRef applicationID; |
| 3580 | + CFStringRef userName; |
| 3581 | + CFStringRef hostName; |
| 3582 | +#ifndef CFPreferencesSynchronize |
| 3583 | + PyMac_PRECHECK(CFPreferencesSynchronize); |
| 3584 | +#endif |
| 3585 | + if (!PyArg_ParseTuple(_args, "O&O&O&", |
| 3586 | + CFStringRefObj_Convert, &applicationID, |
| 3587 | + CFStringRefObj_Convert, &userName, |
| 3588 | + CFStringRefObj_Convert, &hostName)) |
| 3589 | + return NULL; |
| 3590 | + _rv = CFPreferencesSynchronize(applicationID, |
| 3591 | + userName, |
| 3592 | + hostName); |
| 3593 | + _res = Py_BuildValue("l", |
| 3594 | + _rv); |
| 3595 | + return _res; |
| 3596 | +} |
| 3597 | + |
| 3598 | +static PyObject *CF_CFPreferencesCopyApplicationList(PyObject *_self, PyObject *_args) |
| 3599 | +{ |
| 3600 | + PyObject *_res = NULL; |
| 3601 | + CFArrayRef _rv; |
| 3602 | + CFStringRef userName; |
| 3603 | + CFStringRef hostName; |
| 3604 | +#ifndef CFPreferencesCopyApplicationList |
| 3605 | + PyMac_PRECHECK(CFPreferencesCopyApplicationList); |
| 3606 | +#endif |
| 3607 | + if (!PyArg_ParseTuple(_args, "O&O&", |
| 3608 | + CFStringRefObj_Convert, &userName, |
| 3609 | + CFStringRefObj_Convert, &hostName)) |
| 3610 | + return NULL; |
| 3611 | + _rv = CFPreferencesCopyApplicationList(userName, |
| 3612 | + hostName); |
| 3613 | + _res = Py_BuildValue("O&", |
| 3614 | + CFArrayRefObj_New, _rv); |
| 3615 | + return _res; |
| 3616 | +} |
| 3617 | + |
| 3618 | +static PyObject *CF_CFPreferencesCopyKeyList(PyObject *_self, PyObject *_args) |
| 3619 | +{ |
| 3620 | + PyObject *_res = NULL; |
| 3621 | + CFArrayRef _rv; |
| 3622 | + CFStringRef applicationID; |
| 3623 | + CFStringRef userName; |
| 3624 | + CFStringRef hostName; |
| 3625 | +#ifndef CFPreferencesCopyKeyList |
| 3626 | + PyMac_PRECHECK(CFPreferencesCopyKeyList); |
| 3627 | +#endif |
| 3628 | + if (!PyArg_ParseTuple(_args, "O&O&O&", |
| 3629 | + CFStringRefObj_Convert, &applicationID, |
| 3630 | + CFStringRefObj_Convert, &userName, |
| 3631 | + CFStringRefObj_Convert, &hostName)) |
| 3632 | + return NULL; |
| 3633 | + _rv = CFPreferencesCopyKeyList(applicationID, |
| 3634 | + userName, |
| 3635 | + hostName); |
| 3636 | + _res = Py_BuildValue("O&", |
| 3637 | + CFArrayRefObj_New, _rv); |
| 3638 | + return _res; |
| 3639 | +} |
| 3640 | + |
3323 | 3641 | static PyObject *CF_CFStringGetTypeID(PyObject *_self, PyObject *_args) |
3324 | 3642 | { |
3325 | 3643 | PyObject *_res = NULL; |
@@ -3884,6 +4202,34 @@ static PyMethodDef CF_methods[] = { |
3884 | 4202 | "(CFIndex capacity) -> (CFMutableDictionaryRef _rv)"}, |
3885 | 4203 | {"CFDictionaryCreateMutableCopy", (PyCFunction)CF_CFDictionaryCreateMutableCopy, 1, |
3886 | 4204 | "(CFIndex capacity, CFDictionaryRef theDict) -> (CFMutableDictionaryRef _rv)"}, |
| 4205 | + {"CFPreferencesCopyAppValue", (PyCFunction)CF_CFPreferencesCopyAppValue, 1, |
| 4206 | + "(CFStringRef key, CFStringRef applicationID) -> (CFTypeRef _rv)"}, |
| 4207 | + {"CFPreferencesGetAppBooleanValue", (PyCFunction)CF_CFPreferencesGetAppBooleanValue, 1, |
| 4208 | + "(CFStringRef key, CFStringRef applicationID) -> (Boolean _rv, Boolean keyExistsAndHasValidFormat)"}, |
| 4209 | + {"CFPreferencesGetAppIntegerValue", (PyCFunction)CF_CFPreferencesGetAppIntegerValue, 1, |
| 4210 | + "(CFStringRef key, CFStringRef applicationID) -> (CFIndex _rv, Boolean keyExistsAndHasValidFormat)"}, |
| 4211 | + {"CFPreferencesSetAppValue", (PyCFunction)CF_CFPreferencesSetAppValue, 1, |
| 4212 | + "(CFStringRef key, CFTypeRef value, CFStringRef applicationID) -> None"}, |
| 4213 | + {"CFPreferencesAddSuitePreferencesToApp", (PyCFunction)CF_CFPreferencesAddSuitePreferencesToApp, 1, |
| 4214 | + "(CFStringRef applicationID, CFStringRef suiteID) -> None"}, |
| 4215 | + {"CFPreferencesRemoveSuitePreferencesFromApp", (PyCFunction)CF_CFPreferencesRemoveSuitePreferencesFromApp, 1, |
| 4216 | + "(CFStringRef applicationID, CFStringRef suiteID) -> None"}, |
| 4217 | + {"CFPreferencesAppSynchronize", (PyCFunction)CF_CFPreferencesAppSynchronize, 1, |
| 4218 | + "(CFStringRef applicationID) -> (Boolean _rv)"}, |
| 4219 | + {"CFPreferencesCopyValue", (PyCFunction)CF_CFPreferencesCopyValue, 1, |
| 4220 | + "(CFStringRef key, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (CFTypeRef _rv)"}, |
| 4221 | + {"CFPreferencesCopyMultiple", (PyCFunction)CF_CFPreferencesCopyMultiple, 1, |
| 4222 | + "(CFArrayRef keysToFetch, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (CFDictionaryRef _rv)"}, |
| 4223 | + {"CFPreferencesSetValue", (PyCFunction)CF_CFPreferencesSetValue, 1, |
| 4224 | + "(CFStringRef key, CFTypeRef value, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> None"}, |
| 4225 | + {"CFPreferencesSetMultiple", (PyCFunction)CF_CFPreferencesSetMultiple, 1, |
| 4226 | + "(CFDictionaryRef keysToSet, CFArrayRef keysToRemove, CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> None"}, |
| 4227 | + {"CFPreferencesSynchronize", (PyCFunction)CF_CFPreferencesSynchronize, 1, |
| 4228 | + "(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (Boolean _rv)"}, |
| 4229 | + {"CFPreferencesCopyApplicationList", (PyCFunction)CF_CFPreferencesCopyApplicationList, 1, |
| 4230 | + "(CFStringRef userName, CFStringRef hostName) -> (CFArrayRef _rv)"}, |
| 4231 | + {"CFPreferencesCopyKeyList", (PyCFunction)CF_CFPreferencesCopyKeyList, 1, |
| 4232 | + "(CFStringRef applicationID, CFStringRef userName, CFStringRef hostName) -> (CFArrayRef _rv)"}, |
3887 | 4233 | {"CFStringGetTypeID", (PyCFunction)CF_CFStringGetTypeID, 1, |
3888 | 4234 | "() -> (CFTypeID _rv)"}, |
3889 | 4235 | {"CFStringCreateWithPascalString", (PyCFunction)CF_CFStringCreateWithPascalString, 1, |
@@ -4017,6 +4363,17 @@ void init_CF(void) |
4017 | 4363 | Py_INCREF(&CFURLRef_Type); |
4018 | 4364 | if (PyDict_SetItemString(d, "CFURLRefType", (PyObject *)&CFURLRef_Type) != 0) |
4019 | 4365 | Py_FatalError("can't initialize CFURLRefType"); |
| 4366 | + |
| 4367 | +#define _STRINGCONST(name) PyModule_AddObject(m, #name, CFStringRefObj_New(name)) |
| 4368 | + _STRINGCONST(kCFPreferencesAnyApplication); |
| 4369 | + _STRINGCONST(kCFPreferencesCurrentApplication); |
| 4370 | + _STRINGCONST(kCFPreferencesAnyHost); |
| 4371 | + _STRINGCONST(kCFPreferencesCurrentHost); |
| 4372 | + _STRINGCONST(kCFPreferencesAnyUser); |
| 4373 | + _STRINGCONST(kCFPreferencesCurrentUser); |
| 4374 | + |
| 4375 | + |
| 4376 | + |
4020 | 4377 | } |
4021 | 4378 |
|
4022 | 4379 | /* ========================= End module _CF ========================= */ |
|
0 commit comments