67 lines
1018 B
D
67 lines
1018 B
D
|
|
module otya.smilebasic.dialog;
|
||
|
|
import otya.smilebasic.petitcomputer;
|
||
|
|
import derelict.sdl2.sdl;
|
||
|
|
import derelict.sdl2.image;
|
||
|
|
import derelict.opengl3.gl;
|
||
|
|
import derelict.opengl3.gl3;
|
||
|
|
|
||
|
|
class DialogBase
|
||
|
|
{
|
||
|
|
abstract void render();
|
||
|
|
}
|
||
|
|
|
||
|
|
enum SelectionType
|
||
|
|
{
|
||
|
|
ok,
|
||
|
|
noYes,
|
||
|
|
backNext,
|
||
|
|
cancelConfirm,
|
||
|
|
cancelExecute,
|
||
|
|
next,
|
||
|
|
}
|
||
|
|
|
||
|
|
enum ButtonResult
|
||
|
|
{
|
||
|
|
a = 128,
|
||
|
|
b = 129,
|
||
|
|
x = 130,
|
||
|
|
y = 131,
|
||
|
|
up = 132,
|
||
|
|
down = 133,
|
||
|
|
left = 134,
|
||
|
|
right = 135,
|
||
|
|
l = 136,
|
||
|
|
r = 137,
|
||
|
|
touch = 140,
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
class Dialog : DialogBase
|
||
|
|
{
|
||
|
|
private PetitComputer petitcom;
|
||
|
|
this(PetitComputer petitcom)
|
||
|
|
{
|
||
|
|
this.petitcom = petitcom;
|
||
|
|
}
|
||
|
|
private int result;
|
||
|
|
|
||
|
|
override void render()
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
int show(wstring text)
|
||
|
|
{
|
||
|
|
petitcom.dialog = this;
|
||
|
|
auto area = petitcom.showTouchScreen();
|
||
|
|
while (true)
|
||
|
|
{
|
||
|
|
auto to = petitcom.touchPosition();
|
||
|
|
|
||
|
|
}
|
||
|
|
petitcom.hideTouchScreen();
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|