No description
Find a file
2026-07-27 21:08:36 +02:00
custom_file_dialog feat/fix: Update AnimatedIcon logic, update wirepy references, bump version and remove old releases 2026-07-27 20:54:54 +02:00
screenshots docs: Add missing screenshot and update README.md 2026-07-27 21:00:01 +02:00
.gitignore chore: Remove build script and deb packages from repository tracking 2026-07-27 21:08:36 +02:00
__init__.py Reduced redundancy, logviewer fulll removed , add log_window and menu_bar 2025-08-12 22:44:49 +02:00
animated_icon.py style: Adjust line thickness and increase animation speed 2026-07-27 20:44:04 +02:00
CHANGELOG.md feat/fix: Update AnimatedIcon logic, update wirepy references, bump version and remove old releases 2026-07-27 20:54:54 +02:00
common_tools.py feat/fix: Update AnimatedIcon logic, update wirepy references, bump version and remove old releases 2026-07-27 20:54:54 +02:00
config_manager.py Initial commit with security-checked .gitignore 2026-02-13 13:20:47 +01:00
LICENSE Initial commit 2025-05-30 09:38:41 +02:00
log_window.py Fix LogWindow attribute error and duplicate context menu 2026-07-18 15:48:17 +02:00
logger.py Initial commit with security-checked .gitignore 2026-02-13 13:20:47 +01:00
message.py Fix(core): Fix NameError parent not defined in message dialog 2026-07-23 10:03:51 +02:00
README.md docs: Add missing screenshot and update README.md 2026-07-27 21:00:01 +02:00

LxTools Shared Libraries

A collection of shared UI components and utility libraries for the LxTools application suite.

Features

  • Custom File Dialog (CustomFileDialog): A modern, themeable file selection dialog.
  • Message Dialogs (MessageDialog): Highly customizable, theme-aware popup dialogs for alerts, questions, and info messages.
  • Animated Icons (AnimatedIcon): A custom Tkinter Canvas widget supporting smooth, anti-aliased (Pillow-based) animations (spinners, arcs, pulses, etc.) with native HiDPI support.
  • Common Tools: Reusable utility functions for logging, configuration management, and system integration.

Animated Icon Demo

Here is a quick example of how to use the AnimatedIcon for both dark and light themes.

import tkinter as tk
from shared_libs.animated_icon import AnimatedIcon

root = tk.Tk()
root.title("Animated Icon Demo")
root.geometry("450x250")
root.configure(bg="#2d2d2d")  # Dark background

animations = ["line", "double_arc", "counter_arc", "blink"]

# Example 1: Dark Theme Spinners
lbl_dark = tk.Label(root, text="Dark Theme Animations:", bg="#2d2d2d", fg="white", font=("Ubuntu", 10, "bold"))
lbl_dark.pack(pady=(20, 5))

frame_dark_icons = tk.Frame(root, bg="#2d2d2d")
frame_dark_icons.pack(pady=(0,10))

for anim in animations:
    icon = AnimatedIcon(
        frame_dark_icons, 
        width=64, height=64, 
        animation_type=anim, 
        color="#3498db",           # Base color
        highlight_color="#ffffff", # Highlight/Spinner color
        use_pillow=True,
        bg="#2d2d2d"
    )
    icon.pack(side="left", padx=15)
    icon.start()

# Example 2: Light Theme Spinners
frame_light = tk.Frame(root, bg="#f0f0f0", pady=20)
frame_light.pack(fill="both", expand=True, side="bottom")

lbl_light = tk.Label(frame_light, text="Light Theme Animations:", bg="#f0f0f0", fg="black", font=("Ubuntu", 10, "bold"))
lbl_light.pack(pady=5)

frame_light_icons = tk.Frame(frame_light, bg="#f0f0f0")
frame_light_icons.pack()

for anim in animations:
    icon = AnimatedIcon(
        frame_light_icons, 
        width=64, height=64, 
        animation_type=anim, 
        color="#bdc3c7",           # Base color
        highlight_color="#2c3e50", # Highlight/Spinner color
        use_pillow=True,
        bg="#f0f0f0"
    )
    icon.pack(side="left", padx=15)
    icon.start()

root.mainloop()

Screenshots

📸 Show Screenshots (Click here)

Custom File Dialog

Custom File Dialog 1 Custom File Dialog 2 Custom File Dialog 3

Message Dialogs & Animated Icons

Message Dialog 1 Message Dialog 2 Message Dialog 3 Message Dialog 4 Message Dialog 5 Animation 6

Installation

This library is a core dependency for the LxTools suite and is typically installed automatically. If you need to install it manually from the repository:

sudo apt update
sudo apt install python3-shared-libs