tksheet 7.4.5__py3-none-any.whl → 7.4.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tksheet/__init__.py +1 -1
- tksheet/column_headers.py +28 -28
- tksheet/constants.py +4 -3
- tksheet/find_window.py +8 -8
- tksheet/formatters.py +39 -39
- tksheet/functions.py +53 -57
- tksheet/main_table.py +153 -122
- tksheet/other_classes.py +11 -11
- tksheet/row_index.py +27 -27
- tksheet/sheet.py +99 -110
- tksheet/sorting.py +19 -18
- tksheet/text_editor.py +9 -9
- tksheet/tksheet_types.py +187 -0
- tksheet/top_left_rectangle.py +13 -12
- {tksheet-7.4.5.dist-info → tksheet-7.4.6.dist-info}/METADATA +1 -1
- tksheet-7.4.6.dist-info/RECORD +22 -0
- tksheet-7.4.5.dist-info/RECORD +0 -22
- {tksheet-7.4.5.dist-info → tksheet-7.4.6.dist-info}/LICENSE.txt +0 -0
- {tksheet-7.4.5.dist-info → tksheet-7.4.6.dist-info}/WHEEL +0 -0
- {tksheet-7.4.5.dist-info → tksheet-7.4.6.dist-info}/top_level.txt +0 -0
tksheet/main_table.py
CHANGED
@@ -11,7 +11,7 @@ from itertools import accumulate, chain, cycle, filterfalse, islice, repeat
|
|
11
11
|
from math import ceil, floor
|
12
12
|
from operator import itemgetter
|
13
13
|
from tkinter import TclError
|
14
|
-
from typing import Literal
|
14
|
+
from typing import Any, Literal
|
15
15
|
|
16
16
|
from .colors import color_map
|
17
17
|
from .column_headers import ColumnHeaders
|
@@ -101,7 +101,7 @@ from .other_classes import (
|
|
101
101
|
from .row_index import RowIndex
|
102
102
|
from .sorting import sort_selection
|
103
103
|
from .text_editor import TextEditor
|
104
|
-
from .tksheet_types import AnyIter
|
104
|
+
from .tksheet_types import AnyIter, Binding
|
105
105
|
|
106
106
|
|
107
107
|
class MainTable(tk.Canvas):
|
@@ -359,10 +359,10 @@ class MainTable(tk.Canvas):
|
|
359
359
|
else:
|
360
360
|
super().event_generate(*args, **kwargs)
|
361
361
|
|
362
|
-
def refresh(self, event:
|
362
|
+
def refresh(self, event: Any = None) -> None:
|
363
363
|
self.PAR.set_refresh_timer()
|
364
364
|
|
365
|
-
def window_configured(self, event:
|
365
|
+
def window_configured(self, event: Any) -> None:
|
366
366
|
w = self.PAR.winfo_width()
|
367
367
|
if w != self.PAR_width:
|
368
368
|
self.PAR_width = w
|
@@ -974,7 +974,7 @@ class MainTable(tk.Canvas):
|
|
974
974
|
self.refresh()
|
975
975
|
return event_data
|
976
976
|
|
977
|
-
def ctrl_v(self, event:
|
977
|
+
def ctrl_v(self, event: Any = None, validation: bool = True) -> None | EventDataDict:
|
978
978
|
if not self.PAR.ops.paste_can_expand_x and len(self.col_positions) == 1:
|
979
979
|
return
|
980
980
|
if not self.PAR.ops.paste_can_expand_y and len(self.row_positions) == 1:
|
@@ -1217,7 +1217,7 @@ class MainTable(tk.Canvas):
|
|
1217
1217
|
self.PAR.emit_event("<<Paste>>", event_data)
|
1218
1218
|
return event_data
|
1219
1219
|
|
1220
|
-
def delete_key(self, event:
|
1220
|
+
def delete_key(self, event: Any = None, validation: bool = True) -> None | EventDataDict:
|
1221
1221
|
if not self.selected:
|
1222
1222
|
return
|
1223
1223
|
event_data = self.new_event_dict("edit_table")
|
@@ -1251,7 +1251,7 @@ class MainTable(tk.Canvas):
|
|
1251
1251
|
self.PAR.emit_event("<<Delete>>", event_data)
|
1252
1252
|
return event_data
|
1253
1253
|
|
1254
|
-
def event_data_set_cell(self, datarn: int, datacn: int, value:
|
1254
|
+
def event_data_set_cell(self, datarn: int, datacn: int, value: Any, event_data: dict) -> EventDataDict:
|
1255
1255
|
if self.input_valid_for_cell(datarn, datacn, value):
|
1256
1256
|
event_data["cells"]["table"][(datarn, datacn)] = self.get_cell_data(datarn, datacn)
|
1257
1257
|
self.set_cell_data(datarn, datacn, value)
|
@@ -1780,7 +1780,7 @@ class MainTable(tk.Canvas):
|
|
1780
1780
|
)
|
1781
1781
|
)
|
1782
1782
|
|
1783
|
-
def undo(self, event:
|
1783
|
+
def undo(self, event: Any = None) -> None | EventDataDict:
|
1784
1784
|
if not self.undo_stack:
|
1785
1785
|
return
|
1786
1786
|
modification = self.undo_stack[-1]["data"]
|
@@ -1794,7 +1794,7 @@ class MainTable(tk.Canvas):
|
|
1794
1794
|
self.PAR.emit_event("<<Undo>>", event_data)
|
1795
1795
|
return event_data
|
1796
1796
|
|
1797
|
-
def redo(self, event:
|
1797
|
+
def redo(self, event: Any = None) -> None | EventDataDict:
|
1798
1798
|
if not self.redo_stack:
|
1799
1799
|
return
|
1800
1800
|
modification = self.redo_stack[-1]["data"]
|
@@ -2175,7 +2175,7 @@ class MainTable(tk.Canvas):
|
|
2175
2175
|
self.PAR.emit_event("<<SheetSelect>>", data=event_data)
|
2176
2176
|
self.PAR.emit_event("<<SelectAll>>", data=event_data)
|
2177
2177
|
|
2178
|
-
def select_columns(self, event:
|
2178
|
+
def select_columns(self, event: Any) -> None:
|
2179
2179
|
if not self.selected:
|
2180
2180
|
return
|
2181
2181
|
r1, c1, r2, c2 = self.selection_boxes[self.selected.fill_iid].coords
|
@@ -2186,7 +2186,7 @@ class MainTable(tk.Canvas):
|
|
2186
2186
|
item=self.CH.select_col(range(c1, c2), redraw=True),
|
2187
2187
|
)
|
2188
2188
|
|
2189
|
-
def select_rows(self, event:
|
2189
|
+
def select_rows(self, event: Any) -> None:
|
2190
2190
|
if not self.selected:
|
2191
2191
|
return
|
2192
2192
|
r1, c1, r2, c2 = self.selection_boxes[self.selected.fill_iid].coords
|
@@ -2197,12 +2197,12 @@ class MainTable(tk.Canvas):
|
|
2197
2197
|
item=self.RI.select_row(range(r1, r2), redraw=True),
|
2198
2198
|
)
|
2199
2199
|
|
2200
|
-
def select_row_start(self, event:
|
2200
|
+
def select_row_start(self, event: Any) -> None:
|
2201
2201
|
if self.selected:
|
2202
2202
|
self.see(self.selected.row, 0)
|
2203
2203
|
self.select_cell(self.selected.row, 0, redraw=True)
|
2204
2204
|
|
2205
|
-
def select_a1(self, event:
|
2205
|
+
def select_a1(self, event: Any) -> None:
|
2206
2206
|
if len(self.row_positions) > 1 and len(self.col_positions) > 1:
|
2207
2207
|
self.see(0, 0)
|
2208
2208
|
self.select_cell(0, 0, redraw=True)
|
@@ -2462,7 +2462,7 @@ class MainTable(tk.Canvas):
|
|
2462
2462
|
if redraw:
|
2463
2463
|
self.refresh()
|
2464
2464
|
|
2465
|
-
def page_UP(self, event:
|
2465
|
+
def page_UP(self, event: Any = None) -> None:
|
2466
2466
|
height = self.winfo_height()
|
2467
2467
|
top = self.canvasy(0)
|
2468
2468
|
scrollto_y = max(0, top - height)
|
@@ -2487,7 +2487,7 @@ class MainTable(tk.Canvas):
|
|
2487
2487
|
self.RI.yview(*args)
|
2488
2488
|
self.main_table_redraw_grid_and_text(redraw_row_index=True)
|
2489
2489
|
|
2490
|
-
def page_DOWN(self, event:
|
2490
|
+
def page_DOWN(self, event: Any = None) -> None:
|
2491
2491
|
height = self.winfo_height()
|
2492
2492
|
top = self.canvasy(0)
|
2493
2493
|
scrollto = top + height
|
@@ -2517,7 +2517,7 @@ class MainTable(tk.Canvas):
|
|
2517
2517
|
self.RI.yview(*args)
|
2518
2518
|
self.main_table_redraw_grid_and_text(redraw_row_index=True)
|
2519
2519
|
|
2520
|
-
def arrowkey_UP(self, event:
|
2520
|
+
def arrowkey_UP(self, event: Any = None) -> None:
|
2521
2521
|
if not self.selected:
|
2522
2522
|
return
|
2523
2523
|
r = self.selected.row
|
@@ -2534,7 +2534,7 @@ class MainTable(tk.Canvas):
|
|
2534
2534
|
):
|
2535
2535
|
self.select_cell(r - 1, c, redraw=True)
|
2536
2536
|
|
2537
|
-
def arrowkey_LEFT(self, event:
|
2537
|
+
def arrowkey_LEFT(self, event: Any = None) -> None:
|
2538
2538
|
if not self.selected:
|
2539
2539
|
return
|
2540
2540
|
r = self.selected.row
|
@@ -2543,13 +2543,15 @@ class MainTable(tk.Canvas):
|
|
2543
2543
|
self.see(r, c)
|
2544
2544
|
else:
|
2545
2545
|
self.see(r, c - 1, redraw=False)
|
2546
|
-
if self.selected.type_ == "columns":
|
2546
|
+
if self.selected.type_ == "columns" and self.CH.col_selection_enabled:
|
2547
2547
|
self.CH.select_col(c - 1, redraw=True)
|
2548
2548
|
|
2549
|
-
elif self.selected.type_ in ("cells", "rows")
|
2549
|
+
elif self.selected.type_ in ("cells", "rows") and (
|
2550
|
+
self.single_selection_enabled or self.toggle_selection_enabled
|
2551
|
+
):
|
2550
2552
|
self.select_cell(r, c - 1, redraw=True)
|
2551
2553
|
|
2552
|
-
def arrowkey_DOWN(self, event:
|
2554
|
+
def arrowkey_DOWN(self, event: Any = None) -> None:
|
2553
2555
|
if not self.selected:
|
2554
2556
|
return
|
2555
2557
|
r = self.selected.row
|
@@ -2564,13 +2566,15 @@ class MainTable(tk.Canvas):
|
|
2564
2566
|
bottom_right_corner=brc,
|
2565
2567
|
redraw=False,
|
2566
2568
|
)
|
2567
|
-
if self.selected.type_ == "rows":
|
2569
|
+
if self.selected.type_ == "rows" and self.RI.row_selection_enabled:
|
2568
2570
|
self.RI.select_row(r + 1, redraw=True)
|
2569
2571
|
|
2570
|
-
elif self.selected.type_ in ("cells", "columns")
|
2572
|
+
elif self.selected.type_ in ("cells", "columns") and (
|
2573
|
+
self.single_selection_enabled or self.toggle_selection_enabled
|
2574
|
+
):
|
2571
2575
|
self.select_cell(r + 1, c, redraw=True)
|
2572
2576
|
|
2573
|
-
def arrowkey_RIGHT(self, event:
|
2577
|
+
def arrowkey_RIGHT(self, event: Any = None) -> None:
|
2574
2578
|
if not self.selected:
|
2575
2579
|
return
|
2576
2580
|
r = self.selected.row
|
@@ -2585,10 +2589,12 @@ class MainTable(tk.Canvas):
|
|
2585
2589
|
bottom_right_corner=brc,
|
2586
2590
|
redraw=False,
|
2587
2591
|
)
|
2588
|
-
if self.selected.type_ == "columns":
|
2592
|
+
if self.selected.type_ == "columns" and self.CH.col_selection_enabled:
|
2589
2593
|
self.CH.select_col(c + 1, redraw=True)
|
2590
2594
|
|
2591
|
-
elif self.selected.type_ in ("cells", "rows")
|
2595
|
+
elif self.selected.type_ in ("cells", "rows") and (
|
2596
|
+
self.single_selection_enabled or self.toggle_selection_enabled
|
2597
|
+
):
|
2592
2598
|
self.select_cell(r, c + 1, redraw=True)
|
2593
2599
|
|
2594
2600
|
def shift_arrowkey_select_box(
|
@@ -2623,7 +2629,7 @@ class MainTable(tk.Canvas):
|
|
2623
2629
|
self.see(see_r, see_c, keep_xscroll=keep_xscroll, keep_yscroll=keep_yscroll, redraw=False)
|
2624
2630
|
self.refresh()
|
2625
2631
|
|
2626
|
-
def shift_arrowkey_UP(self, event:
|
2632
|
+
def shift_arrowkey_UP(self, event: Any = None) -> None:
|
2627
2633
|
if not self.selected:
|
2628
2634
|
return
|
2629
2635
|
r1, c1, r2, c2 = self.selected.box
|
@@ -2640,7 +2646,7 @@ class MainTable(tk.Canvas):
|
|
2640
2646
|
see_r = r1
|
2641
2647
|
self.shift_arrowkey_select_box(r1, c1, r2, c2, current_r, current_c, see_r, c1, keep_xscroll=True)
|
2642
2648
|
|
2643
|
-
def shift_arrowkey_DOWN(self, event:
|
2649
|
+
def shift_arrowkey_DOWN(self, event: Any = None) -> None:
|
2644
2650
|
if not self.selected:
|
2645
2651
|
return
|
2646
2652
|
r1, c1, r2, c2 = self.selected.box
|
@@ -2655,7 +2661,7 @@ class MainTable(tk.Canvas):
|
|
2655
2661
|
see_r = r1
|
2656
2662
|
self.shift_arrowkey_select_box(r1, c1, r2, c2, current_r, current_c, see_r, c1, keep_xscroll=True)
|
2657
2663
|
|
2658
|
-
def shift_arrowkey_LEFT(self, event:
|
2664
|
+
def shift_arrowkey_LEFT(self, event: Any = None) -> None:
|
2659
2665
|
if not self.selected:
|
2660
2666
|
return
|
2661
2667
|
r1, c1, r2, c2 = self.selected.box
|
@@ -2672,7 +2678,7 @@ class MainTable(tk.Canvas):
|
|
2672
2678
|
see_c = c1
|
2673
2679
|
self.shift_arrowkey_select_box(r1, c1, r2, c2, current_r, current_c, r1, see_c, keep_yscroll=True)
|
2674
2680
|
|
2675
|
-
def shift_arrowkey_RIGHT(self, event:
|
2681
|
+
def shift_arrowkey_RIGHT(self, event: Any = None) -> None:
|
2676
2682
|
if not self.selected:
|
2677
2683
|
return
|
2678
2684
|
r1, c1, r2, c2 = self.selected.box
|
@@ -3011,7 +3017,7 @@ class MainTable(tk.Canvas):
|
|
3011
3017
|
**mnkwgs,
|
3012
3018
|
)
|
3013
3019
|
|
3014
|
-
def enable_bindings(self, bindings:
|
3020
|
+
def enable_bindings(self, bindings: Any) -> None:
|
3015
3021
|
if not bindings:
|
3016
3022
|
self._enable_binding("all")
|
3017
3023
|
elif isinstance(bindings, (list, tuple)):
|
@@ -3025,7 +3031,7 @@ class MainTable(tk.Canvas):
|
|
3025
3031
|
self._enable_binding(bindings.lower())
|
3026
3032
|
self.create_rc_menus()
|
3027
3033
|
|
3028
|
-
def disable_bindings(self, bindings:
|
3034
|
+
def disable_bindings(self, bindings: Any) -> None:
|
3029
3035
|
if not bindings:
|
3030
3036
|
self._disable_binding("all")
|
3031
3037
|
elif isinstance(bindings, (list, tuple)):
|
@@ -3039,7 +3045,7 @@ class MainTable(tk.Canvas):
|
|
3039
3045
|
self._disable_binding(bindings)
|
3040
3046
|
self.create_rc_menus()
|
3041
3047
|
|
3042
|
-
def _enable_binding(self, binding:
|
3048
|
+
def _enable_binding(self, binding: Binding) -> None:
|
3043
3049
|
if binding == "enable_all":
|
3044
3050
|
binding = "all"
|
3045
3051
|
if binding in (
|
@@ -3184,7 +3190,7 @@ class MainTable(tk.Canvas):
|
|
3184
3190
|
for binding in self.PAR.ops[bindings_key]:
|
3185
3191
|
widget.bind(binding, func)
|
3186
3192
|
|
3187
|
-
def _disable_binding(self, binding:
|
3193
|
+
def _disable_binding(self, binding: Binding) -> None:
|
3188
3194
|
if binding == "disable_all":
|
3189
3195
|
binding = "all"
|
3190
3196
|
if binding in (
|
@@ -3323,14 +3329,14 @@ class MainTable(tk.Canvas):
|
|
3323
3329
|
self.CH.rsz_w = None
|
3324
3330
|
self.CH.rsz_h = None
|
3325
3331
|
|
3326
|
-
def mouse_motion(self, event:
|
3332
|
+
def mouse_motion(self, event: Any) -> None:
|
3327
3333
|
self.reset_mouse_motion_creations()
|
3328
3334
|
try_binding(self.extra_motion_func, event)
|
3329
3335
|
|
3330
3336
|
def not_currently_resizing(self) -> bool:
|
3331
3337
|
return all(v is None for v in (self.RI.rsz_h, self.RI.rsz_w, self.CH.rsz_h, self.CH.rsz_w))
|
3332
3338
|
|
3333
|
-
def rc(self, event=None):
|
3339
|
+
def rc(self, event: Any = None) -> None:
|
3334
3340
|
self.mouseclick_outside_editor_or_dropdown_all_canvases()
|
3335
3341
|
self.focus_set()
|
3336
3342
|
popup_menu = None
|
@@ -3363,7 +3369,7 @@ class MainTable(tk.Canvas):
|
|
3363
3369
|
if popup_menu:
|
3364
3370
|
popup_menu.tk_popup(event.x_root, event.y_root)
|
3365
3371
|
|
3366
|
-
def b1_press(self, event=None):
|
3372
|
+
def b1_press(self, event: Any = None) -> None:
|
3367
3373
|
self.closed_dropdown = self.mouseclick_outside_editor_or_dropdown_all_canvases()
|
3368
3374
|
self.focus_set()
|
3369
3375
|
if (
|
@@ -3385,7 +3391,9 @@ class MainTable(tk.Canvas):
|
|
3385
3391
|
self.b1_pressed_loc = (r, c)
|
3386
3392
|
try_binding(self.extra_b1_press_func, event)
|
3387
3393
|
|
3388
|
-
def create_resize_line(
|
3394
|
+
def create_resize_line(
|
3395
|
+
self, x1: int, y1: int, x2: int, y2: int, width: int, fill: str, tag: str | tuple[str]
|
3396
|
+
) -> None:
|
3389
3397
|
if self.hidd_resize_lines:
|
3390
3398
|
t, sh = self.hidd_resize_lines.popitem()
|
3391
3399
|
self.coords(t, x1, y1, x2, y2)
|
@@ -3398,7 +3406,7 @@ class MainTable(tk.Canvas):
|
|
3398
3406
|
t = self.create_line(x1, y1, x2, y2, width=width, fill=fill, tags=tag)
|
3399
3407
|
self.disp_resize_lines[t] = True
|
3400
3408
|
|
3401
|
-
def delete_resize_lines(self):
|
3409
|
+
def delete_resize_lines(self) -> None:
|
3402
3410
|
self.hidd_resize_lines.update(self.disp_resize_lines)
|
3403
3411
|
self.disp_resize_lines = {}
|
3404
3412
|
for t, sh in self.hidd_resize_lines.items():
|
@@ -3406,7 +3414,7 @@ class MainTable(tk.Canvas):
|
|
3406
3414
|
self.itemconfig(t, state="hidden")
|
3407
3415
|
self.hidd_resize_lines[t] = False
|
3408
3416
|
|
3409
|
-
def ctrl_b1_press(self, event=None):
|
3417
|
+
def ctrl_b1_press(self, event: Any = None) -> None:
|
3410
3418
|
self.mouseclick_outside_editor_or_dropdown_all_canvases()
|
3411
3419
|
self.focus_set()
|
3412
3420
|
self.ctrl_b1_pressed = True
|
@@ -3424,7 +3432,7 @@ class MainTable(tk.Canvas):
|
|
3424
3432
|
elif not self.ctrl_select_enabled:
|
3425
3433
|
self.b1_press(event)
|
3426
3434
|
|
3427
|
-
def ctrl_shift_b1_press(self, event=None):
|
3435
|
+
def ctrl_shift_b1_press(self, event: Any = None) -> None:
|
3428
3436
|
self.mouseclick_outside_editor_or_dropdown_all_canvases()
|
3429
3437
|
self.focus_set()
|
3430
3438
|
self.ctrl_b1_pressed = True
|
@@ -3452,7 +3460,7 @@ class MainTable(tk.Canvas):
|
|
3452
3460
|
elif not self.ctrl_select_enabled:
|
3453
3461
|
self.shift_b1_press(event)
|
3454
3462
|
|
3455
|
-
def shift_b1_press(self, event=None):
|
3463
|
+
def shift_b1_press(self, event: Any = None) -> None:
|
3456
3464
|
self.mouseclick_outside_editor_or_dropdown_all_canvases()
|
3457
3465
|
self.focus_set()
|
3458
3466
|
if self.drag_selection_enabled and self.not_currently_resizing():
|
@@ -3479,7 +3487,7 @@ class MainTable(tk.Canvas):
|
|
3479
3487
|
try_binding(self.shift_selection_binding_func, sel_event)
|
3480
3488
|
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
3481
3489
|
|
3482
|
-
def get_shift_select_box(self, min_r: int, rowsel: int, min_c: int, colsel: int):
|
3490
|
+
def get_shift_select_box(self, min_r: int, rowsel: int, min_c: int, colsel: int) -> tuple[int, int, int, int]:
|
3483
3491
|
if rowsel >= min_r and colsel >= min_c:
|
3484
3492
|
return min_r, min_c, rowsel + 1, colsel + 1
|
3485
3493
|
elif rowsel >= min_r and min_c >= colsel:
|
@@ -3489,7 +3497,13 @@ class MainTable(tk.Canvas):
|
|
3489
3497
|
elif min_r >= rowsel and min_c >= colsel:
|
3490
3498
|
return rowsel, colsel, min_r + 1, min_c + 1
|
3491
3499
|
|
3492
|
-
def get_b1_motion_box(
|
3500
|
+
def get_b1_motion_box(
|
3501
|
+
self,
|
3502
|
+
start_row: int,
|
3503
|
+
start_col: int,
|
3504
|
+
end_row: int,
|
3505
|
+
end_col: int,
|
3506
|
+
) -> tuple[int, int, int, int, Literal["cells"]]:
|
3493
3507
|
if end_row >= start_row and end_col >= start_col and (end_row - start_row or end_col - start_col):
|
3494
3508
|
return start_row, start_col, end_row + 1, end_col + 1, "cells"
|
3495
3509
|
elif end_row >= start_row and end_col < start_col and (end_row - start_row or start_col - end_col):
|
@@ -3501,7 +3515,7 @@ class MainTable(tk.Canvas):
|
|
3501
3515
|
else:
|
3502
3516
|
return start_row, start_col, start_row + 1, start_col + 1, "cells"
|
3503
3517
|
|
3504
|
-
def b1_motion(self, event:
|
3518
|
+
def b1_motion(self, event: Any) -> None:
|
3505
3519
|
if self.drag_selection_enabled and all(
|
3506
3520
|
v is None
|
3507
3521
|
for v in (
|
@@ -3549,7 +3563,7 @@ class MainTable(tk.Canvas):
|
|
3549
3563
|
self.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True, redraw_table=True)
|
3550
3564
|
try_binding(self.extra_b1_motion_func, event)
|
3551
3565
|
|
3552
|
-
def ctrl_b1_motion(self, event:
|
3566
|
+
def ctrl_b1_motion(self, event: Any) -> None:
|
3553
3567
|
if self.ctrl_select_enabled and self.drag_selection_enabled and self.not_currently_resizing():
|
3554
3568
|
need_redraw = False
|
3555
3569
|
end_row = self.identify_row(y=event.y)
|
@@ -3592,7 +3606,7 @@ class MainTable(tk.Canvas):
|
|
3592
3606
|
elif not self.ctrl_select_enabled:
|
3593
3607
|
self.b1_motion(event)
|
3594
3608
|
|
3595
|
-
def b1_release(self, event=None):
|
3609
|
+
def b1_release(self, event: Any = None) -> None:
|
3596
3610
|
to_hide = self.being_drawn_item
|
3597
3611
|
if self.being_drawn_item is not None and (to_sel := self.coords_and_type(self.being_drawn_item)):
|
3598
3612
|
r_to_sel, c_to_sel = self.selected.row, self.selected.column
|
@@ -3642,7 +3656,7 @@ class MainTable(tk.Canvas):
|
|
3642
3656
|
self.closed_dropdown = None
|
3643
3657
|
try_binding(self.extra_b1_release_func, event)
|
3644
3658
|
|
3645
|
-
def double_b1(self, event=None):
|
3659
|
+
def double_b1(self, event: Any = None) -> None:
|
3646
3660
|
self.mouseclick_outside_editor_or_dropdown_all_canvases()
|
3647
3661
|
self.focus_set()
|
3648
3662
|
if (
|
@@ -3666,7 +3680,7 @@ class MainTable(tk.Canvas):
|
|
3666
3680
|
self.open_cell(event)
|
3667
3681
|
try_binding(self.extra_double_b1_func, event)
|
3668
3682
|
|
3669
|
-
def identify_row(self, event=None, y=None, allow_end=True):
|
3683
|
+
def identify_row(self, event: Any = None, y: int | None = None, allow_end: bool = True) -> int | None:
|
3670
3684
|
if event is None:
|
3671
3685
|
y2 = self.canvasy(y)
|
3672
3686
|
elif y is None:
|
@@ -3678,7 +3692,7 @@ class MainTable(tk.Canvas):
|
|
3678
3692
|
return None
|
3679
3693
|
return r
|
3680
3694
|
|
3681
|
-
def identify_col(self, event=None, x=None, allow_end=True):
|
3695
|
+
def identify_col(self, event: Any = None, x: int | None = None, allow_end: bool = True) -> int | None:
|
3682
3696
|
if event is None:
|
3683
3697
|
x2 = self.canvasx(x)
|
3684
3698
|
elif x is None:
|
@@ -3710,7 +3724,7 @@ class MainTable(tk.Canvas):
|
|
3710
3724
|
if self.show_index:
|
3711
3725
|
self.RI.yview("moveto", 1)
|
3712
3726
|
|
3713
|
-
def scroll_if_event_offscreen(self, event:
|
3727
|
+
def scroll_if_event_offscreen(self, event: Any) -> bool:
|
3714
3728
|
need_redraw = False
|
3715
3729
|
if self.data:
|
3716
3730
|
xcheck = self.xview()
|
@@ -3749,7 +3763,7 @@ class MainTable(tk.Canvas):
|
|
3749
3763
|
self.y_move_synced_scrolls("moveto", self.yview()[0])
|
3750
3764
|
return need_redraw
|
3751
3765
|
|
3752
|
-
def x_move_synced_scrolls(self, *args, redraw: bool = True, use_scrollbar: bool = False):
|
3766
|
+
def x_move_synced_scrolls(self, *args: Any, redraw: bool = True, use_scrollbar: bool = False) -> None:
|
3753
3767
|
for widget in self.synced_scrolls:
|
3754
3768
|
# try:
|
3755
3769
|
if hasattr(widget, "MT"):
|
@@ -3762,7 +3776,7 @@ class MainTable(tk.Canvas):
|
|
3762
3776
|
# except Exception:
|
3763
3777
|
# continue
|
3764
3778
|
|
3765
|
-
def y_move_synced_scrolls(self, *args, redraw: bool = True, use_scrollbar: bool = False):
|
3779
|
+
def y_move_synced_scrolls(self, *args: Any, redraw: bool = True, use_scrollbar: bool = False) -> None:
|
3766
3780
|
for widget in self.synced_scrolls:
|
3767
3781
|
# try:
|
3768
3782
|
if hasattr(widget, "MT"):
|
@@ -3775,7 +3789,7 @@ class MainTable(tk.Canvas):
|
|
3775
3789
|
# except Exception:
|
3776
3790
|
# continue
|
3777
3791
|
|
3778
|
-
def _xscrollbar(self, *args, move_synced: bool = True):
|
3792
|
+
def _xscrollbar(self, *args: Any, move_synced: bool = True) -> None:
|
3779
3793
|
self.xview(*args)
|
3780
3794
|
if self.show_header:
|
3781
3795
|
self.CH.xview(*args)
|
@@ -3783,7 +3797,7 @@ class MainTable(tk.Canvas):
|
|
3783
3797
|
if move_synced:
|
3784
3798
|
self.x_move_synced_scrolls(*args, use_scrollbar=True)
|
3785
3799
|
|
3786
|
-
def _yscrollbar(self, *args, move_synced: bool = True):
|
3800
|
+
def _yscrollbar(self, *args: Any, move_synced: bool = True) -> None:
|
3787
3801
|
self.yview(*args)
|
3788
3802
|
if self.show_index:
|
3789
3803
|
self.RI.yview(*args)
|
@@ -3793,7 +3807,7 @@ class MainTable(tk.Canvas):
|
|
3793
3807
|
|
3794
3808
|
def set_xviews(
|
3795
3809
|
self,
|
3796
|
-
*args,
|
3810
|
+
*args: Any,
|
3797
3811
|
move_synced: bool = True,
|
3798
3812
|
redraw: bool = True,
|
3799
3813
|
) -> None:
|
@@ -3813,7 +3827,7 @@ class MainTable(tk.Canvas):
|
|
3813
3827
|
|
3814
3828
|
def set_yviews(
|
3815
3829
|
self,
|
3816
|
-
*args,
|
3830
|
+
*args: Any,
|
3817
3831
|
move_synced: bool = True,
|
3818
3832
|
redraw: bool = True,
|
3819
3833
|
) -> None:
|
@@ -3835,7 +3849,7 @@ class MainTable(tk.Canvas):
|
|
3835
3849
|
self.set_xviews(*x_args)
|
3836
3850
|
self.set_yviews(*y_args)
|
3837
3851
|
|
3838
|
-
def mousewheel(self, event:
|
3852
|
+
def mousewheel(self, event: Any) -> None:
|
3839
3853
|
if event.delta < 0 or event.num == 5:
|
3840
3854
|
self.yview_scroll(1, "units")
|
3841
3855
|
self.RI.yview_scroll(1, "units")
|
@@ -3848,7 +3862,7 @@ class MainTable(tk.Canvas):
|
|
3848
3862
|
self.y_move_synced_scrolls("moveto", self.yview()[0])
|
3849
3863
|
self.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True)
|
3850
3864
|
|
3851
|
-
def shift_mousewheel(self, event:
|
3865
|
+
def shift_mousewheel(self, event: Any) -> None:
|
3852
3866
|
if event.delta < 0 or event.num == 5:
|
3853
3867
|
self.xview_scroll(1, "units")
|
3854
3868
|
self.CH.xview_scroll(1, "units")
|
@@ -3861,13 +3875,13 @@ class MainTable(tk.Canvas):
|
|
3861
3875
|
self.x_move_synced_scrolls("moveto", self.xview()[0])
|
3862
3876
|
self.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True)
|
3863
3877
|
|
3864
|
-
def ctrl_mousewheel(self, event):
|
3878
|
+
def ctrl_mousewheel(self, event: Any) -> None:
|
3865
3879
|
if event.delta < 0 or event.num == 5:
|
3866
3880
|
self.zoom_out()
|
3867
3881
|
elif event.delta >= 0 or event.num == 4:
|
3868
3882
|
self.zoom_in()
|
3869
3883
|
|
3870
|
-
def zoom_in(self, event=None):
|
3884
|
+
def zoom_in(self, event: Any = None) -> None:
|
3871
3885
|
self.zoom_font(
|
3872
3886
|
(self.PAR.ops.table_font[0], self.PAR.ops.table_font[1] + 1, self.PAR.ops.table_font[2]),
|
3873
3887
|
(self.PAR.ops.index_font[0], self.PAR.ops.index_font[1] + 1, self.PAR.ops.index_font[2]),
|
@@ -3875,7 +3889,7 @@ class MainTable(tk.Canvas):
|
|
3875
3889
|
"in",
|
3876
3890
|
)
|
3877
3891
|
|
3878
|
-
def zoom_out(self, event=None):
|
3892
|
+
def zoom_out(self, event: Any = None) -> None:
|
3879
3893
|
if self.PAR.ops.table_font[1] < 2 or self.PAR.ops.index_font[1] < 2 or self.PAR.ops.header_font[1] < 2:
|
3880
3894
|
return
|
3881
3895
|
self.zoom_font(
|
@@ -3885,7 +3899,13 @@ class MainTable(tk.Canvas):
|
|
3885
3899
|
"out",
|
3886
3900
|
)
|
3887
3901
|
|
3888
|
-
def zoom_font(
|
3902
|
+
def zoom_font(
|
3903
|
+
self,
|
3904
|
+
table_font: FontTuple,
|
3905
|
+
index_font: FontTuple,
|
3906
|
+
header_font: FontTuple,
|
3907
|
+
zoom: Literal["in", "out"],
|
3908
|
+
) -> None:
|
3889
3909
|
self.saved_column_widths = {}
|
3890
3910
|
self.saved_row_heights = {}
|
3891
3911
|
# should record position prior to change and then see after change
|
@@ -4040,7 +4060,7 @@ class MainTable(tk.Canvas):
|
|
4040
4060
|
self.recreate_all_selection_boxes()
|
4041
4061
|
return self.PAR.ops.index_font
|
4042
4062
|
|
4043
|
-
def set_index_font_help(self):
|
4063
|
+
def set_index_font_help(self) -> None:
|
4044
4064
|
self.RI.index_font = self.PAR.ops.index_font
|
4045
4065
|
if self.PAR.ops.index_font not in self.char_widths:
|
4046
4066
|
self.char_widths[self.PAR.ops.index_font] = {}
|
@@ -4080,7 +4100,7 @@ class MainTable(tk.Canvas):
|
|
4080
4100
|
self.recreate_all_selection_boxes()
|
4081
4101
|
return self.PAR.ops.header_font
|
4082
4102
|
|
4083
|
-
def set_header_font_help(self):
|
4103
|
+
def set_header_font_help(self) -> None:
|
4084
4104
|
self.CH.header_font = self.PAR.ops.header_font
|
4085
4105
|
if self.PAR.ops.header_font not in self.char_widths:
|
4086
4106
|
self.char_widths[self.PAR.ops.header_font] = {}
|
@@ -4094,11 +4114,11 @@ class MainTable(tk.Canvas):
|
|
4094
4114
|
self.PAR.ops.default_header_height = int(self.min_header_height)
|
4095
4115
|
self.CH.set_height(self.get_default_header_height(), set_TL=True)
|
4096
4116
|
|
4097
|
-
def purge_undo_and_redo_stack(self):
|
4117
|
+
def purge_undo_and_redo_stack(self) -> None:
|
4098
4118
|
self.undo_stack = deque(maxlen=self.PAR.ops.max_undos)
|
4099
4119
|
self.redo_stack = deque(maxlen=self.PAR.ops.max_undos)
|
4100
4120
|
|
4101
|
-
def purge_redo_stack(self):
|
4121
|
+
def purge_redo_stack(self) -> None:
|
4102
4122
|
self.redo_stack = deque(maxlen=self.PAR.ops.max_undos)
|
4103
4123
|
|
4104
4124
|
def data_reference(
|
@@ -4109,7 +4129,7 @@ class MainTable(tk.Canvas):
|
|
4109
4129
|
redraw: bool = False,
|
4110
4130
|
return_id: bool = True,
|
4111
4131
|
keep_formatting: bool = True,
|
4112
|
-
) ->
|
4132
|
+
) -> Any:
|
4113
4133
|
if isinstance(newdataref, (list, tuple)):
|
4114
4134
|
self.hide_dropdown_editor_all_canvases()
|
4115
4135
|
self.data = newdataref
|
@@ -4129,7 +4149,7 @@ class MainTable(tk.Canvas):
|
|
4129
4149
|
else:
|
4130
4150
|
return self.data
|
4131
4151
|
|
4132
|
-
def get_cell_dimensions(self, datarn, datacn):
|
4152
|
+
def get_cell_dimensions(self, datarn: int, datacn: int) -> tuple[int, int]:
|
4133
4153
|
txt = self.get_valid_cell_data_as_str(datarn, datacn, get_displayed=True)
|
4134
4154
|
if txt:
|
4135
4155
|
self.txt_measure_canvas.itemconfig(self.txt_measure_canvas_text, text=txt, font=self.PAR.ops.table_font)
|
@@ -4143,7 +4163,9 @@ class MainTable(tk.Canvas):
|
|
4143
4163
|
return w + self.table_txt_height, h
|
4144
4164
|
return w, h
|
4145
4165
|
|
4146
|
-
def set_cell_size_to_text(
|
4166
|
+
def set_cell_size_to_text(
|
4167
|
+
self, r: int, c: int, only_if_too_small: bool = False, redraw: bool = True, run_binding: bool = False
|
4168
|
+
) -> bool:
|
4147
4169
|
min_column_width = self.PAR.ops.min_column_width
|
4148
4170
|
min_rh = self.min_row_height
|
4149
4171
|
w = min_column_width
|
@@ -4214,6 +4236,7 @@ class MainTable(tk.Canvas):
|
|
4214
4236
|
return True
|
4215
4237
|
else:
|
4216
4238
|
return False
|
4239
|
+
return False
|
4217
4240
|
|
4218
4241
|
def get_cell_max_width(self, datarn: int, dispcn: int) -> int:
|
4219
4242
|
datacn = self.datacn(dispcn)
|
@@ -4364,7 +4387,7 @@ class MainTable(tk.Canvas):
|
|
4364
4387
|
else:
|
4365
4388
|
self.set_row_positions(itr=repeat(height, len(self.displayed_rows)))
|
4366
4389
|
|
4367
|
-
def del_col_position(self, idx: int, deselect_all: bool = False):
|
4390
|
+
def del_col_position(self, idx: int, deselect_all: bool = False) -> None:
|
4368
4391
|
if deselect_all:
|
4369
4392
|
self.deselect("all", redraw=False)
|
4370
4393
|
if idx == "end" or len(self.col_positions) <= idx + 1:
|
@@ -4375,7 +4398,7 @@ class MainTable(tk.Canvas):
|
|
4375
4398
|
del self.col_positions[idx]
|
4376
4399
|
self.col_positions[idx:] = [e - w for e in islice(self.col_positions, idx, len(self.col_positions))]
|
4377
4400
|
|
4378
|
-
def del_row_position(self, idx: int, deselect_all: bool = False):
|
4401
|
+
def del_row_position(self, idx: int, deselect_all: bool = False) -> None:
|
4379
4402
|
if deselect_all:
|
4380
4403
|
self.deselect("all", redraw=False)
|
4381
4404
|
if idx == "end" or len(self.row_positions) <= idx + 1:
|
@@ -4386,7 +4409,7 @@ class MainTable(tk.Canvas):
|
|
4386
4409
|
del self.row_positions[idx]
|
4387
4410
|
self.row_positions[idx:] = [e - w for e in islice(self.row_positions, idx, len(self.row_positions))]
|
4388
4411
|
|
4389
|
-
def del_col_positions(self, idxs: AnyIter[int] | None = None):
|
4412
|
+
def del_col_positions(self, idxs: AnyIter[int] | None = None) -> None:
|
4390
4413
|
if idxs is None:
|
4391
4414
|
del self.col_positions[-1]
|
4392
4415
|
else:
|
@@ -4394,7 +4417,7 @@ class MainTable(tk.Canvas):
|
|
4394
4417
|
idxs = set(idxs)
|
4395
4418
|
self.set_col_positions(itr=(w for i, w in enumerate(self.gen_column_widths()) if i not in idxs))
|
4396
4419
|
|
4397
|
-
def del_row_positions(self, idxs: AnyIter[int] | None = None):
|
4420
|
+
def del_row_positions(self, idxs: AnyIter[int] | None = None) -> None:
|
4398
4421
|
if idxs is None:
|
4399
4422
|
del self.row_positions[-1]
|
4400
4423
|
else:
|
@@ -4617,9 +4640,9 @@ class MainTable(tk.Canvas):
|
|
4617
4640
|
|
4618
4641
|
def adjust_options_post_delete_columns(
|
4619
4642
|
self,
|
4620
|
-
to_del: None | set = None,
|
4621
|
-
to_bis: None | list = None,
|
4622
|
-
named_spans: None | set = None,
|
4643
|
+
to_del: None | set[int] = None,
|
4644
|
+
to_bis: None | list[int] = None,
|
4645
|
+
named_spans: None | set[str] = None,
|
4623
4646
|
) -> list[int]:
|
4624
4647
|
if to_del is None:
|
4625
4648
|
to_del = set()
|
@@ -4675,7 +4698,7 @@ class MainTable(tk.Canvas):
|
|
4675
4698
|
|
4676
4699
|
def del_columns_from_named_spans(
|
4677
4700
|
self,
|
4678
|
-
to_del: set,
|
4701
|
+
to_del: set[int],
|
4679
4702
|
to_bis: list,
|
4680
4703
|
named_spans: None | set = None,
|
4681
4704
|
) -> None:
|
@@ -4691,10 +4714,7 @@ class MainTable(tk.Canvas):
|
|
4691
4714
|
if isinstance(span["upto_c"], int) and span["upto_c"] > c:
|
4692
4715
|
span["upto_c"] -= 1
|
4693
4716
|
|
4694
|
-
def get_spans_to_del_from_cols(
|
4695
|
-
self,
|
4696
|
-
cols: set,
|
4697
|
-
) -> set:
|
4717
|
+
def get_spans_to_del_from_cols(self, cols: set[int]) -> set[str]:
|
4698
4718
|
total = self.total_data_cols()
|
4699
4719
|
return {
|
4700
4720
|
nm
|
@@ -4705,9 +4725,9 @@ class MainTable(tk.Canvas):
|
|
4705
4725
|
|
4706
4726
|
def adjust_options_post_delete_rows(
|
4707
4727
|
self,
|
4708
|
-
to_del: None | set = None,
|
4709
|
-
to_bis: None | list = None,
|
4710
|
-
named_spans: None | set = None,
|
4728
|
+
to_del: None | set[int] = None,
|
4729
|
+
to_bis: None | list[int] = None,
|
4730
|
+
named_spans: None | set[str] = None,
|
4711
4731
|
) -> list[int]:
|
4712
4732
|
if to_del is None:
|
4713
4733
|
to_del = set()
|
@@ -4770,7 +4790,7 @@ class MainTable(tk.Canvas):
|
|
4770
4790
|
self,
|
4771
4791
|
to_del: set,
|
4772
4792
|
to_bis: list,
|
4773
|
-
named_spans: None | set = None,
|
4793
|
+
named_spans: None | set[str] = None,
|
4774
4794
|
) -> None:
|
4775
4795
|
if named_spans is None:
|
4776
4796
|
named_spans = self.get_spans_to_del_from_rows(rows=to_del)
|
@@ -4784,10 +4804,7 @@ class MainTable(tk.Canvas):
|
|
4784
4804
|
if isinstance(span["upto_r"], int) and span["upto_r"] > r:
|
4785
4805
|
span["upto_r"] -= 1
|
4786
4806
|
|
4787
|
-
def get_spans_to_del_from_rows(
|
4788
|
-
self,
|
4789
|
-
rows: set,
|
4790
|
-
) -> set:
|
4807
|
+
def get_spans_to_del_from_rows(self, rows: set[int]) -> set[str]:
|
4791
4808
|
total = self.total_data_rows()
|
4792
4809
|
return {
|
4793
4810
|
nm
|
@@ -4881,7 +4898,7 @@ class MainTable(tk.Canvas):
|
|
4881
4898
|
try_binding(self.extra_end_insert_cols_rc_func, event_data, "end_add_columns")
|
4882
4899
|
return event_data
|
4883
4900
|
|
4884
|
-
def rc_add_columns(self, event:
|
4901
|
+
def rc_add_columns(self, event: Any = None) -> None:
|
4885
4902
|
rowlen = self.equalize_data_row_lengths()
|
4886
4903
|
selcols = sorted(self.get_selected_cols())
|
4887
4904
|
if (
|
@@ -4930,8 +4947,8 @@ class MainTable(tk.Canvas):
|
|
4930
4947
|
|
4931
4948
|
def add_rows(
|
4932
4949
|
self,
|
4933
|
-
rows: dict[int, list[
|
4934
|
-
index: dict[int,
|
4950
|
+
rows: dict[int, list[Any]],
|
4951
|
+
index: dict[int, Any],
|
4935
4952
|
row_heights: dict[int, float | int],
|
4936
4953
|
event_data: EventDataDict,
|
4937
4954
|
create_ops: bool = True,
|
@@ -5015,7 +5032,7 @@ class MainTable(tk.Canvas):
|
|
5015
5032
|
try_binding(self.extra_end_insert_rows_rc_func, event_data, "end_add_rows")
|
5016
5033
|
return event_data
|
5017
5034
|
|
5018
|
-
def rc_add_rows(self, event:
|
5035
|
+
def rc_add_rows(self, event: Any = None) -> None:
|
5019
5036
|
total_data_rows = self.total_data_rows()
|
5020
5037
|
selrows = sorted(self.get_selected_rows())
|
5021
5038
|
if (
|
@@ -5067,7 +5084,7 @@ class MainTable(tk.Canvas):
|
|
5067
5084
|
data_ins_col: int,
|
5068
5085
|
displayed_ins_col: int,
|
5069
5086
|
numcols: int,
|
5070
|
-
columns: list[list[
|
5087
|
+
columns: list[list[Any]] | None = None,
|
5071
5088
|
widths: list[int] | tuple[int] | None = None,
|
5072
5089
|
headers: bool = False,
|
5073
5090
|
) -> tuple[dict, dict, dict]:
|
@@ -5111,7 +5128,7 @@ class MainTable(tk.Canvas):
|
|
5111
5128
|
data_ins_row: int,
|
5112
5129
|
displayed_ins_row: int,
|
5113
5130
|
numrows: int,
|
5114
|
-
rows: list[list[
|
5131
|
+
rows: list[list[Any]] | None = None,
|
5115
5132
|
heights: list[int] | tuple[int] | None = None,
|
5116
5133
|
row_index: bool = False,
|
5117
5134
|
total_data_cols: int | None = None,
|
@@ -5235,7 +5252,7 @@ class MainTable(tk.Canvas):
|
|
5235
5252
|
|
5236
5253
|
def delete_columns(
|
5237
5254
|
self,
|
5238
|
-
event:
|
5255
|
+
event: Any = None,
|
5239
5256
|
columns: list[int] | None = None,
|
5240
5257
|
data_indexes: bool = False,
|
5241
5258
|
undo: bool = True,
|
@@ -5321,7 +5338,7 @@ class MainTable(tk.Canvas):
|
|
5321
5338
|
|
5322
5339
|
def delete_rows(
|
5323
5340
|
self,
|
5324
|
-
event:
|
5341
|
+
event: Any = None,
|
5325
5342
|
rows: list[int] | None = None,
|
5326
5343
|
data_indexes: bool = False,
|
5327
5344
|
undo: bool = True,
|
@@ -5459,12 +5476,12 @@ class MainTable(tk.Canvas):
|
|
5459
5476
|
|
5460
5477
|
def headers(
|
5461
5478
|
self,
|
5462
|
-
newheaders:
|
5479
|
+
newheaders: Any = None,
|
5463
5480
|
index: int | None = None,
|
5464
5481
|
reset_col_positions: bool = False,
|
5465
5482
|
show_headers_if_not_sheet: bool = True,
|
5466
5483
|
redraw: bool = False,
|
5467
|
-
) ->
|
5484
|
+
) -> Any:
|
5468
5485
|
if newheaders is not None:
|
5469
5486
|
if isinstance(newheaders, (list, tuple)):
|
5470
5487
|
self._headers = list(newheaders) if isinstance(newheaders, tuple) else newheaders
|
@@ -5506,12 +5523,12 @@ class MainTable(tk.Canvas):
|
|
5506
5523
|
|
5507
5524
|
def row_index(
|
5508
5525
|
self,
|
5509
|
-
newindex:
|
5526
|
+
newindex: Any = None,
|
5510
5527
|
index: int | None = None,
|
5511
5528
|
reset_row_positions: bool = False,
|
5512
5529
|
show_index_if_not_sheet: bool = True,
|
5513
5530
|
redraw: bool = False,
|
5514
|
-
) ->
|
5531
|
+
) -> Any:
|
5515
5532
|
if newindex is not None:
|
5516
5533
|
if not self._row_index and not isinstance(self._row_index, int):
|
5517
5534
|
self.RI.set_width(self.PAR.ops.default_row_index_width, set_TL=True)
|
@@ -7080,7 +7097,7 @@ class MainTable(tk.Canvas):
|
|
7080
7097
|
|
7081
7098
|
def open_cell(
|
7082
7099
|
self,
|
7083
|
-
event:
|
7100
|
+
event: Any = None,
|
7084
7101
|
ignore_existing_editor: bool = False,
|
7085
7102
|
) -> None:
|
7086
7103
|
if not self.anything_selected() or (not ignore_existing_editor and self.text_editor.open):
|
@@ -7115,7 +7132,7 @@ class MainTable(tk.Canvas):
|
|
7115
7132
|
# displayed indexes
|
7116
7133
|
def open_text_editor(
|
7117
7134
|
self,
|
7118
|
-
event:
|
7135
|
+
event: Any = None,
|
7119
7136
|
r: int = 0,
|
7120
7137
|
c: int = 0,
|
7121
7138
|
text: str | None = None,
|
@@ -7214,7 +7231,7 @@ class MainTable(tk.Canvas):
|
|
7214
7231
|
# displayed indexes
|
7215
7232
|
def text_editor_newline_binding(
|
7216
7233
|
self,
|
7217
|
-
event:
|
7234
|
+
event: Any = None,
|
7218
7235
|
check_lines: bool = True,
|
7219
7236
|
) -> None:
|
7220
7237
|
r, c = self.text_editor.coords
|
@@ -7413,7 +7430,7 @@ class MainTable(tk.Canvas):
|
|
7413
7430
|
self.select_cell(r + 1 if r < len(self.row_positions) - 2 else r, c)
|
7414
7431
|
self.see(r + 1 if r < len(self.row_positions) - 2 else r, c)
|
7415
7432
|
|
7416
|
-
def tab_key(self, event:
|
7433
|
+
def tab_key(self, event: Any = None) -> str:
|
7417
7434
|
if not self.selected:
|
7418
7435
|
return
|
7419
7436
|
r, c = self.selected.row, self.selected.column
|
@@ -7511,7 +7528,7 @@ class MainTable(tk.Canvas):
|
|
7511
7528
|
self,
|
7512
7529
|
r: int,
|
7513
7530
|
c: int,
|
7514
|
-
event:
|
7531
|
+
event: Any = None,
|
7515
7532
|
) -> None:
|
7516
7533
|
self.hide_text_editor()
|
7517
7534
|
datarn = self.datarn(r)
|
@@ -7592,7 +7609,7 @@ class MainTable(tk.Canvas):
|
|
7592
7609
|
self,
|
7593
7610
|
r: int | None = None,
|
7594
7611
|
c: int | None = None,
|
7595
|
-
selection:
|
7612
|
+
selection: Any = None,
|
7596
7613
|
redraw: bool = True,
|
7597
7614
|
) -> None:
|
7598
7615
|
if r is not None and c is not None and selection is not None:
|
@@ -7737,7 +7754,7 @@ class MainTable(tk.Canvas):
|
|
7737
7754
|
self,
|
7738
7755
|
datarn: int,
|
7739
7756
|
datacn: int,
|
7740
|
-
value:
|
7757
|
+
value: Any,
|
7741
7758
|
kwargs: dict | None = None,
|
7742
7759
|
expand_sheet: bool = True,
|
7743
7760
|
) -> None:
|
@@ -7763,7 +7780,7 @@ class MainTable(tk.Canvas):
|
|
7763
7780
|
else:
|
7764
7781
|
self.data[datarn][datacn] = value
|
7765
7782
|
|
7766
|
-
def get_value_for_empty_cell(self, datarn: int, datacn: int, r_ops: bool = True, c_ops: bool = True) ->
|
7783
|
+
def get_value_for_empty_cell(self, datarn: int, datacn: int, r_ops: bool = True, c_ops: bool = True) -> Any:
|
7767
7784
|
kwargs = self.get_cell_kwargs(
|
7768
7785
|
datarn,
|
7769
7786
|
datacn,
|
@@ -7786,7 +7803,7 @@ class MainTable(tk.Canvas):
|
|
7786
7803
|
start: int = 0,
|
7787
7804
|
r_ops: bool = True,
|
7788
7805
|
c_ops: bool = True,
|
7789
|
-
) -> list[
|
7806
|
+
) -> list[Any]:
|
7790
7807
|
return [self.get_value_for_empty_cell(datarn, datacn, r_ops=r_ops, c_ops=c_ops) for datacn in range(start, end)]
|
7791
7808
|
|
7792
7809
|
def fix_row_len(self, datarn: int, datacn: int) -> None:
|
@@ -7908,7 +7925,7 @@ class MainTable(tk.Canvas):
|
|
7908
7925
|
none_to_empty_str: bool = False,
|
7909
7926
|
fmt_kw: dict | None = None,
|
7910
7927
|
**kwargs,
|
7911
|
-
) ->
|
7928
|
+
) -> Any:
|
7912
7929
|
if get_displayed:
|
7913
7930
|
return self.get_valid_cell_data_as_str(datarn, datacn, get_displayed=True)
|
7914
7931
|
value = (
|
@@ -7927,7 +7944,7 @@ class MainTable(tk.Canvas):
|
|
7927
7944
|
self,
|
7928
7945
|
datarn: int,
|
7929
7946
|
datacn: int,
|
7930
|
-
value:
|
7947
|
+
value: Any,
|
7931
7948
|
check_readonly: bool = True,
|
7932
7949
|
ignore_empty: bool = False,
|
7933
7950
|
) -> bool:
|
@@ -7945,7 +7962,7 @@ class MainTable(tk.Canvas):
|
|
7945
7962
|
else:
|
7946
7963
|
return True
|
7947
7964
|
|
7948
|
-
def cell_equal_to(self, datarn: int, datacn: int, value:
|
7965
|
+
def cell_equal_to(self, datarn: int, datacn: int, value: Any, ignore_empty: bool = False, **kwargs) -> bool:
|
7949
7966
|
v = self.get_cell_data(datarn, datacn)
|
7950
7967
|
kwargs = self.get_cell_kwargs(datarn, datacn, key="format")
|
7951
7968
|
if kwargs and kwargs["formatter"] is None:
|
@@ -7983,16 +8000,30 @@ class MainTable(tk.Canvas):
|
|
7983
8000
|
row: bool = True,
|
7984
8001
|
column: bool = True,
|
7985
8002
|
) -> dict:
|
7986
|
-
if
|
7987
|
-
|
7988
|
-
|
7989
|
-
|
7990
|
-
|
7991
|
-
|
7992
|
-
|
7993
|
-
|
8003
|
+
if key is None:
|
8004
|
+
if cell and (datarn, datacn) in self.cell_options:
|
8005
|
+
return self.cell_options[(datarn, datacn)]
|
8006
|
+
|
8007
|
+
elif row and datarn in self.row_options:
|
8008
|
+
return self.row_options[datarn]
|
8009
|
+
|
8010
|
+
elif column and datacn in self.col_options:
|
8011
|
+
return self.col_options[datacn]
|
8012
|
+
|
8013
|
+
else:
|
8014
|
+
return {}
|
7994
8015
|
else:
|
7995
|
-
|
8016
|
+
if cell and (datarn, datacn) in self.cell_options and key in self.cell_options[(datarn, datacn)]:
|
8017
|
+
return self.cell_options[(datarn, datacn)][key]
|
8018
|
+
|
8019
|
+
elif row and datarn in self.row_options and key in self.row_options[datarn]:
|
8020
|
+
return self.row_options[datarn][key]
|
8021
|
+
|
8022
|
+
elif column and datacn in self.col_options and key in self.col_options[datacn]:
|
8023
|
+
return self.col_options[datacn][key]
|
8024
|
+
|
8025
|
+
else:
|
8026
|
+
return {}
|
7996
8027
|
|
7997
8028
|
def datacn(self, c: int) -> int:
|
7998
8029
|
return c if self.all_columns_displayed else self.displayed_columns[c]
|