1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| toto:-
new(D, dialog('Prolog au travail !')),
send(D,size, size(300, 300)),
send(D,open),
affiche(D,1,5,5).
affiche(_D, _C, _, 0) :-!.
affiche(D, C, Largeur, L) :-
forall(between(1, Largeur, I),
( % new(B, box(40,40)),
sformat(Name, 'Coordonnees ~w ~w', [L, I]),
new(B, my_label(Name,'happy.bm')),
X is 50 * (I-1) + 10,
Y is 50 * (L-1) + 10,
send(D, display, B, point(X,Y)))),
L1 is L-1,
affiche(D, C, Largeur, L1).
:- pce_begin_class(my_label, label, "Graphical window with text").
variable(name, any, both, "texte a afficher").
initialise(P, Name, Img) :->
send(P, send_super, initialise, Name, image(Img)),
send(P, slot, name, Name),
WS = 50, HS = 50,
send(P, size, size(WS,HS)),
send(P, recogniser,
handler_group(new(click_gesture(left,
'',
single,
message(@receiver, my_click))))).
% saisie du texte lors d'un click
my_click(B) :->
get(B, slot, name, Name),
send(@display, inform, Name).
:- pce_end_class. |
Partager