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 }