prolog_todo/todo.pl

32 lines
1.1 KiB
Perl
Raw Normal View History

2024-06-23 22:36:34 +02:00
:- 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.