@@ -4,10 +4,13 @@ from typing import Optional
4
4
from typing import Sequence
5
5
from typing import Tuple
6
6
from typing import Type
7
+ from typing import TypeVar
7
8
8
9
from gi .repository import GLib
9
10
from gi .repository import GObject
10
11
12
+ ItemType = TypeVar ("ItemType" )
13
+
11
14
DBUS_METHOD_INVOCATION_HANDLED : bool = True
12
15
DBUS_METHOD_INVOCATION_UNHANDLED : bool = False
13
16
DEBUG_CONTROLLER_EXTENSION_POINT_NAME : str = "gio-debug-controller"
@@ -4032,41 +4035,58 @@ class InputVector(GObject.GPointer):
4032
4035
buffer : None = ...
4033
4036
size : int = ...
4034
4037
4035
- class ListModel (GObject .Object ):
4036
- def get_item (self , position : int ) -> Optional [GObject .Object ]: ...
4037
- def get_item_type (self ) -> Type : ...
4038
+ # override
4039
+ class ListModel (GObject .Object , Generic [ItemType ]):
4040
+ # override
4041
+ def get_item (self , position : int ) -> Optional [ItemType ]: ...
4042
+ # override
4043
+ def get_item_type (self ) -> Type [ItemType ]: ...
4038
4044
def get_n_items (self ) -> int : ...
4039
4045
def items_changed (self , position : int , removed : int , added : int ) -> None : ...
4040
4046
4041
- class ListModelInterface (GObject .GPointer ):
4047
+ # override
4048
+ class ListModelInterface (GObject .GPointer , Generic [ItemType ]):
4042
4049
g_iface : GObject .TypeInterface = ...
4043
- get_item_type : Callable [[ListModel ], Type ] = ...
4044
- get_n_items : Callable [[ListModel ], int ] = ...
4045
- get_item : Callable [[ListModel , int ], Optional [GObject .Object ]] = ...
4050
+ # override
4051
+ get_item_type : Callable [[ListModel [ItemType ]], Type [ItemType ]] = ...
4052
+ # override
4053
+ get_n_items : Callable [[ListModel [ItemType ]], int ] = ...
4054
+ # override
4055
+ get_item : Callable [[ListModel [ItemType ], int ], Optional [ItemType ]] = ...
4046
4056
4047
- class ListStore (GObject .Object , ListModel ):
4057
+ # override
4058
+ class ListStore (GObject .Object , Generic [ItemType ], ListModel [ItemType ]):
4048
4059
class Props :
4049
- item_type : Type
4060
+ # override
4061
+ item_type : Type [ItemType ]
4050
4062
n_items : int
4051
4063
props : Props = ...
4052
- def __init__ (self , item_type : Type = ...): ...
4053
- def append (self , item : GObject .Object ) -> None : ...
4054
- def find (self , item : GObject .Object ) -> Tuple [bool , int ]: ...
4064
+ # override
4065
+ def __init__ (self , item_type : Type [ItemType ] = ...): ...
4066
+ # override
4067
+ def append (self , item : ItemType ) -> None : ...
4068
+ # override
4069
+ def find (self , item : ItemType ) -> Tuple [bool , int ]: ...
4070
+ # override
4055
4071
def find_with_equal_func (
4056
- self , item : GObject . Object , equal_func : Callable [[None , None ], bool ]
4072
+ self , item : ItemType , equal_func : Callable [[None , None ], bool ]
4057
4073
) -> Tuple [bool , int ]: ...
4074
+ # override
4058
4075
def find_with_equal_func_full (
4059
- self , item : GObject . Object , equal_func : Callable [..., bool ], * user_data : Any
4076
+ self , item : ItemType , equal_func : Callable [..., bool ], * user_data : Any
4060
4077
) -> Tuple [bool , int ]: ...
4061
- def insert (self , position : int , item : GObject .Object ) -> None : ...
4078
+ # override
4079
+ def insert (self , position : int , item : ItemType ) -> None : ...
4062
4080
def insert_sorted (self , * args , ** kwargs ): ... # FIXME Method
4081
+ # override
4063
4082
@classmethod
4064
- def new (cls , item_type : Type ) -> ListStore : ...
4083
+ def new (cls , item_type : Type [ ItemType ] ) -> ListStore [ ItemType ] : ...
4065
4084
def remove (self , position : int ) -> None : ...
4066
4085
def remove_all (self ) -> None : ...
4067
4086
def sort (self , * args , ** kwargs ): ... # FIXME Method
4087
+ # override
4068
4088
def splice (
4069
- self , position : int , n_removals : int , additions : Sequence [GObject . Object ]
4089
+ self , position : int , n_removals : int , additions : Sequence [ItemType ]
4070
4090
) -> None : ...
4071
4091
4072
4092
class ListStoreClass (GObject .GPointer ):
0 commit comments