aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-07-20 14:31:28 +0200
committerJohn Ankarström <john@ankarstrom.se>2022-07-20 14:32:04 +0200
commit400d4d12b7a70b81629a119844e7d5ad16aa6012 (patch)
tree162bf5d9c64fdbedbbcbbea0586de2775f417d02
parent79d4fa6d9a79295b747eedcc17b4de6ccdde7e37 (diff)
downloadEpisodeBrowser-400d4d12b7a70b81629a119844e7d5ad16aa6012.tar.gz
Improve ANSI compatibility.
This improves upon 79d4fa6. Actually, ANSI compatibility may be desirable, as recent work has been done to make the A versions of Windows API functions work with UTF-8.
-rw-r--r--c/listview.cpp10
-rw-r--r--c/pl.h15
2 files changed, 10 insertions, 15 deletions
diff --git a/c/listview.cpp b/c/listview.cpp
index 3ad66f5..752ebcb 100644
--- a/c/listview.cpp
+++ b/c/listview.cpp
@@ -41,25 +41,23 @@ int ListView::Height(int bHeader)
void ListView::UpdateTheme(const BOOL bThemeActive)
{
DWORD dwStyle;
- const TCHAR* tszTheme;
+ const wchar_t* wszTheme;
WORD wAction;
extern int g_bThemes;
if (!g_bThemes) return;
if (bThemeActive) {
dwStyle = LVS_EX_DOUBLEBUFFER;
- tszTheme = TEXT("Explorer");
+ wszTheme = L"Explorer";
wAction = UIS_SET;
} else {
dwStyle = 0;
- tszTheme = NULL;
+ wszTheme = NULL;
wAction = UIS_CLEAR;
}
-#ifdef UNICODE
/* Use modern "Explorer" theme. */
- SetWindowTheme(hWnd, tszTheme, NULL);
-#endif
+ SetWindowTheme(hWnd, wszTheme, NULL);
/* The modern theme requires double buffering. */
ListView_SetExtendedListViewStyleEx(hWnd, LVS_EX_DOUBLEBUFFER, dwStyle);
diff --git a/c/pl.h b/c/pl.h
index 1448361..8325c86 100644
--- a/c/pl.h
+++ b/c/pl.h
@@ -67,20 +67,17 @@ inline int PlGet(term_t t, atom_t* x) { return PL_get_atom(t, x); }
inline int PlGet(term_t t, char** x) { return PL_get_atom_chars(t, x); }
inline int PlGet(term_t t, wchar_t** x) { size_t len; return PL_get_wchars(t, &len, x, CVT_ATOM); }
-/* Helper templates for Plx, Pl. */
+/* Put in or get from a term reference an arbitrary number of values,
+ * returning false if any value could not be put/got. */
template <typename = void>
-inline int PlPutN(term_t) { return -1; }
-template <typename T>
-inline int PlPutN(term_t t, T arg) { return PlPut(t, arg); }
+inline bool PlPutN(term_t) { return true; }
template <typename T, typename... U>
-inline int PlPutN(term_t t, T arg, U... xs) { return PlPut(t, arg) && PlPutN(t+1, xs...); }
+inline bool PlPutN(term_t t, T x, U... xs) { return PlPut(t, x) && PlPutN(t+1, xs...); }
template <typename = void>
-inline int PlGetN(term_t) { return -1; }
-template <typename T>
-inline int PlGetN(term_t t, T arg) { return PlGet(t, arg); }
+inline bool PlGetN(term_t) { return true; }
template <typename T, typename... U>
-inline int PlGetN(term_t t, T arg, U... xs) { return PlGet(t, arg) && PlGetN(t+1, xs...); }
+inline bool PlGetN(term_t t, T x, U... xs) { return PlGet(t, x) && PlGetN(t+1, xs...); }
/* Call Prolog predicate, propagating Prolog exceptions. */
template <typename... T>