Changed font generation to follow new pattern of other ports more closely.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: src/os2/gdiobj.cpp
|
||||
// Purpose: wxGDIObject class
|
||||
// Author: AUTHOR
|
||||
// Modified by:
|
||||
// Created: ??/??/98
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) AUTHOR
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "wx/wxprec.h"
|
||||
|
||||
#include "wx/gdiobj.h"
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include "wx/font.h"
|
||||
#include "wx/gdicmn.h"
|
||||
#endif
|
||||
|
||||
class wxStockGDIPM: public wxStockGDI
|
||||
{
|
||||
public:
|
||||
wxStockGDIPM();
|
||||
|
||||
virtual const wxFont* GetFont(Item item);
|
||||
|
||||
private:
|
||||
typedef wxStockGDI super;
|
||||
};
|
||||
|
||||
static wxStockGDIPM gs_wxStockGDIPM_instance;
|
||||
|
||||
wxStockGDIPM::wxStockGDIPM()
|
||||
{
|
||||
// Override default instance
|
||||
ms_instance = this;
|
||||
}
|
||||
|
||||
const wxFont* wxStockGDIPM::GetFont(Item item)
|
||||
{
|
||||
wxFont* font = wx_static_cast(wxFont*, ms_stockObject[item]);
|
||||
if (font == NULL)
|
||||
{
|
||||
const int fontSize = 12;
|
||||
switch (item)
|
||||
{
|
||||
case FONT_NORMAL:
|
||||
font = new wxFont(fontSize, wxMODERN, wxNORMAL, wxBOLD);
|
||||
break;
|
||||
case FONT_SMALL:
|
||||
font = new wxFont(fontSize - 4, wxSWISS, wxNORMAL, wxNORMAL);
|
||||
break;
|
||||
default:
|
||||
font = wx_const_cast(wxFont*, super::GetFont(item));
|
||||
break;
|
||||
}
|
||||
ms_stockObject[item] = font;
|
||||
}
|
||||
return font;
|
||||
}
|
@@ -16,6 +16,7 @@
|
||||
#include <stdio.h>
|
||||
#include "wx/pen.h"
|
||||
#include "wx/brush.h"
|
||||
#include "wx/fontutil.h"
|
||||
#include "wx/gdicmn.h"
|
||||
#include "wx/window.h"
|
||||
#include "wx/settings.h"
|
||||
@@ -69,6 +70,7 @@ void wxSystemSettingsModule::OnExit()
|
||||
sm_optionNames.Clear();
|
||||
sm_optionValues.Clear();
|
||||
delete gs_fontDefault;
|
||||
gs_fontDefault = NULL;
|
||||
}
|
||||
|
||||
wxColour wxSystemSettingsNative::GetColour(
|
||||
@@ -200,39 +202,50 @@ wxColour wxSystemSettingsNative::GetColour(
|
||||
return(vCol);
|
||||
} // end of wxSystemSettingsNative::GetColour
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// fonts
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxFont wxCreateFontFromStockObject(int index)
|
||||
{
|
||||
wxFont font;
|
||||
|
||||
FONTMETRICS metrics;
|
||||
HPS hPS = ::WinGetScreenPS(HWND_DESKTOP);
|
||||
if (::GpiQueryFontMetrics(hPS, sizeof(FONTMETRICS), &metrics))
|
||||
{
|
||||
wxNativeFontInfo info;
|
||||
info.fm = metrics;
|
||||
font.Create(info);
|
||||
}
|
||||
else // GetStockObject() failed
|
||||
{
|
||||
wxFAIL_MSG( _T("stock font not found") );
|
||||
}
|
||||
|
||||
return font;
|
||||
}
|
||||
|
||||
wxFont wxSystemSettingsNative::GetFont(
|
||||
wxSystemFont index
|
||||
)
|
||||
{
|
||||
// TODO
|
||||
switch (index)
|
||||
const bool isDefaultRequested = index == wxSYS_DEFAULT_GUI_FONT;
|
||||
if ( isDefaultRequested )
|
||||
{
|
||||
case wxSYS_DEVICE_DEFAULT_FONT:
|
||||
{
|
||||
break;
|
||||
if ( gs_fontDefault )
|
||||
return *gs_fontDefault;
|
||||
}
|
||||
case wxSYS_DEFAULT_PALETTE:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case wxSYS_SYSTEM_FIXED_FONT:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case wxSYS_SYSTEM_FONT:
|
||||
{
|
||||
break;
|
||||
}
|
||||
default:
|
||||
case wxSYS_DEFAULT_GUI_FONT:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(wxSWISS_FONT)
|
||||
return *wxSWISS_FONT;
|
||||
|
||||
return wxNullFont;
|
||||
wxFont font = wxCreateFontFromStockObject(index);
|
||||
|
||||
if ( isDefaultRequested )
|
||||
{
|
||||
// if we got here it means we hadn't cached it yet - do now
|
||||
gs_fontDefault = new wxFont(font);
|
||||
}
|
||||
|
||||
return font;
|
||||
}
|
||||
|
||||
// Get a system metric, e.g. scrollbar size
|
||||
|
Reference in New Issue
Block a user