Browse code

Added resize buttons to noodle

neauoire authored on 27/03/2021 23:58:25
Showing 1 changed files
... ...
@@ -9,10 +9,7 @@
9 9
 	1-8 - select brush size
10 10
 
11 11
 	TODO
12
-		- Resize buttons
13
-		- Limit size
14 12
 		- Pixel cleanup brush
15
-		- Display filename
16 13
 		- Rename filename
17 14
 )
18 15
 
... ...
@@ -38,6 +35,7 @@
38 35
 ;toolpane { x1 2 y1 2 x2 2 y2 2 }
39 36
 ;pattpane { x1 2 y1 2 x2 2 y2 2 }
40 37
 ;sizepane { x1 2 y1 2 x2 2 y2 2 }
38
+;viewpane { x1 2 y1 2 x2 2 y2 2 }
41 39
 ;canvas { x1 2 y1 2 x2 2 y2 2 w 2 h 2 }
42 40
 
43 41
 ;rect { x1 2 y1 2 x2 2 y2 2 }
... ...
@@ -91,6 +89,7 @@
91 89
 	#0010 =toolpane.x1 #0010 =toolpane.y1
92 90
 	~Screen.width #0050 SUB2 =pattpane.x1 #0010 =pattpane.y1
93 91
 	#0040 =sizepane.x1 #0010 =sizepane.y1
92
+	~Screen.width #0078 SUB2 =viewpane.x1 #0010 =viewpane.y1
94 93
 
95 94
 	~toolpane.x1 #0028 ADD2 =toolpane.x2
96 95
 	~toolpane.y1 #0008 ADD2 =toolpane.y2
... ...
@@ -104,6 +103,10 @@
104 103
 	~sizepane.y1 #0008 ADD2 =sizepane.y2
105 104
 	,draw-sizepane JSR2
106 105
 
106
+	~viewpane.x1 #0020 ADD2 =viewpane.x2
107
+	~viewpane.y1 #0008 ADD2 =viewpane.y2
108
+	,draw-viewpane JSR2
109
+
107 110
 BRK
108 111
 
109 112
 @FRAME 
... ...
@@ -119,6 +122,7 @@ BRK
119 122
 		,draw-toolpane JSR2
120 123
 		,draw-pattpane JSR2
121 124
 		,draw-sizepane JSR2
125
+		,draw-viewpane JSR2
122 126
 		#00 =brush.drag
123 127
 	$no-release
124 128
 
... ...
@@ -193,6 +197,31 @@ BRK
193 197
 			,$touch-end JMP2
194 198
 		$no-touch-toolpane
195 199
 
200
+		( in viewpane )
201
+		~Mouse.x CLN2r ~viewpane.x1 GTH2 STH2r ~viewpane.x2 LTH2 #0101 NEQ2 ,$no-touch-viewpane JNZ2
202
+		~Mouse.y CLN2r ~viewpane.y1 GTH2 STH2r ~viewpane.y2 LTH2 #0101 NEQ2 ,$no-touch-viewpane JNZ2
203
+			( release ) #00 =Mouse.state
204
+			~canvas.x1 #0002 SUB2 ~canvas.y1 #0002 SUB2 ~canvas.x2 #0002 ADD2 ~canvas.y2 #0002 ADD2 #00 ,fill-rect JSR2
205
+			,draw-background JSR2
206
+			~Mouse.x ~viewpane.x1 SUB2 8/ SWP POP
207
+			DUP #00 NEQ ^$no-incwidth JNZ
208
+				~canvas.w ++ =canvas.w
209
+			$no-incwidth
210
+			DUP #01 NEQ ^$no-decwidth JNZ
211
+				~canvas.w -- =canvas.w
212
+			$no-decwidth
213
+			DUP #02 NEQ ^$no-incheight JNZ
214
+				~canvas.h ++ =canvas.h
215
+			$no-incheight
216
+			DUP #03 NEQ ^$no-decheight JNZ
217
+				~canvas.h -- =canvas.h
218
+			$no-decheight
219
+			POP
220
+			,fit-canvas JSR2
221
+			,redraw JSR2
222
+			,$touch-end JMP2
223
+		$no-touch-viewpane
224
+
196 225
 		( in canvas )
197 226
 		~Mouse.x CLN2r ~canvas.x1 GTS2 STH2r ~canvas.x2 LTS2 #0101 NEQ2 ,$no-touch-canvas JNZ2
198 227
 		~Mouse.y CLN2r ~canvas.y1 GTS2 STH2r ~canvas.y2 LTS2 #0101 NEQ2 ,$no-touch-canvas JNZ2
... ...
@@ -351,6 +380,7 @@ RTN
351 380
 	,draw-toolpane JSR2
352 381
 	,draw-pattpane JSR2
353 382
 	,draw-sizepane JSR2
383
+	,draw-viewpane JSR2
354 384
 
355 385
 RTN
356 386
 
... ...
@@ -384,6 +414,7 @@ RTN
384 414
 	,draw-toolpane JSR2
385 415
 	,draw-pattpane JSR2
386 416
 	,draw-sizepane JSR2
417
+	,draw-viewpane JSR2
387 418
 	
388 419
 RTN
389 420
 
... ...
@@ -401,7 +432,7 @@ RTN
401 432
 	$ver
402 433
 		#00 =px.x
403 434
 		$hor
404
-			( addr ) ,size_icn #00 ~brush.size 8* ADD2
435
+			( addr ) ,size_icns #00 ~brush.size 8* ADD2
405 436
 			( byte ) #00 ~px.y ADD2 PEK2 #07 ~px.x SUB SFT #01 AND 
406 437
 			#00 EQU ^$no-pixel JNZ
407 438
 			,patternize JSR2 #00 EQU ^$no-pixel JNZ
... ...
@@ -415,6 +446,7 @@ RTN
415 446
 	,draw-toolpane JSR2
416 447
 	,draw-pattpane JSR2
417 448
 	,draw-sizepane JSR2
449
+	,draw-viewpane JSR2
418 450
 
419 451
 RTN
420 452
 
... ...
@@ -504,6 +536,7 @@ RTN
504 536
 	,draw-toolpane JSR2
505 537
 	,draw-pattpane JSR2
506 538
 	,draw-sizepane JSR2
539
+	,draw-viewpane JSR2
507 540
 		
508 541
 RTN
509 542
 
... ...
@@ -582,7 +615,7 @@ RTN
582 615
 		~Controller #02 EQU ^$outside-canvas JNZ
583 616
 		~cursor.x #0003 SUB2 =Sprite.x
584 617
 		~cursor.y #0003 SUB2 =Sprite.y
585
-		,brush_view #00 ~brush.size 8* ADD2 =Sprite.addr
618
+		,brush_icns #00 ~brush.size 8* ADD2 =Sprite.addr
586 619
 		#11 ~Mouse.state #02 MUL ADD =Sprite.color
587 620
 		~Mouse.state #00 EQU ^$outside-canvas JNZ
588 621
 			RTN
... ...
@@ -602,17 +635,17 @@ RTN
602 635
 
603 636
 	~toolpane.x1 =Sprite.x
604 637
 	~toolpane.y1 =Sprite.y
605
-	,tool_icn =Sprite.addr
638
+	,tool_icns =Sprite.addr
606 639
 
607
-	$tools
640
+	$loop
608 641
 		( draw ) #01 ~Sprite.x ~toolpane.x1 SUB2 8/ SWP POP ~brush.tool EQU #02 MUL ADD =Sprite.color
609 642
 		( incr ) ~Sprite.x 8+ =Sprite.x
610 643
 		( incr ) ~Sprite.addr 8+ =Sprite.addr
611
-		~Sprite.x ~toolpane.x2 LTH2 ^$tools JNZ
644
+		~Sprite.x ~toolpane.x2 LTH2 ^$loop JNZ
612 645
 
613 646
 	~zoom.active #01 NEQ ^$no-zoom JNZ
614 647
 		~Sprite.x #0008 SUB2 =Sprite.x
615
-		,tool_icn #0028 ADD2 =Sprite.addr
648
+		,tool_icns #0028 ADD2 =Sprite.addr
616 649
 		#01 #04 ~brush.tool EQU #02 MUL ADD =Sprite.color
617 650
 	$no-zoom
618 651
 
... ...
@@ -625,13 +658,13 @@ RTN
625 658
 
626 659
 	~pattpane.x1 =Sprite.x
627 660
 	~pattpane.y1 =Sprite.y
628
-	,patt_icn =Sprite.addr
661
+	,patt_icns =Sprite.addr
629 662
 
630
-	$patterns
663
+	$loop
631 664
 		( draw ) #01 ~Sprite.x ~pattpane.x1 SUB2 8/ SWP POP ~brush.patt EQU #02 MUL ADD =Sprite.color
632 665
 		( incr ) ~Sprite.x 8+ =Sprite.x
633 666
 		( incr ) ~Sprite.addr 8+ =Sprite.addr
634
-		~Sprite.x ~pattpane.x2 LTH2 ^$patterns JNZ
667
+		~Sprite.x ~pattpane.x2 LTH2 ^$loop JNZ
635 668
 
636 669
 RTN
637 670
 
... ...
@@ -642,13 +675,30 @@ RTN
642 675
 
643 676
 	~sizepane.x1 =Sprite.x
644 677
 	~sizepane.y1 =Sprite.y
645
-	,size_icn =Sprite.addr
678
+	,size_icns =Sprite.addr
646 679
 
647
-	$patterns
680
+	$loop
648 681
 		( draw ) #01 ~Sprite.x ~sizepane.x1 SUB2 8/ SWP POP ~brush.size EQU #02 MUL ADD =Sprite.color
649 682
 		( incr ) ~Sprite.x 8+ =Sprite.x
650 683
 		( incr ) ~Sprite.addr 8+ =Sprite.addr
651
-		~Sprite.x ~sizepane.x2 LTH2 ^$patterns JNZ
684
+		~Sprite.x ~sizepane.x2 LTH2 ^$loop JNZ
685
+
686
+RTN
687
+
688
+@draw-viewpane
689
+
690
+	~viewpane.x1 -- ~viewpane.y1 -- ~viewpane.x2 ~viewpane.y2 #00 ,line-rect JSR2
691
+	~viewpane.x1 #0002 SUB2 ~viewpane.y1 #0002 SUB2 ~viewpane.x2 ~viewpane.y2 #01 ,line-rect JSR2
692
+
693
+	~viewpane.x1 =Sprite.x
694
+	~viewpane.y1 =Sprite.y
695
+	,view_icns =Sprite.addr
696
+
697
+	$loop
698
+		( draw ) #01 =Sprite.color
699
+		( incr ) ~Sprite.x 8+ =Sprite.x
700
+		( incr ) ~Sprite.addr 8+ =Sprite.addr
701
+		~Sprite.x ~viewpane.x2 LTH2 ^$loop JNZ
652 702
 
653 703
 RTN
654 704
 
... ...
@@ -749,7 +799,7 @@ RTN
749 799
 
750 800
 RTN
751 801
 
752
-@size_icn    
802
+@size_icns    
753 803
 	[ 0000 0010 0000 0000 ]
754 804
 	[ 0000 1038 1000 0000 ]
755 805
 	[ 0000 3838 3800 0000 ]
... ...
@@ -759,7 +809,7 @@ RTN
759 809
 	[ 387c fefe fe7c 3800 ]
760 810
 	[ 7cfe fefe fefe 7c00 ]
761 811
 
762
-@patt_icn 
812
+@patt_icns 
763 813
 	[ fefe fefe fefe fe00 ]
764 814
 	[ fed6 aad6 aad6 fe00 ]
765 815
 	[ fe92 82d6 8292 fe00 ]
... ...
@@ -769,7 +819,7 @@ RTN
769 819
 	[ feaa aaaa aaaa fe00 ]	
770 820
 	[ fe82 fe82 fe82 fe00 ]
771 821
 
772
-@tool_icn 
822
+@tool_icns 
773 823
 	[ c0e0 5028 140a 0400 ]
774 824
 	[ e0d0 a844 2212 0c00 ]
775 825
 	[ c0b8 4848 7804 0200 ]
... ...
@@ -777,7 +827,13 @@ RTN
777 827
 	[ 3048 8484 4834 0200 ] ( zoom )
778 828
 	[ 3245 8284 4834 0200 ] ( zoom out )
779 829
 
780
-@brush_view 
830
+@view_icns 
831
+	[ ee92 8a84 8a92 ee00 ]
832
+	[ f68a 92a2 928a f600 ]
833
+	[ fe82 8244 aa92 ee00 ]
834
+	[ fe82 92aa 4482 fe00 ]
835
+
836
+@brush_icns 
781 837
 	[ 0000 0010 0000 0000 ]
782 838
 	[ 0000 1028 1000 0000 ]
783 839
 	[ 0000 3828 3800 0000 ]
... ...
@@ -798,7 +854,6 @@ RTN
798 854
 
799 855
 @load_icn       [ feaa d6aa d4aa f400 ]
800 856
 @save_icn       [ fe82 8282 848a f400 ]
801
-
802 857
 @blank_icn      [ 0000 0000 0000 0000 ]
803 858
 @filepath       [ projects/pictures/tima2a1a.bit 00 ]
804 859