Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
5abdf484
Kaydet (Commit)
5abdf484
authored
May 03, 2015
tarafından
Serhiy Storchaka
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #20168: Converted the _tkinter module to Argument Clinic.
üst
d2a694c1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1041 additions
and
246 deletions
+1041
-246
_tkinter.c
Modules/_tkinter.c
+417
-246
_tkinter.c.h
Modules/clinic/_tkinter.c.h
+624
-0
No files found.
Modules/_tkinter.c
Dosyayı görüntüle @
5abdf484
...
@@ -509,6 +509,14 @@ SplitObj(PyObject *arg)
...
@@ -509,6 +509,14 @@ SplitObj(PyObject *arg)
}
}
/*[clinic input]
module _tkinter
class _tkinter.tkapp "TkappObject *" "&Tkapp_Type_spec"
class _tkinter.Tcl_Obj "PyTclObject *" "&PyTclObject_Type_spec"
class _tkinter.tktimertoken "TkttObject *" "&Tktt_Type_spec"
[clinic start generated code]*/
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=b1ebf15c162ee229]*/
/**** Tkapp Object ****/
/**** Tkapp Object ****/
#ifndef WITH_APPINIT
#ifndef WITH_APPINIT
...
@@ -1489,16 +1497,21 @@ Tkapp_Call(PyObject *selfptr, PyObject *args)
...
@@ -1489,16 +1497,21 @@ Tkapp_Call(PyObject *selfptr, PyObject *args)
}
}
/*[clinic input]
_tkinter.tkapp.eval
script: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_Eval
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_eval_impl
(
TkappObject
*
self
,
const
char
*
script
)
/*[clinic end generated code: output=24b79831f700dea0 input=481484123a455f22]*/
{
{
char
*
script
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
int
err
;
int
err
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:eval"
,
&
script
))
return
NULL
;
CHECK_STRING_LENGTH
(
script
);
CHECK_STRING_LENGTH
(
script
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -1506,23 +1519,28 @@ Tkapp_Eval(PyObject *self, PyObject *args)
...
@@ -1506,23 +1519,28 @@ Tkapp_Eval(PyObject *self, PyObject *args)
err
=
Tcl_Eval
(
Tkapp_Interp
(
self
),
script
);
err
=
Tcl_Eval
(
Tkapp_Interp
(
self
),
script
);
ENTER_OVERLAP
ENTER_OVERLAP
if
(
err
==
TCL_ERROR
)
if
(
err
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
return
res
;
return
res
;
}
}
/*[clinic input]
_tkinter.tkapp.evalfile
fileName: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_EvalFile
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_evalfile_impl
(
TkappObject
*
self
,
const
char
*
fileName
)
/*[clinic end generated code: output=63be88dcee4f11d3 input=873ab707e5e947e1]*/
{
{
char
*
fileName
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
int
err
;
int
err
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:evalfile"
,
&
fileName
))
return
NULL
;
CHECK_STRING_LENGTH
(
fileName
);
CHECK_STRING_LENGTH
(
fileName
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -1530,23 +1548,28 @@ Tkapp_EvalFile(PyObject *self, PyObject *args)
...
@@ -1530,23 +1548,28 @@ Tkapp_EvalFile(PyObject *self, PyObject *args)
err
=
Tcl_EvalFile
(
Tkapp_Interp
(
self
),
fileName
);
err
=
Tcl_EvalFile
(
Tkapp_Interp
(
self
),
fileName
);
ENTER_OVERLAP
ENTER_OVERLAP
if
(
err
==
TCL_ERROR
)
if
(
err
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
return
res
;
return
res
;
}
}
/*[clinic input]
_tkinter.tkapp.record
script: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_Record
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_record_impl
(
TkappObject
*
self
,
const
char
*
script
)
/*[clinic end generated code: output=0ffe08a0061730df input=c0b0db5a21412cac]*/
{
{
char
*
script
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
int
err
;
int
err
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:record"
,
&
script
))
return
NULL
;
CHECK_STRING_LENGTH
(
script
);
CHECK_STRING_LENGTH
(
script
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -1554,20 +1577,25 @@ Tkapp_Record(PyObject *self, PyObject *args)
...
@@ -1554,20 +1577,25 @@ Tkapp_Record(PyObject *self, PyObject *args)
err
=
Tcl_RecordAndEval
(
Tkapp_Interp
(
self
),
script
,
TCL_NO_EVAL
);
err
=
Tcl_RecordAndEval
(
Tkapp_Interp
(
self
),
script
,
TCL_NO_EVAL
);
ENTER_OVERLAP
ENTER_OVERLAP
if
(
err
==
TCL_ERROR
)
if
(
err
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
return
res
;
return
res
;
}
}
/*[clinic input]
_tkinter.tkapp.adderrinfo
msg: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_AddErrorInfo
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_adderrinfo_impl
(
TkappObject
*
self
,
const
char
*
msg
)
/*[clinic end generated code: output=0e222ee2050eb357 input=4971399317d4c136]*/
{
{
char
*
msg
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:adderrorinfo"
,
&
msg
))
return
NULL
;
CHECK_STRING_LENGTH
(
msg
);
CHECK_STRING_LENGTH
(
msg
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -1600,6 +1628,15 @@ typedef struct VarEvent {
...
@@ -1600,6 +1628,15 @@ typedef struct VarEvent {
}
VarEvent
;
}
VarEvent
;
#endif
#endif
/*[python]
class varname_converter(CConverter):
type = 'const char *'
converter = 'varname_converter'
[python]*/
/*[python checksum: da39a3ee5e6b4b0d3255bfef95601890afd80709]*/
static
int
static
int
varname_converter
(
PyObject
*
in
,
void
*
_out
)
varname_converter
(
PyObject
*
in
,
void
*
_out
)
{
{
...
@@ -1876,26 +1913,33 @@ Tkapp_GlobalUnsetVar(PyObject *self, PyObject *args)
...
@@ -1876,26 +1913,33 @@ Tkapp_GlobalUnsetVar(PyObject *self, PyObject *args)
/** Tcl to Python **/
/** Tcl to Python **/
/*[clinic input]
_tkinter.tkapp.getint
arg: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_GetInt
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_getint
(
TkappObject
*
self
,
PyObject
*
arg
)
/*[clinic end generated code: output=88cf293fae307cfe input=034026997c5b91f8]*/
{
{
char
*
s
;
char
*
s
;
Tcl_Obj
*
value
;
Tcl_Obj
*
value
;
PyObject
*
result
;
PyObject
*
result
;
if
(
PyTuple_Size
(
args
)
==
1
)
{
if
(
PyLong_Check
(
arg
))
{
PyObject
*
o
=
PyTuple_GetItem
(
args
,
0
);
Py_INCREF
(
arg
);
if
(
PyLong_Check
(
o
))
{
return
arg
;
Py_INCREF
(
o
);
return
o
;
}
}
}
if
(
!
PyArg_ParseTuple
(
args
,
"s:getint"
,
&
s
))
if
(
!
PyArg_Parse
(
arg
,
"s:getint"
,
&
s
))
return
NULL
;
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
value
=
Tcl_NewStringObj
(
s
,
-
1
);
value
=
Tcl_NewStringObj
(
s
,
-
1
);
if
(
value
==
NULL
)
if
(
value
==
NULL
)
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
/* Don't use Tcl_GetInt() because it returns ambiguous result for value
/* Don't use Tcl_GetInt() because it returns ambiguous result for value
in ranges -2**32..-2**31-1 and 2**31..2**32-1 (on 32-bit platform).
in ranges -2**32..-2**31-1 and 2**31..2**32-1 (on 32-bit platform).
...
@@ -1903,39 +1947,55 @@ Tkapp_GetInt(PyObject *self, PyObject *args)
...
@@ -1903,39 +1947,55 @@ Tkapp_GetInt(PyObject *self, PyObject *args)
value in ranges -2**64..-2**63-1 and 2**63..2**64-1 (on 32-bit platform).
value in ranges -2**64..-2**63-1 and 2**63..2**64-1 (on 32-bit platform).
*/
*/
#ifdef HAVE_LIBTOMMAMTH
#ifdef HAVE_LIBTOMMAMTH
result
=
fromBignumObj
(
self
,
value
);
result
=
fromBignumObj
(
(
PyObject
*
)
self
,
value
);
#else
#else
result
=
fromWideIntObj
(
self
,
value
);
result
=
fromWideIntObj
(
(
PyObject
*
)
self
,
value
);
#endif
#endif
Tcl_DecrRefCount
(
value
);
Tcl_DecrRefCount
(
value
);
if
(
result
!=
NULL
||
PyErr_Occurred
())
if
(
result
!=
NULL
||
PyErr_Occurred
())
return
result
;
return
result
;
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
}
}
/*[clinic input]
_tkinter.tkapp.getdouble
arg: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_GetDouble
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_getdouble
(
TkappObject
*
self
,
PyObject
*
arg
)
/*[clinic end generated code: output=c52b138bd8b956b9 input=22015729ce9ef7f8]*/
{
{
char
*
s
;
char
*
s
;
double
v
;
double
v
;
if
(
PyTuple_Size
(
args
)
==
1
)
{
if
(
PyFloat_Check
(
arg
))
{
PyObject
*
o
=
PyTuple_GetItem
(
args
,
0
);
Py_INCREF
(
arg
);
if
(
PyFloat_Check
(
o
))
{
return
arg
;
Py_INCREF
(
o
);
return
o
;
}
}
}
if
(
!
PyArg_ParseTuple
(
args
,
"s:getdouble"
,
&
s
))
if
(
!
PyArg_Parse
(
arg
,
"s:getdouble"
,
&
s
))
return
NULL
;
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
if
(
Tcl_GetDouble
(
Tkapp_Interp
(
self
),
s
,
&
v
)
==
TCL_ERROR
)
if
(
Tcl_GetDouble
(
Tkapp_Interp
(
self
),
s
,
&
v
)
==
TCL_ERROR
)
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
return
Py_BuildValue
(
"d"
,
v
);
return
Py_BuildValue
(
"d"
,
v
);
}
}
/*[clinic input]
_tkinter.tkapp.getboolean
arg: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_GetBoolean
(
PyObject
*
self
,
PyObject
*
arg
)
_tkinter_tkapp_getboolean
(
TkappObject
*
self
,
PyObject
*
arg
)
/*[clinic end generated code: output=726a9ae445821d91 input=7f11248ef8f8776e]*/
{
{
char
*
s
;
char
*
s
;
int
v
;
int
v
;
...
@@ -1948,7 +2008,7 @@ Tkapp_GetBoolean(PyObject *self, PyObject *arg)
...
@@ -1948,7 +2008,7 @@ Tkapp_GetBoolean(PyObject *self, PyObject *arg)
if
(
Tcl_GetBooleanFromObj
(
Tkapp_Interp
(
self
),
if
(
Tcl_GetBooleanFromObj
(
Tkapp_Interp
(
self
),
((
PyTclObject
*
)
arg
)
->
value
,
((
PyTclObject
*
)
arg
)
->
value
,
&
v
)
==
TCL_ERROR
)
&
v
)
==
TCL_ERROR
)
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
return
PyBool_FromLong
(
v
);
return
PyBool_FromLong
(
v
);
}
}
...
@@ -1956,20 +2016,25 @@ Tkapp_GetBoolean(PyObject *self, PyObject *arg)
...
@@ -1956,20 +2016,25 @@ Tkapp_GetBoolean(PyObject *self, PyObject *arg)
return
NULL
;
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
if
(
Tcl_GetBoolean
(
Tkapp_Interp
(
self
),
s
,
&
v
)
==
TCL_ERROR
)
if
(
Tcl_GetBoolean
(
Tkapp_Interp
(
self
),
s
,
&
v
)
==
TCL_ERROR
)
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
return
PyBool_FromLong
(
v
);
return
PyBool_FromLong
(
v
);
}
}
/*[clinic input]
_tkinter.tkapp.exprstring
s: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_ExprString
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_exprstring_impl
(
TkappObject
*
self
,
const
char
*
s
)
/*[clinic end generated code: output=beda323d3ed0abb1 input=fa78f751afb2f21b]*/
{
{
char
*
s
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
int
retval
;
int
retval
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:exprstring"
,
&
s
))
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -1977,24 +2042,29 @@ Tkapp_ExprString(PyObject *self, PyObject *args)
...
@@ -1977,24 +2042,29 @@ Tkapp_ExprString(PyObject *self, PyObject *args)
retval
=
Tcl_ExprString
(
Tkapp_Interp
(
self
),
s
);
retval
=
Tcl_ExprString
(
Tkapp_Interp
(
self
),
s
);
ENTER_OVERLAP
ENTER_OVERLAP
if
(
retval
==
TCL_ERROR
)
if
(
retval
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
res
=
unicodeFromTclString
(
Tkapp_Result
(
self
));
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
return
res
;
return
res
;
}
}
/*[clinic input]
_tkinter.tkapp.exprlong
s: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_ExprLong
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_exprlong_impl
(
TkappObject
*
self
,
const
char
*
s
)
/*[clinic end generated code: output=5d6a46b63c6ebcf9 input=11bd7eee0c57b4dc]*/
{
{
char
*
s
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
int
retval
;
int
retval
;
long
v
;
long
v
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:exprlong"
,
&
s
))
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -2002,23 +2072,29 @@ Tkapp_ExprLong(PyObject *self, PyObject *args)
...
@@ -2002,23 +2072,29 @@ Tkapp_ExprLong(PyObject *self, PyObject *args)
retval
=
Tcl_ExprLong
(
Tkapp_Interp
(
self
),
s
,
&
v
);
retval
=
Tcl_ExprLong
(
Tkapp_Interp
(
self
),
s
,
&
v
);
ENTER_OVERLAP
ENTER_OVERLAP
if
(
retval
==
TCL_ERROR
)
if
(
retval
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
Py_BuildValue
(
"l"
,
v
);
res
=
Py_BuildValue
(
"l"
,
v
);
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
return
res
;
return
res
;
}
}
/*[clinic input]
_tkinter.tkapp.exprdouble
s: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_ExprDouble
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_exprdouble_impl
(
TkappObject
*
self
,
const
char
*
s
)
/*[clinic end generated code: output=ff78df1081ea4158 input=ff02bc11798832d5]*/
{
{
char
*
s
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
double
v
;
double
v
;
int
retval
;
int
retval
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:exprdouble"
,
&
s
))
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
PyFPE_START_PROTECT
(
"Tkapp_ExprDouble"
,
return
0
)
PyFPE_START_PROTECT
(
"Tkapp_ExprDouble"
,
return
0
)
...
@@ -2027,30 +2103,36 @@ Tkapp_ExprDouble(PyObject *self, PyObject *args)
...
@@ -2027,30 +2103,36 @@ Tkapp_ExprDouble(PyObject *self, PyObject *args)
ENTER_OVERLAP
ENTER_OVERLAP
PyFPE_END_PROTECT
(
retval
)
PyFPE_END_PROTECT
(
retval
)
if
(
retval
==
TCL_ERROR
)
if
(
retval
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
Py_BuildValue
(
"d"
,
v
);
res
=
Py_BuildValue
(
"d"
,
v
);
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
return
res
;
return
res
;
}
}
/*[clinic input]
_tkinter.tkapp.exprboolean
s: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_ExprBoolean
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_exprboolean_impl
(
TkappObject
*
self
,
const
char
*
s
)
/*[clinic end generated code: output=8b28038c22887311 input=c8c66022bdb8d5d3]*/
{
{
char
*
s
;
PyObject
*
res
=
NULL
;
PyObject
*
res
=
NULL
;
int
retval
;
int
retval
;
int
v
;
int
v
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:exprboolean"
,
&
s
))
return
NULL
;
CHECK_STRING_LENGTH
(
s
);
CHECK_STRING_LENGTH
(
s
);
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
ENTER_TCL
ENTER_TCL
retval
=
Tcl_ExprBoolean
(
Tkapp_Interp
(
self
),
s
,
&
v
);
retval
=
Tcl_ExprBoolean
(
Tkapp_Interp
(
self
),
s
,
&
v
);
ENTER_OVERLAP
ENTER_OVERLAP
if
(
retval
==
TCL_ERROR
)
if
(
retval
==
TCL_ERROR
)
res
=
Tkinter_Error
(
self
);
res
=
Tkinter_Error
(
(
PyObject
*
)
self
);
else
else
res
=
Py_BuildValue
(
"i"
,
v
);
res
=
Py_BuildValue
(
"i"
,
v
);
LEAVE_OVERLAP_TCL
LEAVE_OVERLAP_TCL
...
@@ -2059,29 +2141,36 @@ Tkapp_ExprBoolean(PyObject *self, PyObject *args)
...
@@ -2059,29 +2141,36 @@ Tkapp_ExprBoolean(PyObject *self, PyObject *args)
/*[clinic input]
_tkinter.tkapp.splitlist
arg: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_SplitList
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_splitlist
(
TkappObject
*
self
,
PyObject
*
arg
)
/*[clinic end generated code: output=13b51d34386d36fb input=2b2e13351e3c0b53]*/
{
{
char
*
list
;
char
*
list
;
int
argc
;
int
argc
;
const
char
**
argv
;
const
char
**
argv
;
PyObject
*
arg
,
*
v
;
PyObject
*
v
;
int
i
;
int
i
;
if
(
!
PyArg_ParseTuple
(
args
,
"O:splitlist"
,
&
arg
))
return
NULL
;
if
(
PyTclObject_Check
(
arg
))
{
if
(
PyTclObject_Check
(
arg
))
{
int
objc
;
int
objc
;
Tcl_Obj
**
objv
;
Tcl_Obj
**
objv
;
if
(
Tcl_ListObjGetElements
(
Tkapp_Interp
(
self
),
if
(
Tcl_ListObjGetElements
(
Tkapp_Interp
(
self
),
((
PyTclObject
*
)
arg
)
->
value
,
((
PyTclObject
*
)
arg
)
->
value
,
&
objc
,
&
objv
)
==
TCL_ERROR
)
{
&
objc
,
&
objv
)
==
TCL_ERROR
)
{
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
}
}
if
(
!
(
v
=
PyTuple_New
(
objc
)))
if
(
!
(
v
=
PyTuple_New
(
objc
)))
return
NULL
;
return
NULL
;
for
(
i
=
0
;
i
<
objc
;
i
++
)
{
for
(
i
=
0
;
i
<
objc
;
i
++
)
{
PyObject
*
s
=
FromObj
(
self
,
objv
[
i
]);
PyObject
*
s
=
FromObj
(
(
PyObject
*
)
self
,
objv
[
i
]);
if
(
!
s
||
PyTuple_SetItem
(
v
,
i
,
s
))
{
if
(
!
s
||
PyTuple_SetItem
(
v
,
i
,
s
))
{
Py_DECREF
(
v
);
Py_DECREF
(
v
);
return
NULL
;
return
NULL
;
...
@@ -2097,14 +2186,14 @@ Tkapp_SplitList(PyObject *self, PyObject *args)
...
@@ -2097,14 +2186,14 @@ Tkapp_SplitList(PyObject *self, PyObject *args)
return
PySequence_Tuple
(
arg
);
return
PySequence_Tuple
(
arg
);
}
}
if
(
!
PyArg_Parse
Tuple
(
args
,
"et:splitlist"
,
"utf-8"
,
&
list
))
if
(
!
PyArg_Parse
(
arg
,
"et:splitlist"
,
"utf-8"
,
&
list
))
return
NULL
;
return
NULL
;
CHECK_STRING_LENGTH
(
list
);
CHECK_STRING_LENGTH
(
list
);
if
(
Tcl_SplitList
(
Tkapp_Interp
(
self
),
list
,
if
(
Tcl_SplitList
(
Tkapp_Interp
(
self
),
list
,
&
argc
,
&
argv
)
==
TCL_ERROR
)
{
&
argc
,
&
argv
)
==
TCL_ERROR
)
{
PyMem_Free
(
list
);
PyMem_Free
(
list
);
return
Tkinter_Error
(
self
);
return
Tkinter_Error
(
(
PyObject
*
)
self
);
}
}
if
(
!
(
v
=
PyTuple_New
(
argc
)))
if
(
!
(
v
=
PyTuple_New
(
argc
)))
...
@@ -2125,14 +2214,21 @@ Tkapp_SplitList(PyObject *self, PyObject *args)
...
@@ -2125,14 +2214,21 @@ Tkapp_SplitList(PyObject *self, PyObject *args)
return
v
;
return
v
;
}
}
/*[clinic input]
_tkinter.tkapp.split
arg: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_Split
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_split
(
TkappObject
*
self
,
PyObject
*
arg
)
/*[clinic end generated code: output=e08ad832363facfd input=a1c78349eacaa140]*/
{
{
PyObject
*
arg
,
*
v
;
PyObject
*
v
;
char
*
list
;
char
*
list
;
if
(
!
PyArg_ParseTuple
(
args
,
"O:split"
,
&
arg
))
return
NULL
;
if
(
PyTclObject_Check
(
arg
))
{
if
(
PyTclObject_Check
(
arg
))
{
Tcl_Obj
*
value
=
((
PyTclObject
*
)
arg
)
->
value
;
Tcl_Obj
*
value
=
((
PyTclObject
*
)
arg
)
->
value
;
int
objc
;
int
objc
;
...
@@ -2140,16 +2236,16 @@ Tkapp_Split(PyObject *self, PyObject *args)
...
@@ -2140,16 +2236,16 @@ Tkapp_Split(PyObject *self, PyObject *args)
int
i
;
int
i
;
if
(
Tcl_ListObjGetElements
(
Tkapp_Interp
(
self
),
value
,
if
(
Tcl_ListObjGetElements
(
Tkapp_Interp
(
self
),
value
,
&
objc
,
&
objv
)
==
TCL_ERROR
)
{
&
objc
,
&
objv
)
==
TCL_ERROR
)
{
return
FromObj
(
self
,
value
);
return
FromObj
(
(
PyObject
*
)
self
,
value
);
}
}
if
(
objc
==
0
)
if
(
objc
==
0
)
return
PyUnicode_FromString
(
""
);
return
PyUnicode_FromString
(
""
);
if
(
objc
==
1
)
if
(
objc
==
1
)
return
FromObj
(
self
,
objv
[
0
]);
return
FromObj
(
(
PyObject
*
)
self
,
objv
[
0
]);
if
(
!
(
v
=
PyTuple_New
(
objc
)))
if
(
!
(
v
=
PyTuple_New
(
objc
)))
return
NULL
;
return
NULL
;
for
(
i
=
0
;
i
<
objc
;
i
++
)
{
for
(
i
=
0
;
i
<
objc
;
i
++
)
{
PyObject
*
s
=
FromObj
(
self
,
objv
[
i
]);
PyObject
*
s
=
FromObj
(
(
PyObject
*
)
self
,
objv
[
i
]);
if
(
!
s
||
PyTuple_SetItem
(
v
,
i
,
s
))
{
if
(
!
s
||
PyTuple_SetItem
(
v
,
i
,
s
))
{
Py_DECREF
(
v
);
Py_DECREF
(
v
);
return
NULL
;
return
NULL
;
...
@@ -2160,7 +2256,7 @@ Tkapp_Split(PyObject *self, PyObject *args)
...
@@ -2160,7 +2256,7 @@ Tkapp_Split(PyObject *self, PyObject *args)
if
(
PyTuple_Check
(
arg
)
||
PyList_Check
(
arg
))
if
(
PyTuple_Check
(
arg
)
||
PyList_Check
(
arg
))
return
SplitObj
(
arg
);
return
SplitObj
(
arg
);
if
(
!
PyArg_Parse
Tuple
(
args
,
"et:split"
,
"utf-8"
,
&
list
))
if
(
!
PyArg_Parse
(
arg
,
"et:split"
,
"utf-8"
,
&
list
))
return
NULL
;
return
NULL
;
CHECK_STRING_LENGTH
(
list
);
CHECK_STRING_LENGTH
(
list
);
v
=
Split
(
list
);
v
=
Split
(
list
);
...
@@ -2260,7 +2356,7 @@ TCL_DECLARE_MUTEX(command_mutex)
...
@@ -2260,7 +2356,7 @@ TCL_DECLARE_MUTEX(command_mutex)
typedef
struct
CommandEvent
{
typedef
struct
CommandEvent
{
Tcl_Event
ev
;
Tcl_Event
ev
;
Tcl_Interp
*
interp
;
Tcl_Interp
*
interp
;
char
*
name
;
c
onst
c
har
*
name
;
int
create
;
int
create
;
int
*
status
;
int
*
status
;
ClientData
*
data
;
ClientData
*
data
;
...
@@ -2283,18 +2379,25 @@ Tkapp_CommandProc(CommandEvent *ev, int flags)
...
@@ -2283,18 +2379,25 @@ Tkapp_CommandProc(CommandEvent *ev, int flags)
}
}
#endif
#endif
/*[clinic input]
_tkinter.tkapp.createcommand
self: self(type="TkappObject *")
name: str
func: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_CreateCommand
(
PyObject
*
selfptr
,
PyObject
*
args
)
_tkinter_tkapp_createcommand_impl
(
TkappObject
*
self
,
const
char
*
name
,
PyObject
*
func
)
/*[clinic end generated code: output=2a1c79a4ee2af410 input=2bc2c046a0914234]*/
{
{
TkappObject
*
self
=
(
TkappObject
*
)
selfptr
;
PythonCmd_ClientData
*
data
;
PythonCmd_ClientData
*
data
;
char
*
cmdName
;
PyObject
*
func
;
int
err
;
int
err
;
if
(
!
PyArg_ParseTuple
(
args
,
"sO:createcommand"
,
&
cmdName
,
&
func
))
CHECK_STRING_LENGTH
(
name
);
return
NULL
;
CHECK_STRING_LENGTH
(
cmdName
);
if
(
!
PyCallable_Check
(
func
))
{
if
(
!
PyCallable_Check
(
func
))
{
PyErr_SetString
(
PyExc_TypeError
,
"command not callable"
);
PyErr_SetString
(
PyExc_TypeError
,
"command not callable"
);
return
NULL
;
return
NULL
;
...
@@ -2311,7 +2414,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
...
@@ -2311,7 +2414,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
return
PyErr_NoMemory
();
return
PyErr_NoMemory
();
Py_INCREF
(
self
);
Py_INCREF
(
self
);
Py_INCREF
(
func
);
Py_INCREF
(
func
);
data
->
self
=
selfptr
;
data
->
self
=
(
PyObject
*
)
self
;
data
->
func
=
func
;
data
->
func
=
func
;
#ifdef WITH_THREAD
#ifdef WITH_THREAD
if
(
self
->
threaded
&&
self
->
thread_id
!=
Tcl_GetCurrentThread
())
{
if
(
self
->
threaded
&&
self
->
thread_id
!=
Tcl_GetCurrentThread
())
{
...
@@ -2325,7 +2428,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
...
@@ -2325,7 +2428,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
ev
->
ev
.
proc
=
(
Tcl_EventProc
*
)
Tkapp_CommandProc
;
ev
->
ev
.
proc
=
(
Tcl_EventProc
*
)
Tkapp_CommandProc
;
ev
->
interp
=
self
->
interp
;
ev
->
interp
=
self
->
interp
;
ev
->
create
=
1
;
ev
->
create
=
1
;
ev
->
name
=
cmdN
ame
;
ev
->
name
=
n
ame
;
ev
->
data
=
(
ClientData
)
data
;
ev
->
data
=
(
ClientData
)
data
;
ev
->
status
=
&
err
;
ev
->
status
=
&
err
;
ev
->
done
=
&
cond
;
ev
->
done
=
&
cond
;
...
@@ -2337,7 +2440,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
...
@@ -2337,7 +2440,7 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
{
{
ENTER_TCL
ENTER_TCL
err
=
Tcl_CreateCommand
(
err
=
Tcl_CreateCommand
(
Tkapp_Interp
(
self
),
cmdN
ame
,
PythonCmd
,
Tkapp_Interp
(
self
),
n
ame
,
PythonCmd
,
(
ClientData
)
data
,
PythonCmdDelete
)
==
NULL
;
(
ClientData
)
data
,
PythonCmdDelete
)
==
NULL
;
LEAVE_TCL
LEAVE_TCL
}
}
...
@@ -2352,16 +2455,22 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
...
@@ -2352,16 +2455,22 @@ Tkapp_CreateCommand(PyObject *selfptr, PyObject *args)
/*[clinic input]
_tkinter.tkapp.deletecommand
self: self(type="TkappObject *")
name: str
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_DeleteCommand
(
PyObject
*
selfptr
,
PyObject
*
args
)
_tkinter_tkapp_deletecommand_impl
(
TkappObject
*
self
,
const
char
*
name
)
/*[clinic end generated code: output=a67e8cb5845e0d2d input=b6306468f10b219c]*/
{
{
TkappObject
*
self
=
(
TkappObject
*
)
selfptr
;
char
*
cmdName
;
int
err
;
int
err
;
if
(
!
PyArg_ParseTuple
(
args
,
"s:deletecommand"
,
&
cmdName
))
CHECK_STRING_LENGTH
(
name
);
return
NULL
;
CHECK_STRING_LENGTH
(
cmdName
);
#ifdef WITH_THREAD
#ifdef WITH_THREAD
if
(
self
->
threaded
&&
self
->
thread_id
!=
Tcl_GetCurrentThread
())
{
if
(
self
->
threaded
&&
self
->
thread_id
!=
Tcl_GetCurrentThread
())
{
...
@@ -2375,7 +2484,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
...
@@ -2375,7 +2484,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
ev
->
ev
.
proc
=
(
Tcl_EventProc
*
)
Tkapp_CommandProc
;
ev
->
ev
.
proc
=
(
Tcl_EventProc
*
)
Tkapp_CommandProc
;
ev
->
interp
=
self
->
interp
;
ev
->
interp
=
self
->
interp
;
ev
->
create
=
0
;
ev
->
create
=
0
;
ev
->
name
=
cmdN
ame
;
ev
->
name
=
n
ame
;
ev
->
status
=
&
err
;
ev
->
status
=
&
err
;
ev
->
done
=
&
cond
;
ev
->
done
=
&
cond
;
Tkapp_ThreadSend
(
self
,
(
Tcl_Event
*
)
ev
,
&
cond
,
Tkapp_ThreadSend
(
self
,
(
Tcl_Event
*
)
ev
,
&
cond
,
...
@@ -2386,7 +2495,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
...
@@ -2386,7 +2495,7 @@ Tkapp_DeleteCommand(PyObject *selfptr, PyObject *args)
#endif
#endif
{
{
ENTER_TCL
ENTER_TCL
err
=
Tcl_DeleteCommand
(
self
->
interp
,
cmdN
ame
);
err
=
Tcl_DeleteCommand
(
self
->
interp
,
n
ame
);
LEAVE_TCL
LEAVE_TCL
}
}
if
(
err
==
-
1
)
{
if
(
err
==
-
1
)
{
...
@@ -2467,17 +2576,23 @@ FileHandler(ClientData clientData, int mask)
...
@@ -2467,17 +2576,23 @@ FileHandler(ClientData clientData, int mask)
LEAVE_PYTHON
LEAVE_PYTHON
}
}
/*[clinic input]
_tkinter.tkapp.createfilehandler
file: object
mask: int
func: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_CreateFileHandler
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_createfilehandler_impl
(
TkappObject
*
self
,
PyObject
*
file
,
/* args is (file, mask, func) */
int
mask
,
PyObject
*
func
)
/*[clinic end generated code: output=f73ce82de801c353 input=84943a5286e47947]*/
{
{
FileHandler_ClientData
*
data
;
FileHandler_ClientData
*
data
;
PyObject
*
file
,
*
func
;
int
tfile
;
int
mask
,
tfile
;
if
(
!
PyArg_ParseTuple
(
args
,
"OiO:createfilehandler"
,
&
file
,
&
mask
,
&
func
))
return
NULL
;
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
...
@@ -2500,15 +2615,20 @@ Tkapp_CreateFileHandler(PyObject *self, PyObject *args)
...
@@ -2500,15 +2615,20 @@ Tkapp_CreateFileHandler(PyObject *self, PyObject *args)
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
/*[clinic input]
_tkinter.tkapp.deletefilehandler
file: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_DeleteFileHandler
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_deletefilehandler
(
TkappObject
*
self
,
PyObject
*
file
)
/*[clinic end generated code: output=b53cc96ebf9476fd input=abbec19d66312e2a]*/
{
{
PyObject
*
file
;
int
tfile
;
int
tfile
;
if
(
!
PyArg_ParseTuple
(
args
,
"O:deletefilehandler"
,
&
file
))
return
NULL
;
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
tfile
=
PyObject_AsFileDescriptor
(
file
);
tfile
=
PyObject_AsFileDescriptor
(
file
);
...
@@ -2536,14 +2656,20 @@ typedef struct {
...
@@ -2536,14 +2656,20 @@ typedef struct {
PyObject
*
func
;
PyObject
*
func
;
}
TkttObject
;
}
TkttObject
;
/*[clinic input]
_tkinter.tktimertoken.deletetimerhandler
self: self(type="TkttObject *")
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tktt_DeleteTimerHandler
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tktimertoken_deletetimerhandler_impl
(
TkttObject
*
self
)
/*[clinic end generated code: output=bd7fe17f328cfa55 input=25ba5dd594e52084]*/
{
{
TkttObject
*
v
=
(
TkttObject
*
)
self
;
TkttObject
*
v
=
self
;
PyObject
*
func
=
v
->
func
;
PyObject
*
func
=
v
->
func
;
if
(
!
PyArg_ParseTuple
(
args
,
":deletetimerhandler"
))
return
NULL
;
if
(
v
->
token
!=
NULL
)
{
if
(
v
->
token
!=
NULL
)
{
Tcl_DeleteTimerHandler
(
v
->
token
);
Tcl_DeleteTimerHandler
(
v
->
token
);
v
->
token
=
NULL
;
v
->
token
=
NULL
;
...
@@ -2556,11 +2682,7 @@ Tktt_DeleteTimerHandler(PyObject *self, PyObject *args)
...
@@ -2556,11 +2682,7 @@ Tktt_DeleteTimerHandler(PyObject *self, PyObject *args)
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
static
PyMethodDef
Tktt_methods
[]
=
static
PyMethodDef
Tktt_methods
[];
{
{
"deletetimerhandler"
,
Tktt_DeleteTimerHandler
,
METH_VARARGS
},
{
NULL
,
NULL
}
};
static
TkttObject
*
static
TkttObject
*
Tktt_New
(
PyObject
*
func
)
Tktt_New
(
PyObject
*
func
)
...
@@ -2649,16 +2771,22 @@ TimerHandler(ClientData clientData)
...
@@ -2649,16 +2771,22 @@ TimerHandler(ClientData clientData)
LEAVE_PYTHON
LEAVE_PYTHON
}
}
/*[clinic input]
_tkinter.tkapp.createtimerhandler
milliseconds: int
func: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_CreateTimerHandler
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_createtimerhandler_impl
(
TkappObject
*
self
,
int
milliseconds
,
PyObject
*
func
)
/*[clinic end generated code: output=2da5959b9d031911 input=ba6729f32f0277a5]*/
{
{
int
milliseconds
;
PyObject
*
func
;
TkttObject
*
v
;
TkttObject
*
v
;
if
(
!
PyArg_ParseTuple
(
args
,
"iO:createtimerhandler"
,
&
milliseconds
,
&
func
))
return
NULL
;
if
(
!
PyCallable_Check
(
func
))
{
if
(
!
PyCallable_Check
(
func
))
{
PyErr_SetString
(
PyExc_TypeError
,
"bad argument list"
);
PyErr_SetString
(
PyExc_TypeError
,
"bad argument list"
);
return
NULL
;
return
NULL
;
...
@@ -2678,18 +2806,23 @@ Tkapp_CreateTimerHandler(PyObject *self, PyObject *args)
...
@@ -2678,18 +2806,23 @@ Tkapp_CreateTimerHandler(PyObject *self, PyObject *args)
/** Event Loop **/
/** Event Loop **/
/*[clinic input]
_tkinter.tkapp.mainloop
self: self(type="TkappObject *")
threshold: int = 0
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_MainLoop
(
PyObject
*
selfptr
,
PyObject
*
args
)
_tkinter_tkapp_mainloop_impl
(
TkappObject
*
self
,
int
threshold
)
/*[clinic end generated code: output=0ba8eabbe57841b0 input=ad57c9c1dd2b9470]*/
{
{
int
threshold
=
0
;
TkappObject
*
self
=
(
TkappObject
*
)
selfptr
;
#ifdef WITH_THREAD
#ifdef WITH_THREAD
PyThreadState
*
tstate
=
PyThreadState_Get
();
PyThreadState
*
tstate
=
PyThreadState_Get
();
#endif
#endif
if
(
!
PyArg_ParseTuple
(
args
,
"|i:mainloop"
,
&
threshold
))
return
NULL
;
CHECK_TCL_APPARTMENT
;
CHECK_TCL_APPARTMENT
;
self
->
dispatching
=
1
;
self
->
dispatching
=
1
;
...
@@ -2741,44 +2874,56 @@ Tkapp_MainLoop(PyObject *selfptr, PyObject *args)
...
@@ -2741,44 +2874,56 @@ Tkapp_MainLoop(PyObject *selfptr, PyObject *args)
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
/*[clinic input]
_tkinter.tkapp.dooneevent
flags: int = 0
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_DoOneEvent
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_dooneevent_impl
(
TkappObject
*
self
,
int
flags
)
/*[clinic end generated code: output=27c6b2aa464cac29 input=6542b928e364b793]*/
{
{
int
flags
=
0
;
int
rv
;
int
rv
;
if
(
!
PyArg_ParseTuple
(
args
,
"|i:dooneevent"
,
&
flags
))
return
NULL
;
ENTER_TCL
ENTER_TCL
rv
=
Tcl_DoOneEvent
(
flags
);
rv
=
Tcl_DoOneEvent
(
flags
);
LEAVE_TCL
LEAVE_TCL
return
Py_BuildValue
(
"i"
,
rv
);
return
Py_BuildValue
(
"i"
,
rv
);
}
}
/*[clinic input]
_tkinter.tkapp.quit
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_Quit
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_quit_impl
(
TkappObject
*
self
)
/*[clinic end generated code: output=7f21eeff481f754f input=e03020dc38aff23c]*/
{
{
if
(
!
PyArg_ParseTuple
(
args
,
":quit"
))
return
NULL
;
quitMainLoop
=
1
;
quitMainLoop
=
1
;
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
/*[clinic input]
_tkinter.tkapp.interpaddr
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_InterpAddr
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_interpaddr_impl
(
TkappObject
*
self
)
/*[clinic end generated code: output=6caaae3273b3c95a input=2dd32cbddb55a111]*/
{
{
if
(
!
PyArg_ParseTuple
(
args
,
":interpaddr"
))
return
NULL
;
return
PyLong_FromVoidPtr
(
Tkapp_Interp
(
self
));
return
PyLong_FromVoidPtr
(
Tkapp_Interp
(
self
));
}
}
/*[clinic input]
_tkinter.tkapp.loadtk
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_TkInit
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_loadtk_impl
(
TkappObject
*
self
)
/*[clinic end generated code: output=e9e10a954ce46d2a input=b5e82afedd6354f0]*/
{
{
Tcl_Interp
*
interp
=
Tkapp_Interp
(
self
);
Tcl_Interp
*
interp
=
Tkapp_Interp
(
self
);
const
char
*
_tk_exists
=
NULL
;
const
char
*
_tk_exists
=
NULL
;
...
@@ -2804,7 +2949,7 @@ Tkapp_TkInit(PyObject *self, PyObject *args)
...
@@ -2804,7 +2949,7 @@ Tkapp_TkInit(PyObject *self, PyObject *args)
if
(
err
==
TCL_ERROR
)
{
if
(
err
==
TCL_ERROR
)
{
/* This sets an exception, but we cannot return right
/* This sets an exception, but we cannot return right
away because we need to exit the overlap first. */
away because we need to exit the overlap first. */
Tkinter_Error
(
self
);
Tkinter_Error
(
(
PyObject
*
)
self
);
}
else
{
}
else
{
_tk_exists
=
Tkapp_Result
(
self
);
_tk_exists
=
Tkapp_Result
(
self
);
}
}
...
@@ -2839,11 +2984,18 @@ Tkapp_WantObjects(PyObject *self, PyObject *args)
...
@@ -2839,11 +2984,18 @@ Tkapp_WantObjects(PyObject *self, PyObject *args)
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
/*[clinic input]
_tkinter.tkapp.willdispatch
self: self(type="TkappObject *")
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkapp_WillDispatch
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_tkapp_willdispatch_impl
(
TkappObject
*
self
)
/*[clinic end generated code: output=0e3f46d244642155 input=2630699767808970]*/
{
{
self
->
dispatching
=
1
;
((
TkappObject
*
)
self
)
->
dispatching
=
1
;
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
...
@@ -2851,45 +3003,7 @@ Tkapp_WillDispatch(PyObject *self, PyObject *args)
...
@@ -2851,45 +3003,7 @@ Tkapp_WillDispatch(PyObject *self, PyObject *args)
/**** Tkapp Method List ****/
/**** Tkapp Method List ****/
static
PyMethodDef
Tkapp_methods
[]
=
static
PyMethodDef
Tkapp_methods
[];
{
{
"willdispatch"
,
Tkapp_WillDispatch
,
METH_NOARGS
},
{
"wantobjects"
,
Tkapp_WantObjects
,
METH_VARARGS
},
{
"call"
,
Tkapp_Call
,
METH_VARARGS
},
{
"eval"
,
Tkapp_Eval
,
METH_VARARGS
},
{
"evalfile"
,
Tkapp_EvalFile
,
METH_VARARGS
},
{
"record"
,
Tkapp_Record
,
METH_VARARGS
},
{
"adderrorinfo"
,
Tkapp_AddErrorInfo
,
METH_VARARGS
},
{
"setvar"
,
Tkapp_SetVar
,
METH_VARARGS
},
{
"globalsetvar"
,
Tkapp_GlobalSetVar
,
METH_VARARGS
},
{
"getvar"
,
Tkapp_GetVar
,
METH_VARARGS
},
{
"globalgetvar"
,
Tkapp_GlobalGetVar
,
METH_VARARGS
},
{
"unsetvar"
,
Tkapp_UnsetVar
,
METH_VARARGS
},
{
"globalunsetvar"
,
Tkapp_GlobalUnsetVar
,
METH_VARARGS
},
{
"getint"
,
Tkapp_GetInt
,
METH_VARARGS
},
{
"getdouble"
,
Tkapp_GetDouble
,
METH_VARARGS
},
{
"getboolean"
,
Tkapp_GetBoolean
,
METH_O
},
{
"exprstring"
,
Tkapp_ExprString
,
METH_VARARGS
},
{
"exprlong"
,
Tkapp_ExprLong
,
METH_VARARGS
},
{
"exprdouble"
,
Tkapp_ExprDouble
,
METH_VARARGS
},
{
"exprboolean"
,
Tkapp_ExprBoolean
,
METH_VARARGS
},
{
"splitlist"
,
Tkapp_SplitList
,
METH_VARARGS
},
{
"split"
,
Tkapp_Split
,
METH_VARARGS
},
{
"createcommand"
,
Tkapp_CreateCommand
,
METH_VARARGS
},
{
"deletecommand"
,
Tkapp_DeleteCommand
,
METH_VARARGS
},
#ifdef HAVE_CREATEFILEHANDLER
{
"createfilehandler"
,
Tkapp_CreateFileHandler
,
METH_VARARGS
},
{
"deletefilehandler"
,
Tkapp_DeleteFileHandler
,
METH_VARARGS
},
#endif
{
"createtimerhandler"
,
Tkapp_CreateTimerHandler
,
METH_VARARGS
},
{
"mainloop"
,
Tkapp_MainLoop
,
METH_VARARGS
},
{
"dooneevent"
,
Tkapp_DoOneEvent
,
METH_VARARGS
},
{
"quit"
,
Tkapp_Quit
,
METH_VARARGS
},
{
"interpaddr"
,
Tkapp_InterpAddr
,
METH_VARARGS
},
{
"loadtk"
,
Tkapp_TkInit
,
METH_NOARGS
},
{
NULL
,
NULL
}
};
/**** Tkapp Type Methods ****/
/**** Tkapp Type Methods ****/
...
@@ -2987,14 +3101,19 @@ _flatten1(FlattenContext* context, PyObject* item, int depth)
...
@@ -2987,14 +3101,19 @@ _flatten1(FlattenContext* context, PyObject* item, int depth)
return
1
;
return
1
;
}
}
/*[clinic input]
_tkinter._flatten
item: object
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkinter_Flatten
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter__flatten
(
PyModuleDef
*
module
,
PyObject
*
item
)
/*[clinic end generated code: output=9505049ec74c3480 input=6b9c12260aa1157f]*/
{
{
FlattenContext
context
;
FlattenContext
context
;
PyObject
*
item
;
if
(
!
PyArg_ParseTuple
(
args
,
"O:_flatten"
,
&
item
))
return
NULL
;
context
.
maxsize
=
PySequence_Size
(
item
);
context
.
maxsize
=
PySequence_Size
(
item
);
if
(
context
.
maxsize
<
0
)
if
(
context
.
maxsize
<
0
)
...
@@ -3017,26 +3136,33 @@ Tkinter_Flatten(PyObject* self, PyObject* args)
...
@@ -3017,26 +3136,33 @@ Tkinter_Flatten(PyObject* self, PyObject* args)
return
context
.
tuple
;
return
context
.
tuple
;
}
}
/*[clinic input]
_tkinter.create
screenName: str(nullable=True) = NULL
baseName: str = NULL
className: str = "Tk"
interactive: int(c_default="0") = False
wantobjects: int(c_default="0") = False
wantTk: int(c_default="1") = True
if false, then Tk_Init() doesn't get called
sync: int(c_default="0") = False
if true, then pass -sync to wish
use: str(nullable=True) = NULL
if not None, then pass -use to wish
/
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkinter_Create
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_create_impl
(
PyModuleDef
*
module
,
const
char
*
screenName
,
{
const
char
*
baseName
,
const
char
*
className
,
char
*
screenName
=
NULL
;
int
interactive
,
int
wantobjects
,
int
wantTk
,
int
sync
,
char
*
baseName
=
NULL
;
/* XXX this is not used anymore;
const
char
*
use
)
try getting rid of it. */
/*[clinic end generated code: output=b8847800fc3b27eb input=c133c59a99dd0086]*/
char
*
className
=
NULL
;
{
int
interactive
=
0
;
/* XXX baseName is not used anymore;
int
wantobjects
=
1
;
* try getting rid of it. */
int
wantTk
=
1
;
/* If false, then Tk_Init() doesn't get called */
int
sync
=
0
;
/* pass -sync to wish */
char
*
use
=
NULL
;
/* pass -use to wish */
className
=
"Tk"
;
if
(
!
PyArg_ParseTuple
(
args
,
"|zssiiiiz:create"
,
&
screenName
,
&
baseName
,
&
className
,
&
interactive
,
&
wantobjects
,
&
wantTk
,
&
sync
,
&
use
))
return
NULL
;
CHECK_STRING_LENGTH
(
screenName
);
CHECK_STRING_LENGTH
(
screenName
);
CHECK_STRING_LENGTH
(
baseName
);
CHECK_STRING_LENGTH
(
baseName
);
CHECK_STRING_LENGTH
(
className
);
CHECK_STRING_LENGTH
(
className
);
...
@@ -3047,12 +3173,21 @@ Tkinter_Create(PyObject *self, PyObject *args)
...
@@ -3047,12 +3173,21 @@ Tkinter_Create(PyObject *self, PyObject *args)
sync
,
use
);
sync
,
use
);
}
}
/*[clinic input]
_tkinter.setbusywaitinterval
new_val: int
/
Set the busy-wait interval in milliseconds between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.
It should be set to a divisor of the maximum time between frames in an animation.
[clinic start generated code]*/
static
PyObject
*
static
PyObject
*
Tkinter_setbusywaitinterval
(
PyObject
*
self
,
PyObject
*
args
)
_tkinter_setbusywaitinterval_impl
(
PyModuleDef
*
module
,
int
new_val
)
/*[clinic end generated code: output=0b9d7ef7940461ea input=deca1d6f9e6dae47]*/
{
{
int
new_val
;
if
(
!
PyArg_ParseTuple
(
args
,
"i:setbusywaitinterval"
,
&
new_val
))
return
NULL
;
if
(
new_val
<
0
)
{
if
(
new_val
<
0
)
{
PyErr_SetString
(
PyExc_ValueError
,
PyErr_SetString
(
PyExc_ValueError
,
"busywaitinterval must be >= 0"
);
"busywaitinterval must be >= 0"
);
...
@@ -3062,34 +3197,70 @@ Tkinter_setbusywaitinterval(PyObject *self, PyObject *args)
...
@@ -3062,34 +3197,70 @@ Tkinter_setbusywaitinterval(PyObject *self, PyObject *args)
Py_RETURN_NONE
;
Py_RETURN_NONE
;
}
}
static
char
setbusywaitinterval_doc
[]
=
/*[clinic input]
"setbusywaitinterval(n) -> None
\n
\
_tkinter.getbusywaitinterval -> int
\n
\
Set the busy-wait interval in milliseconds between successive
\n
\
calls to Tcl_DoOneEvent in a threaded Python interpreter.
\n
\
It should be set to a divisor of the maximum time between
\n
\
frames in an animation."
;
static
PyObject
*
Return the current busy-wait interval between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.
Tkinter_getbusywaitinterval
(
PyObject
*
self
,
PyObject
*
args
)
[clinic start generated code]*/
static
int
_tkinter_getbusywaitinterval_impl
(
PyModuleDef
*
module
)
/*[clinic end generated code: output=9d09eee026e96971 input=a695878d2d576a84]*/
{
{
return
PyLong_FromLong
(
Tkinter_busywaitinterval
)
;
return
Tkinter_busywaitinterval
;
}
}
static
char
getbusywaitinterval_doc
[]
=
#include "clinic/_tkinter.c.h"
"getbusywaitinterval() -> int
\n
\
\n
\
static
PyMethodDef
Tktt_methods
[]
=
Return the current busy-wait interval between successive
\n
\
{
calls to Tcl_DoOneEvent in a threaded Python interpreter."
;
_TKINTER_TKTIMERTOKEN_DELETETIMERHANDLER_METHODDEF
{
NULL
,
NULL
}
};
static
PyMethodDef
Tkapp_methods
[]
=
{
_TKINTER_TKAPP_WILLDISPATCH_METHODDEF
{
"wantobjects"
,
Tkapp_WantObjects
,
METH_VARARGS
},
{
"call"
,
Tkapp_Call
,
METH_VARARGS
},
_TKINTER_TKAPP_EVAL_METHODDEF
_TKINTER_TKAPP_EVALFILE_METHODDEF
_TKINTER_TKAPP_RECORD_METHODDEF
_TKINTER_TKAPP_ADDERRINFO_METHODDEF
{
"setvar"
,
Tkapp_SetVar
,
METH_VARARGS
},
{
"globalsetvar"
,
Tkapp_GlobalSetVar
,
METH_VARARGS
},
{
"getvar"
,
Tkapp_GetVar
,
METH_VARARGS
},
{
"globalgetvar"
,
Tkapp_GlobalGetVar
,
METH_VARARGS
},
{
"unsetvar"
,
Tkapp_UnsetVar
,
METH_VARARGS
},
{
"globalunsetvar"
,
Tkapp_GlobalUnsetVar
,
METH_VARARGS
},
_TKINTER_TKAPP_GETINT_METHODDEF
_TKINTER_TKAPP_GETDOUBLE_METHODDEF
_TKINTER_TKAPP_GETBOOLEAN_METHODDEF
_TKINTER_TKAPP_EXPRSTRING_METHODDEF
_TKINTER_TKAPP_EXPRLONG_METHODDEF
_TKINTER_TKAPP_EXPRDOUBLE_METHODDEF
_TKINTER_TKAPP_EXPRBOOLEAN_METHODDEF
_TKINTER_TKAPP_SPLITLIST_METHODDEF
_TKINTER_TKAPP_SPLIT_METHODDEF
_TKINTER_TKAPP_CREATECOMMAND_METHODDEF
_TKINTER_TKAPP_DELETECOMMAND_METHODDEF
_TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
_TKINTER_TKAPP_CREATETIMERHANDLER_METHODDEF
_TKINTER_TKAPP_MAINLOOP_METHODDEF
_TKINTER_TKAPP_DOONEEVENT_METHODDEF
_TKINTER_TKAPP_QUIT_METHODDEF
_TKINTER_TKAPP_INTERPADDR_METHODDEF
_TKINTER_TKAPP_LOADTK_METHODDEF
{
NULL
,
NULL
}
};
static
PyMethodDef
moduleMethods
[]
=
static
PyMethodDef
moduleMethods
[]
=
{
{
{
"_flatten"
,
Tkinter_Flatten
,
METH_VARARGS
},
_TKINTER__FLATTEN_METHODDEF
{
"create"
,
Tkinter_Create
,
METH_VARARGS
},
_TKINTER_CREATE_METHODDEF
{
"setbusywaitinterval"
,
Tkinter_setbusywaitinterval
,
METH_VARARGS
,
_TKINTER_SETBUSYWAITINTERVAL_METHODDEF
setbusywaitinterval_doc
},
_TKINTER_GETBUSYWAITINTERVAL_METHODDEF
{
"getbusywaitinterval"
,(
PyCFunction
)
Tkinter_getbusywaitinterval
,
METH_NOARGS
,
getbusywaitinterval_doc
},
{
NULL
,
NULL
}
{
NULL
,
NULL
}
};
};
...
...
Modules/clinic/_tkinter.c.h
0 → 100644
Dosyayı görüntüle @
5abdf484
/*[clinic input]
preserve
[clinic start generated code]*/
PyDoc_STRVAR
(
_tkinter_tkapp_eval__doc__
,
"eval($self, script, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_EVAL_METHODDEF \
{"eval", (PyCFunction)_tkinter_tkapp_eval, METH_O, _tkinter_tkapp_eval__doc__},
static
PyObject
*
_tkinter_tkapp_eval_impl
(
TkappObject
*
self
,
const
char
*
script
);
static
PyObject
*
_tkinter_tkapp_eval
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
script
;
if
(
!
PyArg_Parse
(
arg
,
"s:eval"
,
&
script
))
goto
exit
;
return_value
=
_tkinter_tkapp_eval_impl
(
self
,
script
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_evalfile__doc__
,
"evalfile($self, fileName, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_EVALFILE_METHODDEF \
{"evalfile", (PyCFunction)_tkinter_tkapp_evalfile, METH_O, _tkinter_tkapp_evalfile__doc__},
static
PyObject
*
_tkinter_tkapp_evalfile_impl
(
TkappObject
*
self
,
const
char
*
fileName
);
static
PyObject
*
_tkinter_tkapp_evalfile
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
fileName
;
if
(
!
PyArg_Parse
(
arg
,
"s:evalfile"
,
&
fileName
))
goto
exit
;
return_value
=
_tkinter_tkapp_evalfile_impl
(
self
,
fileName
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_record__doc__
,
"record($self, script, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_RECORD_METHODDEF \
{"record", (PyCFunction)_tkinter_tkapp_record, METH_O, _tkinter_tkapp_record__doc__},
static
PyObject
*
_tkinter_tkapp_record_impl
(
TkappObject
*
self
,
const
char
*
script
);
static
PyObject
*
_tkinter_tkapp_record
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
script
;
if
(
!
PyArg_Parse
(
arg
,
"s:record"
,
&
script
))
goto
exit
;
return_value
=
_tkinter_tkapp_record_impl
(
self
,
script
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_adderrinfo__doc__
,
"adderrinfo($self, msg, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_ADDERRINFO_METHODDEF \
{"adderrinfo", (PyCFunction)_tkinter_tkapp_adderrinfo, METH_O, _tkinter_tkapp_adderrinfo__doc__},
static
PyObject
*
_tkinter_tkapp_adderrinfo_impl
(
TkappObject
*
self
,
const
char
*
msg
);
static
PyObject
*
_tkinter_tkapp_adderrinfo
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
msg
;
if
(
!
PyArg_Parse
(
arg
,
"s:adderrinfo"
,
&
msg
))
goto
exit
;
return_value
=
_tkinter_tkapp_adderrinfo_impl
(
self
,
msg
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_getint__doc__
,
"getint($self, arg, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_GETINT_METHODDEF \
{"getint", (PyCFunction)_tkinter_tkapp_getint, METH_O, _tkinter_tkapp_getint__doc__},
PyDoc_STRVAR
(
_tkinter_tkapp_getdouble__doc__
,
"getdouble($self, arg, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_GETDOUBLE_METHODDEF \
{"getdouble", (PyCFunction)_tkinter_tkapp_getdouble, METH_O, _tkinter_tkapp_getdouble__doc__},
PyDoc_STRVAR
(
_tkinter_tkapp_getboolean__doc__
,
"getboolean($self, arg, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_GETBOOLEAN_METHODDEF \
{"getboolean", (PyCFunction)_tkinter_tkapp_getboolean, METH_O, _tkinter_tkapp_getboolean__doc__},
PyDoc_STRVAR
(
_tkinter_tkapp_exprstring__doc__
,
"exprstring($self, s, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_EXPRSTRING_METHODDEF \
{"exprstring", (PyCFunction)_tkinter_tkapp_exprstring, METH_O, _tkinter_tkapp_exprstring__doc__},
static
PyObject
*
_tkinter_tkapp_exprstring_impl
(
TkappObject
*
self
,
const
char
*
s
);
static
PyObject
*
_tkinter_tkapp_exprstring
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
s
;
if
(
!
PyArg_Parse
(
arg
,
"s:exprstring"
,
&
s
))
goto
exit
;
return_value
=
_tkinter_tkapp_exprstring_impl
(
self
,
s
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_exprlong__doc__
,
"exprlong($self, s, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_EXPRLONG_METHODDEF \
{"exprlong", (PyCFunction)_tkinter_tkapp_exprlong, METH_O, _tkinter_tkapp_exprlong__doc__},
static
PyObject
*
_tkinter_tkapp_exprlong_impl
(
TkappObject
*
self
,
const
char
*
s
);
static
PyObject
*
_tkinter_tkapp_exprlong
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
s
;
if
(
!
PyArg_Parse
(
arg
,
"s:exprlong"
,
&
s
))
goto
exit
;
return_value
=
_tkinter_tkapp_exprlong_impl
(
self
,
s
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_exprdouble__doc__
,
"exprdouble($self, s, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_EXPRDOUBLE_METHODDEF \
{"exprdouble", (PyCFunction)_tkinter_tkapp_exprdouble, METH_O, _tkinter_tkapp_exprdouble__doc__},
static
PyObject
*
_tkinter_tkapp_exprdouble_impl
(
TkappObject
*
self
,
const
char
*
s
);
static
PyObject
*
_tkinter_tkapp_exprdouble
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
s
;
if
(
!
PyArg_Parse
(
arg
,
"s:exprdouble"
,
&
s
))
goto
exit
;
return_value
=
_tkinter_tkapp_exprdouble_impl
(
self
,
s
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_exprboolean__doc__
,
"exprboolean($self, s, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_EXPRBOOLEAN_METHODDEF \
{"exprboolean", (PyCFunction)_tkinter_tkapp_exprboolean, METH_O, _tkinter_tkapp_exprboolean__doc__},
static
PyObject
*
_tkinter_tkapp_exprboolean_impl
(
TkappObject
*
self
,
const
char
*
s
);
static
PyObject
*
_tkinter_tkapp_exprboolean
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
s
;
if
(
!
PyArg_Parse
(
arg
,
"s:exprboolean"
,
&
s
))
goto
exit
;
return_value
=
_tkinter_tkapp_exprboolean_impl
(
self
,
s
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_splitlist__doc__
,
"splitlist($self, arg, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_SPLITLIST_METHODDEF \
{"splitlist", (PyCFunction)_tkinter_tkapp_splitlist, METH_O, _tkinter_tkapp_splitlist__doc__},
PyDoc_STRVAR
(
_tkinter_tkapp_split__doc__
,
"split($self, arg, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_SPLIT_METHODDEF \
{"split", (PyCFunction)_tkinter_tkapp_split, METH_O, _tkinter_tkapp_split__doc__},
PyDoc_STRVAR
(
_tkinter_tkapp_createcommand__doc__
,
"createcommand($self, name, func, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_CREATECOMMAND_METHODDEF \
{"createcommand", (PyCFunction)_tkinter_tkapp_createcommand, METH_VARARGS, _tkinter_tkapp_createcommand__doc__},
static
PyObject
*
_tkinter_tkapp_createcommand_impl
(
TkappObject
*
self
,
const
char
*
name
,
PyObject
*
func
);
static
PyObject
*
_tkinter_tkapp_createcommand
(
TkappObject
*
self
,
PyObject
*
args
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
name
;
PyObject
*
func
;
if
(
!
PyArg_ParseTuple
(
args
,
"sO:createcommand"
,
&
name
,
&
func
))
goto
exit
;
return_value
=
_tkinter_tkapp_createcommand_impl
(
self
,
name
,
func
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_deletecommand__doc__
,
"deletecommand($self, name, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_DELETECOMMAND_METHODDEF \
{"deletecommand", (PyCFunction)_tkinter_tkapp_deletecommand, METH_O, _tkinter_tkapp_deletecommand__doc__},
static
PyObject
*
_tkinter_tkapp_deletecommand_impl
(
TkappObject
*
self
,
const
char
*
name
);
static
PyObject
*
_tkinter_tkapp_deletecommand
(
TkappObject
*
self
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
name
;
if
(
!
PyArg_Parse
(
arg
,
"s:deletecommand"
,
&
name
))
goto
exit
;
return_value
=
_tkinter_tkapp_deletecommand_impl
(
self
,
name
);
exit:
return
return_value
;
}
#if defined(HAVE_CREATEFILEHANDLER)
PyDoc_STRVAR
(
_tkinter_tkapp_createfilehandler__doc__
,
"createfilehandler($self, file, mask, func, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF \
{"createfilehandler", (PyCFunction)_tkinter_tkapp_createfilehandler, METH_VARARGS, _tkinter_tkapp_createfilehandler__doc__},
static
PyObject
*
_tkinter_tkapp_createfilehandler_impl
(
TkappObject
*
self
,
PyObject
*
file
,
int
mask
,
PyObject
*
func
);
static
PyObject
*
_tkinter_tkapp_createfilehandler
(
TkappObject
*
self
,
PyObject
*
args
)
{
PyObject
*
return_value
=
NULL
;
PyObject
*
file
;
int
mask
;
PyObject
*
func
;
if
(
!
PyArg_ParseTuple
(
args
,
"OiO:createfilehandler"
,
&
file
,
&
mask
,
&
func
))
goto
exit
;
return_value
=
_tkinter_tkapp_createfilehandler_impl
(
self
,
file
,
mask
,
func
);
exit:
return
return_value
;
}
#endif
/* defined(HAVE_CREATEFILEHANDLER) */
#if defined(HAVE_CREATEFILEHANDLER)
PyDoc_STRVAR
(
_tkinter_tkapp_deletefilehandler__doc__
,
"deletefilehandler($self, file, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF \
{"deletefilehandler", (PyCFunction)_tkinter_tkapp_deletefilehandler, METH_O, _tkinter_tkapp_deletefilehandler__doc__},
#endif
/* defined(HAVE_CREATEFILEHANDLER) */
PyDoc_STRVAR
(
_tkinter_tktimertoken_deletetimerhandler__doc__
,
"deletetimerhandler($self, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKTIMERTOKEN_DELETETIMERHANDLER_METHODDEF \
{"deletetimerhandler", (PyCFunction)_tkinter_tktimertoken_deletetimerhandler, METH_NOARGS, _tkinter_tktimertoken_deletetimerhandler__doc__},
static
PyObject
*
_tkinter_tktimertoken_deletetimerhandler_impl
(
TkttObject
*
self
);
static
PyObject
*
_tkinter_tktimertoken_deletetimerhandler
(
TkttObject
*
self
,
PyObject
*
Py_UNUSED
(
ignored
))
{
return
_tkinter_tktimertoken_deletetimerhandler_impl
(
self
);
}
PyDoc_STRVAR
(
_tkinter_tkapp_createtimerhandler__doc__
,
"createtimerhandler($self, milliseconds, func, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_CREATETIMERHANDLER_METHODDEF \
{"createtimerhandler", (PyCFunction)_tkinter_tkapp_createtimerhandler, METH_VARARGS, _tkinter_tkapp_createtimerhandler__doc__},
static
PyObject
*
_tkinter_tkapp_createtimerhandler_impl
(
TkappObject
*
self
,
int
milliseconds
,
PyObject
*
func
);
static
PyObject
*
_tkinter_tkapp_createtimerhandler
(
TkappObject
*
self
,
PyObject
*
args
)
{
PyObject
*
return_value
=
NULL
;
int
milliseconds
;
PyObject
*
func
;
if
(
!
PyArg_ParseTuple
(
args
,
"iO:createtimerhandler"
,
&
milliseconds
,
&
func
))
goto
exit
;
return_value
=
_tkinter_tkapp_createtimerhandler_impl
(
self
,
milliseconds
,
func
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_mainloop__doc__
,
"mainloop($self, threshold=0, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_MAINLOOP_METHODDEF \
{"mainloop", (PyCFunction)_tkinter_tkapp_mainloop, METH_VARARGS, _tkinter_tkapp_mainloop__doc__},
static
PyObject
*
_tkinter_tkapp_mainloop_impl
(
TkappObject
*
self
,
int
threshold
);
static
PyObject
*
_tkinter_tkapp_mainloop
(
TkappObject
*
self
,
PyObject
*
args
)
{
PyObject
*
return_value
=
NULL
;
int
threshold
=
0
;
if
(
!
PyArg_ParseTuple
(
args
,
"|i:mainloop"
,
&
threshold
))
goto
exit
;
return_value
=
_tkinter_tkapp_mainloop_impl
(
self
,
threshold
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_dooneevent__doc__
,
"dooneevent($self, flags=0, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_DOONEEVENT_METHODDEF \
{"dooneevent", (PyCFunction)_tkinter_tkapp_dooneevent, METH_VARARGS, _tkinter_tkapp_dooneevent__doc__},
static
PyObject
*
_tkinter_tkapp_dooneevent_impl
(
TkappObject
*
self
,
int
flags
);
static
PyObject
*
_tkinter_tkapp_dooneevent
(
TkappObject
*
self
,
PyObject
*
args
)
{
PyObject
*
return_value
=
NULL
;
int
flags
=
0
;
if
(
!
PyArg_ParseTuple
(
args
,
"|i:dooneevent"
,
&
flags
))
goto
exit
;
return_value
=
_tkinter_tkapp_dooneevent_impl
(
self
,
flags
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_tkapp_quit__doc__
,
"quit($self, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_QUIT_METHODDEF \
{"quit", (PyCFunction)_tkinter_tkapp_quit, METH_NOARGS, _tkinter_tkapp_quit__doc__},
static
PyObject
*
_tkinter_tkapp_quit_impl
(
TkappObject
*
self
);
static
PyObject
*
_tkinter_tkapp_quit
(
TkappObject
*
self
,
PyObject
*
Py_UNUSED
(
ignored
))
{
return
_tkinter_tkapp_quit_impl
(
self
);
}
PyDoc_STRVAR
(
_tkinter_tkapp_interpaddr__doc__
,
"interpaddr($self, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_INTERPADDR_METHODDEF \
{"interpaddr", (PyCFunction)_tkinter_tkapp_interpaddr, METH_NOARGS, _tkinter_tkapp_interpaddr__doc__},
static
PyObject
*
_tkinter_tkapp_interpaddr_impl
(
TkappObject
*
self
);
static
PyObject
*
_tkinter_tkapp_interpaddr
(
TkappObject
*
self
,
PyObject
*
Py_UNUSED
(
ignored
))
{
return
_tkinter_tkapp_interpaddr_impl
(
self
);
}
PyDoc_STRVAR
(
_tkinter_tkapp_loadtk__doc__
,
"loadtk($self, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_LOADTK_METHODDEF \
{"loadtk", (PyCFunction)_tkinter_tkapp_loadtk, METH_NOARGS, _tkinter_tkapp_loadtk__doc__},
static
PyObject
*
_tkinter_tkapp_loadtk_impl
(
TkappObject
*
self
);
static
PyObject
*
_tkinter_tkapp_loadtk
(
TkappObject
*
self
,
PyObject
*
Py_UNUSED
(
ignored
))
{
return
_tkinter_tkapp_loadtk_impl
(
self
);
}
PyDoc_STRVAR
(
_tkinter_tkapp_willdispatch__doc__
,
"willdispatch($self, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER_TKAPP_WILLDISPATCH_METHODDEF \
{"willdispatch", (PyCFunction)_tkinter_tkapp_willdispatch, METH_NOARGS, _tkinter_tkapp_willdispatch__doc__},
static
PyObject
*
_tkinter_tkapp_willdispatch_impl
(
TkappObject
*
self
);
static
PyObject
*
_tkinter_tkapp_willdispatch
(
TkappObject
*
self
,
PyObject
*
Py_UNUSED
(
ignored
))
{
return
_tkinter_tkapp_willdispatch_impl
(
self
);
}
PyDoc_STRVAR
(
_tkinter__flatten__doc__
,
"_flatten($module, item, /)
\n
"
"--
\n
"
"
\n
"
);
#define _TKINTER__FLATTEN_METHODDEF \
{"_flatten", (PyCFunction)_tkinter__flatten, METH_O, _tkinter__flatten__doc__},
PyDoc_STRVAR
(
_tkinter_create__doc__
,
"create($module, screenName=None, baseName=None, className=
\'
Tk
\'
,
\n
"
" interactive=False, wantobjects=False, wantTk=True, sync=False,
\n
"
" use=None, /)
\n
"
"--
\n
"
"
\n
"
"
\n
"
"
\n
"
" wantTk
\n
"
" if false, then Tk_Init() doesn
\'
t get called
\n
"
" sync
\n
"
" if true, then pass -sync to wish
\n
"
" use
\n
"
" if not None, then pass -use to wish"
);
#define _TKINTER_CREATE_METHODDEF \
{"create", (PyCFunction)_tkinter_create, METH_VARARGS, _tkinter_create__doc__},
static
PyObject
*
_tkinter_create_impl
(
PyModuleDef
*
module
,
const
char
*
screenName
,
const
char
*
baseName
,
const
char
*
className
,
int
interactive
,
int
wantobjects
,
int
wantTk
,
int
sync
,
const
char
*
use
);
static
PyObject
*
_tkinter_create
(
PyModuleDef
*
module
,
PyObject
*
args
)
{
PyObject
*
return_value
=
NULL
;
const
char
*
screenName
=
NULL
;
const
char
*
baseName
=
NULL
;
const
char
*
className
=
"Tk"
;
int
interactive
=
0
;
int
wantobjects
=
0
;
int
wantTk
=
1
;
int
sync
=
0
;
const
char
*
use
=
NULL
;
if
(
!
PyArg_ParseTuple
(
args
,
"|zssiiiiz:create"
,
&
screenName
,
&
baseName
,
&
className
,
&
interactive
,
&
wantobjects
,
&
wantTk
,
&
sync
,
&
use
))
goto
exit
;
return_value
=
_tkinter_create_impl
(
module
,
screenName
,
baseName
,
className
,
interactive
,
wantobjects
,
wantTk
,
sync
,
use
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_setbusywaitinterval__doc__
,
"setbusywaitinterval($module, new_val, /)
\n
"
"--
\n
"
"
\n
"
"Set the busy-wait interval in milliseconds between successive calls to Tcl_DoOneEvent in a threaded Python interpreter.
\n
"
"
\n
"
"It should be set to a divisor of the maximum time between frames in an animation."
);
#define _TKINTER_SETBUSYWAITINTERVAL_METHODDEF \
{"setbusywaitinterval", (PyCFunction)_tkinter_setbusywaitinterval, METH_O, _tkinter_setbusywaitinterval__doc__},
static
PyObject
*
_tkinter_setbusywaitinterval_impl
(
PyModuleDef
*
module
,
int
new_val
);
static
PyObject
*
_tkinter_setbusywaitinterval
(
PyModuleDef
*
module
,
PyObject
*
arg
)
{
PyObject
*
return_value
=
NULL
;
int
new_val
;
if
(
!
PyArg_Parse
(
arg
,
"i:setbusywaitinterval"
,
&
new_val
))
goto
exit
;
return_value
=
_tkinter_setbusywaitinterval_impl
(
module
,
new_val
);
exit:
return
return_value
;
}
PyDoc_STRVAR
(
_tkinter_getbusywaitinterval__doc__
,
"getbusywaitinterval($module, /)
\n
"
"--
\n
"
"
\n
"
"Return the current busy-wait interval between successive calls to Tcl_DoOneEvent in a threaded Python interpreter."
);
#define _TKINTER_GETBUSYWAITINTERVAL_METHODDEF \
{"getbusywaitinterval", (PyCFunction)_tkinter_getbusywaitinterval, METH_NOARGS, _tkinter_getbusywaitinterval__doc__},
static
int
_tkinter_getbusywaitinterval_impl
(
PyModuleDef
*
module
);
static
PyObject
*
_tkinter_getbusywaitinterval
(
PyModuleDef
*
module
,
PyObject
*
Py_UNUSED
(
ignored
))
{
PyObject
*
return_value
=
NULL
;
int
_return_value
;
_return_value
=
_tkinter_getbusywaitinterval_impl
(
module
);
if
((
_return_value
==
-
1
)
&&
PyErr_Occurred
())
goto
exit
;
return_value
=
PyLong_FromLong
((
long
)
_return_value
);
exit:
return
return_value
;
}
#ifndef _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
#define _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
#endif
/* !defined(_TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF) */
#ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
#define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
#endif
/* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */
/*[clinic end generated code: output=6dd667b91cf8addd input=a9049054013a1b77]*/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment