import tkinter as tk from ui.icons.icons import icons class LabelWithRefresh(tk.Frame): def __init__(self, parent, initial_text, callback, initial_state=tk.DISABLED): super().__init__(parent) self.callback = callback self._create_ui(initial_text, initial_state) def _create_ui(self, initial_text, initial_state): self.refresh_button = tk.Button(self, image=icons["refresh"], state=initial_state, command=self.callback) self.refresh_button.pack(side=tk.RIGHT, padx=5) self.label = tk.Label(self, text=initial_text) self.label.pack(side=tk.RIGHT, padx=5) def set_state(self, state): self.refresh_button.config(state=state) def set_text(self, text): self.label.config(text=text)