From f9e6cc58ec29e0a90b9073cde9b7d709567f0d34 Mon Sep 17 00:00:00 2001 From: Jean-Yves Chasle Date: Sun, 23 Oct 2022 23:09:54 +0200 Subject: [PATCH] Dynamic comment node icons --- ...y.svg-09797a502f03e59abf87dd8bdf8ee9a3.md5 | 3 + ...t.svg-2a034179832e3659bce32e101377291c.md5 | 3 + ....svg-2a034179832e3659bce32e101377291c.stex | Bin 0 -> 208 bytes ...e.svg-dac906657e3c1de599d45509442e2e1f.md5 | 3 + ....svg-dac906657e3c1de599d45509442e2e1f.stex | Bin 0 -> 196 bytes ....svg-f7ff9a7e2b7478fa3eeeac7dfc6b181f.stex | Bin 148 -> 0 bytes ...x.svg-1e2c29f5292789351aa4d038fa3c0d3c.md5 | 3 + ....svg-1e2c29f5292789351aa4d038fa3c0d3c.stex | Bin 0 -> 318 bytes ...t.svg-725e5b7a979be7643dacdceaf6e51c1e.md5 | 3 + ...e.svg-fc05914f9cfc68762ae5aceb9eb0a829.md5 | 3 + ...e.svg-80753246d1de78ea1f6142d77a172701.md5 | 3 + ...l.svg-af02e568f66dc88c0139d5a2686c51fa.md5 | 3 + ...y.svg-4d588ce8e53ec3d807c6ada868d4e99a.md5 | 3 + ...t.svg-34fca98868db9409549a0f01e78fccd8.md5 | 3 + ....svg-34fca98868db9409549a0f01e78fccd8.stex | Bin 0 -> 84 bytes ...t.svg-fea9e083923987e11706404416eac4aa.md5 | 3 + ....svg-fea9e083923987e11706404416eac4aa.stex | Bin 0 -> 84 bytes ...t.svg-07c56552e09222e86220e98d59c4b005.md5 | 3 + ...t.svg-a05125672870f39e1266f7f224722cc1.md5 | 3 + ...D.svg-87715192c15e76517f9b49009b4e9af6.md5 | 3 + ....svg-87715192c15e76517f9b49009b4e9af6.stex | Bin 0 -> 300 bytes ...g.svg-ee480daa54efc1277728b55c31b39c43.md5 | 3 + ...e.svg-5c0a95e1202605cb9ddfacf0d60ba4d3.md5 | 3 + ...k.svg-1b055340be6c81c852fbef5be8209bfb.md5 | 3 + ...k.svg-e9c02cf829e808f83fc1932e1fe8a430.md5 | 3 + ....svg-e9c02cf829e808f83fc1932e1fe8a430.stex | Bin 0 -> 194 bytes Assets/Icons/Breakpoint.svg | 1 + Assets/Icons/Breakpoint.svg.import | 35 ++++++++ Assets/Icons/Callable.svg | 1 + ...amera2D.svg.import => Callable.svg.import} | 6 +- Assets/Icons/Camera2D.svg | 40 --------- Assets/Icons/CheckBox.svg | 1 + Assets/Icons/CheckBox.svg.import | 35 ++++++++ Assets/Icons/FileList.svg | 1 + Assets/Icons/FileList.svg.import | 35 ++++++++ Assets/Icons/PointLight2D.svg | 1 + Assets/Icons/PointLight2D.svg.import | 35 ++++++++ Scenes/CommentGraphNode.tscn | 77 ++++++------------ Scenes/DisplayDialog.tscn | 2 +- Scenes/IconButton.tscn | 33 ++++++++ Scenes/ImageGraphNode.tscn | 1 + Scripts/CommentGraphNode.gd | 40 ++++++++- Scripts/GraphEdit.gd | 2 +- Scripts/IconButton.gd | 2 + project.godot | 6 ++ 45 files changed, 309 insertions(+), 99 deletions(-) create mode 100644 .import/AutoKey.svg-09797a502f03e59abf87dd8bdf8ee9a3.md5 create mode 100644 .import/Breakpoint.svg-2a034179832e3659bce32e101377291c.md5 create mode 100644 .import/Breakpoint.svg-2a034179832e3659bce32e101377291c.stex create mode 100644 .import/Callable.svg-dac906657e3c1de599d45509442e2e1f.md5 create mode 100644 .import/Callable.svg-dac906657e3c1de599d45509442e2e1f.stex delete mode 100644 .import/Camera2D.svg-f7ff9a7e2b7478fa3eeeac7dfc6b181f.stex create mode 100644 .import/CheckBox.svg-1e2c29f5292789351aa4d038fa3c0d3c.md5 create mode 100644 .import/CheckBox.svg-1e2c29f5292789351aa4d038fa3c0d3c.stex create mode 100644 .import/CodeEdit.svg-725e5b7a979be7643dacdceaf6e51c1e.md5 create mode 100644 .import/Collapse.svg-fc05914f9cfc68762ae5aceb9eb0a829.md5 create mode 100644 .import/CurveDelete.svg-80753246d1de78ea1f6142d77a172701.md5 create mode 100644 .import/Decal.svg-af02e568f66dc88c0139d5a2686c51fa.md5 create mode 100644 .import/Dictionary.svg-4d588ce8e53ec3d807c6ada868d4e99a.md5 create mode 100644 .import/FileList.svg-34fca98868db9409549a0f01e78fccd8.md5 create mode 100644 .import/FileList.svg-34fca98868db9409549a0f01e78fccd8.stex create mode 100644 .import/FileList.svg-fea9e083923987e11706404416eac4aa.md5 create mode 100644 .import/FileList.svg-fea9e083923987e11706404416eac4aa.stex create mode 100644 .import/GizmoLight.svg-07c56552e09222e86220e98d59c4b005.md5 create mode 100644 .import/ItemList.svg-a05125672870f39e1266f7f224722cc1.md5 create mode 100644 .import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.md5 create mode 100644 .import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.stex create mode 100644 .import/ProjectIconLoading.svg-ee480daa54efc1277728b55c31b39c43.md5 create mode 100644 .import/ProxyTexture.svg-5c0a95e1202605cb9ddfacf0d60ba4d3.md5 create mode 100644 .import/bookmark.svg-1b055340be6c81c852fbef5be8209bfb.md5 create mode 100644 .import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.md5 create mode 100644 .import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.stex create mode 100644 Assets/Icons/Breakpoint.svg create mode 100644 Assets/Icons/Breakpoint.svg.import create mode 100644 Assets/Icons/Callable.svg rename Assets/Icons/{Camera2D.svg.import => Callable.svg.import} (72%) delete mode 100644 Assets/Icons/Camera2D.svg create mode 100644 Assets/Icons/CheckBox.svg create mode 100644 Assets/Icons/CheckBox.svg.import create mode 100644 Assets/Icons/FileList.svg create mode 100644 Assets/Icons/FileList.svg.import create mode 100644 Assets/Icons/PointLight2D.svg create mode 100644 Assets/Icons/PointLight2D.svg.import create mode 100644 Scenes/IconButton.tscn create mode 100644 Scripts/IconButton.gd diff --git a/.import/AutoKey.svg-09797a502f03e59abf87dd8bdf8ee9a3.md5 b/.import/AutoKey.svg-09797a502f03e59abf87dd8bdf8ee9a3.md5 new file mode 100644 index 0000000..a25918e --- /dev/null +++ b/.import/AutoKey.svg-09797a502f03e59abf87dd8bdf8ee9a3.md5 @@ -0,0 +1,3 @@ +source_md5="e854e52a58912d899b44cdfaf67c039b" +dest_md5="5cc58da269282ecffc7f121c2668fa91" + diff --git a/.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.md5 b/.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.md5 new file mode 100644 index 0000000..ec4de06 --- /dev/null +++ b/.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.md5 @@ -0,0 +1,3 @@ +source_md5="421fe6feed9900a72b391ae2f3a49a9f" +dest_md5="481ffa3488d7c271f5abafb5c74dbd9c" + diff --git a/.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.stex b/.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.stex new file mode 100644 index 0000000000000000000000000000000000000000..1684d0bfe23329c59febae08487daec48a822f97 GIT binary patch literal 208 zcmZ>F2@VlpU|;}Y79eI|P+(^Sl3Rc{+|?-{$kWYj1(Y2YVBs?x$kyjSz%06L8)HMtJ@#o7+;-EHNuK{u%9%q+k>&CW zw@#h6PCj$3lG|Eqr=Imb61{Eh%@~sjr^B0F2@VlpU|;}Y79eI|P+(^Sk}H5X+|?-{$kWYj4wM}hVBymbWb5-EU>0CqyltY2 zZoSg)*AD|s++MYujuBD1b7h;ZX|=A-8BryH29Z4uww4YYl06$P9b-o2!@20`?j_%R@th}002nIOE~}l literal 0 HcmV?d00001 diff --git a/.import/Camera2D.svg-f7ff9a7e2b7478fa3eeeac7dfc6b181f.stex b/.import/Camera2D.svg-f7ff9a7e2b7478fa3eeeac7dfc6b181f.stex deleted file mode 100644 index fb9357544bdc43802ec11b8b402ceaedbce93c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmZ>F2@VlpU|;}Y79eI|P+(^Sk`+K4?&=f}F2@VlpU|;}Y79eI|P+(^Sl1e}#+|?-{$kWYD49X4*u<+povi127FblLFRGFmW zc{4+P%fHaI4aw>cWMXb7+%TJ@l>h(I)l*+iY@4X!S~_F@_sD(sk|efG%+=m`zwr7D zAFhS}Ta@frEzI|AVPNV0@?XQ@0s9=*zy_61LXWa+4jh})^dbGvR3$I}Nelux0fBBD z9D$b<7Ah*t+xIOZ|A*rn_51@i*NPiH{Jr$9`g_DZYf%}uZEH>5Kl<0f{Z44j|8M{P z`*?M{_|IZ6xk~uIfcS*#zqeJ+o97(2efIN8K}MDQZ|(APC628;EPKOXog* OF2@VlpU|;}Y79eI|P+(^Sk`_Q5?&=f}+d8@YU(JwR$i)BvKT8xE literal 0 HcmV?d00001 diff --git a/.import/FileList.svg-fea9e083923987e11706404416eac4aa.md5 b/.import/FileList.svg-fea9e083923987e11706404416eac4aa.md5 new file mode 100644 index 0000000..74280d7 --- /dev/null +++ b/.import/FileList.svg-fea9e083923987e11706404416eac4aa.md5 @@ -0,0 +1,3 @@ +source_md5="ef00bbdd280ffb6ebb075ada35b1e313" +dest_md5="8cabb4f0d569906bbf1aa601902a5523" + diff --git a/.import/FileList.svg-fea9e083923987e11706404416eac4aa.stex b/.import/FileList.svg-fea9e083923987e11706404416eac4aa.stex new file mode 100644 index 0000000000000000000000000000000000000000..c831eb83d80c495b96957c3dfb3145f402150b91 GIT binary patch literal 84 zcmZ>F2@VlpU|;}Y79eI|P+(^Sk`_Q5?&=f}+d8@YU(JwR$i)BvKT8xE literal 0 HcmV?d00001 diff --git a/.import/GizmoLight.svg-07c56552e09222e86220e98d59c4b005.md5 b/.import/GizmoLight.svg-07c56552e09222e86220e98d59c4b005.md5 new file mode 100644 index 0000000..a5ea856 --- /dev/null +++ b/.import/GizmoLight.svg-07c56552e09222e86220e98d59c4b005.md5 @@ -0,0 +1,3 @@ +source_md5="f6244c228312e42dbf3a0386acd803df" +dest_md5="b2d2a37543241dccae017b864dc98755" + diff --git a/.import/ItemList.svg-a05125672870f39e1266f7f224722cc1.md5 b/.import/ItemList.svg-a05125672870f39e1266f7f224722cc1.md5 new file mode 100644 index 0000000..9036fea --- /dev/null +++ b/.import/ItemList.svg-a05125672870f39e1266f7f224722cc1.md5 @@ -0,0 +1,3 @@ +source_md5="809977a16fcd1481151440d8d3b54a9c" +dest_md5="a79785ef2d570b3341983475b7be6c7e" + diff --git a/.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.md5 b/.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.md5 new file mode 100644 index 0000000..3f1b9aa --- /dev/null +++ b/.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.md5 @@ -0,0 +1,3 @@ +source_md5="4546cfd7ff2fc4aa75c83810aab8832e" +dest_md5="66bc2146c0615be73e81fac00eedc4c4" + diff --git a/.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.stex b/.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.stex new file mode 100644 index 0000000000000000000000000000000000000000..d096d0842de9f04777ab387488a57169e193fa4a GIT binary patch literal 300 zcmZ>F2@VlpU|;}Y79eI|P+(^Sk^(>?+|?-{$kWY@1j zIoX*f{@!xN;cB_b^&NL!C3n2oe{)OjlqJFXmW{7>IW79IOYebA?)!6}cSWDsmOe4= zUCoV|r;3Vx{1ga0ZM@~!8QsnwF;}9lv;Gb`5IHL>^xVPY5|=*+Wy6(=@azs1P-d0aICGGH+CGBB=*I#=tMg{;$s)yGA literal 0 HcmV?d00001 diff --git a/.import/ProjectIconLoading.svg-ee480daa54efc1277728b55c31b39c43.md5 b/.import/ProjectIconLoading.svg-ee480daa54efc1277728b55c31b39c43.md5 new file mode 100644 index 0000000..c0153c2 --- /dev/null +++ b/.import/ProjectIconLoading.svg-ee480daa54efc1277728b55c31b39c43.md5 @@ -0,0 +1,3 @@ +source_md5="d8c7d1577e01f1e217e58e4572d77baf" +dest_md5="df5ebed27e9cc51f898a52233119982d" + diff --git a/.import/ProxyTexture.svg-5c0a95e1202605cb9ddfacf0d60ba4d3.md5 b/.import/ProxyTexture.svg-5c0a95e1202605cb9ddfacf0d60ba4d3.md5 new file mode 100644 index 0000000..23c5d4d --- /dev/null +++ b/.import/ProxyTexture.svg-5c0a95e1202605cb9ddfacf0d60ba4d3.md5 @@ -0,0 +1,3 @@ +source_md5="09478c940b19ae492c7749472d41a263" +dest_md5="406d44234d50c33d9c93db69dd28f842" + diff --git a/.import/bookmark.svg-1b055340be6c81c852fbef5be8209bfb.md5 b/.import/bookmark.svg-1b055340be6c81c852fbef5be8209bfb.md5 new file mode 100644 index 0000000..3634c6e --- /dev/null +++ b/.import/bookmark.svg-1b055340be6c81c852fbef5be8209bfb.md5 @@ -0,0 +1,3 @@ +source_md5="b1926227601d265cdf2777d5f2a14e7d" +dest_md5="733ab30af1fc0c35bcd96373592e7657" + diff --git a/.import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.md5 b/.import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.md5 new file mode 100644 index 0000000..3634c6e --- /dev/null +++ b/.import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.md5 @@ -0,0 +1,3 @@ +source_md5="b1926227601d265cdf2777d5f2a14e7d" +dest_md5="733ab30af1fc0c35bcd96373592e7657" + diff --git a/.import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.stex b/.import/bookmark.svg-e9c02cf829e808f83fc1932e1fe8a430.stex new file mode 100644 index 0000000000000000000000000000000000000000..2e6bdaa9f4b5d620e1f6bd78df0eb4bd2b84d9d0 GIT binary patch literal 194 zcmZ>F2@VlpU|;}Y79eI|P+(^SlFNWN+|?-{$kWYj7L*+pVBymTWb5-EU=|3ty{&i4 z|0`$euYOILZ1#WtZ9@~rO`fy=pMNVci=p|}wnSMG0cVk28qVFz8=3yu^cS+IbY7G^ zYJK%e{W7biBCqzY41bw_Vcs|XElmtIYsE`1Bo#9>oDB>-z9_AJ*)=!Uwe~AB7ufdJ mJzoCvqqJ0J{FDZVg+D$9|6Ul-5WZ-N6C*=_MlX;Q;Q|21cT3O! literal 0 HcmV?d00001 diff --git a/Assets/Icons/Breakpoint.svg b/Assets/Icons/Breakpoint.svg new file mode 100644 index 0000000..60d59b6 --- /dev/null +++ b/Assets/Icons/Breakpoint.svg @@ -0,0 +1 @@ + diff --git a/Assets/Icons/Breakpoint.svg.import b/Assets/Icons/Breakpoint.svg.import new file mode 100644 index 0000000..21185e6 --- /dev/null +++ b/Assets/Icons/Breakpoint.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/Breakpoint.svg" +dest_files=[ "res://.import/Breakpoint.svg-2a034179832e3659bce32e101377291c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Icons/Callable.svg b/Assets/Icons/Callable.svg new file mode 100644 index 0000000..3f0d33a --- /dev/null +++ b/Assets/Icons/Callable.svg @@ -0,0 +1 @@ + diff --git a/Assets/Icons/Camera2D.svg.import b/Assets/Icons/Callable.svg.import similarity index 72% rename from Assets/Icons/Camera2D.svg.import rename to Assets/Icons/Callable.svg.import index 1f35e62..662fbbc 100644 --- a/Assets/Icons/Camera2D.svg.import +++ b/Assets/Icons/Callable.svg.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/Camera2D.svg-f7ff9a7e2b7478fa3eeeac7dfc6b181f.stex" +path="res://.import/Callable.svg-dac906657e3c1de599d45509442e2e1f.stex" metadata={ "vram_texture": false } [deps] -source_file="res://Assets/Icons/Camera2D.svg" -dest_files=[ "res://.import/Camera2D.svg-f7ff9a7e2b7478fa3eeeac7dfc6b181f.stex" ] +source_file="res://Assets/Icons/Callable.svg" +dest_files=[ "res://.import/Callable.svg-dac906657e3c1de599d45509442e2e1f.stex" ] [params] diff --git a/Assets/Icons/Camera2D.svg b/Assets/Icons/Camera2D.svg deleted file mode 100644 index a066e50..0000000 --- a/Assets/Icons/Camera2D.svg +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - diff --git a/Assets/Icons/CheckBox.svg b/Assets/Icons/CheckBox.svg new file mode 100644 index 0000000..32eaf2d --- /dev/null +++ b/Assets/Icons/CheckBox.svg @@ -0,0 +1 @@ + diff --git a/Assets/Icons/CheckBox.svg.import b/Assets/Icons/CheckBox.svg.import new file mode 100644 index 0000000..86ed12a --- /dev/null +++ b/Assets/Icons/CheckBox.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/CheckBox.svg-1e2c29f5292789351aa4d038fa3c0d3c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/CheckBox.svg" +dest_files=[ "res://.import/CheckBox.svg-1e2c29f5292789351aa4d038fa3c0d3c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Icons/FileList.svg b/Assets/Icons/FileList.svg new file mode 100644 index 0000000..3ba4915 --- /dev/null +++ b/Assets/Icons/FileList.svg @@ -0,0 +1 @@ + diff --git a/Assets/Icons/FileList.svg.import b/Assets/Icons/FileList.svg.import new file mode 100644 index 0000000..5da1098 --- /dev/null +++ b/Assets/Icons/FileList.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/FileList.svg-34fca98868db9409549a0f01e78fccd8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/FileList.svg" +dest_files=[ "res://.import/FileList.svg-34fca98868db9409549a0f01e78fccd8.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Assets/Icons/PointLight2D.svg b/Assets/Icons/PointLight2D.svg new file mode 100644 index 0000000..1a3222c --- /dev/null +++ b/Assets/Icons/PointLight2D.svg @@ -0,0 +1 @@ + diff --git a/Assets/Icons/PointLight2D.svg.import b/Assets/Icons/PointLight2D.svg.import new file mode 100644 index 0000000..e14e545 --- /dev/null +++ b/Assets/Icons/PointLight2D.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Icons/PointLight2D.svg" +dest_files=[ "res://.import/PointLight2D.svg-87715192c15e76517f9b49009b4e9af6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Scenes/CommentGraphNode.tscn b/Scenes/CommentGraphNode.tscn index 7e95281..ac0d6f0 100644 --- a/Scenes/CommentGraphNode.tscn +++ b/Scenes/CommentGraphNode.tscn @@ -1,25 +1,15 @@ -[gd_scene load_steps=20 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://Scripts/CommentGraphNode.gd" type="Script" id=1] [ext_resource path="res://Assets/Icons/Remove.svg" type="Texture" id=2] [ext_resource path="res://Assets/Icons/Add.svg" type="Texture" id=3] -[ext_resource path="res://Assets/UserIcons/Up_right.svg" type="Texture" id=4] -[ext_resource path="res://Assets/UserIcons/Down_right.svg" type="Texture" id=5] -[ext_resource path="res://Assets/UserIcons/Right.svg" type="Texture" id=6] -[ext_resource path="res://Assets/UserIcons/Simple-up.svg" type="Texture" id=7] -[ext_resource path="res://Assets/UserIcons/Simple-down.svg" type="Texture" id=8] -[ext_resource path="res://Assets/UserIcons/Double-up.svg" type="Texture" id=9] -[ext_resource path="res://Assets/UserIcons/Double-right.svg" type="Texture" id=10] -[ext_resource path="res://Assets/UserIcons/Double-down.svg" type="Texture" id=11] -[ext_resource path="res://Assets/UserIcons/Disc.svg" type="Texture" id=12] -[ext_resource path="res://Assets/UserIcons/Check.svg" type="Texture" id=13] -[ext_resource path="res://Assets/UserIcons/Cross.svg" type="Texture" id=14] -[ext_resource path="res://Assets/UserIcons/Question.svg" type="Texture" id=15] -[ext_resource path="res://Assets/UserIcons/Exclamation.svg" type="Texture" id=16] +[ext_resource path="res://Assets/Icons/PointLight2D.svg" type="Texture" id=4] [ext_resource path="res://Resources/CommentNormalFrame.tres" type="StyleBox" id=17] [ext_resource path="res://Resources/theme.tres" type="Theme" id=18] [ext_resource path="res://Resources/CommentFocusFrame.tres" type="StyleBox" id=19] +[sub_resource type="StyleBoxEmpty" id=1] + [node name="CommentNode" type="GraphNode"] margin_right = 230.0 margin_bottom = 80.0 @@ -42,63 +32,44 @@ script = ExtResource( 1 ) [node name="VBoxContainer" type="VBoxContainer" parent="."] margin_left = 16.0 margin_top = 24.0 -margin_right = 240.0 +margin_right = 214.0 margin_bottom = 74.0 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] -margin_right = 224.0 +margin_right = 198.0 margin_bottom = 24.0 size_flags_horizontal = 3 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"] -margin_right = 128.0 +margin_right = 102.0 margin_bottom = 24.0 size_flags_horizontal = 3 -[node name="IconButton1" type="OptionButton" parent="VBoxContainer/HBoxContainer/HBoxContainer"] -margin_right = 29.0 -margin_bottom = 24.0 -icon = ExtResource( 4 ) -flat = true -expand_icon = true -items = [ "", ExtResource( 4 ), false, 0, null, "", ExtResource( 6 ), false, 1, null, "", ExtResource( 5 ), false, 2, null, "", ExtResource( 9 ), false, 3, null, "", ExtResource( 10 ), false, 4, null, "", ExtResource( 11 ), false, 5, null, "", ExtResource( 13 ), false, 6, null, "", ExtResource( 15 ), false, 7, null, "", ExtResource( 16 ), false, 8, null, "", ExtResource( 14 ), false, 9, null, "", ExtResource( 12 ), false, 10, null, "", ExtResource( 7 ), false, 11, null, "", ExtResource( 8 ), false, 12, null ] -selected = 0 - -[node name="IconButton2" type="OptionButton" parent="VBoxContainer/HBoxContainer/HBoxContainer"] -margin_left = 33.0 -margin_right = 62.0 +[node name="NewIconButton" type="Button" parent="VBoxContainer/HBoxContainer/HBoxContainer"] +margin_right = 28.0 margin_bottom = 24.0 icon = ExtResource( 4 ) flat = true -expand_icon = true -items = [ "", ExtResource( 4 ), false, 0, null, "", ExtResource( 6 ), false, 1, null, "", ExtResource( 5 ), false, 2, null, "", ExtResource( 9 ), false, 3, null, "", ExtResource( 10 ), false, 4, null, "", ExtResource( 11 ), false, 5, null, "", ExtResource( 13 ), false, 6, null, "", ExtResource( 15 ), false, 7, null, "", ExtResource( 16 ), false, 8, null, "", ExtResource( 14 ), false, 9, null, "", ExtResource( 12 ), false, 10, null, "", ExtResource( 7 ), false, 11, null, "", ExtResource( 8 ), false, 12, null ] -selected = 0 -[node name="IconButton3" type="OptionButton" parent="VBoxContainer/HBoxContainer/HBoxContainer"] -margin_left = 66.0 -margin_right = 95.0 +[node name="DelIconButton" type="Button" parent="VBoxContainer/HBoxContainer/HBoxContainer"] +margin_left = 32.0 +margin_right = 60.0 margin_bottom = 24.0 -icon = ExtResource( 4 ) +icon = ExtResource( 2 ) flat = true -expand_icon = true -items = [ "", ExtResource( 4 ), false, 0, null, "", ExtResource( 6 ), false, 1, null, "", ExtResource( 5 ), false, 2, null, "", ExtResource( 9 ), false, 3, null, "", ExtResource( 10 ), false, 4, null, "", ExtResource( 11 ), false, 5, null, "", ExtResource( 13 ), false, 6, null, "", ExtResource( 15 ), false, 7, null, "", ExtResource( 16 ), false, 8, null, "", ExtResource( 14 ), false, 9, null, "", ExtResource( 12 ), false, 10, null, "", ExtResource( 7 ), false, 11, null, "", ExtResource( 8 ), false, 12, null ] -selected = 0 -[node name="IconButton4" type="OptionButton" parent="VBoxContainer/HBoxContainer/HBoxContainer"] -margin_left = 99.0 -margin_right = 128.0 +[node name="IconBtnContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer/HBoxContainer"] +margin_left = 64.0 +margin_right = 102.0 margin_bottom = 24.0 -icon = ExtResource( 4 ) -flat = true -expand_icon = true -items = [ "", ExtResource( 4 ), false, 0, null, "", ExtResource( 6 ), false, 1, null, "", ExtResource( 5 ), false, 2, null, "", ExtResource( 9 ), false, 3, null, "", ExtResource( 10 ), false, 4, null, "", ExtResource( 11 ), false, 5, null, "", ExtResource( 13 ), false, 6, null, "", ExtResource( 15 ), false, 7, null, "", ExtResource( 16 ), false, 8, null, "", ExtResource( 14 ), false, 9, null, "", ExtResource( 12 ), false, 10, null, "", ExtResource( 7 ), false, 11, null, "", ExtResource( 8 ), false, 12, null ] -selected = 0 +size_flags_horizontal = 3 +alignment = 1 [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"] -margin_left = 132.0 -margin_right = 224.0 +margin_left = 106.0 +margin_right = 198.0 margin_bottom = 24.0 [node name="AddButton" type="Button" parent="VBoxContainer/HBoxContainer/HBoxContainer2"] @@ -120,20 +91,24 @@ margin_right = 92.0 margin_bottom = 24.0 rect_min_size = Vector2( 28, 24 ) hint_tooltip = "Frame background color" -color = Color( 0.498039, 0.498039, 0.498039, 0.498039 ) +color = Color( 0.360784, 0.360784, 0.360784, 1 ) +edit_alpha = false [node name="UserText" type="TextEdit" parent="VBoxContainer"] margin_top = 28.0 -margin_right = 224.0 +margin_right = 198.0 margin_bottom = 50.0 rect_min_size = Vector2( 0, 20 ) size_flags_horizontal = 3 size_flags_vertical = 3 +custom_styles/normal = SubResource( 1 ) wrap_enabled = true [connection signal="close_request" from="." to="." method="_on_CommentNode_close_request"] [connection signal="dragged" from="." to="." method="_on_CommentNode_dragged"] [connection signal="resize_request" from="." to="." method="_on_CommentNode_resize_request"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/HBoxContainer/NewIconButton" to="." method="_on_NewIconButton_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/HBoxContainer/DelIconButton" to="." method="_on_DelIconButton_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/HBoxContainer2/AddButton" to="." method="_on_AddButton_pressed"] [connection signal="pressed" from="VBoxContainer/HBoxContainer/HBoxContainer2/SubButton" to="." method="_on_SubButton_pressed"] [connection signal="color_changed" from="VBoxContainer/HBoxContainer/HBoxContainer2/ColorPicker" to="." method="_on_ColorPicker_color_changed"] diff --git a/Scenes/DisplayDialog.tscn b/Scenes/DisplayDialog.tscn index dc8d66b..a999baa 100644 --- a/Scenes/DisplayDialog.tscn +++ b/Scenes/DisplayDialog.tscn @@ -24,7 +24,6 @@ use_filter = true font_data = SubResource( 1 ) [node name="DisplayDialog" type="WindowDialog"] -visible = true anchor_right = 1.0 anchor_bottom = 1.0 margin_right = -88.0 @@ -65,6 +64,7 @@ anchor_bottom = 1.0 custom_colors/font_color = Color( 1, 0.976471, 0.87451, 1 ) custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 ) custom_colors/font_color_shadow = Color( 0, 0, 0, 1 ) +custom_constants/line_spacing = -2 custom_constants/shadow_as_outline = 1 custom_fonts/font = SubResource( 2 ) align = 1 diff --git a/Scenes/IconButton.tscn b/Scenes/IconButton.tscn new file mode 100644 index 0000000..ff7d048 --- /dev/null +++ b/Scenes/IconButton.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=16 format=2] + +[ext_resource path="res://Assets/UserIcons/Up_right.svg" type="Texture" id=1] +[ext_resource path="res://Assets/UserIcons/Down_right.svg" type="Texture" id=2] +[ext_resource path="res://Assets/UserIcons/Right.svg" type="Texture" id=3] +[ext_resource path="res://Assets/UserIcons/Simple-up.svg" type="Texture" id=4] +[ext_resource path="res://Assets/UserIcons/Simple-down.svg" type="Texture" id=5] +[ext_resource path="res://Assets/UserIcons/Double-up.svg" type="Texture" id=6] +[ext_resource path="res://Assets/UserIcons/Double-right.svg" type="Texture" id=7] +[ext_resource path="res://Assets/UserIcons/Double-down.svg" type="Texture" id=8] +[ext_resource path="res://Assets/UserIcons/Disc.svg" type="Texture" id=9] +[ext_resource path="res://Assets/UserIcons/Check.svg" type="Texture" id=10] +[ext_resource path="res://Assets/UserIcons/Cross.svg" type="Texture" id=11] +[ext_resource path="res://Assets/UserIcons/Question.svg" type="Texture" id=12] +[ext_resource path="res://Assets/UserIcons/Exclamation.svg" type="Texture" id=13] +[ext_resource path="res://Scripts/IconButton.gd" type="Script" id=14] + +[sub_resource type="ImageTexture" id=1] +flags = 0 +flags = 0 + +[node name="IconButton" type="OptionButton"] +margin_right = 48.0 +margin_bottom = 42.0 +rect_min_size = Vector2( 48, 24 ) +custom_icons/arrow = SubResource( 1 ) +icon = ExtResource( 1 ) +flat = true +icon_align = 1 +expand_icon = true +items = [ "", ExtResource( 1 ), false, 0, null, "", ExtResource( 3 ), false, 1, null, "", ExtResource( 2 ), false, 2, null, "", ExtResource( 6 ), false, 3, null, "", ExtResource( 7 ), false, 4, null, "", ExtResource( 8 ), false, 5, null, "", ExtResource( 10 ), false, 6, null, "", ExtResource( 12 ), false, 7, null, "", ExtResource( 13 ), false, 8, null, "", ExtResource( 11 ), false, 9, null, "", ExtResource( 9 ), false, 10, null, "", ExtResource( 4 ), false, 11, null, "", ExtResource( 5 ), false, 12, null ] +selected = 0 +script = ExtResource( 14 ) diff --git a/Scenes/ImageGraphNode.tscn b/Scenes/ImageGraphNode.tscn index 0682a29..87c65c7 100644 --- a/Scenes/ImageGraphNode.tscn +++ b/Scenes/ImageGraphNode.tscn @@ -77,6 +77,7 @@ anchor_bottom = 1.0 custom_colors/font_color = Color( 1, 0.976471, 0.87451, 1 ) custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 ) custom_colors/font_color_shadow = Color( 0, 0, 0, 1 ) +custom_constants/line_spacing = -1 custom_constants/shadow_as_outline = 1 custom_fonts/font = SubResource( 2 ) align = 1 diff --git a/Scripts/CommentGraphNode.gd b/Scripts/CommentGraphNode.gd index 28767f9..b10c617 100644 --- a/Scripts/CommentGraphNode.gd +++ b/Scripts/CommentGraphNode.gd @@ -6,11 +6,16 @@ const LEFT_MARGIN: = 16.0 # graph space const TOP_MARGIN: = 80.0 # graph space const RIGHT_MARGIN: = 16.0 # graph space const BOTTOM_MARGIN: = 16.0 # graph space -const FOCUS_COLOR_LIGHTEN: = 0.5 +const MAX_ICONBUTTON_COUNT: = 6 +const FOCUS_COLOR_S_FACTOR: = 1.2 +const FOCUS_COLOR_V_FACTOR: = 1.3 var img_nodes: = [] # array of ImageGraphNode var old_offset: Vector2 +onready var iconButton = preload("res://Scenes/IconButton.tscn") + +onready var iconbutton_container: = $VBoxContainer/HBoxContainer/HBoxContainer/IconBtnContainer onready var colorpicker: = $VBoxContainer/HBoxContainer/HBoxContainer2/ColorPicker onready var user_text: = $VBoxContainer/UserText @@ -20,6 +25,7 @@ onready var user_text: = $VBoxContainer/UserText # rect_size is in graph space func _ready(): + assert(iconbutton_container) assert(colorpicker) assert(user_text) old_offset = offset @@ -46,11 +52,17 @@ func get_extra_data() -> Dictionary: "title": get_title(), "color": colorpicker.color, "text": user_text.text, - "img_node_names": [] # filled hereafter + "img_node_names": [], # filled below + "icon_buttons": [], # filled below } + for node in img_nodes: extra_data["img_node_names"].push_back(node.name) + for icon_button in iconbutton_container.get_children(): + assert(icon_button is IconButton) + extra_data["icon_buttons"].push_back(icon_button.get_selected_id()) + return extra_data @@ -60,10 +72,17 @@ func set_extra_data(extra_data: Dictionary, old_to_new: Dictionary, update_size: set_title(extra_data["title"]) set_color(extra_data["color"]) user_text.text = extra_data["text"] + img_nodes.clear() for node_name in extra_data["img_node_names"]: if old_to_new.has(node_name): # user might have copied a comment node without all of its image nodes img_nodes.push_back(get_node("../" + old_to_new[node_name])) + + for selected_id in extra_data["icon_buttons"]: + var icon_button = iconButton.instance() + iconbutton_container.add_child(icon_button) + icon_button.select(selected_id) + if update_size: update_size_options() if not img_nodes.empty(): @@ -82,7 +101,7 @@ func set_color(color: Color): # Focused custom_styles = get("custom_styles/commentfocus") - var focus_color: Color = color.lightened(FOCUS_COLOR_LIGHTEN) + var focus_color: Color = color.from_hsv(color.h, color.s * FOCUS_COLOR_S_FACTOR, color.v * FOCUS_COLOR_V_FACTOR, 1.0) custom_styles.bg_color = focus_color custom_styles.border_color = focus_color @@ -190,3 +209,18 @@ func _on_CommentNode_offset_changed(): func _on_CommentNode_dragged(from, to): if img_nodes.size() > 0: update_size() + + +func _on_NewIconButton_pressed(): + if iconbutton_container.get_child_count() >= MAX_ICONBUTTON_COUNT: + return + var icon_button = iconButton.instance() + iconbutton_container.add_child(icon_button) + + +func _on_DelIconButton_pressed(): + if iconbutton_container.get_child_count() == 0: + return + var icon_button = iconbutton_container.get_child(iconbutton_container.get_child_count()-1) + assert(icon_button is IconButton) + iconbutton_container.remove_child(icon_button) diff --git a/Scripts/GraphEdit.gd b/Scripts/GraphEdit.gd index b3c097c..d91c467 100644 --- a/Scripts/GraphEdit.gd +++ b/Scripts/GraphEdit.gd @@ -310,7 +310,7 @@ func resize_selected_img_nodes_to_custom_img_node_size(): # Creates a new image node and adds it to the graph, centered on the given offset (in graph space). func add_new_image_node(ofs: Vector2, exclusive_select: bool = true, open_image_file: bool = true) -> ImageGraphNode: - var node = imageGraphNode.instance() + var node: ImageGraphNode = imageGraphNode.instance() add_child(node, true) # /!\ before set_offset node.set_offset(ofs - node.rect_size / 2) node.set_bg_color(img_node_bg_color) diff --git a/Scripts/IconButton.gd b/Scripts/IconButton.gd new file mode 100644 index 0000000..09e4241 --- /dev/null +++ b/Scripts/IconButton.gd @@ -0,0 +1,2 @@ +extends OptionButton +class_name IconButton diff --git a/project.godot b/project.godot index 09d1e10..082b67e 100644 --- a/project.godot +++ b/project.godot @@ -34,6 +34,11 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://Scripts/GraphNodeData.gd" }, { +"base": "OptionButton", +"class": "IconButton", +"language": "GDScript", +"path": "res://Scripts/IconButton.gd" +}, { "base": "GraphEdit", "class": "ImageGraph", "language": "GDScript", @@ -50,6 +55,7 @@ _global_script_class_icons={ "DisplayDialog": "", "GraphData": "", "GraphNodeData": "", +"IconButton": "", "ImageGraph": "", "ImageGraphNode": "" }