working
This commit is contained in:
commit
a385308f38
44 changed files with 1614 additions and 0 deletions
59
app/ui/sidebar.py
Normal file
59
app/ui/sidebar.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
"""Боковая панель"""
|
||||
import tkinter as tk
|
||||
from app.config import Config
|
||||
from app.ui.calendar_widget import CalendarWidget
|
||||
from app.ui.notes_list import NotesList
|
||||
|
||||
|
||||
class Sidebar(tk.Frame):
|
||||
"""Левая боковая панель"""
|
||||
|
||||
def __init__(self, parent, db, on_date_select=None, on_note_select=None, on_note_delete=None):
|
||||
super().__init__(parent, bg=Config.COLORS['sidebar_bg'], width=Config.SIDEBAR_WIDTH)
|
||||
self.db = db
|
||||
self.on_note_select = on_note_select
|
||||
|
||||
self.pack_propagate(False)
|
||||
self.pack(side='left', fill='y')
|
||||
|
||||
self.create_widgets(on_date_select, on_note_delete)
|
||||
|
||||
def create_widgets(self, on_date_select, on_note_delete):
|
||||
# Календарь
|
||||
self.calendar = CalendarWidget(
|
||||
self,
|
||||
self.db,
|
||||
on_date_select=self.on_date_selected
|
||||
)
|
||||
self.calendar.pack(fill='x')
|
||||
|
||||
# Разделитель
|
||||
separator = tk.Frame(self, height=2, bg=Config.COLORS['separator'])
|
||||
separator.pack(fill='x', padx=10, pady=(5, 0))
|
||||
|
||||
# Список заметок
|
||||
self.notes_list = NotesList(
|
||||
self,
|
||||
self.db,
|
||||
on_note_select=self.on_note_selected,
|
||||
on_note_delete=on_note_delete
|
||||
)
|
||||
self.notes_list.pack(fill='both', expand=True)
|
||||
|
||||
def on_date_selected(self, date):
|
||||
"""Обработчик выбора даты в календаре"""
|
||||
self.notes_list.refresh(date)
|
||||
|
||||
def on_note_selected(self, note):
|
||||
"""Обработчик выбора заметки"""
|
||||
if self.on_note_select:
|
||||
self.on_note_select(note)
|
||||
|
||||
def refresh_notes(self):
|
||||
"""Обновить список заметок для текущей даты"""
|
||||
if self.calendar:
|
||||
self.notes_list.refresh(self.calendar.selected_date)
|
||||
|
||||
def get_selected_date(self):
|
||||
"""Получить выбранную дату"""
|
||||
return self.calendar.selected_date if self.calendar else None
|
||||
Loading…
Add table
Add a link
Reference in a new issue