tksheet 7.1.3__py3-none-any.whl → 7.1.5__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 +91 -91
- tksheet/functions.py +16 -0
- tksheet/main_table.py +155 -133
- tksheet/other_classes.py +4 -0
- tksheet/row_index.py +89 -97
- tksheet/sheet.py +123 -82
- tksheet/text_editor.py +8 -6
- {tksheet-7.1.3.dist-info → tksheet-7.1.5.dist-info}/METADATA +1 -1
- tksheet-7.1.5.dist-info/RECORD +20 -0
- tksheet-7.1.3.dist-info/RECORD +0 -20
- {tksheet-7.1.3.dist-info → tksheet-7.1.5.dist-info}/LICENSE.txt +0 -0
- {tksheet-7.1.3.dist-info → tksheet-7.1.5.dist-info}/WHEEL +0 -0
- {tksheet-7.1.3.dist-info → tksheet-7.1.5.dist-info}/top_level.txt +0 -0
tksheet/row_index.py
CHANGED
@@ -191,8 +191,7 @@ class RowIndex(tk.Canvas):
|
|
191
191
|
self.toggle_select_row(r, redraw=True)
|
192
192
|
if self.MT.rc_popup_menus_enabled:
|
193
193
|
popup_menu = self.ri_rc_popup_menu
|
194
|
-
|
195
|
-
self.extra_rc_func(event)
|
194
|
+
try_binding(self.extra_rc_func, event)
|
196
195
|
if popup_menu is not None:
|
197
196
|
self.popup_menu_loc = r
|
198
197
|
popup_menu.tk_popup(event.x_root, event.y_root)
|
@@ -212,10 +211,9 @@ class RowIndex(tk.Canvas):
|
|
212
211
|
self.being_drawn_item = True
|
213
212
|
self.being_drawn_item = self.add_selection(r, set_as_current=True, run_binding_func=False)
|
214
213
|
self.MT.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True)
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
)
|
214
|
+
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
215
|
+
try_binding(self.ctrl_selection_binding_func, sel_event)
|
216
|
+
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
219
217
|
elif r_selected:
|
220
218
|
self.MT.deselect(r=r)
|
221
219
|
elif not self.MT.ctrl_select_enabled:
|
@@ -246,10 +244,9 @@ class RowIndex(tk.Canvas):
|
|
246
244
|
set_as_current=True,
|
247
245
|
)
|
248
246
|
self.MT.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True)
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
)
|
247
|
+
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
248
|
+
try_binding(self.ctrl_selection_binding_func, sel_event)
|
249
|
+
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
253
250
|
elif r_selected:
|
254
251
|
self.dragged_row = DraggedRowColumn(
|
255
252
|
dragged=r,
|
@@ -269,15 +266,16 @@ class RowIndex(tk.Canvas):
|
|
269
266
|
if self.MT.selected and self.MT.selected.type_ == "rows":
|
270
267
|
r_to_sel, c_to_sel = self.MT.selected.row, self.MT.selected.column
|
271
268
|
self.MT.deselect("all", redraw=False)
|
272
|
-
self.being_drawn_item = self.MT.create_selection_box(
|
269
|
+
self.being_drawn_item = self.MT.create_selection_box(
|
270
|
+
*self.get_shift_select_box(r, r_to_sel), "rows"
|
271
|
+
)
|
273
272
|
self.MT.set_currently_selected(r_to_sel, c_to_sel, self.being_drawn_item)
|
274
273
|
else:
|
275
274
|
self.being_drawn_item = self.select_row(r, run_binding_func=False)
|
276
275
|
self.MT.main_table_redraw_grid_and_text(redraw_header=True, redraw_row_index=True)
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
)
|
276
|
+
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
277
|
+
try_binding(self.shift_selection_binding_func, sel_event)
|
278
|
+
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
281
279
|
elif r_selected:
|
282
280
|
self.dragged_row = DraggedRowColumn(
|
283
281
|
dragged=r,
|
@@ -365,8 +363,7 @@ class RowIndex(tk.Canvas):
|
|
365
363
|
self.MT.current_cursor = "hand2"
|
366
364
|
if not mouse_over_resize and not mouse_over_selected:
|
367
365
|
self.MT.reset_mouse_motion_creations()
|
368
|
-
|
369
|
-
self.extra_motion_func(event)
|
366
|
+
try_binding(self.extra_motion_func, event)
|
370
367
|
|
371
368
|
def double_b1(self, event: object):
|
372
369
|
self.mouseclick_outside_editor_or_dropdown_all_canvases(inside=True)
|
@@ -410,8 +407,7 @@ class RowIndex(tk.Canvas):
|
|
410
407
|
self.PAR.item(iid, open_=iid not in self.tree_open_ids)
|
411
408
|
self.rsz_h = None
|
412
409
|
self.mouse_motion(event)
|
413
|
-
|
414
|
-
self.extra_double_b1_func(event)
|
410
|
+
try_binding(self.extra_double_b1_func, event)
|
415
411
|
|
416
412
|
def b1_press(self, event: object):
|
417
413
|
self.MT.unbind("<MouseWheel>")
|
@@ -484,8 +480,7 @@ class RowIndex(tk.Canvas):
|
|
484
480
|
self.being_drawn_item = self.select_row(r, redraw=True)
|
485
481
|
elif self.MT.toggle_selection_enabled:
|
486
482
|
self.toggle_select_row(r, redraw=True)
|
487
|
-
|
488
|
-
self.extra_b1_press_func(event)
|
483
|
+
try_binding(self.extra_b1_press_func, event)
|
489
484
|
|
490
485
|
def b1_motion(self, event: object):
|
491
486
|
x1, y1, x2, y2 = self.MT.get_canvas_visible_area()
|
@@ -576,16 +571,14 @@ class RowIndex(tk.Canvas):
|
|
576
571
|
else:
|
577
572
|
self.being_drawn_item = self.select_row(self.MT.selected.row, run_binding_func=False)
|
578
573
|
need_redraw = True
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
)
|
574
|
+
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
575
|
+
try_binding(self.drag_selection_binding_func, sel_event)
|
576
|
+
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
583
577
|
if self.scroll_if_event_offscreen(event):
|
584
578
|
need_redraw = True
|
585
579
|
if need_redraw:
|
586
580
|
self.MT.main_table_redraw_grid_and_text(redraw_header=False, redraw_row_index=True)
|
587
|
-
|
588
|
-
self.extra_b1_motion_func(event)
|
581
|
+
try_binding(self.extra_b1_motion_func, event)
|
589
582
|
|
590
583
|
def get_b1_motion_box(self, start_row, end_row):
|
591
584
|
if end_row >= start_row:
|
@@ -637,10 +630,9 @@ class RowIndex(tk.Canvas):
|
|
637
630
|
self.MT.hide_selection_box(self.MT.selected.fill_iid)
|
638
631
|
self.being_drawn_item = self.add_selection(box[0], run_binding_func=False)
|
639
632
|
need_redraw = True
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
)
|
633
|
+
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
634
|
+
try_binding(self.drag_selection_binding_func, sel_event)
|
635
|
+
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
644
636
|
if self.scroll_if_event_offscreen(event):
|
645
637
|
need_redraw = True
|
646
638
|
if need_redraw:
|
@@ -775,10 +767,9 @@ class RowIndex(tk.Canvas):
|
|
775
767
|
c_to_sel,
|
776
768
|
item=self.MT.create_selection_box(*to_sel, set_current=False),
|
777
769
|
)
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
)
|
770
|
+
sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
|
771
|
+
try_binding(self.drag_selection_binding_func, sel_event)
|
772
|
+
self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
|
782
773
|
self.MT.bind("<MouseWheel>", self.MT.mousewheel)
|
783
774
|
if self.height_resizing_enabled and self.rsz_h is not None and self.currently_resizing_height:
|
784
775
|
self.currently_resizing_height = False
|
@@ -886,8 +877,7 @@ class RowIndex(tk.Canvas):
|
|
886
877
|
self.rsz_w = None
|
887
878
|
self.rsz_h = None
|
888
879
|
self.mouse_motion(event)
|
889
|
-
|
890
|
-
self.extra_b1_release_func(event)
|
880
|
+
try_binding(self.extra_b1_release_func, event)
|
891
881
|
|
892
882
|
def event_over_tree_arrow(
|
893
883
|
self,
|
@@ -1738,7 +1728,7 @@ class RowIndex(tk.Canvas):
|
|
1738
1728
|
text = event.char
|
1739
1729
|
else:
|
1740
1730
|
return False
|
1741
|
-
if self.extra_begin_edit_cell_func
|
1731
|
+
if self.extra_begin_edit_cell_func:
|
1742
1732
|
try:
|
1743
1733
|
text = self.extra_begin_edit_cell_func(
|
1744
1734
|
event_dict(
|
@@ -1768,9 +1758,9 @@ class RowIndex(tk.Canvas):
|
|
1768
1758
|
if not self.MT.see(r=r, c=0, keep_yscroll=True, check_cell_visibility=True):
|
1769
1759
|
self.MT.refresh()
|
1770
1760
|
x = 0
|
1771
|
-
y = self.MT.row_positions[r]
|
1761
|
+
y = self.MT.row_positions[r]
|
1772
1762
|
w = self.current_width + 1
|
1773
|
-
h = self.MT.row_positions[r + 1] - y
|
1763
|
+
h = self.MT.row_positions[r + 1] - y + 1
|
1774
1764
|
datarn = r if self.MT.all_rows_displayed else self.MT.displayed_rows[r]
|
1775
1765
|
if text is None:
|
1776
1766
|
text = self.get_cell_data(datarn, none_to_empty_str=True, redirect_int=True)
|
@@ -1786,12 +1776,12 @@ class RowIndex(tk.Canvas):
|
|
1786
1776
|
}
|
1787
1777
|
),
|
1788
1778
|
"sheet_ops": self.PAR.ops,
|
1789
|
-
"border_color": self.PAR.ops.
|
1779
|
+
"border_color": self.PAR.ops.index_selected_rows_bg,
|
1790
1780
|
"text": text,
|
1791
1781
|
"state": state,
|
1792
1782
|
"width": w,
|
1793
1783
|
"height": h,
|
1794
|
-
"show_border":
|
1784
|
+
"show_border": True,
|
1795
1785
|
"bg": bg,
|
1796
1786
|
"fg": fg,
|
1797
1787
|
"align": self.get_cell_align(r),
|
@@ -1821,42 +1811,45 @@ class RowIndex(tk.Canvas):
|
|
1821
1811
|
return True
|
1822
1812
|
|
1823
1813
|
def text_editor_newline_binding(self, r=0, c=0, event: object = None, check_lines=True):
|
1824
|
-
if self.height_resizing_enabled:
|
1825
|
-
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
|
1839
|
-
|
1840
|
-
|
1841
|
-
|
1842
|
-
|
1843
|
-
|
1844
|
-
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
|
1852
|
-
self.
|
1853
|
-
|
1854
|
-
|
1855
|
-
|
1856
|
-
|
1857
|
-
|
1858
|
-
|
1859
|
-
self.
|
1814
|
+
if not self.height_resizing_enabled:
|
1815
|
+
return
|
1816
|
+
curr_height = self.text_editor.window.winfo_height()
|
1817
|
+
if curr_height < self.MT.min_row_height:
|
1818
|
+
return
|
1819
|
+
if (
|
1820
|
+
not check_lines
|
1821
|
+
or self.MT.get_lines_cell_height(
|
1822
|
+
self.text_editor.window.get_num_lines() + 1,
|
1823
|
+
font=self.PAR.ops.index_font,
|
1824
|
+
)
|
1825
|
+
> curr_height
|
1826
|
+
):
|
1827
|
+
new_height = curr_height + self.MT.index_xtra_lines_increment
|
1828
|
+
space_bot = self.MT.get_space_bot(r)
|
1829
|
+
if new_height > space_bot:
|
1830
|
+
new_height = space_bot
|
1831
|
+
if new_height != curr_height:
|
1832
|
+
self.set_row_height(r, new_height)
|
1833
|
+
self.MT.refresh()
|
1834
|
+
self.text_editor.window.config(height=new_height)
|
1835
|
+
self.coords(self.text_editor.canvas_id, 0, self.MT.row_positions[r] + 1)
|
1836
|
+
if self.dropdown.open and self.dropdown.get_coords() == r:
|
1837
|
+
text_editor_h = self.text_editor.window.winfo_height()
|
1838
|
+
win_h, anchor = self.get_dropdown_height_anchor(r, text_editor_h)
|
1839
|
+
if anchor == "nw":
|
1840
|
+
self.coords(
|
1841
|
+
self.dropdown.canvas_id,
|
1842
|
+
self.MT.col_positions[c],
|
1843
|
+
self.MT.row_positions[r] + text_editor_h - 1,
|
1844
|
+
)
|
1845
|
+
self.itemconfig(self.dropdown.canvas_id, anchor=anchor, height=win_h)
|
1846
|
+
elif anchor == "sw":
|
1847
|
+
self.coords(
|
1848
|
+
self.dropdown.canvas_id,
|
1849
|
+
self.MT.col_positions[c],
|
1850
|
+
self.MT.row_positions[r],
|
1851
|
+
)
|
1852
|
+
self.itemconfig(self.dropdown.canvas_id, anchor=anchor, height=win_h)
|
1860
1853
|
|
1861
1854
|
def refresh_open_window_positions(self):
|
1862
1855
|
if self.text_editor.open:
|
@@ -1993,33 +1986,32 @@ class RowIndex(tk.Canvas):
|
|
1993
1986
|
if not self.open_text_editor(event=event, r=r, dropdown=True):
|
1994
1987
|
return
|
1995
1988
|
win_h, anchor = self.get_dropdown_height_anchor(r)
|
1989
|
+
win_w = self.current_width
|
1996
1990
|
ypos = self.MT.row_positions[r + 1]
|
1997
|
-
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
self.
|
2003
|
-
|
2004
|
-
|
1991
|
+
reset_kwargs = {
|
1992
|
+
"r": r,
|
1993
|
+
"c": 0,
|
1994
|
+
"width": win_w,
|
1995
|
+
"height": win_h,
|
1996
|
+
"font": self.PAR.ops.index_font,
|
1997
|
+
"ops": self.PAR.ops,
|
1998
|
+
"outline_color": self.PAR.ops.popup_menu_fg,
|
1999
|
+
"align": self.get_cell_align(r),
|
2000
|
+
"values": kwargs["values"],
|
2001
|
+
}
|
2002
|
+
if self.dropdown.window:
|
2003
|
+
self.dropdown.window.reset(**reset_kwargs)
|
2004
|
+
self.itemconfig(self.dropdown.canvas_id, state="normal")
|
2005
2005
|
self.coords(self.dropdown.canvas_id, 0, ypos)
|
2006
2006
|
else:
|
2007
2007
|
self.dropdown.window = self.PAR.dropdown_class(
|
2008
|
-
self.
|
2009
|
-
|
2010
|
-
|
2011
|
-
width=self.current_width,
|
2012
|
-
height=win_h,
|
2013
|
-
font=self.PAR.ops.index_font,
|
2014
|
-
ops=self.PAR.ops,
|
2015
|
-
outline_color=self.PAR.ops.popup_menu_fg,
|
2016
|
-
values=kwargs["values"],
|
2008
|
+
self.winfo_toplevel(),
|
2009
|
+
**reset_kwargs,
|
2010
|
+
single_index="r",
|
2017
2011
|
close_dropdown_window=self.close_dropdown_window,
|
2018
2012
|
search_function=kwargs["search_function"],
|
2019
2013
|
arrowkey_RIGHT=self.MT.arrowkey_RIGHT,
|
2020
2014
|
arrowkey_LEFT=self.MT.arrowkey_LEFT,
|
2021
|
-
align="w",
|
2022
|
-
single_index="r",
|
2023
2015
|
)
|
2024
2016
|
self.dropdown.canvas_id = self.create_window(
|
2025
2017
|
(0, ypos),
|