bootstack 0.4.6__tar.gz → 0.4.7__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.
- {bootstack-0.4.6/src/bootstack.egg-info → bootstack-0.4.7}/PKG-INFO +1 -1
- {bootstack-0.4.6 → bootstack-0.4.7}/pyproject.toml +2 -2
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/contextmenu.py +21 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/selectbox.py +47 -5
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tableview/tableview.py +2 -1
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/core.py +1 -12
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tree/treeitem.py +7 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/select.py +5 -1
- {bootstack-0.4.6 → bootstack-0.4.7/src/bootstack.egg-info}/PKG-INFO +1 -1
- {bootstack-0.4.6 → bootstack-0.4.7}/LICENSE +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/MANIFEST.in +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/NOTICE +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/README.md +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/setup.cfg +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/__main__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/capture.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/exceptions.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/images.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/localization.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/mixins/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/mixins/ttk_state.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/mixins/widget.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/paths.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/signal_binding.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_core/variables.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/app.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/base_window.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/events.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/grab.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/shortcuts.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/tk_patch.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/toplevel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/utility.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/visual_focus.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/wheel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/_runtime/window_utilities.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/bootstack.ico +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/bootstack.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/badge-pill.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/badge-square.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/button-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/button-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-h-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-h-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-v-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-v-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-h-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-h-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-v-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-v-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-h-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-h-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-v-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-v-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/card.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/checkbox-checked.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/checkbox-indeterminate.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/checkbox-unchecked.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/field.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/input-addon-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/input-addon-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/input-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/input-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/list-item-separated.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/list-item.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/listrow-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/listrow-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/manifest.toml +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/menu-item.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/navitem-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/navitem-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/progressbar-h-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/progressbar-h-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/progressbar-v-compact.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/progressbar-v-default.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/radiobutton.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/scrollbar-horizontal.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/scrollbar-vertical.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/slider-handle.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/slider-track-h.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/slider-track-v.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/switch-off.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/switch-on.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/tab-h.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/tab-v.png +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/icons/bootstrap.ttf +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/icons/glyphmap.json +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/icons/icon_metrics.json +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.mo +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.po +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/__main__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/add.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/appicon.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/build.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/config.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/demo.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/dev.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/doctor.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/icons.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/promote.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/pyinstaller.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/run.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/start.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/cli/templates/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/clipboard.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/constants.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/README.md +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/_observable.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/base.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/file_source.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/memory_source.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/query.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/readers.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/sqlite_source.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/data/writers.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/_capture.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/_env.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/_registry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/_reloader.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/_reset.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dev/_watcher.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/colorchooser.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/datedialog.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/dialog.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/filterdialog.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/fontdialog.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/formdialog.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/message.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/dialogs/_impl/query.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/errors.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/events/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/events/_event.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/events/_payloads.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/events/_subscription.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/i18n/README.md +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/i18n/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/i18n/catalog.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/i18n/intl_format.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/i18n/msgcat.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/i18n/specs.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/images.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/py.typed +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/scheduling/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/scheduling/_schedule.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/shortcuts.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/signals/README.md +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/signals/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/signals/integration.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/signals/signal.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/signals/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/store.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/streams/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/streams/_stream.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/badge.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/button.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/buttongroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/calendar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/checkbutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/combobox.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/contextmenu.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/entry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/expander.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/field.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/frame.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/label.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/labelframe.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/listview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/menubar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/menubutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/panedwindow.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/progressbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/radiobutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/scale.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/scrollbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/separator.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/sidenav.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/sizegrip.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/spinbox.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/switch.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/tabitem.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/togglegroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/toolbutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/tooltip.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/treeview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders/utils.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders_tk/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/builders_tk/defaults.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/element.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/fonts.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/style.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/style_builder_base.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/style_builder_mixed.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/style_builder_tk.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/style_builder_ttk.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/style_resolver.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/theme.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/theme_provider.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/themes/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/tk_patch.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/token_maps.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/typography.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/style/utility.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/validation/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/validation/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/validation/validation_result.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/validation/validation_rules.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/app_config.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/base.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/choices.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/container.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/context.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/events.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/field_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/icon_image_props.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/image_binding.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/kwargs.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/navmodel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/options.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/selection_group.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/window_controls.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_core/window_menu.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/_internal/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/_internal/wrapper_base.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/_parts/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/_parts/numberentry_part.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/_parts/spinnerentry_part.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/_parts/textentry_part.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/_dateutils.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/_image_fit.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/accordion.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/avatar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/buttongroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/calendar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/carousel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/chart.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/compositeframe.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/dateentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/dropdownbutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/expander.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/field.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/form.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/gallery.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/list/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/list/listitem.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/list/listview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/menu/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/menu/model.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/menu/render_native.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/menu/render_themed.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/meter.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/numericentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/pagestack.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/passwordentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/pathentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/picture.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/radiogroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/scrolledtext.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/scrolledtext.pyi +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/scrollview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/content_host.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/layout.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/nav_panel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/providers.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/rail.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/shell.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/shell/workspace.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/sidenav/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/sidenav/header.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/sidenav/separator.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/slider/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/slider/_shared.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/slider/rangeslider.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/slider/slider.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/spinnerentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tableview/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tableview/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tabs/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tabs/tabitem.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tabs/tabs.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tabs/tabview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/change.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/codeeditor.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/decoration.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/diff.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/extensions/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/extensions/bracket_matcher.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/extensions/indent_guides.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/extensions/line_numbers.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/extensions/pygments_highlighter.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/extensions/smart_indent.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/filter.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/redirector.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/search_overlay.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/sidebar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/style_registry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/textarea.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textarea/undo.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/textentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/timeentry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/toast.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/toast_stack.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/togglegroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/toolbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tooltip.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tree/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tree/source_binding.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tree/treenode.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tree/treeview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/configure_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/entry_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/font_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/icon_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/localization_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/signal_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/mixins/validation_mixin.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/__init__.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/_menubutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/badge.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/button.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/card.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/checkbutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/checktoggle.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/combobox.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/entry.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/flexframe.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/frame.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/gridframe.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/label.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/labelframe.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/optionmenu.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/packframe.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/panedwindow.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/progressbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/radiobutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/radiotoggle.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/scrollbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/separator.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/sizegrip.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/spinbox.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/switch.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/primitives/treeview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/app.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/appshell.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/avatar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/boolean_controls.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/button.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/buttongroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/calendar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/card.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/carousel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/chart.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/codeeditor.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/contextmenu.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/datatable.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/datefield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/divider.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/expander.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/form.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/gallery.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/gauge.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/grid.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/groupbox.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/label.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/listview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/menubutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/numberfield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/pagestack.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/passwordfield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/pathfield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/picture.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/progressbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/radio_variants.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/radiogroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/scrollbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/scrollview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/selectbutton.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/sidebar_toggle.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/sizegrip.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/slider.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/spinbox.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/spinnerfield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/splash.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/splitview.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/stacks.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/statusbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/tabs.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/textarea.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/textfield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/theme_toggle.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/timefield.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/toast.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/togglegroup.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/toolbar.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/tooltip.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/tree.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/types.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/window.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack.egg-info/SOURCES.txt +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack.egg-info/dependency_links.txt +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack.egg-info/entry_points.txt +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack.egg-info/requires.txt +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack.egg-info/top_level.txt +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_dialog_anchor.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_events_doc_coverage.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_hot_reload.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_images.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_images_gui.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_intl_format.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_navmodel.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_on_color_contrast.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_public_surface.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_store.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_theme_from_existing.py +0 -0
- {bootstack-0.4.6 → bootstack-0.4.7}/tests/test_validation_rules.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bootstack
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.7
|
|
4
4
|
Summary: Build desktop GUI apps in pure Python and ship them as a standalone executable — built on Tk, no Tkinter boilerplate.
|
|
5
5
|
Author-email: Israel Dryer <israel.dryer@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bootstack"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.7"
|
|
8
8
|
description = "Build desktop GUI apps in pure Python and ship them as a standalone executable — built on Tk, no Tkinter boilerplate."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -114,7 +114,7 @@ where = ["src"]
|
|
|
114
114
|
]
|
|
115
115
|
|
|
116
116
|
[tool.bumpversion]
|
|
117
|
-
current_version = "0.4.
|
|
117
|
+
current_version = "0.4.7"
|
|
118
118
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)((?P<pre>a|b|rc)(?P<pre_n>\\d+))?"
|
|
119
119
|
serialize = [
|
|
120
120
|
"{major}.{minor}.{patch}{pre}{pre_n}",
|
|
@@ -4,6 +4,7 @@ Provides a customizable context menu with support for commands, checkbuttons,
|
|
|
4
4
|
radiobuttons, and separators.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
+
import weakref
|
|
7
8
|
from tkinter import BooleanVar, IntVar, Misc, StringVar, TclError, Toplevel, Widget
|
|
8
9
|
from typing_extensions import Unpack
|
|
9
10
|
from typing import Any, Callable, Literal
|
|
@@ -42,6 +43,23 @@ On Windows and Linux the result is the created widget. On macOS (native
|
|
|
42
43
|
# explicitly" (no target — no positioning, no auto-trigger).
|
|
43
44
|
_TARGET_DEFAULT: Any = object()
|
|
44
45
|
|
|
46
|
+
# Themed menus currently shown. Weak, so a new menu torn down with its parent
|
|
47
|
+
# is not pinned here (it's destroy()) is never called.
|
|
48
|
+
_OPEN_MENUS: "weakref.WeakSet[_ToplevelContextMenu]" = weakref.WeakSet()
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def hide_open_menus() -> None:
|
|
52
|
+
"""Hide every open themed context menu.
|
|
53
|
+
|
|
54
|
+
Call this from a click handler that returns 'break': the break stops the
|
|
55
|
+
click before the window-level outside-click handler can close the menu.
|
|
56
|
+
"""
|
|
57
|
+
for menu in list(_OPEN_MENUS):
|
|
58
|
+
try:
|
|
59
|
+
menu.hide()
|
|
60
|
+
except TclError:
|
|
61
|
+
_OPEN_MENUS.discard(menu)
|
|
62
|
+
|
|
45
63
|
|
|
46
64
|
class _CommandItemFrame(CompositeFrame):
|
|
47
65
|
"""Container frame for command items that delegates to the inner button.
|
|
@@ -648,6 +666,7 @@ class _ToplevelContextMenu(CustomConfigMixin):
|
|
|
648
666
|
self._toplevel.attributes('-topmost', True)
|
|
649
667
|
self._toplevel.lift()
|
|
650
668
|
self._toplevel.focus_force()
|
|
669
|
+
_OPEN_MENUS.add(self)
|
|
651
670
|
|
|
652
671
|
# Start with no item highlighted (keyboard nav will highlight on first arrow key)
|
|
653
672
|
self._highlighted_index = -1
|
|
@@ -737,6 +756,7 @@ class _ToplevelContextMenu(CustomConfigMixin):
|
|
|
737
756
|
|
|
738
757
|
def hide(self) -> None:
|
|
739
758
|
"""Hide the context menu."""
|
|
759
|
+
_OPEN_MENUS.discard(self)
|
|
740
760
|
# Unbind click handler first
|
|
741
761
|
self._cancel_click_outside_after()
|
|
742
762
|
self._unbind_click_outside_handler()
|
|
@@ -756,6 +776,7 @@ class _ToplevelContextMenu(CustomConfigMixin):
|
|
|
756
776
|
|
|
757
777
|
def destroy(self) -> None:
|
|
758
778
|
"""Destroy the context menu and cleanup resources."""
|
|
779
|
+
_OPEN_MENUS.discard(self)
|
|
759
780
|
# Unbind click handler
|
|
760
781
|
self._cancel_click_outside_after()
|
|
761
782
|
self._unbind_click_outside_handler()
|
|
@@ -391,7 +391,48 @@ class SelectBox(Field):
|
|
|
391
391
|
text = self.entry_widget.get()
|
|
392
392
|
if text in self._value_by_text and self._value_by_text[text] != text:
|
|
393
393
|
return self._value_by_text[text]
|
|
394
|
-
return self._entry_live_validation_value
|
|
394
|
+
return self._decode_custom_text(text, self._entry_live_validation_value)
|
|
395
|
+
|
|
396
|
+
def _numeric_option_kind(self):
|
|
397
|
+
"""`int` or `float` when every option value shares that type, else None."""
|
|
398
|
+
# type(), not isinstance: bool never reads as int here, so a bool option
|
|
399
|
+
# list falls out as "not numeric" without a special case.
|
|
400
|
+
kinds = {type(rec.value) for rec in self._records}
|
|
401
|
+
if len(kinds) != 1:
|
|
402
|
+
return None
|
|
403
|
+
kind = kinds.pop()
|
|
404
|
+
return kind if kind in (int, float) else None
|
|
405
|
+
|
|
406
|
+
def _decode_custom_text(self, text, fallback):
|
|
407
|
+
"""Decode text that names no option: the options' own type when they share one.
|
|
408
|
+
|
|
409
|
+
A value typed by the user arrives as text with nothing to parse it,
|
|
410
|
+
while one assigned from code arrives already typed. When every option
|
|
411
|
+
value is an `int`, or every one a `float`, numeric text is parsed to
|
|
412
|
+
that type so both routes agree. Anything else — a mixed or empty
|
|
413
|
+
list, `str` or `bool` options, text that is not a number, an entry
|
|
414
|
+
that parses through its own `value_format` — is handed to `fallback`,
|
|
415
|
+
which is what the entry reported before.
|
|
416
|
+
|
|
417
|
+
A whole-number `float` narrows to `int` for `int` options; `'6.5'`
|
|
418
|
+
against `int` options stays `6.5` rather than being truncated.
|
|
419
|
+
"""
|
|
420
|
+
if self.entry_widget._value_format is not None:
|
|
421
|
+
return fallback()
|
|
422
|
+
if getattr(self.entry_widget, "_showing_placeholder", False):
|
|
423
|
+
return fallback()
|
|
424
|
+
kind = self._numeric_option_kind()
|
|
425
|
+
if kind is None:
|
|
426
|
+
return fallback()
|
|
427
|
+
try:
|
|
428
|
+
parsed = self.entry_widget._fmt.parse(text, "decimal")
|
|
429
|
+
except ValueError:
|
|
430
|
+
return fallback()
|
|
431
|
+
if parsed is None:
|
|
432
|
+
return fallback()
|
|
433
|
+
if kind is int and not parsed.is_integer():
|
|
434
|
+
return parsed
|
|
435
|
+
return kind(parsed)
|
|
395
436
|
|
|
396
437
|
def _register_retired_value(self, value: Any) -> None:
|
|
397
438
|
"""Make a value that is not in the option list decodable.
|
|
@@ -1185,16 +1226,17 @@ class SelectBox(Field):
|
|
|
1185
1226
|
"""The selected value, or None when the field is empty.
|
|
1186
1227
|
|
|
1187
1228
|
For a decoupled option (its display text differs from its value) this
|
|
1188
|
-
returns the option's value.
|
|
1189
|
-
|
|
1190
|
-
|
|
1229
|
+
returns the option's value. A custom value typed by the user takes the
|
|
1230
|
+
type the options share when that is `int` or `float`. Otherwise it
|
|
1231
|
+
returns the entry's own raw value, so `value_format` parsing — e.g.
|
|
1232
|
+
TimeField's `datetime.time` — is preserved.
|
|
1191
1233
|
"""
|
|
1192
1234
|
text = self.entry_widget.get()
|
|
1193
1235
|
if text == "":
|
|
1194
1236
|
return None
|
|
1195
1237
|
if text in self._value_by_text and self._value_by_text[text] != text:
|
|
1196
1238
|
return self._value_by_text[text]
|
|
1197
|
-
return Field.value.fget(self)
|
|
1239
|
+
return self._decode_custom_text(text, lambda: Field.value.fget(self))
|
|
1198
1240
|
|
|
1199
1241
|
@value.setter
|
|
1200
1242
|
def value(self, value):
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/widgets/_impl/composites/tableview/tableview.py
RENAMED
|
@@ -30,7 +30,7 @@ from bootstack.data.sqlite_source import SqliteDataSource
|
|
|
30
30
|
from bootstack.data.query import col, any_of, all_of
|
|
31
31
|
from bootstack.widgets._impl.primitives.button import Button
|
|
32
32
|
from bootstack._runtime.utility import bind_right_click, debug_log_exception
|
|
33
|
-
from bootstack.widgets._impl.composites.contextmenu import ContextMenu
|
|
33
|
+
from bootstack.widgets._impl.composites.contextmenu import ContextMenu, hide_open_menus
|
|
34
34
|
from bootstack.widgets._impl.composites.tooltip import ToolTip
|
|
35
35
|
from bootstack.widgets._impl.composites.dropdownbutton import DropdownButton
|
|
36
36
|
from bootstack.widgets._impl.primitives.entry import Entry
|
|
@@ -1644,6 +1644,7 @@ class TableView(Frame):
|
|
|
1644
1644
|
# ------------------------------------------------------------------ Row context menu
|
|
1645
1645
|
def _dismiss_context_menus(self) -> None:
|
|
1646
1646
|
"""Hide any open built-in row/header context menu (idempotent)."""
|
|
1647
|
+
hide_open_menus()
|
|
1647
1648
|
for menu in (self._row_menu, self._header_menu):
|
|
1648
1649
|
if menu is not None:
|
|
1649
1650
|
try:
|
|
@@ -524,26 +524,15 @@ class _MultilineCore(tk.Frame):
|
|
|
524
524
|
|
|
525
525
|
# ── convenience: forward common Text API to self ──────────────────────
|
|
526
526
|
|
|
527
|
-
def bind(self, sequence=None, func=None, add=None):
|
|
528
|
-
return self.text.bind(sequence, func, add)
|
|
529
|
-
|
|
530
|
-
def unbind(self, sequence, funcid=None):
|
|
531
|
-
return self.text.unbind(sequence, funcid)
|
|
532
|
-
|
|
533
527
|
def focus_set(self):
|
|
534
528
|
self.text.focus_set()
|
|
535
529
|
|
|
536
530
|
# ── cleanup ───────────────────────────────────────────────────────────
|
|
537
531
|
|
|
538
532
|
def _on_destroy(self, event: tk.Event) -> None:
|
|
539
|
-
# Released for any Destroy in this subtree, not just our own: the event
|
|
540
|
-
# this handler receives names the inner Text, never the core, so gating
|
|
541
|
-
# the release on `is self` releases nothing and the subscription outlives
|
|
542
|
-
# the widget. The rest of the block stays behind the guard -- it has
|
|
543
|
-
# never run, and starting it here is not this change's business.
|
|
544
|
-
self._unbind_signal()
|
|
545
533
|
if event.widget is not self:
|
|
546
534
|
return
|
|
535
|
+
self._unbind_signal()
|
|
547
536
|
self._chain.destroy()
|
|
548
537
|
try:
|
|
549
538
|
for seq in wheel.wheel_sequences(self):
|
|
@@ -14,6 +14,7 @@ from tkinter import TclError
|
|
|
14
14
|
from typing import Any, Optional
|
|
15
15
|
|
|
16
16
|
from bootstack.widgets._impl.composites.compositeframe import CompositeFrame
|
|
17
|
+
from bootstack.widgets._impl.composites.contextmenu import hide_open_menus
|
|
17
18
|
from bootstack.widgets._impl.primitives.button import Button
|
|
18
19
|
from bootstack.widgets._impl.primitives.frame import Frame
|
|
19
20
|
from bootstack.widgets._impl.primitives.label import Label
|
|
@@ -193,6 +194,9 @@ class TreeItem(CompositeFrame):
|
|
|
193
194
|
self._emit("<<TreeItemSelect>>", self._node)
|
|
194
195
|
|
|
195
196
|
def _on_ctrl_click(self, event=None) -> str:
|
|
197
|
+
# The 'break' below stops the click before an open menu's outside-click
|
|
198
|
+
# handler sees it, so close the open menus here
|
|
199
|
+
hide_open_menus()
|
|
196
200
|
if self._node is not None:
|
|
197
201
|
if self._focusable:
|
|
198
202
|
self.focus()
|
|
@@ -209,6 +213,9 @@ class TreeItem(CompositeFrame):
|
|
|
209
213
|
return "break"
|
|
210
214
|
|
|
211
215
|
def _on_right_click(self, event) -> str:
|
|
216
|
+
# The 'break' below stops the click before an open menu's outside-click
|
|
217
|
+
# handler sees it, so close open menus before this row opens its own
|
|
218
|
+
hide_open_menus()
|
|
212
219
|
if self._node is not None:
|
|
213
220
|
self._emit(
|
|
214
221
|
"<<TreeItemRightClick>>",
|
|
@@ -50,7 +50,11 @@ class Select(ValueSignalMixin, FieldAddonMixin, PublicWidgetBase):
|
|
|
50
50
|
searchable: If `True`, typing in the field filters the option
|
|
51
51
|
list. Defaults to `False`.
|
|
52
52
|
allow_custom_values: If `True`, users may type values not in
|
|
53
|
-
`options`.
|
|
53
|
+
`options`. A typed value takes the type the option values share:
|
|
54
|
+
when every option value is an `int`, or every one a `float`,
|
|
55
|
+
numeric text is read as that type; otherwise, and for text that
|
|
56
|
+
is not a number, the value is the text as typed. Defaults to
|
|
57
|
+
`False`.
|
|
54
58
|
group_by: Name of an option field to cluster the popup rows under
|
|
55
59
|
non-selectable group headers (e.g. `'category'`). The field is read
|
|
56
60
|
from each option's flat record, so it may be any carried bag key (or
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bootstack
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.7
|
|
4
4
|
Summary: Build desktop GUI apps in pure Python and ship them as a standalone executable — built on Tk, no Tkinter boilerplate.
|
|
5
5
|
Author-email: Israel Dryer <israel.dryer@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-h-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-h-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-v-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-after-v-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-h-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-h-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-v-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-before-v-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-h-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-h-default.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-v-compact.png
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/buttongroup-center-v-default.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/elements/checkbox-indeterminate.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ar/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/bg/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/cs/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/da/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/de/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/en/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/es/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/fr/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/he/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/hi/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/it/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ja/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/ko/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nb/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/nl/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pl/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/pt_BR/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sl/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/sv/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/tr/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_CN/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.mo
RENAMED
|
File without changes
|
{bootstack-0.4.6 → bootstack-0.4.7}/src/bootstack/assets/locales/zh_TW/LC_MESSAGES/bootstack.po
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|