tksheet 7.1.24__tar.gz → 7.2.0__tar.gz

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.
Files changed (24) hide show
  1. {tksheet-7.1.24/tksheet.egg-info → tksheet-7.2.0}/PKG-INFO +1 -1
  2. {tksheet-7.1.24 → tksheet-7.2.0}/pyproject.toml +1 -1
  3. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/__init__.py +1 -1
  4. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/column_headers.py +5 -5
  5. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/main_table.py +25 -11
  6. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/row_index.py +16 -12
  7. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/sheet.py +54 -21
  8. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/text_editor.py +1 -1
  9. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/themes.py +5 -5
  10. {tksheet-7.1.24 → tksheet-7.2.0/tksheet.egg-info}/PKG-INFO +1 -1
  11. {tksheet-7.1.24 → tksheet-7.2.0}/LICENSE.txt +0 -0
  12. {tksheet-7.1.24 → tksheet-7.2.0}/README.md +0 -0
  13. {tksheet-7.1.24 → tksheet-7.2.0}/setup.cfg +0 -0
  14. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/colors.py +0 -0
  15. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/formatters.py +0 -0
  16. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/functions.py +0 -0
  17. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/other_classes.py +0 -0
  18. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/sheet_options.py +0 -0
  19. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/top_left_rectangle.py +0 -0
  20. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/types.py +0 -0
  21. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet/vars.py +0 -0
  22. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet.egg-info/SOURCES.txt +0 -0
  23. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet.egg-info/dependency_links.txt +0 -0
  24. {tksheet-7.1.24 → tksheet-7.2.0}/tksheet.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tksheet
3
- Version: 7.1.24
3
+ Version: 7.2.0
4
4
  Summary: Tkinter table / sheet widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
  name = "tksheet"
7
7
  description = "Tkinter table / sheet widget"
8
8
  readme = "README.md"
9
- version = "7.1.24"
9
+ version = "7.2.0"
10
10
  authors = [{ name = "ragardner", email = "github@ragardner.simplelogin.com" }]
11
11
  requires-python = ">=3.8"
12
12
  license = {file = "LICENSE.txt"}
@@ -4,7 +4,7 @@
4
4
  tksheet - A Python tkinter table widget
5
5
  """
6
6
 
7
- __version__ = "7.1.24"
7
+ __version__ = "7.2.0"
8
8
 
9
9
  from .colors import (
10
10
  color_map,
@@ -771,11 +771,9 @@ class ColumnHeaders(tk.Canvas):
771
771
  return False
772
772
 
773
773
  def b1_release(self, event: object) -> None:
774
- if self.being_drawn_item is not None:
775
- to_sel = self.MT.coords_and_type(self.being_drawn_item)
774
+ if self.being_drawn_item is not None and (to_sel := self.MT.coords_and_type(self.being_drawn_item)):
776
775
  r_to_sel, c_to_sel = self.MT.selected.row, self.MT.selected.column
777
776
  self.MT.hide_selection_box(self.being_drawn_item)
778
- self.being_drawn_item = None
779
777
  self.MT.set_currently_selected(
780
778
  r_to_sel,
781
779
  c_to_sel,
@@ -784,6 +782,8 @@ class ColumnHeaders(tk.Canvas):
784
782
  sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
785
783
  try_binding(self.drag_selection_binding_func, sel_event)
786
784
  self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
785
+ else:
786
+ self.being_drawn_item = None
787
787
  self.MT.bind("<MouseWheel>", self.MT.mousewheel)
788
788
  if self.width_resizing_enabled and self.rsz_w is not None and self.currently_resizing_width:
789
789
  self.currently_resizing_width = False
@@ -1607,11 +1607,11 @@ class ColumnHeaders(tk.Canvas):
1607
1607
 
1608
1608
  def get_redraw_selections(self, startc: int, endc: int) -> dict[str, set[int]]:
1609
1609
  d = defaultdict(set)
1610
- for item, box in self.MT.get_selection_items(rows=False):
1610
+ for item, box in self.MT.get_selection_items():
1611
1611
  r1, c1, r2, c2 = box.coords
1612
1612
  for c in range(startc, endc):
1613
1613
  if c1 <= c and c2 > c:
1614
- d[box.type_].add(c)
1614
+ d[box.type_ if box.type_ != "rows" else "cells"].add(c)
1615
1615
  return d
1616
1616
 
1617
1617
  def open_cell(self, event: object = None, ignore_existing_editor=False):
@@ -3079,11 +3079,9 @@ class MainTable(tk.Canvas):
3079
3079
  self.b1_motion(event)
3080
3080
 
3081
3081
  def b1_release(self, event=None):
3082
- if self.being_drawn_item is not None:
3083
- to_sel = self.coords_and_type(self.being_drawn_item)
3082
+ if self.being_drawn_item is not None and (to_sel := self.coords_and_type(self.being_drawn_item)):
3084
3083
  r_to_sel, c_to_sel = self.selected.row, self.selected.column
3085
3084
  self.hide_selection_box(self.being_drawn_item)
3086
- self.being_drawn_item = None
3087
3085
  self.set_currently_selected(
3088
3086
  r_to_sel,
3089
3087
  c_to_sel,
@@ -3101,6 +3099,8 @@ class MainTable(tk.Canvas):
3101
3099
  if self.drag_selection_binding_func:
3102
3100
  self.drag_selection_binding_func(sel_event)
3103
3101
  self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
3102
+ else:
3103
+ self.being_drawn_item = None
3104
3104
  if self.RI.width_resizing_enabled and self.RI.rsz_w is not None and self.RI.currently_resizing_width:
3105
3105
  self.delete_resize_lines()
3106
3106
  self.RI.delete_resize_lines()
@@ -3466,7 +3466,7 @@ class MainTable(tk.Canvas):
3466
3466
  def get_lines_cell_height(self, n, font=None):
3467
3467
  return (
3468
3468
  self.get_txt_h(
3469
- txt="\n".join("|" for lines in range(n)) if n > 1 else "|",
3469
+ txt="\n".join("|" for _ in range(n)) if n > 1 else "|",
3470
3470
  font=self.PAR.ops.table_font if font is None else font,
3471
3471
  )
3472
3472
  + 5
@@ -3484,12 +3484,20 @@ class MainTable(tk.Canvas):
3484
3484
 
3485
3485
  def get_default_row_height(self) -> int:
3486
3486
  if isinstance(self.PAR.ops.default_row_height, str):
3487
- return self.get_lines_cell_height(int(self.PAR.ops.default_row_height))
3487
+ if int(self.PAR.ops.default_row_height) == 1:
3488
+ return self.min_row_height
3489
+ else:
3490
+ return self.min_row_height + self.get_lines_cell_height(int(self.PAR.ops.default_row_height) - 1)
3488
3491
  return self.PAR.ops.default_row_height
3489
3492
 
3490
3493
  def get_default_header_height(self) -> int:
3491
3494
  if isinstance(self.PAR.ops.default_header_height, str):
3492
- return self.get_lines_cell_height(int(self.PAR.ops.default_header_height), font=self.PAR.ops.header_font)
3495
+ if int(self.PAR.ops.default_header_height) == 1:
3496
+ return self.min_header_height
3497
+ else:
3498
+ return self.min_header_height + self.get_lines_cell_height(
3499
+ int(self.PAR.ops.default_header_height) - 1, font=self.PAR.ops.header_font
3500
+ )
3493
3501
  return self.PAR.ops.default_header_height
3494
3502
 
3495
3503
  def set_table_font(self, newfont: tuple | None = None, reset_row_positions: bool = False) -> tuple[str, int, str]:
@@ -3519,8 +3527,8 @@ class MainTable(tk.Canvas):
3519
3527
  self.table_first_ln_ins = self.table_half_txt_height + 2
3520
3528
  else:
3521
3529
  self.table_first_ln_ins = self.table_half_txt_height + 3
3530
+ self.min_row_height = int(self.table_first_ln_ins * 2.25)
3522
3531
  self.table_xtra_lines_increment = int(self.table_txt_height)
3523
- self.min_row_height = self.table_txt_height + 5
3524
3532
  if self.min_row_height < 12:
3525
3533
  self.min_row_height = 12
3526
3534
  self.set_min_column_width()
@@ -3548,7 +3556,7 @@ class MainTable(tk.Canvas):
3548
3556
  else:
3549
3557
  self.header_first_ln_ins = self.header_half_txt_height + 3
3550
3558
  self.header_xtra_lines_increment = self.header_txt_height
3551
- self.min_header_height = self.header_txt_height + 5
3559
+ self.min_header_height = int(self.header_first_ln_ins * 2.25)
3552
3560
  if (
3553
3561
  isinstance(self.PAR.ops.default_header_height, int)
3554
3562
  and self.PAR.ops.default_header_height < self.min_header_height
@@ -5381,6 +5389,10 @@ class MainTable(tk.Canvas):
5381
5389
  if resized_cols or resized_rows or changed_w:
5382
5390
  self.recreate_all_selection_boxes()
5383
5391
  if changed_w:
5392
+ self.update_idletasks()
5393
+ self.RI.update_idletasks()
5394
+ self.CH.update_idletasks()
5395
+ self.TL.update_idletasks()
5384
5396
  return False
5385
5397
  self.hidd_text.update(self.disp_text)
5386
5398
  self.disp_text = {}
@@ -5934,6 +5946,8 @@ class MainTable(tk.Canvas):
5934
5946
  if self.selected.fill_iid == item:
5935
5947
  self.hide_selected()
5936
5948
  self.set_current_to_last()
5949
+ if item == self.being_drawn_item:
5950
+ self.being_drawn_item = None
5937
5951
  return True
5938
5952
 
5939
5953
  def hide_selected(self) -> None:
@@ -6996,9 +7010,9 @@ class MainTable(tk.Canvas):
6996
7010
  return self.mouseclick_outside_editor_or_dropdown()
6997
7011
 
6998
7012
  def hide_dropdown_editor_all_canvases(self):
6999
- self.hide_text_editor_and_dropdown()
7000
- self.RI.hide_text_editor_and_dropdown()
7001
- self.CH.hide_text_editor_and_dropdown()
7013
+ self.hide_text_editor_and_dropdown(redraw=False)
7014
+ self.RI.hide_text_editor_and_dropdown(redraw=False)
7015
+ self.CH.hide_text_editor_and_dropdown(redraw=False)
7002
7016
 
7003
7017
  def hide_dropdown_window(self) -> None:
7004
7018
  if self.dropdown.open:
@@ -772,11 +772,9 @@ class RowIndex(tk.Canvas):
772
772
  return False
773
773
 
774
774
  def b1_release(self, event: object) -> None:
775
- if self.being_drawn_item is not None:
776
- to_sel = self.MT.coords_and_type(self.being_drawn_item)
775
+ if self.being_drawn_item is not None and (to_sel := self.MT.coords_and_type(self.being_drawn_item)):
777
776
  r_to_sel, c_to_sel = self.MT.selected.row, self.MT.selected.column
778
777
  self.MT.hide_selection_box(self.being_drawn_item)
779
- self.being_drawn_item = None
780
778
  self.MT.set_currently_selected(
781
779
  r_to_sel,
782
780
  c_to_sel,
@@ -785,6 +783,8 @@ class RowIndex(tk.Canvas):
785
783
  sel_event = self.MT.get_select_event(being_drawn_item=self.being_drawn_item)
786
784
  try_binding(self.drag_selection_binding_func, sel_event)
787
785
  self.PAR.emit_event("<<SheetSelect>>", data=sel_event)
786
+ else:
787
+ self.being_drawn_item = None
788
788
  self.MT.bind("<MouseWheel>", self.MT.mousewheel)
789
789
  if self.height_resizing_enabled and self.rsz_h is not None and self.currently_resizing_height:
790
790
  self.currently_resizing_height = False
@@ -1030,7 +1030,7 @@ class RowIndex(tk.Canvas):
1030
1030
  align = self.align
1031
1031
  if align == "w":
1032
1032
  w += self.MT.index_txt_height
1033
- w += self.get_treeview_indent(self.MT._row_index[datarn].iid) + 4
1033
+ w += self.get_treeview_indent(self.MT._row_index[datarn].iid) + 5
1034
1034
  return w, h
1035
1035
 
1036
1036
  def set_row_height(
@@ -1310,7 +1310,8 @@ class RowIndex(tk.Canvas):
1310
1310
  mod = (self.MT.index_txt_height - 1) if self.MT.index_txt_height % 2 else self.MT.index_txt_height
1311
1311
  half_mod = mod / 2
1312
1312
  qtr_mod = mod / 4
1313
- mid_y = (self.MT.index_first_ln_ins - 1) if self.MT.index_first_ln_ins % 2 else self.MT.index_first_ln_ins
1313
+ small_mod = int(half_mod / 4) - 1
1314
+ mid_y = int(self.MT.min_row_height / 2)
1314
1315
  # up arrow
1315
1316
  if open_:
1316
1317
  points = (
@@ -1325,11 +1326,11 @@ class RowIndex(tk.Canvas):
1325
1326
  else:
1326
1327
  points = (
1327
1328
  x1 + half_mod + indent,
1328
- y1 + mid_y - half_mod + 1,
1329
- x1 + mod + indent - 1,
1329
+ y1 + mid_y - half_mod + small_mod,
1330
+ x1 + mod + indent - small_mod,
1330
1331
  y1 + mid_y,
1331
1332
  x1 + half_mod + indent,
1332
- y1 + mid_y + half_mod - 1,
1333
+ y1 + mid_y + half_mod - small_mod,
1333
1334
  )
1334
1335
  if self.hidd_tree_arrow:
1335
1336
  t, sh = self.hidd_tree_arrow.popitem()
@@ -1340,10 +1341,13 @@ class RowIndex(tk.Canvas):
1340
1341
  self.itemconfig(t, fill=fill, tag=tag, state="normal")
1341
1342
  self.lift(t)
1342
1343
  else:
1343
- t = self.create_polygon(
1344
+ t = self.create_line(
1344
1345
  points,
1345
1346
  fill=fill,
1346
1347
  tag=tag,
1348
+ width=2,
1349
+ capstyle=tk.ROUND,
1350
+ joinstyle=tk.BEVEL,
1347
1351
  )
1348
1352
  self.disp_tree_arrow[t] = True
1349
1353
 
@@ -1633,7 +1637,7 @@ class RowIndex(tk.Canvas):
1633
1637
  if align == "w":
1634
1638
  draw_x += self.MT.index_txt_height + 1
1635
1639
  indent = self.get_treeview_indent(iid)
1636
- draw_x += indent + 4
1640
+ draw_x += indent + 5
1637
1641
  if self.tree[iid].children:
1638
1642
  self.redraw_tree_arrow(
1639
1643
  0,
@@ -1738,11 +1742,11 @@ class RowIndex(tk.Canvas):
1738
1742
 
1739
1743
  def get_redraw_selections(self, startr: int, endr: int) -> dict[str, set[int]]:
1740
1744
  d = defaultdict(set)
1741
- for item, box in self.MT.get_selection_items(columns=False):
1745
+ for item, box in self.MT.get_selection_items():
1742
1746
  r1, c1, r2, c2 = box.coords
1743
1747
  for r in range(startr, endr):
1744
1748
  if r1 <= r and r2 > r:
1745
- d[box.type_].add(r)
1749
+ d[box.type_ if box.type_ != "columns" else "cells"].add(r)
1746
1750
  return d
1747
1751
 
1748
1752
  def open_cell(self, event: object = None, ignore_existing_editor=False):
@@ -21,6 +21,7 @@ from .functions import (
21
21
  dropdown_search_function,
22
22
  event_dict,
23
23
  fix_format_kwargs,
24
+ new_tk_event,
24
25
  force_bool,
25
26
  get_checkbox_dict,
26
27
  get_checkbox_kwargs,
@@ -29,7 +30,6 @@ from .functions import (
29
30
  idx_param_to_int,
30
31
  is_iterable,
31
32
  key_to_span,
32
- new_tk_event,
33
33
  num2alpha,
34
34
  pickled_event_dict,
35
35
  pop_positions,
@@ -1464,6 +1464,8 @@ class Sheet(tk.Frame):
1464
1464
  undo_stack: bool = True,
1465
1465
  selections: bool = True,
1466
1466
  sheet_options: bool = False,
1467
+ displayed_rows: bool = True,
1468
+ displayed_columns: bool = True,
1467
1469
  tree: bool = True,
1468
1470
  redraw: bool = True,
1469
1471
  ) -> Sheet:
@@ -1476,6 +1478,12 @@ class Sheet(tk.Frame):
1476
1478
  if index:
1477
1479
  self.RI.hide_text_editor_and_dropdown(redraw=False)
1478
1480
  self.MT._row_index = []
1481
+ if displayed_columns:
1482
+ self.MT.displayed_columns = []
1483
+ self.MT.all_columns_displayed = True
1484
+ if displayed_rows:
1485
+ self.MT.displayed_rows = []
1486
+ self.MT.all_rows_displayed = True
1479
1487
  if row_heights:
1480
1488
  self.MT.saved_row_heights = {}
1481
1489
  self.MT.set_row_positions([])
@@ -3584,6 +3592,20 @@ class Sheet(tk.Frame):
3584
3592
  z < self.MT.min_column_width or not isinstance(z, int) or isinstance(z, bool) for z in column_widths
3585
3593
  )
3586
3594
 
3595
+ def valid_row_height(self, height: int) -> int:
3596
+ if height < self.MT.min_row_height:
3597
+ return self.MT.min_row_height
3598
+ elif height > self.MT.max_row_height:
3599
+ return self.MT.max_row_height
3600
+ return height
3601
+
3602
+ def valid_column_width(self, width: int) -> int:
3603
+ if width < self.MT.min_column_width:
3604
+ return self.MT.min_column_width
3605
+ elif width > self.MT.max_column_width:
3606
+ return self.MT.max_column_width
3607
+ return width
3608
+
3587
3609
  # Identifying Bound Event Mouse Position
3588
3610
 
3589
3611
  def identify_region(self, event: object) -> Literal["table", "index", "header", "top left"]:
@@ -4512,6 +4534,7 @@ class Sheet(tk.Frame):
4512
4534
  safety: bool = True,
4513
4535
  ncols: int | None = None,
4514
4536
  ) -> Sheet:
4537
+ self.reset(cell_options=False, column_widths=False, header=False, redraw=False)
4515
4538
  if text_column is None:
4516
4539
  text_column = iid_column
4517
4540
  tally_of_ids = defaultdict(lambda: -1)
@@ -4564,6 +4587,8 @@ class Sheet(tk.Frame):
4564
4587
  fill=False,
4565
4588
  push_ops=push_ops,
4566
4589
  )
4590
+ self.MT.all_rows_displayed = False
4591
+ self.MT.displayed_rows = list(range(len(self.MT._row_index)))
4567
4592
  self.RI.tree_rns = {n.iid: i for i, n in enumerate(self.MT._row_index)}
4568
4593
  if open_ids:
4569
4594
  self.tree_set_open(open_ids=open_ids)
@@ -4614,10 +4639,17 @@ class Sheet(tk.Frame):
4614
4639
  Only meant for internal use
4615
4640
  """
4616
4641
  to_open = []
4642
+ disp_set = set(self.MT.displayed_rows)
4643
+ quick_rns = self.RI.tree_rns
4644
+ quick_open_ids = self.RI.tree_open_ids
4617
4645
  for item in filter(items.__contains__, self.get_children()):
4618
4646
  if self.RI.tree[item].children:
4619
- self.RI.tree_open_ids.add(item)
4620
- to_open.extend(self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True))
4647
+ quick_open_ids.add(item)
4648
+ if quick_rns[item] in disp_set:
4649
+ to_disp = [quick_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True)]
4650
+ for i in to_disp:
4651
+ disp_set.add(i)
4652
+ to_open.extend(to_disp)
4621
4653
  return to_open
4622
4654
 
4623
4655
  def tree_open(self, *items, redraw: bool = True) -> Sheet:
@@ -4627,36 +4659,37 @@ class Sheet(tk.Frame):
4627
4659
  if items := set(unpack(items)):
4628
4660
  to_open = self._tree_open(items)
4629
4661
  else:
4630
- to_open = []
4631
- for item in self.get_children():
4632
- if self.RI.tree[item].children:
4633
- self.RI.tree_open_ids.add(item)
4634
- to_open.extend(self.RI.tree_rns[did] for did in self.RI.get_iid_descendants(item, check_open=True))
4662
+ to_open = self._tree_open(set(self.get_children()))
4635
4663
  return self.show_rows(
4636
4664
  rows=to_open,
4637
4665
  redraw=redraw,
4638
4666
  deselect_all=False,
4639
4667
  )
4640
4668
 
4669
+ def _tree_close(self, items: Iterator[str]) -> list[int]:
4670
+ """
4671
+ Only meant for internal use
4672
+ """
4673
+ to_close = set()
4674
+ disp_set = set(self.MT.displayed_rows)
4675
+ quick_rns = self.RI.tree_rns
4676
+ quick_open_ids = self.RI.tree_open_ids
4677
+ for item in items:
4678
+ if self.RI.tree[item].children:
4679
+ quick_open_ids.discard(item)
4680
+ if quick_rns[item] in disp_set:
4681
+ for did in self.RI.get_iid_descendants(item, check_open=True):
4682
+ to_close.add(quick_rns[did])
4683
+ return to_close
4684
+
4641
4685
  def tree_close(self, *items, redraw: bool = True) -> Sheet:
4642
4686
  """
4643
4687
  If used without args all items are closed
4644
4688
  """
4645
- to_close = set()
4646
4689
  if items:
4647
- for item in unpack(items):
4648
- if self.RI.tree[item].children:
4649
- self.RI.tree_open_ids.discard(item)
4650
- if self.RI.tree_rns[item] in self.MT.displayed_rows:
4651
- for did in self.RI.get_iid_descendants(item, check_open=True):
4652
- to_close.add(self.RI.tree_rns[did])
4690
+ to_close = self._tree_close(unpack(items))
4653
4691
  else:
4654
- for item in self.get_children():
4655
- if self.RI.tree[item].children:
4656
- self.RI.tree_open_ids.discard(item)
4657
- if self.RI.tree_rns[item] in self.MT.displayed_rows:
4658
- for did in self.RI.get_iid_descendants(item, check_open=True):
4659
- to_close.add(self.RI.tree_rns[did])
4692
+ to_close = self._tree_close(self.get_children())
4660
4693
  return self.hide_rows(
4661
4694
  rows=to_close,
4662
4695
  redraw=redraw,
@@ -26,7 +26,7 @@ class TextEditorTkText(tk.Text):
26
26
  self,
27
27
  parent,
28
28
  spacing1=0,
29
- spacing2=0,
29
+ spacing2=1,
30
30
  spacing3=0,
31
31
  bd=0,
32
32
  highlightthickness=0,
@@ -46,8 +46,8 @@ theme_light_blue: dict[str, str] = DotDict({
46
46
  "table_selected_columns_border_fg": "#0B57D0",
47
47
  "table_selected_columns_bg": "#E6EFFD",
48
48
  "table_selected_columns_fg": "black",
49
- "tree_arrow_fg": "#C4C7C5",
50
- "selected_cells_tree_arrow_fg": "#D3E3FD",
49
+ "tree_arrow_fg": "black",
50
+ "selected_cells_tree_arrow_fg": "black",
51
51
  "selected_rows_tree_arrow_fg": "#FFFFFF",
52
52
  "vertical_scroll_background": "#FFFFFF",
53
53
  "horizontal_scroll_background": "#FFFFFF",
@@ -121,7 +121,7 @@ theme_light_green: dict[str, str] = DotDict({
121
121
  "table_selected_columns_border_fg": "#107C41",
122
122
  "table_selected_columns_bg": "#E3E3E3",
123
123
  "table_selected_columns_fg": "black",
124
- "tree_arrow_fg": "#ababab",
124
+ "tree_arrow_fg": "black",
125
125
  "selected_cells_tree_arrow_fg": "#107C41",
126
126
  "selected_rows_tree_arrow_fg": "#FFFFFF",
127
127
  "vertical_scroll_background": "#FFFFFF",
@@ -272,8 +272,8 @@ theme_black: dict[str, str] = DotDict({
272
272
  "table_selected_columns_bg": "#404040",
273
273
  "table_selected_columns_fg": "#F7F7F7",
274
274
  "tree_arrow_fg": "#8C8C8C",
275
- "selected_cells_tree_arrow_fg": "#8C8C8C",
276
- "selected_rows_tree_arrow_fg": "#8C8C8C",
275
+ "selected_cells_tree_arrow_fg": "#FBB86C",
276
+ "selected_rows_tree_arrow_fg": "#000000",
277
277
  "vertical_scroll_background": "#3b3a39",
278
278
  "horizontal_scroll_background": "#3b3a39",
279
279
  "vertical_scroll_troughcolor": "#000000",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tksheet
3
- Version: 7.1.24
3
+ Version: 7.2.0
4
4
  Summary: Tkinter table / sheet widget
5
5
  Author-email: ragardner <github@ragardner.simplelogin.com>
6
6
  License: Copyright (c) 2019 ragardner and open source contributors
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes