Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added assets/Basic_GUI_Bundle/Icons/Edit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
866 changes: 813 additions & 53 deletions configs/quadrants.json

Large diffs are not rendered by default.

5 changes: 0 additions & 5 deletions quadrants_editor.py

This file was deleted.

38 changes: 32 additions & 6 deletions src/windows/components/navbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def __init__(self, screen_width: int, height: int = 50) -> None:
menu_icon_path = "assets/Basic_GUI_Bundle/Icons/Icon_Small_WhiteOutline_Menu.png"
music_on_icon_path = "assets/Basic_GUI_Bundle/Icons/Icon_Small_WhiteOutline_Music.png"
music_off_icon_path = "assets/Basic_GUI_Bundle/Icons/Icon_Small_WhiteOutline_MusicOff.png"
edit_icon_path = "assets/Basic_GUI_Bundle/Icons/Edit.png"
button_bg_path = "assets/Basic_GUI_Bundle/ButtonsIcons/IconButton_Small_Blank_Rounded.png"

self.home_button = ImageButton(
Expand All @@ -36,6 +37,17 @@ def __init__(self, screen_width: int, height: int = 50) -> None:
icon_path=star_icon_path
)

self.quadrant_editor_button = ImageButton(
self.width - (btn_size * 3) - (padding * 3),
(self.height - btn_size) // 2,
btn_size,
btn_size,
"",
self.open_quadrant_editor,
bg_image_path=button_bg_path,
icon_path=edit_icon_path
)

self.music_button = ImageButton(
self.width - (btn_size * 2) - (padding * 2),
(self.height - btn_size) // 2,
Expand All @@ -62,6 +74,7 @@ def __init__(self, screen_width: int, height: int = 50) -> None:

self.home_callback: Optional[Callable] = None
self.settings_callback: Optional[Callable] = None
self.quadrant_editor_callback: Optional[Callable] = None

def toggle_music(self) -> None:
"""
Expand All @@ -75,9 +88,10 @@ def toggle_music(self) -> None:
self.music_button.load_icon()
Logger.info("NavBar", f"Music {'muted' if self.music_manager.is_muted else 'unmuted'}")

def set_callbacks(self, home_callback: Optional[Callable] = None, settings_callback: Optional[Callable] = None) -> None:
def set_callbacks(self, home_callback: Optional[Callable] = None, settings_callback: Optional[Callable] = None, quadrant_editor_callback: Optional[Callable] = None) -> None:
self.home_callback = home_callback
self.settings_callback = settings_callback
self.quadrant_editor_callback = quadrant_editor_callback

def home_action(self) -> None:
if self.home_callback:
Expand All @@ -91,13 +105,24 @@ def settings_action(self) -> None:
else:
Logger.warning("NavBar", "Settings button pressed but no callback set")

def handle_events(self, event: pygame.event.Event) -> None:
self.home_button.handle_event(event)
self.music_button.handle_event(event)
self.settings_button.handle_event(event)
def open_quadrant_editor(self) -> None:
"""
procédure : ouvre l'éditeur de quadrants """
if self.quadrant_editor_callback:
self.quadrant_editor_callback()
else:
Logger.warning("NavBar", "Quadrant editor button pressed but no callback set")
def handle_event(self, event: pygame.event.Event) -> bool:
handled = False
handled |= self.home_button.handle_event(event)
handled |= self.quadrant_editor_button.handle_event(event)
handled |= self.music_button.handle_event(event)
handled |= self.settings_button.handle_event(event)
return handled

def update(self, mouse_pos: Tuple[int, int]) -> None:
self.home_button.check_hover(mouse_pos)
self.quadrant_editor_button.check_hover(mouse_pos)
self.music_button.check_hover(mouse_pos)
self.settings_button.check_hover(mouse_pos)

Expand All @@ -107,5 +132,6 @@ def draw(self, screen: pygame.Surface) -> None:
screen.blit(navbar_surface, (0,0))

self.home_button.draw(screen)
self.quadrant_editor_button.draw(screen)
self.music_button.draw(screen)
self.settings_button.draw(screen)
self.settings_button.draw(screen)
11 changes: 9 additions & 2 deletions src/windows/screens/base_screen.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,16 @@ def setup_navbar(self):
theme = self.theme_manager.current_theme
Logger.info("BaseScreen", f"Initializing navbar with theme: {theme}")

def quadrant_editor_action():
from src.windows.screens.quadrant_editor_screen import QuadrantEditorScreen
self.next_screen = QuadrantEditorScreen
self.running = False
Logger.info("BaseScreen", "Redirecting to Quadrant Editor Screen")

self.navbar.set_callbacks(
home_callback=self.home_action,
settings_callback=self.menu_action
settings_callback=self.menu_action,
quadrant_editor_callback=quadrant_editor_action
)

def setup_ui(self):
Expand Down Expand Up @@ -78,7 +85,7 @@ def handle_events(self):
continue

# gérer les événements de la barre de navigation
self.navbar.handle_events(event)
self.navbar.handle_event(event)

# gérer les événements de la fenêtre
self.handle_screen_events(event)
Expand Down
Loading