mirror of
https://github.com/ful1e5/apple_cursor.git
synced 2025-05-24 20:14:37 -04:00
👔 Compact code for generator.py
This commit is contained in:
parent
c152187bb8
commit
580b8d7f52
1 changed files with 49 additions and 60 deletions
|
@ -1,6 +1,8 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""This module provides build methods for ``macOSBigSur``."""
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Dict
|
from typing import Any, Dict
|
||||||
|
|
||||||
|
@ -11,29 +13,25 @@ from clickgen.core import CursorAlias
|
||||||
from clickgen.packagers import WindowsPackager, XPackager
|
from clickgen.packagers import WindowsPackager, XPackager
|
||||||
|
|
||||||
|
|
||||||
def xbuild(
|
def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path) -> None:
|
||||||
config: Dict[str, Dict[str, Any]],
|
|
||||||
x_out_dir: Path,
|
|
||||||
) -> None:
|
|
||||||
"""Build `macOSBigSur` cursor theme for only `X11`(UNIX) platform.
|
"""Build `macOSBigSur` cursor theme for only `X11`(UNIX) platform.
|
||||||
|
|
||||||
:param config: `macOSBigSur` configuration.
|
:param config: `macOSBigSur` configuration.
|
||||||
:type config: Dict[str, Dict[str, Any]]
|
:type config: Dict
|
||||||
|
|
||||||
:param x_out_dir: Path to the output directory, \
|
:param x_out_dir: Path to the output directory,\
|
||||||
Where the `X11` cursor theme package will\
|
Where the `X11` cursor theme package will generate.\
|
||||||
generate. It also creates a directory if not exists.
|
It also creates a directory if not exists.
|
||||||
:type x_out_dir: Path
|
:type x_out_dir: Path
|
||||||
|
|
||||||
|
:param info: Content theme name & comment
|
||||||
|
:type info: Info
|
||||||
"""
|
"""
|
||||||
|
|
||||||
for _, item in config.items():
|
for _, item in config.items():
|
||||||
png = item["png"]
|
with CursorAlias.from_bitmap(item["png"], item["hotspot"]) as alias:
|
||||||
hotspot = item["hotspot"]
|
x_cfg = alias.create(item["x_sizes"], item["delay"])
|
||||||
x_sizes = item["x_sizes"]
|
|
||||||
delay = item["delay"]
|
|
||||||
|
|
||||||
with CursorAlias.from_bitmap(png, hotspot) as alias:
|
|
||||||
x_cfg = alias.create(x_sizes, delay)
|
|
||||||
print(f"Building '{x_cfg.stem}' XCursor...")
|
print(f"Building '{x_cfg.stem}' XCursor...")
|
||||||
XCursor.create(x_cfg, x_out_dir)
|
XCursor.create(x_cfg, x_out_dir)
|
||||||
|
|
||||||
|
@ -45,33 +43,29 @@ def wbuild(config: Dict[str, Dict[str, Any]], win_out_dir: Path) -> None:
|
||||||
"""Build `macOSBigSur` cursor theme for only `Windows` platforms.
|
"""Build `macOSBigSur` cursor theme for only `Windows` platforms.
|
||||||
|
|
||||||
:param config: `macOSBigSur` configuration.
|
:param config: `macOSBigSur` configuration.
|
||||||
:type config: Dict[str, Dict[str, Any]]
|
:type config: Dict
|
||||||
|
|
||||||
:param win_out_dir: Path to the output directory, \
|
:param win_out_dir: Path to the output directory,\
|
||||||
Where the `Windows` cursor theme package will\
|
Where the `Windows` cursor theme package will generate.\
|
||||||
generate. It also creates a directory if not exists.
|
It also creates a directory if not exists.
|
||||||
:type win_out_dir: Path
|
:type win_out_dir: Path
|
||||||
|
|
||||||
|
:param info: Content theme name & comment
|
||||||
|
:type info: Info
|
||||||
"""
|
"""
|
||||||
|
|
||||||
for _, item in config.items():
|
for _, item in config.items():
|
||||||
png = item["png"]
|
with CursorAlias.from_bitmap(item["png"], item["hotspot"]) as alias:
|
||||||
hotspot = item["hotspot"]
|
alias.create(item["x_sizes"], item["delay"])
|
||||||
x_sizes = item["x_sizes"]
|
|
||||||
delay = item["delay"]
|
|
||||||
|
|
||||||
with CursorAlias.from_bitmap(png, hotspot) as alias:
|
|
||||||
alias.create(x_sizes, delay)
|
|
||||||
|
|
||||||
if item.get("win_key"):
|
if item.get("win_key"):
|
||||||
position = item["position"]
|
|
||||||
win_size = item["win_size"]
|
|
||||||
win_key = item["win_key"]
|
|
||||||
canvas_size = item["canvas_size"]
|
|
||||||
win_delay = item["win_delay"]
|
|
||||||
|
|
||||||
win_cfg = alias.reproduce(
|
win_cfg = alias.reproduce(
|
||||||
win_size, canvas_size, position, delay=win_delay
|
size=item["win_size"],
|
||||||
).rename(win_key)
|
canvas_size=item["canvas_size"],
|
||||||
|
position=item["position"],
|
||||||
|
delay=item["win_delay"],
|
||||||
|
).rename(item["win_key"])
|
||||||
|
|
||||||
print(f"Building '{win_cfg.stem}' Windows Cursor...")
|
print(f"Building '{win_cfg.stem}' Windows Cursor...")
|
||||||
WindowsCursor.create(win_cfg, win_out_dir)
|
WindowsCursor.create(win_cfg, win_out_dir)
|
||||||
|
|
||||||
|
@ -84,45 +78,40 @@ def build(
|
||||||
"""Build `macOSBigSur` cursor theme for `X11` & `Windows` platforms.
|
"""Build `macOSBigSur` cursor theme for `X11` & `Windows` platforms.
|
||||||
|
|
||||||
:param config: `macOSBigSur` configuration.
|
:param config: `macOSBigSur` configuration.
|
||||||
:type config: Dict[str, Dict[str, Any]]
|
:type config: Dict
|
||||||
|
|
||||||
:param x_out_dir: Path to the output directory, \
|
:param x_out_dir: Path to the output directory,\
|
||||||
Where the `X11` cursor theme package will\
|
Where the `X11` cursor theme package will generate.\
|
||||||
generate. It also creates a directory if not exists.
|
It also creates a directory if not exists.
|
||||||
:type x_out_dir: Path
|
:type x_out_dir: Path
|
||||||
|
|
||||||
:param win_out_dir: Path to the output directory, \
|
:param win_out_dir: Path to the output directory,\
|
||||||
Where the `Windows` cursor theme package will\
|
Where the `Windows` cursor theme package will generate.\
|
||||||
generate. It also creates a directory if not exists.
|
It also creates a directory if not exists.
|
||||||
:type win_out_dir: Path
|
:type win_out_dir: Path
|
||||||
|
|
||||||
|
:param info: Content theme name & comment
|
||||||
|
:type info: Info
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def win_build(item: Dict[str, Any], alias: CursorAlias) -> None:
|
|
||||||
position = item["position"]
|
|
||||||
win_size = item["win_size"]
|
|
||||||
win_key = item["win_key"]
|
|
||||||
canvas_size = item["canvas_size"]
|
|
||||||
win_delay = item["win_delay"]
|
|
||||||
|
|
||||||
win_cfg = alias.reproduce(
|
|
||||||
win_size, canvas_size, position, delay=win_delay
|
|
||||||
).rename(win_key)
|
|
||||||
print(f"Building '{win_cfg.stem}' Windows Cursor...")
|
|
||||||
WindowsCursor.create(win_cfg, win_out_dir)
|
|
||||||
|
|
||||||
for _, item in config.items():
|
for _, item in config.items():
|
||||||
png = item["png"]
|
|
||||||
hotspot = item["hotspot"]
|
|
||||||
x_sizes = item["x_sizes"]
|
|
||||||
delay = item["delay"]
|
|
||||||
|
|
||||||
with CursorAlias.from_bitmap(png, hotspot) as alias:
|
with CursorAlias.from_bitmap(item["png"], item["hotspot"]) as alias:
|
||||||
x_cfg = alias.create(x_sizes, delay)
|
x_cfg = alias.create(item["x_sizes"], item["delay"])
|
||||||
|
|
||||||
print(f"Building '{x_cfg.stem}' XCursor...")
|
print(f"Building '{x_cfg.stem}' XCursor...")
|
||||||
XCursor.create(x_cfg, x_out_dir)
|
XCursor.create(x_cfg, x_out_dir)
|
||||||
|
|
||||||
if item.get("win_key"):
|
if item.get("win_key"):
|
||||||
win_build(item, alias)
|
win_cfg = alias.reproduce(
|
||||||
|
size=item["win_size"],
|
||||||
|
canvas_size=item["canvas_size"],
|
||||||
|
position=item["position"],
|
||||||
|
delay=item["win_delay"],
|
||||||
|
).rename(item["win_key"])
|
||||||
|
|
||||||
|
print(f"Building '{win_cfg.stem}' Windows Cursor...")
|
||||||
|
WindowsCursor.create(win_cfg, win_out_dir)
|
||||||
|
|
||||||
add_missing_xcursor(x_out_dir / "cursors")
|
add_missing_xcursor(x_out_dir / "cursors")
|
||||||
XPackager(x_out_dir, THEME_NAME, COMMENT)
|
XPackager(x_out_dir, THEME_NAME, COMMENT)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue