Implement custom font settings for splash window on Windows

This commit is contained in:
rdb 2015-09-02 03:52:30 +02:00
parent 7cae040278
commit be58900723
2 changed files with 14 additions and 3 deletions

View File

@ -34,6 +34,7 @@ P3DWinSplashWindow(P3DInstance *inst, bool make_visible) :
_thread = NULL;
_thread_id = 0;
_hwnd = NULL;
_font = NULL;
_fg_brush = NULL;
_bg_brush = NULL;
_bar_brush = NULL;
@ -498,6 +499,17 @@ make_window() {
ShowWindow(_hwnd, SW_HIDE);
}
// Load the requested font.
_font = CreateFontA(-_font_size, 0, 0, 0, _font_weight,
(_font_style != FS_normal), FALSE, FALSE,
ANSI_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS,
CLEARTYPE_QUALITY, VARIABLE_PITCH, _font_family.c_str());
if (_font == NULL) {
nout << "CreateFont failed: " << GetLastError() << "\n";
_font = (HFONT)GetStockObject(ANSI_VAR_FONT);
}
_fg_brush = CreateSolidBrush(RGB(_fgcolor_r, _fgcolor_g, _fgcolor_b));
_bg_brush = CreateSolidBrush(RGB(_bgcolor_r, _bgcolor_g, _bgcolor_b));
_bar_brush = CreateSolidBrush(RGB(_barcolor_r, _barcolor_g, _barcolor_b));
@ -840,12 +852,10 @@ paint_progress_bar(HDC dc) {
if (!_drawn_label.empty()) {
// Now draw the install_label right above it.
const char *text = _drawn_label.c_str();
HFONT font = (HFONT)GetStockObject(ANSI_VAR_FONT);
// Measure the text, for centering.
SelectObject(dc, font);
SelectObject(dc, _font);
SIZE text_size;
GetTextExtentPoint32(dc, text, strlen(text), &text_size);

View File

@ -109,6 +109,7 @@ private:
HANDLE _thread;
DWORD _thread_id;
HWND _hwnd;
HFONT _font;
HBRUSH _fg_brush;
HBRUSH _bg_brush;
HBRUSH _bar_brush;