massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stdlib / tkinter / font.pyi
1 import _tkinter
2 import sys
3 import tkinter
4 from typing import Any, List, Tuple, Union, overload
5 from typing_extensions import Literal, TypedDict
6
7 NORMAL: Literal["normal"]
8 ROMAN: Literal["roman"]
9 BOLD: Literal["bold"]
10 ITALIC: Literal["italic"]
11
12 _FontDescription = Union[
13     # "Helvetica 12"
14     str,
15     # A font object constructed in Python
16     Font,
17     # ("Helvetica", 12, BOLD)
18     List[Any],
19     Tuple[Any, ...],
20     # A font object constructed in Tcl
21     _tkinter.Tcl_Obj,
22 ]
23
24 class _FontDict(TypedDict):
25     family: str
26     size: int
27     weight: Literal["normal", "bold"]
28     slant: Literal["roman", "italic"]
29     underline: bool
30     overstrike: bool
31
32 class _MetricsDict(TypedDict):
33     ascent: int
34     descent: int
35     linespace: int
36     fixed: bool
37
38 class Font:
39     name: str
40     delete_font: bool
41     def __init__(
42         self,
43         # In tkinter, 'root' refers to tkinter.Tk by convention, but the code
44         # actually works with any tkinter widget so we use tkinter.Misc.
45         root: tkinter.Misc | None = ...,
46         font: _FontDescription | None = ...,
47         name: str | None = ...,
48         exists: bool = ...,
49         *,
50         family: str = ...,
51         size: int = ...,
52         weight: Literal["normal", "bold"] = ...,
53         slant: Literal["roman", "italic"] = ...,
54         underline: bool = ...,
55         overstrike: bool = ...,
56     ) -> None: ...
57     def __setitem__(self, key: str, value: Any) -> None: ...
58     @overload
59     def cget(self, option: Literal["family"]) -> str: ...
60     @overload
61     def cget(self, option: Literal["size"]) -> int: ...
62     @overload
63     def cget(self, option: Literal["weight"]) -> Literal["normal", "bold"]: ...
64     @overload
65     def cget(self, option: Literal["slant"]) -> Literal["roman", "italic"]: ...
66     @overload
67     def cget(self, option: Literal["underline", "overstrike"]) -> bool: ...
68     @overload
69     def cget(self, option: str) -> Any: ...
70     __getitem__ = cget
71     @overload
72     def actual(self, option: Literal["family"], displayof: tkinter.Misc | None = ...) -> str: ...
73     @overload
74     def actual(self, option: Literal["size"], displayof: tkinter.Misc | None = ...) -> int: ...
75     @overload
76     def actual(self, option: Literal["weight"], displayof: tkinter.Misc | None = ...) -> Literal["normal", "bold"]: ...
77     @overload
78     def actual(self, option: Literal["slant"], displayof: tkinter.Misc | None = ...) -> Literal["roman", "italic"]: ...
79     @overload
80     def actual(self, option: Literal["underline", "overstrike"], displayof: tkinter.Misc | None = ...) -> bool: ...
81     @overload
82     def actual(self, option: None, displayof: tkinter.Misc | None = ...) -> _FontDict: ...
83     @overload
84     def actual(self, *, displayof: tkinter.Misc | None = ...) -> _FontDict: ...
85     def config(
86         self,
87         *,
88         family: str = ...,
89         size: int = ...,
90         weight: Literal["normal", "bold"] = ...,
91         slant: Literal["roman", "italic"] = ...,
92         underline: bool = ...,
93         overstrike: bool = ...,
94     ) -> _FontDict | None: ...
95     configure = config
96     def copy(self) -> Font: ...
97     @overload
98     def metrics(self, __option: Literal["ascent", "descent", "linespace"], *, displayof: tkinter.Misc | None = ...) -> int: ...
99     @overload
100     def metrics(self, __option: Literal["fixed"], *, displayof: tkinter.Misc | None = ...) -> bool: ...
101     @overload
102     def metrics(self, *, displayof: tkinter.Misc | None = ...) -> _MetricsDict: ...
103     def measure(self, text: str, displayof: tkinter.Misc | None = ...) -> int: ...
104
105 def families(root: tkinter.Misc | None = ..., displayof: tkinter.Misc | None = ...) -> Tuple[str, ...]: ...
106 def names(root: tkinter.Misc | None = ...) -> Tuple[str, ...]: ...
107
108 if sys.version_info >= (3, 10):
109     def nametofont(name: str, root: tkinter.Misc | None = ...) -> Font: ...
110
111 else:
112     def nametofont(name: str) -> Font: ...