From 52fb337856497cb151081f3738e7cfa4bc2883bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Tue, 15 Feb 2022 16:29:59 +0100 Subject: Rework list view code. --- c/datalistview.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 c/datalistview.c (limited to 'c/datalistview.c') diff --git a/c/datalistview.c b/c/datalistview.c new file mode 100644 index 0000000..4980d3b --- /dev/null +++ b/c/datalistview.c @@ -0,0 +1,60 @@ +#include +#include + +#include "resource.h" +#include "datalistview.h" + +HWND gDlv_hWnd; + +void +DlvCreate(HWND hWnd) +{ + gDlv_hWnd = hWnd; +} + +/* Show episode data. */ +void +DlvShowEpisode(int iEpisode) +{ + int r; + term_t t; + + t = PL_new_term_refs(3); + if(!PL_put_integer(t+0, iEpisode)) + return; + + r = PL_call_predicate(NULL, PL_Q_NORMAL, + PL_predicate("lookup_episode_local", 3, "episode_data"), + t); + if (!r) + return; + + /* The episode data is a list of unary compounds, + * whose functor is the key and whose argument is the value. */ + + { + term_t tHead, tList; + + tHead = PL_new_term_ref(); + tList = PL_copy_term_ref(t+2); + + while (PL_get_list(tList, tHead, tList)) { + atom_t aKey; + const char *szKey; + char *szValue; + term_t tValue; + size_t iArity; + + if (!PL_get_name_arity(tHead, &aKey, &iArity)) + continue; + szKey = PL_atom_chars(aKey); + + if (!PL_get_arg(1, tHead, tValue)) + continue; + if (!PL_get_atom_chars(tValue, &szValue)) + continue; + + //printf("%s/%d: %s\n", szKey, iArity, szValue); + } + } +} -- cgit v1.2.3