diff --git a/tool/src/aurora_iconset_builder/std_icons/components.py b/tool/src/aurora_iconset_builder/std_icons/components.py index d0a75f5..69ad444 100644 --- a/tool/src/aurora_iconset_builder/std_icons/components.py +++ b/tool/src/aurora_iconset_builder/std_icons/components.py @@ -26,6 +26,26 @@ def register(ctx: AuroraContext) -> None: ), build_triangle_icons, ) + ctx.register( + "component/plus", + ( + SvgSource("component", "plus.svg"), + TempArtSource("component", "generic-background.png"), + 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, + ) def build_generic_background( @@ -69,3 +89,35 @@ def build_triangle_icons( sink_down.push(env, tri_down) sink_right.push(env, tri_right) sink_up.push(env, tri_up) + + +def build_plus_icon( + env: AuroraEnvironment, + plus_src: SvgSource, + bg_src: TempArtSource, + new_art: NewArtSource, + sink: TempArtSink, +) -> None: + plus = plus_src.pull(env) + bg = bg_src.pull(env) + + art = new_art.pull() + art.paste(bg, (0, 0), plus) + + 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) + + sink.push(env, art)