32 lines
1.1 KiB
Prolog
32 lines
1.1 KiB
Prolog
:- use_module(library(pce)).
|
|
|
|
create_todo :-
|
|
new(Window, dialog('Prolog TODO')),
|
|
new(TaskName, text_item('Nazwa zadania')),
|
|
new(TaskList, list_browser),
|
|
new(AddButton, button('Dodaj zadanie', message(@prolog, add_task, TaskName, TaskList))),
|
|
new(RemoveButton, button('Usuń zadanie', message(@prolog, remove_task, TaskList))),
|
|
send(Window, append, TaskName),
|
|
send(Window, append, AddButton),
|
|
send(Window, append, TaskList, below),
|
|
send(Window, append, RemoveButton),
|
|
send(Window, open).
|
|
|
|
add_task(TaskName, TaskList) :-
|
|
get(TaskName, selection, SelectedName),
|
|
send(TaskList, append, SelectedName),
|
|
send(@display, inform, string('Dodano zadanie: "%s".', SelectedName)),
|
|
open('todo_list.txt', append, Stream),
|
|
format(Stream, '~w~n', [SelectedName]),
|
|
close(Stream).
|
|
|
|
remove_task(TaskList) :-
|
|
get(TaskList, selection, DictItem),
|
|
( DictItem \== @nil
|
|
-> get(DictItem, key, TaskName),
|
|
send(TaskList, delete, DictItem),
|
|
send(@display, inform, string('Usunięto zadanie: "%s".', TaskName))
|
|
; send(@display, inform, 'Nie wybrano zadania.')
|
|
).
|
|
|
|
:- create_todo. |