瀏覽代碼

Add extra sizes to tray icons (for scaling 125%-300%)

Fixes #559
Antony Male 4 年之前
父節點
當前提交
e44cdfcf0f

+ 26 - 0
Rakefile

@@ -384,4 +384,30 @@ namespace :tx do
     response = tx_client.upload_source(source_resx)
     puts "Added: #{response['strings_added']}. Updated: #{response['strings_updated']}. Deleted: #{response['strings_delete']}."
   end
+end
+
+namespace :icons do
+  desc "Create a tray icon (pass 256x256 source)"
+  task :"tray-icon", [:source] do |t,args|
+    source = args[:source]
+    # See https://wiki.lazarus.freepascal.org/Windows_Icon
+    sizes = [
+      16, 32, # Normal 96 DPI
+      20, 40, # 120 DPI (125%)
+      24, 48, # 144 DPI (150%)
+      32, 64, # 192 DPI (200%)
+      36, 72, # 225%
+      40, 80, # 250%
+      44, 88, # 275%
+      48, 96, # 300%
+    ].uniq.sort
+    raise "Need a source image" unless source
+    Dir.chdir(File.join('src', 'SyncTrayzor', 'Icons')) do
+      sizes.each do |size|
+        sh 'magick', 'convert', source, '-resize', "#{size}x#{size}", source.pathmap("%n-#{size}%x")
+      end
+      sh 'magick', 'convert', *sizes.map{ |x| source.pathmap("%n-#{x}%x") }, source.pathmap('%n.ico')
+      rm sizes.map{ |x| source.pathmap("%n-#{x}%x") }
+    end    
+  end
 end

二進制
src/SyncTrayzor/Icons/alert_tray.ico


+ 9 - 9
src/SyncTrayzor/Icons/alert_tray.svg

@@ -11,14 +11,14 @@
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg3004"
    version="1.1"
-   inkscape:version="0.91 r13725"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
    width="128"
    height="128"
    xml:space="preserve"
    sodipodi:docname="alert_tray.svg"
-   inkscape:export-filename="C:\Documents\projects\SyncTrayzor\src\SyncTrayzor\Icons\alert_tray_32.png"
-   inkscape:export-xdpi="22.5"
-   inkscape:export-ydpi="22.5"><metadata
+   inkscape:export-filename="C:\Users\Antony\Documents\Projects\SyncTrayzor\src\SyncTrayzor\Icons\alert_tray.png"
+   inkscape:export-xdpi="384"
+   inkscape:export-ydpi="384"><metadata
      id="metadata3010"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
@@ -55,8 +55,8 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1059"
+     inkscape:window-width="2736"
+     inkscape:window-height="1699"
      id="namedview3006"
      showgrid="true"
      fit-margin-top="0"
@@ -64,10 +64,10 @@
      fit-margin-right="0"
      fit-margin-bottom="0"
      inkscape:zoom="1.4142136"
-     inkscape:cx="-82.450986"
+     inkscape:cx="-255.69214"
      inkscape:cy="17.123559"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
+     inkscape:window-x="-13"
+     inkscape:window-y="-13"
      inkscape:window-maximized="1"
      inkscape:current-layer="layer1"
      inkscape:snap-global="true"

二進制
src/SyncTrayzor/Icons/default_tray.ico


二進制
src/SyncTrayzor/Icons/paused_tray.ico


+ 9 - 9
src/SyncTrayzor/Icons/paused_tray.svg

@@ -11,14 +11,14 @@
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg3004"
    version="1.1"
-   inkscape:version="0.91 r13725"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
    width="128"
    height="128"
    xml:space="preserve"
    sodipodi:docname="paused_tray.svg"
-   inkscape:export-filename="C:\Documents\projects\SyncTrayzor\src\SyncTrayzor\Icons\paused_tray_32.png"
-   inkscape:export-xdpi="22.5"
-   inkscape:export-ydpi="22.5"><metadata
+   inkscape:export-filename="C:\Users\Antony\Documents\Projects\SyncTrayzor\src\SyncTrayzor\Icons\paused_tray.png"
+   inkscape:export-xdpi="192"
+   inkscape:export-ydpi="192"><metadata
      id="metadata3010"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
@@ -55,8 +55,8 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1059"
+     inkscape:window-width="2736"
+     inkscape:window-height="1699"
      id="namedview3006"
      showgrid="true"
      fit-margin-top="0"
@@ -64,10 +64,10 @@
      fit-margin-right="0"
      fit-margin-bottom="0"
      inkscape:zoom="0.14661356"
-     inkscape:cx="-2968.0294"
+     inkscape:cx="-4639.089"
      inkscape:cy="-775.0037"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
+     inkscape:window-x="-13"
+     inkscape:window-y="-13"
      inkscape:window-maximized="1"
      inkscape:current-layer="g3012"
      inkscape:snap-global="true"

二進制
src/SyncTrayzor/Icons/stopped.ico


+ 11 - 8
src/SyncTrayzor/Icons/stopped.svg

@@ -11,14 +11,17 @@
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg3004"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
    width="128"
    height="128"
    xml:space="preserve"
-   sodipodi:docname="icon_idle.svg"><metadata
+   sodipodi:docname="stopped.svg"
+   inkscape:export-filename="C:\Users\Antony\Documents\Projects\SyncTrayzor\src\SyncTrayzor\Icons\stopped.png"
+   inkscape:export-xdpi="192"
+   inkscape:export-ydpi="192"><metadata
      id="metadata3010"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
      id="defs3008"><clipPath
        clipPathUnits="userSpaceOnUse"
        id="clipPath3018"><path
@@ -52,8 +55,8 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1280"
-     inkscape:window-height="1000"
+     inkscape:window-width="2736"
+     inkscape:window-height="1699"
      id="namedview3006"
      showgrid="true"
      fit-margin-top="0"
@@ -61,10 +64,10 @@
      fit-margin-right="0"
      fit-margin-bottom="0"
      inkscape:zoom="3.3174861"
-     inkscape:cx="27.801193"
+     inkscape:cx="-46.049908"
      inkscape:cy="48.016219"
-     inkscape:window-x="1440"
-     inkscape:window-y="24"
+     inkscape:window-x="-13"
+     inkscape:window-y="-13"
      inkscape:window-maximized="1"
      inkscape:current-layer="g3012"
      inkscape:snap-global="true"

二進制
src/SyncTrayzor/Icons/syncing_2.ico


+ 11 - 8
src/SyncTrayzor/Icons/syncing_2.svg

@@ -11,14 +11,17 @@
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg3004"
    version="1.1"
-   inkscape:version="0.91 r13725"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
    width="128"
    height="128"
    xml:space="preserve"
-   sodipodi:docname="syncing_2.svg"><metadata
+   sodipodi:docname="syncing_2.svg"
+   inkscape:export-filename="C:\Users\Antony\Documents\Projects\SyncTrayzor\src\SyncTrayzor\Icons\syncing_2.png"
+   inkscape:export-xdpi="384"
+   inkscape:export-ydpi="384"><metadata
      id="metadata3010"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
      id="defs3008"><clipPath
        clipPathUnits="userSpaceOnUse"
        id="clipPath3018"><path
@@ -52,8 +55,8 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1600"
-     inkscape:window-height="848"
+     inkscape:window-width="2736"
+     inkscape:window-height="1699"
      id="namedview3006"
      showgrid="true"
      fit-margin-top="0"
@@ -61,10 +64,10 @@
      fit-margin-right="0"
      fit-margin-bottom="0"
      inkscape:zoom="5.3046875"
-     inkscape:cx="64"
+     inkscape:cx="17.814433"
      inkscape:cy="64"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
+     inkscape:window-x="-13"
+     inkscape:window-y="-13"
      inkscape:window-maximized="1"
      inkscape:current-layer="g3012"
      inkscape:snap-global="true"

二進制
src/SyncTrayzor/Icons/syncing_3.ico


+ 11 - 8
src/SyncTrayzor/Icons/syncing_3.svg

@@ -11,14 +11,17 @@
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg3004"
    version="1.1"
-   inkscape:version="0.91 r13725"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
    width="128"
    height="128"
    xml:space="preserve"
-   sodipodi:docname="syncing_3.svg"><metadata
+   sodipodi:docname="syncing_3.svg"
+   inkscape:export-filename="C:\Users\Antony\Documents\Projects\SyncTrayzor\src\SyncTrayzor\Icons\syncing_3.png"
+   inkscape:export-xdpi="384"
+   inkscape:export-ydpi="384"><metadata
      id="metadata3010"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
      id="defs3008"><clipPath
        clipPathUnits="userSpaceOnUse"
        id="clipPath3018"><path
@@ -52,8 +55,8 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1600"
-     inkscape:window-height="848"
+     inkscape:window-width="2736"
+     inkscape:window-height="1699"
      id="namedview3006"
      showgrid="true"
      fit-margin-top="0"
@@ -61,10 +64,10 @@
      fit-margin-right="0"
      fit-margin-bottom="0"
      inkscape:zoom="5.3046875"
-     inkscape:cx="64"
+     inkscape:cx="17.814433"
      inkscape:cy="64"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
+     inkscape:window-x="-13"
+     inkscape:window-y="-13"
      inkscape:window-maximized="1"
      inkscape:current-layer="g3012"
      inkscape:snap-global="true"

二進制
src/SyncTrayzor/Icons/syncing_4.ico


+ 11 - 8
src/SyncTrayzor/Icons/syncing_4.svg

@@ -11,14 +11,17 @@
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    id="svg3004"
    version="1.1"
-   inkscape:version="0.91 r13725"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
    width="128"
    height="128"
    xml:space="preserve"
-   sodipodi:docname="syncing_4.svg"><metadata
+   sodipodi:docname="syncing_4.svg"
+   inkscape:export-filename="C:\Users\Antony\Documents\Projects\SyncTrayzor\src\SyncTrayzor\Icons\syncing_4.png"
+   inkscape:export-xdpi="384"
+   inkscape:export-ydpi="384"><metadata
      id="metadata3010"><rdf:RDF><cc:Work
          rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
      id="defs3008"><clipPath
        clipPathUnits="userSpaceOnUse"
        id="clipPath3018"><path
@@ -52,8 +55,8 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1600"
-     inkscape:window-height="848"
+     inkscape:window-width="2736"
+     inkscape:window-height="1699"
      id="namedview3006"
      showgrid="true"
      fit-margin-top="0"
@@ -61,10 +64,10 @@
      fit-margin-right="0"
      fit-margin-bottom="0"
      inkscape:zoom="5.3046875"
-     inkscape:cx="64"
+     inkscape:cx="17.814433"
      inkscape:cy="64"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
+     inkscape:window-x="-13"
+     inkscape:window-y="-13"
      inkscape:window-maximized="1"
      inkscape:current-layer="g3012"
      inkscape:snap-global="true"