Mercurial > foo_out_sdl
diff foosdk/sdk/foobar2000/shared/win32_misc.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foosdk/sdk/foobar2000/shared/win32_misc.h Mon Jan 05 02:15:46 2026 -0500 @@ -0,0 +1,33 @@ +#pragma once + + +class win32_font { +public: + win32_font(HFONT p_initval) : m_font(p_initval) {} + win32_font() : m_font(NULL) {} + ~win32_font() {release();} + + void release() { + HFONT temp = detach(); + if (temp != NULL) DeleteObject(temp); + } + + void set(HFONT p_font) {release(); m_font = p_font;} + HFONT get() const {return m_font;} + HFONT detach() {return pfc::replace_t(m_font,(HFONT)NULL);} + + void create(const t_font_description & p_desc) { + SetLastError(NO_ERROR); + HFONT temp = p_desc.create(); + if (temp == NULL) throw exception_win32(GetLastError()); + set(temp); + } + + bool is_valid() const {return m_font != NULL;} + +private: + win32_font(const win32_font&) = delete; + void operator=(const win32_font &) = delete; + + HFONT m_font; +};
