feat: add magnifying glass, zoom in, out, notepad icons

This commit is contained in:
2026-09-08 14:31:15 +08:00
parent 765375f04c
commit e0d6aa63e6
3 changed files with 87 additions and 37 deletions
@@ -1,7 +1,12 @@
from ..types import AuroraContext, AuroraEnvironment
from ..assemblicon.highlevel.utils import FdContext, WinCategory, MacCategory
from ..assemblicon.highlevel.source import SvgSource, TempArtSource, NewArtSource
from ..assemblicon.highlevel.sink import FdArtSink, WinArtSink, MacArtSink
from ..assemblicon.highlevel.source import (
SvgSource,
TempArtSource,
NewArtSource,
BlenderSource,
)
from ..assemblicon.highlevel.sink import FdArtSink, WinArtSink, MacArtSink, TempArtSink
from ..assemblicon.lowlevel.artproc import (
art_anchor_to_offset,
default_art_resize,
@@ -22,11 +27,20 @@ def register(ctx: AuroraContext) -> None:
WinArtSink(WinCategory.Application, "sarasacw-picture"),
MacArtSink(MacCategory.Application, "sarasacw-picture"),
),
build_sarasacw_picture_icons,
build_sarasacw_picture_icon,
)
ctx.register(
"nostd/application/notepad",
(
BlenderSource("app", "notepad.blend"),
TempArtSink("notepad.png"),
WinArtSink(WinCategory.Application, "notepad"),
),
build_notepad_icon,
)
def build_sarasacw_picture_icons(
def build_sarasacw_picture_icon(
env: AuroraEnvironment,
frame_src: SvgSource,
inner_src: TempArtSource,
@@ -55,3 +69,14 @@ def build_sarasacw_picture_icons(
fd_sink.push(env, app)
win_sink.push(env, app)
mac_sink.push(env, app)
def build_notepad_icon(
env: AuroraEnvironment,
src: BlenderSource,
temp_sink: TempArtSink,
win_sink: WinArtSink,
) -> None:
src.pull_to_temp(env, temp_sink)
with temp_sink.repull(env) as art:
win_sink.push(env, art)
@@ -1,5 +1,7 @@
import PIL.Image
from ..types import AuroraContext, AuroraEnvironment
from ..assemblicon.geometry import Rectangle, Point
from ..assemblicon.lowlevel.artproc import default_art_resize, align_alpha_composite
from ..assemblicon.highlevel.utils import FdContext
from ..assemblicon.highlevel.source import SvgSource, TempArtSource
from ..assemblicon.highlevel.sink import FdArtSink
@@ -68,6 +70,9 @@ def register(ctx: AuroraContext) -> None:
ctx.register(
"std/action/zoom-[in|out]",
(
TempArtSource("component", "magnifying-glass.png"),
TempArtSource("component", "plus.png"),
TempArtSource("component", "minus.png"),
FdArtSink(FdContext.Actions, "zoom-in"),
FdArtSink(FdContext.Actions, "zoom-out"),
),
@@ -146,7 +151,26 @@ def build_zoom_origin_and_fit_best_icons(
def build_zoom_in_out_icons(
env: AuroraEnvironment, zoom_in_sink: FdArtSink, zoom_out_sink: FdArtSink
env: AuroraEnvironment,
magnifying_glass_source: TempArtSource,
plus_source: TempArtSource,
minus_source: TempArtSource,
zoom_in_sink: FdArtSink,
zoom_out_sink: FdArtSink,
) -> None:
# TODO: finish this in future
pass
magnifying_glass = magnifying_glass_source.pull(env)
magnifying_glass_rect = Rectangle.from_padding_rect(
Point(665, 355), 200, 200, 200, 200
)
inner_size = (magnifying_glass_rect.width, magnifying_glass_rect.height)
plus = default_art_resize(plus_source.pull(env), *inner_size)
minus = default_art_resize(minus_source.pull(env), *inner_size)
zoom_in = magnifying_glass.copy()
align_alpha_composite(zoom_in, plus, magnifying_glass_rect.pos1, Point(0, 0))
zoom_in_sink.push(env, zoom_in)
zoom_out = magnifying_glass.copy()
align_alpha_composite(zoom_out, minus, magnifying_glass_rect.pos1, Point(0, 0))
zoom_out_sink.push(env, zoom_out)
@@ -1,6 +1,11 @@
import PIL.Image
from ..types import AuroraContext, AuroraEnvironment
from ..assemblicon.highlevel.source import SvgSource, TempArtSource, NewArtSource
from ..assemblicon.highlevel.source import (
SvgSource,
TempArtSource,
NewArtSource,
BlenderSource,
)
from ..assemblicon.highlevel.sink import TempArtSink
@@ -27,24 +32,24 @@ def register(ctx: AuroraContext) -> None:
build_triangle_icons,
)
ctx.register(
"component/plus",
"component/plus_minus",
(
SvgSource("component", "plus.svg"),
TempArtSource("component", "generic-background.png"),
SvgSource("component", "plus.svg"),
SvgSource("component", "minus.svg"),
NewArtSource(),
TempArtSink("component", "plus.png"),
),
build_plus_icon,
)
ctx.register(
"component/minus",
(
SvgSource("component", "minus.svg"),
TempArtSource("component", "generic-background.png"),
NewArtSource(),
TempArtSink("component", "minus.png"),
),
build_minus_icon,
build_plus_minus_icons,
)
ctx.register(
"component/magnifying-glass",
(
BlenderSource("component", "magnifying-glass.blend"),
TempArtSink("component", "magnifying-glass.png"),
),
build_magnifying_glass_icon,
)
@@ -91,33 +96,29 @@ def build_triangle_icons(
sink_up.push(env, tri_up)
def build_plus_icon(
def build_plus_minus_icons(
env: AuroraEnvironment,
plus_src: SvgSource,
bg_src: TempArtSource,
plus_src: SvgSource,
minus_src: SvgSource,
new_art: NewArtSource,
sink: TempArtSink,
plus_sink: TempArtSink,
minus_sink: TempArtSink,
) -> None:
plus = plus_src.pull(env)
bg = bg_src.pull(env)
plus = plus_src.pull(env)
art = new_art.pull()
art.paste(bg, (0, 0), plus)
plus_sink.push(env, art)
sink.push(env, art)
def build_minus_icon(
env: AuroraEnvironment,
minus_src: SvgSource,
bg_src: TempArtSource,
new_art: NewArtSource,
sink: TempArtSink,
) -> None:
minus = minus_src.pull(env)
bg = bg_src.pull(env)
art = new_art.pull()
art.paste(bg, (0, 0), minus)
minus_sink.push(env, art)
sink.push(env, art)
def build_magnifying_glass_icon(
env: AuroraEnvironment, src: BlenderSource, sink: TempArtSink
) -> None:
src.pull_to_temp(env, sink)