diff --git a/tool/src/aurora_iconset_builder/nostd_icons/application_icons.py b/tool/src/aurora_iconset_builder/nostd_icons/application_icons.py index e1b29ab..e306469 100644 --- a/tool/src/aurora_iconset_builder/nostd_icons/application_icons.py +++ b/tool/src/aurora_iconset_builder/nostd_icons/application_icons.py @@ -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) diff --git a/tool/src/aurora_iconset_builder/std_icons/action_icons.py b/tool/src/aurora_iconset_builder/std_icons/action_icons.py index 3d7eabb..640a226 100644 --- a/tool/src/aurora_iconset_builder/std_icons/action_icons.py +++ b/tool/src/aurora_iconset_builder/std_icons/action_icons.py @@ -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) diff --git a/tool/src/aurora_iconset_builder/std_icons/components.py b/tool/src/aurora_iconset_builder/std_icons/components.py index 69ad444..6f75418 100644 --- a/tool/src/aurora_iconset_builder/std_icons/components.py +++ b/tool/src/aurora_iconset_builder/std_icons/components.py @@ -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)