1 /*
2  * PixelPerfectEditor, importDialog module
3  *
4  * Copyright 2017, under Boost License
5  *
6  * by Laszlo Szeremi
7  */
8 
9 module importDialog;
10 
11 import PixelPerfectEngine.concrete.window;
12 import PixelPerfectEngine.graphics.common;
13 
14 import std.conv;
15 
16 import converterdialog;
17 
18 public class ImportDialog : Window {
19 	Label label1;
20 	TextBox bitmapID;
21 	TextBox paletteID;
22 	Label label2;
23 	CheckBox chkBPal;
24 	RadioButtonGroup radioButtonGroup1;
25 	Button buttonOk;
26 	Button buttonClose;
27 	ConverterDialog c;
28 	this(ConverterDialog c){
29 		super(Coordinate(0, 0, 225, 225), "Import bitmap"d);
30 		label1 = new Label("ID:"d, "label1", Coordinate(5, 22, 70, 40));
31 		bitmapID = new TextBox(""d, "bitmapID", Coordinate(80, 20, 220, 40));
32 		paletteID = new TextBox("default"d, "paletteID", Coordinate(80, 45, 220, 65));
33 		label2 = new Label("Palette:"d, "label2", Coordinate(5, 47, 75, 65));
34 		chkBPal = new CheckBox("Import palette from file"d, "chkBPal", Coordinate(5, 70, 220, 90));
35 		radioButtonGroup1 = new RadioButtonGroup("Bitdepth:"d, "radioButtonGroup1", Coordinate(5, 95, 220, 195),[ "1bit"d,
36 				"4bit"d, "8bit"d, "16bit"d, "32bit"d], 16, 0);
37 		buttonOk = new Button("Ok"d, "buttonOk", Coordinate(145, 200, 220, 220));
38 		buttonClose = new Button("Close"d, "buttonClose", Coordinate(65, 200, 135, 220));
39 		addElement(label1, EventProperties.MOUSE);
40 		addElement(bitmapID, EventProperties.MOUSE);
41 		addElement(paletteID, EventProperties.MOUSE);
42 		addElement(label2, EventProperties.MOUSE);
43 		addElement(chkBPal, EventProperties.MOUSE);
44 		addElement(radioButtonGroup1, EventProperties.MOUSE);
45 		addElement(buttonOk, EventProperties.MOUSE);
46 		buttonOk.onMouseLClickRel = &buttonOk_mouseLClickRel;
47 		buttonClose.onMouseLClickRel = &buttonClose_mouseLClickRel;
48 		addElement(buttonClose, EventProperties.MOUSE);
49 		this.c = c;
50 	}
51 	private void buttonOk_mouseLClickRel(Event ev) {
52 		string bitDepth;
53 		switch(radioButtonGroup1.value){
54 			case 1:
55 				bitDepth = "4bit";
56 				break;
57 			case 2:
58 				bitDepth = "8bit";
59 				break;
60 			case 3:
61 				bitDepth = "16bit";
62 				break;
63 			case 4:
64 				bitDepth = "32bit";
65 				break;
66 			default:
67 				bitDepth = "1bit";
68 				break;
69 		}
70 		c.singleImport(to!string(bitmapID.getText()), to!string(paletteID.getText()), chkBPal.value, bitDepth);
71 		close();
72 	}
73 	private void buttonClose_mouseLClickRel(Event ev){
74 		close();
75 	}
76 }