dzgui/dzgui/util/css.py
2026-05-05 21:40:04 +09:00

34 lines
861 B
Python

from importlib import resources
from dzgui.const.constants import APP_NAME_LOWER, CSS_PATH
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk # noqa E402
def add_class(widget: Gtk.Widget, label: str) -> None:
"""
Sets the classname of a widget, used
to apply CSS styling later
"""
context = widget.get_style_context()
context.add_class(label)
def remove_class(widget: Gtk.Widget, label: str) -> None:
context = widget.get_style_context()
context.remove_class(label)
def load_css() -> None:
css = resources.read_text(APP_NAME_LOWER, CSS_PATH)
prov = Gtk.CssProvider()
prov.load_from_data(css.encode("ascii"))
screen = Gdk.Screen.get_default()
if screen:
Gtk.StyleContext.add_provider_for_screen(
screen, prov, Gtk.STYLE_PROVIDER_PRIORITY_USER
)