1 module paletteEdit;
2 import PixelPerfectEngine.concrete.elements;
3 import PixelPerfectEngine.concrete.window;
4 import PixelPerfectEngine.graphics.common;
5 import PixelPerfectEngine.graphics.bitmap;
6 import PixelPerfectEngine.extbmp.extbmp;
7 import PixelPerfectEngine.system.etc;
8 /+
9 public class PaletteEditor : Window, ActionListener{
10 	private SmallButton[16] plusR, minusR, plusG, minusG, plusB, minusB, plusA, minusA;
11 	private Button nextPage, prevPage, addColor;
12 	private Label[16] r, g, b, a;
13 	private ubyte[] palette;
14 	private Label red, green, blue, alpha, rangeA, rangeB, rangeADisp, rangeBDisp;
15 	public this() {
16 		super(Coordinate(0,0,368,322),"PaletteEditor",["MenuButtonA","SaveButtonA","LoadButtonA"]);
17 		for (int i; i < 16; i++){
18 			r[i] = new Label("00","null",Coordinate(112,32+(i * 16),144,48+(i * 16)));
19 			g[i] = new Label("00","null",Coordinate(176,32+(i * 16),208,48+(i * 16)));
20 			b[i] = new Label("00","null",Coordinate(240,32+(i * 16),272,48+(i * 16)));
21 			a[i] = new Label("00","null",Coordinate(304,32+(i * 16),336,48+(i * 16)));
22 			plusR[i] = new SmallButton("plusA","plusB","rP" ~ intToHex(i),Coordinate(80,32+(i * 16),96,48+(i * 16)));
23 			minusR[i] = new SmallButton("minusA","minusB","rN" ~ intToHex(i),Coordinate(96,32+(i * 16),112,48+(i * 16)));
24 			plusG[i] = new SmallButton("plusA","plusB","gP" ~ intToHex(i),Coordinate(144,32+(i * 16),160,48+(i * 16)));
25 			minusG[i] = new SmallButton("minusA","minusB","gP" ~ intToHex(i),Coordinate(160,32+(i * 16),176,48+(i * 16)));
26 			plusB[i] = new SmallButton("plusA","plusB","bP" ~ intToHex(i),Coordinate(208,32+(i * 16),224,48+(i * 16)));
27 			minusB[i] = new SmallButton("minusA","minusB","bP" ~ intToHex(i),Coordinate(224,32+(i * 16),240,48+(i * 16)));
28 			plusA[i] = new SmallButton("plusA","plusB","aP" ~ intToHex(i),Coordinate(272,32+(i * 16),288,48+(i * 16)));
29 			minusA[i] = new SmallButton("minusA","minusB","aP" ~ intToHex(i),Coordinate(288,32+(i * 16),304,48+(i * 16)));
30 			plusR[i].al ~= this;
31 			minusR[i].al ~= this;
32 			plusG[i].al ~= this;
33 			minusG[i].al ~= this;
34 			plusB[i].al ~= this;
35 			minusB[i].al ~= this;
36 			plusA[i].al ~= this;
37 			minusA[i].al ~= this;
38 			addElement(r[i],EventProperties.MOUSE);
39 			addElement(g[i],EventProperties.MOUSE);
40 			addElement(b[i],EventProperties.MOUSE);
41 			addElement(a[i],EventProperties.MOUSE);
42 			addElement(plusR[i],EventProperties.MOUSE);
43 			addElement(minusR[i],EventProperties.MOUSE);
44 			addElement(plusG[i],EventProperties.MOUSE);
45 			addElement(minusG[i],EventProperties.MOUSE);
46 			addElement(plusB[i],EventProperties.MOUSE);
47 			addElement(minusB[i],EventProperties.MOUSE);
48 			addElement(plusA[i],EventProperties.MOUSE);
49 			addElement(minusA[i],EventProperties.MOUSE);
50 		}
51 		red = new Label("Red:","null",Coordinate(080,16,144,32));
52 		addElement(red, 0);
53 		green = new Label("Green:","null",Coordinate(144,16,208,32));
54 		addElement(green, 0);
55 		blue = new Label("Blue:","null",Coordinate(208,16,272,32));
56 		addElement(blue, 0);
57 		alpha = new Label("Alpha:","null",Coordinate(272,16,336,32));
58 		addElement(alpha, 0);
59 		rangeA = new Label("Range A:","null", Coordinate(8,286,88,304));
60 		addElement(rangeA, 0);
61 		rangeA = new Label("Range B:","null", Coordinate(8,304,88,320));
62 		addElement(rangeB, 0);
63 		rangeADisp = new Label("0000 - 0000","null", Coordinate(88,286,168,304));
64 		addElement(rangeADisp, 0);
65 		rangeBDisp = new Label("0000 - 0000","null", Coordinate(88,304,168,320));
66 		addElement(rangeBDisp, 0);
67 		addColor = new Button("Add Color","addcolor", Coordinate(286,300,366,320));
68 		addColor.al ~= this;
69 		addElement(addColor,EventProperties.MOUSE);
70 		nextPage = new Button("Next","nextpage", Coordinate(240,300,284,320));
71 		nextPage.al ~= this;
72 		addElement(nextPage,EventProperties.MOUSE);
73 		prevPage = new Button("Prev","prevpage", Coordinate(198,300,238,320));
74 		prevPage.al ~= this;
75 		addElement(prevPage,EventProperties.MOUSE);
76 	}
77 	override public void actionEvent(Event event) {
78 		if(event.source.length == 3){
79 			
80 		}
81 	}
82 	
83 }
84 +/
85 public class ColorDisplay : WindowElement{
86 	Bitmap32Bit paletteDisplay, selectionDisplay;
87 	public this(){
88 	
89 	}
90 	override public void draw() {
91 		
92 	}
93 	public void onPaletteUpdate(ubyte* palette, int length, int offsetA, int offsetB){
94 		
95 	}
96 }