Skip to content

Commit d327202

Browse files
committed
Merge pull request #48 from rschamp/feature/rounded-notch-corners
Round notch corners
2 parents 8a415ab + f5e129b commit d327202

File tree

1 file changed

+42
-13
lines changed

1 file changed

+42
-13
lines changed

core/block_horizontal_scratch.js

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -789,11 +789,6 @@ Blockly.BlockSvg.MIN_BLOCK_Y = 25;
789789
* @const
790790
*/
791791
Blockly.BlockSvg.TAB_WIDTH = 8;
792-
/**
793-
* Width of vertical tab (inc left margin).
794-
* @const
795-
*/
796-
Blockly.BlockSvg.NOTCH_HEIGHT = 32;
797792
/**
798793
* Rounded corner radius.
799794
* @const
@@ -805,22 +800,56 @@ Blockly.BlockSvg.CORNER_RADIUS = 4;
805800
*/
806801
Blockly.BlockSvg.HAT_CORNER_RADIUS = 16;
807802
/**
808-
* SVG path for drawing next/previous notch from left to right.
803+
* Rounded notch radius.
804+
* @const
805+
*/
806+
Blockly.BlockSvg.NOTCH_RADIUS = 2.5;
807+
/**
808+
* Height of connector notch, not including rounded corner at top and bottom.
809809
* @const
810810
*/
811-
Blockly.BlockSvg.NOTCH_PATH_DOWN = 'l 8,8 0,16 -8,8';
811+
Blockly.BlockSvg.NOTCH_BASE_HEIGHT = 32;
812812
/**
813-
* SVG path for drawing next/previous notch from right to left.
813+
* Full height of connector notch including rounded corner.
814814
* @const
815815
*/
816-
Blockly.BlockSvg.NOTCH_PATH_UP = 'l 8,-8 0,-16 -8,-8';
816+
Blockly.BlockSvg.NOTCH_HEIGHT = Blockly.BlockSvg.NOTCH_BASE_HEIGHT + Blockly.BlockSvg.NOTCH_RADIUS;
817817
/**
818-
* SVG path for drawing a horizontal puzzle tab from top to bottom.
818+
* SVG path for drawing next/previous notch from top to bottom.
819+
* @const
820+
*/
821+
Blockly.BlockSvg.NOTCH_PATH_DOWN =
822+
'a ' + -Blockly.BlockSvg.NOTCH_RADIUS + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
823+
'0 0 0 ' + Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
824+
'l ' + (Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 - Blockly.BlockSvg.NOTCH_RADIUS) + ',' +
825+
(Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 - Blockly.BlockSvg.NOTCH_RADIUS) + ' ' +
826+
'a ' + -Blockly.BlockSvg.NOTCH_RADIUS + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
827+
'0 0 1 ' + Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
828+
'v ' + (Blockly.BlockSvg.NOTCH_BASE_HEIGHT/2 - Blockly.BlockSvg.NOTCH_RADIUS) + ' ' +
829+
'a ' + -Blockly.BlockSvg.NOTCH_RADIUS + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
830+
'0 0 1 ' + -Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
831+
'l ' + (-Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 + Blockly.BlockSvg.NOTCH_RADIUS) + ',' +
832+
(Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 - Blockly.BlockSvg.NOTCH_RADIUS) + ' ' +
833+
'a ' + -Blockly.BlockSvg.NOTCH_RADIUS + ',' + Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
834+
'0 0 0 ' + -Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + Blockly.BlockSvg.NOTCH_RADIUS;
835+
/**
836+
* SVG path for drawing next/previous notch from bottom to top.
819837
* @const
820838
*/
821-
Blockly.BlockSvg.TAB_PATH_DOWN = 'v 5 c 0,10 -' + Blockly.BlockSvg.TAB_WIDTH +
822-
',-8 -' + Blockly.BlockSvg.TAB_WIDTH + ',7.5 s ' +
823-
Blockly.BlockSvg.TAB_WIDTH + ',-2.5 ' + Blockly.BlockSvg.TAB_WIDTH + ',7.5';
839+
Blockly.BlockSvg.NOTCH_PATH_UP =
840+
'a ' + Blockly.BlockSvg.NOTCH_RADIUS + ',' + -Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
841+
'0 0 1 ' + Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + -Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
842+
'l ' + (Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 - Blockly.BlockSvg.NOTCH_RADIUS) + ',' +
843+
-1*(Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 - Blockly.BlockSvg.NOTCH_RADIUS) + ' ' +
844+
'a ' + Blockly.BlockSvg.NOTCH_RADIUS + ',' + -Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
845+
'0 0 0 ' + Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + -Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
846+
'v ' + -1*(Blockly.BlockSvg.NOTCH_BASE_HEIGHT/2 - Blockly.BlockSvg.NOTCH_RADIUS) + ' ' +
847+
'a ' + Blockly.BlockSvg.NOTCH_RADIUS + ',' + -Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
848+
'0 0 0 ' + -Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + -Blockly.BlockSvg.NOTCH_RADIUS +
849+
'l ' + (-Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 + Blockly.BlockSvg.NOTCH_RADIUS) + ',' +
850+
(-Blockly.BlockSvg.NOTCH_BASE_HEIGHT/4 + Blockly.BlockSvg.NOTCH_RADIUS) + ' ' +
851+
'a ' + Blockly.BlockSvg.NOTCH_RADIUS + ',' + -Blockly.BlockSvg.NOTCH_RADIUS + ' ' +
852+
'0 0 1 ' + -Blockly.BlockSvg.NOTCH_RADIUS/2 + ',' + -Blockly.BlockSvg.NOTCH_RADIUS;
824853
/**
825854
* SVG start point for drawing the top-left corner.
826855
* @const

0 commit comments

Comments
 (0)