tksheet 7.4.23__py3-none-any.whl → 7.5.0__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 +13 -1
- tksheet/column_headers.py +5 -0
- tksheet/constants.py +180 -0
- tksheet/find_window.py +25 -2
- tksheet/functions.py +9 -1
- tksheet/main_table.py +311 -120
- tksheet/row_index.py +5 -0
- tksheet/sheet.py +29 -30
- tksheet/sheet_options.py +123 -20
- tksheet/text_editor.py +26 -2
- tksheet/themes.py +4 -4
- {tksheet-7.4.23.dist-info → tksheet-7.5.0.dist-info}/METADATA +23 -1
- tksheet-7.5.0.dist-info/RECORD +22 -0
- {tksheet-7.4.23.dist-info → tksheet-7.5.0.dist-info}/WHEEL +1 -1
- tksheet-7.5.0.dist-info/licenses/LICENSE.txt +41 -0
- tksheet-7.4.23.dist-info/RECORD +0 -22
- tksheet-7.4.23.dist-info/licenses/LICENSE.txt +0 -19
- {tksheet-7.4.23.dist-info → tksheet-7.5.0.dist-info}/top_level.txt +0 -0
tksheet/__init__.py
CHANGED
@@ -4,13 +4,25 @@
|
|
4
4
|
tksheet - A Python tkinter table widget
|
5
5
|
"""
|
6
6
|
|
7
|
-
__version__ = "7.
|
7
|
+
__version__ = "7.5.0"
|
8
8
|
|
9
9
|
from .colors import (
|
10
10
|
color_map,
|
11
11
|
)
|
12
12
|
from .column_headers import ColumnHeaders
|
13
13
|
from .constants import (
|
14
|
+
ICON_ADD,
|
15
|
+
ICON_CLEAR,
|
16
|
+
ICON_COPY,
|
17
|
+
ICON_CUT,
|
18
|
+
ICON_DEL,
|
19
|
+
ICON_EDIT,
|
20
|
+
ICON_PASTE,
|
21
|
+
ICON_REDO,
|
22
|
+
ICON_SELECT_ALL,
|
23
|
+
ICON_SORT_ASC,
|
24
|
+
ICON_SORT_DESC,
|
25
|
+
ICON_UNDO,
|
14
26
|
USER_OS,
|
15
27
|
ctrl_key,
|
16
28
|
emitted_events,
|
tksheet/column_headers.py
CHANGED
@@ -164,6 +164,9 @@ class ColumnHeaders(tk.Canvas):
|
|
164
164
|
self.current_height = new_height
|
165
165
|
return expanded
|
166
166
|
|
167
|
+
def is_readonly(self, datacn: int) -> bool:
|
168
|
+
return datacn in self.cell_options and "readonly" in self.cell_options[datacn]
|
169
|
+
|
167
170
|
def rc(self, event: Any) -> None:
|
168
171
|
self.mouseclick_outside_editor_or_dropdown_all_canvases(inside=True)
|
169
172
|
self.focus_set()
|
@@ -189,6 +192,8 @@ class ColumnHeaders(tk.Canvas):
|
|
189
192
|
try_binding(self.extra_rc_func, event)
|
190
193
|
if popup_menu is not None:
|
191
194
|
self.popup_menu_loc = c
|
195
|
+
self.MT.popup_menu_disable_edit_if_readonly(popup_menu)
|
196
|
+
self.MT.popup_menu_disable_undo_redo(popup_menu)
|
192
197
|
popup_menu.tk_popup(event.x_root, event.y_root)
|
193
198
|
|
194
199
|
def ctrl_b1_press(self, event: Any) -> None:
|
tksheet/constants.py
CHANGED
@@ -345,3 +345,183 @@ for o, b in BINDING_TO_ATTR.values():
|
|
345
345
|
SELECT_BINDINGS.append((o, b))
|
346
346
|
visited.add((o, b))
|
347
347
|
visited = set()
|
348
|
+
|
349
|
+
ICON_CUT = (
|
350
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAxxJREFUSEuFVstq"""
|
351
|
+
"""20AUPVcqBLLqoiZxVvK2u1JKoFCIocs0/5BlIP6AkWyJOI30AQ5k6X5Dkl1psiwhP6FV3JKuA1lYt7nz"""
|
352
|
+
"""sEaW3Qps7NHoPs4594yIADDal163XwRe+Vs/aQOsjkOgdTfqtOtKaBbV2rUoTvbZu+Oi+IAKIwD79vFr"""
|
353
|
+
"""BHyaqvj+35WuT7boQIJThTvTNFcEAQaBRirA7ihW9x4idURbXFYUUQhMZU8Wq76BXaLYDsZfi0sAX5h5"""
|
354
|
+
"""+uf37EiW32x3Lwh0COAqTdTBIqqPx0s5WV5ErxhTrrAHwrcsUYeOVz9BJdU+/nrYnEzOn4WDwfFgo9Pd"""
|
355
|
+
"""eSKARkMVCtfLpevKmafEtMeMMh2q3lJ+88j4LK8A4sfZw+bk3CYYDDY62ztP0muaqLApOEJW5FHIGpY9"""
|
356
|
+
"""AsrRUPWs3OpmXbbxmQ/Rw5Hg19nufgfw6eXzI03izwZT04YJTjo4gDJLVM/Iuk246cAo6M5oiqUbWRaS"""
|
357
|
+
"""5ZrNA3w8UaqUP4J5CJ6CSQdPk7jnR27MUJ2UMC7yJZnyDUBvCegKvvMQfUngYDHBVW+h8zUDu+q+I5+z"""
|
358
|
+
"""PI/Cim7BiEBcgqiEVguXWRL3ajk2FNCY8P+MpOBdRGGFW4AjzYJWS9yrLaRZY0NFNV5+nppMjbmWoqcW"""
|
359
|
+
"""Dcu6q2lOBopmbOHLrbME94bIqMUmHStVtg1xqRu/g7YX8Q2IXoPxHnaI6snPxVXKeYD+iYrLlfqUHS7B"""
|
360
|
+
"""OPe9CJVeZwQgqZdmaaJ2XKM+ZKIkk0SVzhBdEc673CRfAtTwos7Wzk8Q3rW8yPEixGt1eUlWIG4TFMaL"""
|
361
|
+
"""tFVMnmXRedFqq2iqS8NF6J/EcemmXWLUdu28SJvd5FkgOrZepM1Oe5Hg1fQCI2G+BShycGnyLU4LFTW9"""
|
362
|
+
"""aHYkGzpb3QsiOiTgajRUB2JkjerssaqtQ88JIoCtdej6fZLFJsh6kSXZHjgIsJsqdW8ecWe1L0frrBUy"""
|
363
|
+
"""2ZMmSs4Q00NLpnOMQLxvT7RrBDh1wRf8rTumW1PrTrQ1JtVAu/X24C+0brr6m28VvrO2sF6QVr/C+K8t"""
|
364
|
+
"""vvbr34S/2B2/MddUJi4AAAAASUVORK5CYII="""
|
365
|
+
)
|
366
|
+
|
367
|
+
|
368
|
+
ICON_EDIT = (
|
369
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAn5JREFUSEuFVu1h"""
|
370
|
+
"""qzAMPJEMQjYhk7x2DEIDoR9hDPomSTd5HiRYr5INCHBa/yK29XGnkxyCLALA+jWtzVbcSFxNO4ie5L75"""
|
371
|
+
"""XEWxJ2nPeqN9e79k2a5hhgPha8jQtmXpJHNSO2v8Y6YWLKHprvmO0YO5CCeyJElyw4Dnti6/DIJo/Iib"""
|
372
|
+
"""yCWB1UXTdfme0TOjAODuGY5imt39E2VZI0jqU6l7CZIe8yEnddfFzIPzuioPoxMJvPP4N+6HABtaEpzF"""
|
373
|
+
"""i0oL0MOrc1luyPjYlicnP5q3a7HL6CYw65eSQg02UQhKxapAmp1yHjKPAXKA3T2jIzGgwRkFD75t6upi"""
|
374
|
+
"""AliytsSNzkmMGa5+KQ9C1d7jBnAuhQXBiXP6RnWOtG0DxKwtgpkWVYs6F9haj6uiugHIo4pcXZ1iTYSJ"""
|
375
|
+
"""5JqJm2gRzokXxkLumrbgfO6nHxutkezAPZiiWk6HUaaS/6oPJmTrkiYxKL9zE01SHLEF5xTURFaqUSBT"""
|
376
|
+
"""3yTcr2E3VXmwSgvnEVks+Jz1soc2jRaaiHtiKjg2kTVR57EPVC2x4JYWG2zRaHPmXND3PAlSmyH/hizF"""
|
377
|
+
"""9WLYvV67W+CUXVOdIi3BbOHc0mJn1GZyIk5THbkfFx1Sq9mSVMsKmUW5RjHV4PWjkwGVDx7H9hzG7Dg1"""
|
378
|
+
"""7Xiwgy2R8ObxsQFUKHVVTnuhD+bZI84fjUE7k22vqLPX9+4JxD1An3VVPmsg6YN5asY+2EpwMShtPcZv"""
|
379
|
+
"""MWmluIzCe9/K71iLMSmnffD4iVBabNZK7vgEaIBO1KPStG+/Y+//NufqspHfhqflxoIiDSAUZfwHTLk4"""
|
380
|
+
"""9Xv6HB+QxGs0xUvHsWjGlzoth1//zjwys538H8mvnjDSt4tXAAAAAElFTkSuQmCC"""
|
381
|
+
)
|
382
|
+
|
383
|
+
|
384
|
+
ICON_SORT_DESC = (
|
385
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAf5JREFUSEuNVW12"""
|
386
|
+
"""gjAQnMWDVG+CJ+nzGJEWEIsco97EHoWDKGmzhLD5svL8ISG7szszmxCSD4GgodMfE6sEiN3yjdYXm5QX"""
|
387
|
+
"""fAC5RyZakXwAWYEHwMF2bzqpV9vzLl2hBi6ouhmG7UbjGxrbR4F9p9S40JWuVXZv6xeFuqrNpyU5aZQ2"""
|
388
|
+
"""6Xi3IK71iMYnFEm+ROUlrxsE4t94J+xPRzXyekKnSHmvA1E5JpQgmERbG7T8Hw1dJ2VB4NNiMaWMrhau"""
|
389
|
+
"""qOuHGzRM5WNdqV3XD8zQo8BuM+E2A+qxqY67mbq84Embns59S0XxbpKb4K6/cJ66UsTUTWjs+yF2mk+Q"""
|
390
|
+
"""b33xTSIvHRiAV/wum/J7exUgIvm1aReD5rd57getNVB/zB10F6ORLue0wmLsNGu3JQXhp67Ufj4RhO3k"""
|
391
|
+
"""MRBSZDViHbxntbI7jQi4flbqwKll5zKQAWwHuemNPJkYhmwHIUVebKjieoRFfogBbHBOg9n/QoOId1nK"""
|
392
|
+
"""okE0OEAIEGsQCAtc64V3cTtkXOQPWkStXUjr5ysmhshPI0XOAaQHMLis/LHWxrp8o537ixkDPip4Dobh"""
|
393
|
+
"""himYAyLrd9mSPKVI2lScr38o7fmrLah4qz+OBzNabde3tCka3rXS73hPONS5OHFN5ipKkJW/a5x1XFRu"""
|
394
|
+
"""7z85AlSpwUJRwqZPBUwMWno/8Au5DCkvTFG1swAAAABJRU5ErkJggg=="""
|
395
|
+
)
|
396
|
+
|
397
|
+
|
398
|
+
ICON_SORT_ASC = (
|
399
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhZJREFUSEuVVu11"""
|
400
|
+
"""wjAMPAGDhE3KKIyRBBIaXuIxYBPYpCwCbmU7sfyV98qfFlv2Sbo7GcLyIQA6/GaWwnUT4Jb8DoGg3Wm5"""
|
401
|
+
"""yesxQPk+f3cmRgLLO1MAv7tkmj8sA8P/ZeECwAW53WGaHrzSNfWB/w5KPfDBl0yeCM9zWx+Wzrqzpl2i"""
|
402
|
+
"""Uy5T2UfgOirNjHRtTRx7uY4X2lBvg+2HgPv5VB8FddmOZ2olXMdpAUi6FpQhhJBwE5Ac4vgKGjLqKhGb"""
|
403
|
+
"""TW/W4z8Ahkk9oCUHGqap3EfiBOg58xXKtyCGYVTGFGscREfvneEj7F9BRYAB0EB3ci0qaTVjxpiibBeH"""
|
404
|
+
"""cQoq8B7PObnkiZkDqV+XqVeRrWDmwGybvkveHR9ev46PFZIlB3zuexgvtN30Zf8GFrif2/rovOJh5cDK"""
|
405
|
+
"""+6CsVakcKWvj0rm/kq/YyQEHCeGxcubJyup1AHb2EN7A8btpXpLkXqlqq3HjVLqmORTHdYZLK1MysjRG"""
|
406
|
+
"""AvB6b/Rh96Efzvq9wd5c/sEXSN/7tjmm1STDJHgzzJd+UtX2AwapQHgBqCy4fkKTAe7aep9MMz/4Yo9Z"""
|
407
|
+
"""KiQ5vZosCHRlZ6vVJIFe51O9j6dmxmOJyAIAvrLjSjSDuAqCzOVzuGYu/3ymo+IvZyZ1p3HTGhW3JX6h"""
|
408
|
+
"""bGUhWCLTuXXJ4UySPqa0WZ7Zi4pCM2RUUe6I/DESRa2MipSt9Zcrsuty/BfWPCAzd/TdsgAAAABJRU5E"""
|
409
|
+
"""rkJggg=="""
|
410
|
+
)
|
411
|
+
|
412
|
+
|
413
|
+
ICON_PASTE = (
|
414
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAlFJREFUSEt9Ve2h"""
|
415
|
+
"""oyAQnI2NmE5MJe9SBppINKeWkXeVJJ08CjnlDgRcRPWXIDjsfCyE8BAAvQzX83ufkx18IYGWoXtj3+Vz"""
|
416
|
+
"""KLITXgTkEbQZkAaB1N8J1+YuPhYn/rc9r5lyDwcgEDSafnhD6yJaltao6kqcN0oPmAHZQDye3YNOpy8A"""
|
417
|
+
"""ud8kK0Fb5LXdwKfV/xqauiq/OdVRBc+u/6U1XqEuR0VdlaYkQMdCPLtBb1B3nUFmzmKAvn9rjWKccDG8"""
|
418
|
+
"""tpYiFHvl2/kTPrUQFzkMeTbhB4CSlTh74Aig7Xo7X1fCil8bkTPIAxA1WpHLj6Gl/T0Y5e3+zQo4wOGp"""
|
419
|
+
"""dz623WAqyBeAlT28aL4CTzmnf8OJAc7Q1AhhxI6MExYkALGBV0afP1qdoDESXZtSKGMEY/GgAT/RAlBS"""
|
420
|
+
"""SAlXywVnnpp3MiOokXAxIFGVfOBtFyg6rGDeKfshzzTeLjdqPOHSCqH8IZiLAFuBBuqbqyARM86BH8mh"""
|
421
|
+
"""z7OJjKVzECyI12IGcCv3Kghc+0zYAB76TNU3cV71ImABKMkKxQ7czC1EHv7WN0Giz70Sl1nw8BDWQeNi"""
|
422
|
+
"""+uAsfWZpjrLv80zTywVyI8luLbcpP+mSg7il27SbFqH1izQVGkg6K7sP9imKpY3jMNvUtvSI9w0XxRRx"""
|
423
|
+
"""6pJMMPv69p7cCazY8C8ucsL1NmcBajHFKsncpiyV17oS396+CUVJAAF3vb71NDXyXj02u2ly4dhVzvR7"""
|
424
|
+
"""3l/NJwD8dO7SKED4Wu6ADYAEzE4oPU5/ZH17cHqP87juu6vGlxgh0Qn4B4YcZzGhG9dFAAAAAElFTkSu"""
|
425
|
+
"""QmCC"""
|
426
|
+
)
|
427
|
+
|
428
|
+
|
429
|
+
ICON_CLEAR = (
|
430
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAktJREFUOE9tVOuB"""
|
431
|
+
"""o0AI/tAU4lZyppLVQoTMWEhMJclVkhTiLifDjFEv/vGBMN8DIOwuAqAANvf8SKRQC9lVwuWVsMYstF4i"""
|
432
|
+
"""0tSnuk0Zln1I3L6XEDNP2zOoBGKMHYDrLpjwHqs6QlLnAuD1q3q7iFwskBESYgyW+yDFzf4q7JzigVNW"""
|
433
|
+
"""JR/1B4qWmb/s3c5CQkd6haIvFD5IlX5PRRI8LzeOsVNNzFJuQjhmukroeTBNLFFTTnpS3YFcnSFFDKtU"""
|
434
|
+
"""PUsuGOPYEfSqQC/Mk9MlCA/Ngv61pW/GhRBexe1dwYJwNYTIKS+MRLg51fVTQRPz0Ls04Q6gmef5bAcZ"""
|
435
|
+
"""vfA20xGa3mELO5/CIk1VVR1RJYCaNo2CWkAfwnI2/Qx5HGOHnYZkGo6dQl1Y0zC7akXrquoqIsm0HyJy"""
|
436
|
+
"""Nk0/U5Yp2WY6EOGqapSHae0SjxnNNnf/JMy996aJoAj/IcwuK3AlQj8kl/2KY7xbjxHw+FX9S0SyaDgx"""
|
437
|
+
"""c9LUOyR0SlhbLiEcQ/SPoJ6HYbJvMqQxfFqxQfgsAzdVXZum3z8/83nR/eXsQpowAvqBjXIR1sZO0S/u"""
|
438
|
+
"""Tpqbdj90x8WxsuhIsbbcG6HPcZ6UbXLWP30yZz32YQf0XBCKSHuq6zs2Gu7Q5WVwnHH7x3rY9If18OCG"""
|
439
|
+
"""IrVHXT8XNx8E3MqkrCsi2V6s2syNn/oNovZnnr9CDNbsPreXEC4VVeLtul0CuVD6syxSz1kRrzsgb5uy"""
|
440
|
+
"""pX3cTq0XfRfyzLIE8+LIYRu3feydenjau7ovU4xJO6m0ZDr0H9VKXi8tUg0XAAAAAElFTkSuQmCC"""
|
441
|
+
)
|
442
|
+
|
443
|
+
ICON_DEL = (
|
444
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAilJREFUSEuVVu1Z"""
|
445
|
+
"""8zAMPLXvIGWTMAl0DBOaNoUmYxQmCZvgQWj9YllO5NgpkB/Fjz901p10hjB+BIKDmybSEQHLi4Be5rH8"""
|
446
|
+
"""+D8KIi4UYk+n0mhZAJkQRAVAOLy8Hlar1QOADW/z6RD/yFgOZ/MOnL+D/R60TW3eQkp+1n8EHF+7R4DO"""
|
447
|
+
"""IWiBJ5nPqChTumUQHerYdQM5qr4uuG8b86EZiZfw4Lek2Pf9Zn11nwDZ5tnc8f544HjqWd/m2Xitw/eD"""
|
448
|
+
"""sCX6fRx/bFcb5kFRJABqIamoJTAlpt8/XjQH6JiAJIO/plECmCgSAJ2BF//UD37PF7Btn4z1mMy1w5kp"""
|
449
|
+
"""fTL3mqpfUiRNxwBBfAfYywocjIM7VN/l/NbUZjsHYOCEIk5NZzARvu+7zb8rDS70hiWCdSG4bWpzN6+G"""
|
450
|
+
"""MQ4XS9IHqfq6vz3I+oIBJA0owbNS1hpINS5UUVoyI+fOVVJ4TFdrgia6nstVVFA/ZjAFD7QINNOVgoQT"""
|
451
|
+
"""KdWzPtANMlrIqR9EUOY8dCsGwG0IZHejDtFydD/NNNDqxwzalxMboA4kIHu50O0q0lbBB7RVlI1spHxS"""
|
452
|
+
"""ahqVKdLcZQC/9M/JlYMj5H2QelH58jPjmW9i25+ZXaxlbwki5ujl8dHg1+YHs2MLOfbVes398hEshBK7"""
|
453
|
+
"""fiTgvPgmZyktvXS8cXpw4sWkMioQHiSTJYmXn1LAuuv1/bCrD4VHP/2v4uZbk+le2K3kkpumApZKcDml"""
|
454
|
+
"""5ZX/A1xULlr4HbYAAAAASUVORK5CYII="""
|
455
|
+
)
|
456
|
+
|
457
|
+
|
458
|
+
ICON_ADD = (
|
459
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAYZJREFUSEuVVdt1"""
|
460
|
+
"""wjAMldNBWKUdhTEC1IVAyBpsQjdLjx+JJesqTvPB4ThGV/ch4RwRzfGDdjz5Ir/PC4A64Qg+qka8JSuo"""
|
461
|
+
"""5jh+fqkB/kcpN6cqr027Uk/27GiWqgFgiwEnmwC4SBYDRzSM0ztc9af+SwtWKchIrdJisPw6ADym2Is/"""
|
462
|
+
"""96Z3RZvUefsiM3YYn/En/tIHBfUD0rUjReVXw7iHgTRce2A1FiXKDLJE2K46LMYUxBRVpgQG4eg7AoCZ"""
|
463
|
+
"""UGFZPNhIDtdaAshqPNa1FYLD8JzeNM+fjrCP8XIwWLiXDxz9hghvAtzu49V13Q9gW45iPY6Sv8/08pfT"""
|
464
|
+
"""kU8W68PWdHljS2RtDEfGJNcWpgLrHPBBU9MpU5MY7DZZxlTsHLZyhAe4gWTxElMuUVkV+Y5Up7Sfm2YM"""
|
465
|
+
"""gCxgDvAuwg2FiiJsrclsmmxsATjL6PB2f1xd93Hw5/4I1zU3hUlXb9hNwNZKr7esngO1ci28Rj4RAzy9"""
|
466
|
+
"""Mi0Yrt6g5e+WDRroSLHhYPsY/AFsVMwga5Ld0wAAAABJRU5ErkJggg=="""
|
467
|
+
)
|
468
|
+
|
469
|
+
|
470
|
+
ICON_COPY = (
|
471
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAjdJREFUSEuFVuuZ"""
|
472
|
+
"""qjAQPYOFXLcTrGTXMiIIImLK0FuJdrI2smRvJgEmJLn6w4+Qx8x5zATC/CMQDAwB/m+ZEk9ymp8Tq+R7"""
|
473
|
+
"""mgZdP5yoKD4BbOc9drddsA7gxq9/s11TqXsyE35J4ADdRX+BcEtnJKMYu2Wd9T4ZxB/G+Z2v+gGD8mfE"""
|
474
|
+
"""rmvU838UTdm2+rrdjPQNg1dTq480CpuODTBoprKp1ExIwOPMdYiRaaXiT1OrvdRSKpMNkOGdM3onbLDX"""
|
475
|
+
"""a2DJDRB4jVaneae9cU7oTEvRRRuQQVMdVp4Buv5yomLzCYOtXcO2SrhLxAzc5SjiAB6B4ODM7jK3hHOW"""
|
476
|
+
"""80KTwSbB6w32Ta3uIkCMwLnLlD8j7bqjeq6ZSdVkq/V2M+Lb1klTqY+pDiKKWJucu96U8+LKA7kAiYMW"""
|
477
|
+
"""+3pkkX3SRrb7+kEby5zVNNZA8BBok+8H0YysK4EgoYFEFhEeQlpGhPNwnQvXIdD6gRElAftjre5Tq3CZ"""
|
478
|
+
"""JOwr+szUfbkTeywpDb4A3HxxPZuD2qW1yfEeouEABmhq5TRw1jIliGxBWXtxb5kKsK0O5DLNNZBQhkjk"""
|
479
|
+
"""qcGsz0hRlPfOFITQD1fvIo9gmQqTjLus7EX5UJGLHPK4T04IIoq8o6SwkiSmiDXwdRAwKBzS+YsIcH3F"""
|
480
|
+
"""uit96JJc2+tyU+ABgjNLrr97kfkqTdeYvD7nBsdE+DP5KnUBMnQG7hpRzh8AuXbt3r/MOP5tj9VpvvQn"""
|
481
|
+
"""98lqZLmjwPLTRk7Lygvx/gLRN1wxA1X+ogAAAABJRU5ErkJggg=="""
|
482
|
+
)
|
483
|
+
|
484
|
+
|
485
|
+
ICON_SELECT_ALL = (
|
486
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAiZJREFUSEuNVe11"""
|
487
|
+
"""gzAMPJlBmm4Ck6QZwyF8tsAYTSdJNmkG6cONhQk2tkn4kUeELEun04lgPQRA8Y8xGgNBGZP56Dna/nZE"""
|
488
|
+
"""QLsGnlgg7/bH2eULYUlodUH92dVCiD0It+ooM11I2w8XKKQgXMujzHSghm0qBdG1zGWmy2O/ETsQmjKX"""
|
489
|
+
"""Z05dWRe0Xf8B0PeUkjqX+fGg35rPriYhKgDnMpe+7SQPOhD7kagMJge+5H7+AZHOgBTSvxFZU8hrGLoY"""
|
490
|
+
"""mlO61TDskhG/AG7lSb47FZhM3+YsYxeEu7DgruMIId4Krkzb5zr4z8yWV/pu+9ukmGCZiEggO6NNRgWY"""
|
491
|
+
"""6J0NBHN6oGPMrFgq83ntzMrq4rbvLzpzzTi3yV3PIBW5JC7tKVwBHwLar4Hvn+LAQHQP2bRMR7fJmxMb"""
|
492
|
+
"""xmMdx++BHdR7txsYgC7CjbhYxJVhdSbGonnQNHad3RyDb4Am3BtPBJfKdJNNL1lCFhbNTT5JWkvq84Yv"""
|
493
|
+
"""BbXdwCNQOk1mzfmqSSSmyc+nI9aNtSI4cr0J+StTZQ/PDKPHxBg1vcOB0bZNnlxrPdfY8QTGIdoEj8li"""
|
494
|
+
"""x1mzSFEKgLU8hogtZMtunQKV7ZAmibrwIvKlYvgAMC0cs730q7vRjplmVDPw9kqJcC1MoIff/TuBDsVJ"""
|
495
|
+
"""nhe5vstrNfS7ZCS9GvdQuPFeYAlhdr220YTYq3H8qYq8nokblWtH063hWsMyD51td/iwSZoYUV6WEOAf"""
|
496
|
+
"""jjY7LKuzEksAAAAASUVORK5CYII="""
|
497
|
+
)
|
498
|
+
|
499
|
+
|
500
|
+
ICON_UNDO = (
|
501
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAjpJREFUSEuNVv19"""
|
502
|
+
"""wiAQPdBB4iZmk3YMYg0h/jRjtJ1EN5E92kB7BMIRiJp/QHLc53svMsCHAYB1u8KevvQ2ryz+Gi7zU3a1"""
|
503
|
+
"""Fj1NKFqlXpIAz6vxBZLsrNszYGDTJjyuYLrQDkO1sfCJgdtG1MvOvNK8vEX+FjrfAnyCgT0AfLUH8V4c"""
|
504
|
+
"""1pMozFfohhxsZcgcnTPQ7UHsXplryYZUMLmfnVuXedn5q73BpGkF1DkD0EefObWhQHiOuhDA13a6DFfr"""
|
505
|
+
"""MkdSML/4Pa1/OtL+6DZyUL0QOlBpmcR8NQZIvU2YwqcQbDLVxpjv7njo0jngTcJe1yID13/UVNiiXw61"""
|
506
|
+
"""Eo2OCIhNQVu8yn/NG+Nc4htjjJKLIBnRaBDMbORQu/IfDFYOl2pj2B0s6NHad3VsbgGSSQVhmPLiK7FQ"""
|
507
|
+
"""Ya8xiGqEplBeQrI7nTvOuAQON9mIemppaNH8wyLrXUdiJbYCYLr9ELtZCzLAM3BVjHDHhORB7Kh2pqpF"""
|
508
|
+
"""Lvsg0kmFYzLlctozb3tPubOoIGr2EgtOzxK2zxah4tOw3zC4zi0K9msyW1bWXIpDYHU6d4imqFt+Bhk4"""
|
509
|
+
"""6AGV4uw8Srfsh/2WA5IURgt1fxS3dAYFR2uBacU4WP5j3tjGZQ52NEq2H138NiQzSD8mcQqTy/4yXMHa"""
|
510
|
+
"""vWO1I3TKajuTLG/jDI1sHsRW9ecOM3VH0be2xnybLf9SQgRtmjgWupIp5Rpo15hcmBn9BzHJdYE4DyGb"""
|
511
|
+
"""QSzlh5tBDtO1GdDoBZgutXmR7R8TrUAvyr2/1AAAAABJRU5ErkJggg=="""
|
512
|
+
)
|
513
|
+
|
514
|
+
|
515
|
+
ICON_REDO = (
|
516
|
+
"""iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAkJJREFUSEuVVe2B"""
|
517
|
+
"""oyAQncErRCu5tZJNykAjijlDGclVEjuJhZywgqggmN3zT3QY5uPNmxeE/YMAoKzRvpuft3YEBOX7OCHW"""
|
518
|
+
"""1yOnrYajjG5BbiUA+iv6RAqG2X1pL3ItcjwnCKIdeDqx25t46qsjwplTOgRdxiAKwD8aEAK03e0JCj8A"""
|
519
|
+
"""YBgJ5FuSH0J0BN1ir4VIEwm6i3SfZA/If0Br2WKzBEkQcl4UgyGLB9Hb2blBw9HXN5EmKt7JMt4oGro6"""
|
520
|
+
"""8k+eMCG/QYHG2jJoIZ6ucXs3ZRiTGlhZZDNxEDBYosmHX7sGCam9zDae8Z8DOQkcT4SeFTRfLM4ezFA0"""
|
521
|
+
"""JjjW+ktKySWQvq1o7y23g5SZg1J3wygFA7sUmWGjs5NreiZE+kvCSzuMEnPOaG/aXGXAH9YcHO4aQpzo"""
|
522
|
+
"""WpU0iynPart24q4UnJSSvK7KJlzA7Xotbmmi0AQHUENdFpmnVzEWtZ14aV6PBLKW0uFQFMyiiacd/sBK"""
|
523
|
+
"""msVmGbCo7YQhMLtQT6NiusSvfxokyacOvqpNTHG3zAjtTa8/fIxS5W1V9EvLbnXxSl2V9afgVdp24j6t"""
|
524
|
+
"""/WmC6cFKel64HChoEO+7BPbcsGKEl16WaUV4VdKH334oZLHBbgqtGbh7eNs1mJglG9Qo/0okPa9o7/L6"""
|
525
|
+
"""MKjDHF+LbErNd70LWiIIIfUhiwj0jNI8LmG+IAYdLA3ZpasBITV09KXnwS707EOxKehbiL77H9jOY+Sd"""
|
526
|
+
"""T/esW+8EFIwYXK0Pki0K6khLCFEAbBzpn3b6BQruMyxajTd+AAAAAElFTkSuQmCC"""
|
527
|
+
)
|
tksheet/find_window.py
CHANGED
@@ -59,33 +59,51 @@ class FindWindowTkText(tk.Text):
|
|
59
59
|
self.rc_popup_menu.add_command(
|
60
60
|
label=sheet_ops.select_all_label,
|
61
61
|
accelerator=sheet_ops.select_all_accelerator,
|
62
|
+
image=sheet_ops.select_all_image,
|
63
|
+
compound=sheet_ops.select_all_compound,
|
62
64
|
command=self.select_all,
|
63
65
|
**menu_kwargs,
|
64
66
|
)
|
65
67
|
self.rc_popup_menu.add_command(
|
66
68
|
label=sheet_ops.cut_label,
|
67
69
|
accelerator=sheet_ops.cut_accelerator,
|
70
|
+
image=sheet_ops.cut_image,
|
71
|
+
compound=sheet_ops.cut_compound,
|
68
72
|
command=self.cut,
|
69
73
|
**menu_kwargs,
|
70
74
|
)
|
71
75
|
self.rc_popup_menu.add_command(
|
72
76
|
label=sheet_ops.copy_label,
|
73
77
|
accelerator=sheet_ops.copy_accelerator,
|
78
|
+
image=sheet_ops.copy_image,
|
79
|
+
compound=sheet_ops.copy_compound,
|
74
80
|
command=self.copy,
|
75
81
|
**menu_kwargs,
|
76
82
|
)
|
77
83
|
self.rc_popup_menu.add_command(
|
78
84
|
label=sheet_ops.paste_label,
|
79
85
|
accelerator=sheet_ops.paste_accelerator,
|
86
|
+
image=sheet_ops.paste_image,
|
87
|
+
compound=sheet_ops.paste_compound,
|
80
88
|
command=self.paste,
|
81
89
|
**menu_kwargs,
|
82
90
|
)
|
83
91
|
self.rc_popup_menu.add_command(
|
84
92
|
label=sheet_ops.undo_label,
|
85
93
|
accelerator=sheet_ops.undo_accelerator,
|
94
|
+
image=sheet_ops.undo_image,
|
95
|
+
compound=sheet_ops.undo_compound,
|
86
96
|
command=self.undo,
|
87
97
|
**menu_kwargs,
|
88
98
|
)
|
99
|
+
self.rc_popup_menu.add_command(
|
100
|
+
label=sheet_ops.redo_label,
|
101
|
+
accelerator=sheet_ops.redo_accelerator,
|
102
|
+
image=sheet_ops.redo_image,
|
103
|
+
compound=sheet_ops.redo_compound,
|
104
|
+
command=self.redo,
|
105
|
+
**menu_kwargs,
|
106
|
+
)
|
89
107
|
|
90
108
|
def rc(self, event: Any) -> None:
|
91
109
|
"""Show the right-click popup menu."""
|
@@ -108,8 +126,8 @@ class FindWindowTkText(tk.Text):
|
|
108
126
|
|
109
127
|
def select_all(self, event: Any = None) -> Literal["break"]:
|
110
128
|
"""Select all text in the widget."""
|
111
|
-
self.tag_add(tk.SEL, "1.0",
|
112
|
-
self.mark_set(tk.INSERT,
|
129
|
+
self.tag_add(tk.SEL, "1.0", "end-1c")
|
130
|
+
self.mark_set(tk.INSERT, "end-1c")
|
113
131
|
return "break"
|
114
132
|
|
115
133
|
def cut(self, event: Any = None) -> Literal["break"]:
|
@@ -135,6 +153,11 @@ class FindWindowTkText(tk.Text):
|
|
135
153
|
self.event_generate("<KeyRelease>")
|
136
154
|
return "break"
|
137
155
|
|
156
|
+
def redo(self, event: Any = None) -> Literal["break"]:
|
157
|
+
self.event_generate(f"<{ctrl_key}-Shift-z>")
|
158
|
+
self.event_generate("<KeyRelease>")
|
159
|
+
return "break"
|
160
|
+
|
138
161
|
|
139
162
|
class Tooltip(tk.Toplevel):
|
140
163
|
def __init__(self, parent: tk.Misc, text: str, bg: str, fg: str) -> None:
|
tksheet/functions.py
CHANGED
@@ -433,7 +433,7 @@ def push_n(num: int, sorted_seq: Sequence[int]) -> int:
|
|
433
433
|
def get_menu_kwargs(ops: DotDict[str, Any]) -> DotDict[str, Any]:
|
434
434
|
return DotDict(
|
435
435
|
{
|
436
|
-
"font": ops.
|
436
|
+
"font": ops.popup_menu_font,
|
437
437
|
"foreground": ops.popup_menu_fg,
|
438
438
|
"background": ops.popup_menu_bg,
|
439
439
|
"activebackground": ops.popup_menu_highlight_bg,
|
@@ -1109,6 +1109,14 @@ def try_binding(
|
|
1109
1109
|
return True
|
1110
1110
|
|
1111
1111
|
|
1112
|
+
def menu_item_exists(menu: tk.Menu, label: str) -> bool:
|
1113
|
+
try:
|
1114
|
+
menu.index(label)
|
1115
|
+
return True
|
1116
|
+
except Exception:
|
1117
|
+
return False
|
1118
|
+
|
1119
|
+
|
1112
1120
|
def span_dict(
|
1113
1121
|
from_r: int | None = None,
|
1114
1122
|
from_c: int | None = None,
|