:- 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.