Source code for wolfhece._simtools2d_gpu_manager

"""
Companion manager for Tools 2D GPU menus and actions.
Extracted from PyDraw.WolfMapViewer.
"""
from __future__ import annotations

import logging
from typing import TYPE_CHECKING

import wx

from .PyTranslate import _

if TYPE_CHECKING:
    from .PyDraw import WolfMapViewer


[docs] class SimTools2DGPUManager: """Manages the Tools 2D GPU menu and associated actions.""" def __init__(self, viewer: 'WolfMapViewer') -> None:
[docs] self._viewer = viewer
[docs] self._menu: wx.Menu | None = None
# ------------------------------------------------------------------ # Menu build # ------------------------------------------------------------------
[docs] def menu_build(self) -> None: v = self._viewer if self._menu is None: self._menu = wx.Menu() v.menubar.Append(self._menu, _('Tools 2D GPU')) item_parameters = self._menu.Append(wx.ID_ANY, _("Parameters..."), _("Parameters")) self._menu.Bind(wx.EVT_MENU, self._on_parameters, item_parameters)
# ------------------------------------------------------------------ # Action handlers # ------------------------------------------------------------------
[docs] def _on_parameters(self, event: wx.MenuEvent) -> None: from .PyGui import Wolf2DGPUModel v = self._viewer if not isinstance(v.wolfparent, Wolf2DGPUModel): logging.error(_('This is not a 2D GPU model')) return v.wolfparent.show_properties()