11export default async function ( { feature } ) {
2- ScratchTools . waitForElements ( "div[class^='mode-tools_mod-labeled-icon-height_']" , function ( row ) {
3- if ( row . querySelector ( ".ste-align-items" ) ) return ;
4-
5- let span = document . createElement ( "span" )
6- span . className = "button_button_u6SE2 labeled-icon-button_mod-edit-field_1bXYC ste-align-items"
7- span . role = "button"
8-
9- let img = document . createElement ( "img" )
10- img . src = feature . self . getResource ( "paint-align" )
11- img . className = "labeled-icon-button_edit-field-icon_3j-Pf"
12- img . alt = feature . msg ( "align" )
13- img . title = feature . msg ( "align" )
14- img . draggable = false
15- span . appendChild ( img )
16-
17- let label = document . createElement ( "span" )
18- label . textContent = feature . msg ( "align" )
19- label . className = "labeled-icon-button_edit-field-title_1ZoEV"
20- span . appendChild ( label )
21-
22- span . addEventListener ( "click" , function ( ) {
2+ ScratchTools . waitForElements (
3+ "div[class^='mode-tools_mod-labeled-icon-height_']" ,
4+ function ( row ) {
5+ if ( row . querySelector ( ".ste-align-items" ) ) return ;
6+
7+ let span = document . createElement ( "span" ) ;
8+ span . className =
9+ "button_button_u6SE2 labeled-icon-button_mod-edit-field_1bXYC ste-align-items" ;
10+ span . role = "button" ;
11+
12+ let img = document . createElement ( "img" ) ;
13+ img . src = feature . self . getResource ( "paint-align" ) ;
14+ img . className = "labeled-icon-button_edit-field-icon_3j-Pf" ;
15+ img . alt = feature . msg ( "align" ) ;
16+ img . title = feature . msg ( "align" ) ;
17+ img . draggable = false ;
18+ span . appendChild ( img ) ;
19+
20+ let label = document . createElement ( "span" ) ;
21+ label . textContent = feature . msg ( "align" ) ;
22+ label . className = "labeled-icon-button_edit-field-title_1ZoEV" ;
23+ span . appendChild ( label ) ;
24+
25+ span . addEventListener ( "click" , function ( e ) {
2326 if ( span . className . includes ( "disabled" ) ) return ;
24- centerObjects ( )
25- } )
27+ centerObjects ( e . shiftKey ) ;
28+ } ) ;
2629
27- row . appendChild ( span )
28- } )
30+ row . appendChild ( span ) ;
31+ }
32+ ) ;
2933
30- feature . redux . subscribe ( function ( ) {
34+ feature . redux . subscribe ( function ( ) {
3135 if ( document . querySelector ( ".ste-align-items" ) ) {
32- let span = document . querySelector ( ".ste-align-items" )
33-
34- if ( feature . traps . paint ( ) . format === "BITMAP" || feature . traps . paint ( ) . selectedItems ?. length < 2 ) {
35- span . classList . add ( "button_mod-disabled_1rf31" )
36- } else {
37- span . classList . remove ( "button_mod-disabled_1rf31" )
38- }
36+ let span = document . querySelector ( ".ste-align-items" ) ;
37+
38+ if (
39+ feature . traps . paint ( ) . format === "BITMAP" ||
40+ feature . traps . paint ( ) . selectedItems ?. length < 2
41+ ) {
42+ span . classList . add ( "button_mod-disabled_1rf31" ) ;
43+ } else {
44+ span . classList . remove ( "button_mod-disabled_1rf31" ) ;
45+ }
3946 }
40- } )
47+ } ) ;
4148
42- function centerObjects ( ) {
49+ function centerObjects ( stay ) {
4350 let items = feature . traps . paint ( ) . selectedItems ;
4451
4552 let allX = [ ] ;
@@ -51,7 +58,12 @@ export default async function ({ feature }) {
5158 allY . push ( getMidPoint ( items [ i ] . segments ) . y ) ;
5259 }
5360
54- let trueMidpoint = { x : average ( allX ) , y : average ( allY ) } ;
61+ let trueMidpoint = stay
62+ ? {
63+ x : getMidPoint ( items [ 0 ] . segments ) . x ,
64+ y : getMidPoint ( items [ 0 ] . segments ) . y ,
65+ }
66+ : { x : average ( allX ) , y : average ( allY ) } ;
5567
5668 for ( var i in items ) {
5769 let selfMidpoint = getMidPoint ( items [ i ] . segments ) ;
@@ -62,6 +74,11 @@ export default async function ({ feature }) {
6274 items [ i ] . segments [ seg ] . _point . _x += adjustX ;
6375 items [ i ] . segments [ seg ] . _point . _y += adjustY ;
6476 }
77+
78+ for ( var comp in ( items [ i ] . fillColor ?. _components || [ ] ) ) {
79+ items [ i ] . fillColor . _components [ comp ] . x += adjustX ;
80+ items [ i ] . fillColor . _components [ comp ] . y += adjustY ;
81+ }
6582 }
6683
6784 feature . traps . getPaper ( ) . tool . onUpdateImage ( ) ;
0 commit comments