projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Took out somebody's hard coded path (j:\dev\something...) and put back
[wxWidgets.git]
/
src
/
gtk
/
font.cpp
diff --git
a/src/gtk/font.cpp
b/src/gtk/font.cpp
index 64ff18c4e87e06466f1f89aad991a57ec0d3c722..a957f4f68ae6fe08227e0e3d5a12a0bc9f42f4e2 100644
(file)
--- a/
src/gtk/font.cpp
+++ b/
src/gtk/font.cpp
@@
-20,6
+20,8
@@
#endif
#include "wx/font.h"
#endif
#include "wx/font.h"
+#include "wx/fontutil.h"
+#include "wx/cmndata.h"
#include "wx/utils.h"
#include "wx/log.h"
#include "wx/gdicmn.h"
#include "wx/utils.h"
#include "wx/log.h"
#include "wx/gdicmn.h"
@@
-27,7
+29,7
@@
#include <strings.h>
#include <strings.h>
-#include
"gdk/gdk.h"
+#include
<gdk/gdk.h>
// ----------------------------------------------------------------------------
// wxFontRefData
// ----------------------------------------------------------------------------
// wxFontRefData
@@
-122,7
+124,7
@@
wxFontRefData::wxFontRefData(int size, int family, int style,
int weight, bool underlined, const wxString& faceName, wxFontEncoding encoding )
: m_scaled_xfonts(wxKEY_INTEGER)
{
int weight, bool underlined, const wxString& faceName, wxFontEncoding encoding )
: m_scaled_xfonts(wxKEY_INTEGER)
{
- Init(size, family, style, weight,
+ Init(size, family, style, weight,
underlined, faceName, encoding);
}
underlined, faceName, encoding);
}
@@
-150,18
+152,16
@@
void wxFont::Init()
wxTheFontList->Append( this );
}
wxTheFontList->Append( this );
}
-wxFont::wxFont(
GdkFont *WXUNUSED(font), char *xFontName
)
+wxFont::wxFont(
const wxString& fontname, const wxFontData& fontdata
)
{
{
- if (!xFontName)
- return;
-
Init();
Init();
+ wxCHECK_RET( !!fontname, _T("invalid font spec") );
+
m_refData = new wxFontRefData();
wxString tmp;
m_refData = new wxFontRefData();
wxString tmp;
- wxString fontname( xFontName );
wxStringTokenizer tn( fontname, wxT("-") );
tn.GetNextToken(); // foundry
wxStringTokenizer tn( fontname, wxT("-") );
tn.GetNextToken(); // foundry
@@
-177,7
+177,7
@@
wxFont::wxFont( GdkFont *WXUNUSED(font), char *xFontName )
if (tmp == wxT("LIGHT")) M_FONTDATA->m_weight = wxLIGHT;
if (tmp == wxT("THIN")) M_FONTDATA->m_weight = wxLIGHT;
if (tmp == wxT("LIGHT")) M_FONTDATA->m_weight = wxLIGHT;
if (tmp == wxT("THIN")) M_FONTDATA->m_weight = wxLIGHT;
-
+
tmp = tn.GetNextToken().MakeUpper(); // slant
if (tmp == wxT("I")) M_FONTDATA->m_style = wxITALIC;
if (tmp == wxT("O")) M_FONTDATA->m_style = wxITALIC;
tmp = tn.GetNextToken().MakeUpper(); // slant
if (tmp == wxT("I")) M_FONTDATA->m_style = wxITALIC;
if (tmp == wxT("O")) M_FONTDATA->m_style = wxITALIC;
@@
-188,7
+188,7
@@
wxFont::wxFont( GdkFont *WXUNUSED(font), char *xFontName )
tmp = tn.GetNextToken(); // pointsize
long num = wxStrtol (tmp.c_str(), (wxChar **) NULL, 10);
tmp = tn.GetNextToken(); // pointsize
long num = wxStrtol (tmp.c_str(), (wxChar **) NULL, 10);
- M_FONTDATA->m_pointSize =
num / 10
;
+ M_FONTDATA->m_pointSize =
(int)(num / 10)
;
tn.GetNextToken(); // x-res
tn.GetNextToken(); // y-res
tn.GetNextToken(); // x-res
tn.GetNextToken(); // y-res
@@
-211,32
+211,36
@@
wxFont::wxFont( GdkFont *WXUNUSED(font), char *xFontName )
tn.GetNextToken(); // avg width
// deal with font encoding
tn.GetNextToken(); // avg width
// deal with font encoding
- wxString registry = tn.GetNextToken().MakeUpper(),
- encoding = tn.GetNextToken().MakeUpper();
-
- if ( registry == _T("ISO8859") )
+ M_FONTDATA->m_encoding = fontdata.GetEncoding();
+ if ( M_FONTDATA->m_encoding == wxFONTENCODING_SYSTEM )
{
{
- int cp;
- if ( wxSscanf(encoding, wxT("%d"), &cp) == 1 )
+ wxString registry = tn.GetNextToken().MakeUpper(),
+ encoding = tn.GetNextToken().MakeUpper();
+
+ if ( registry == _T("ISO8859") )
{
{
- M_FONTDATA->m_encoding =
- (wxFontEncoding)(wxFONTENCODING_ISO8859_1 + cp - 1);
+ int cp;
+ if ( wxSscanf(encoding, wxT("%d"), &cp) == 1 )
+ {
+ M_FONTDATA->m_encoding =
+ (wxFontEncoding)(wxFONTENCODING_ISO8859_1 + cp - 1);
+ }
}
}
- }
- else if ( registry == _T("MICROSOFT") )
- {
- int cp;
- if ( wxSscanf(encoding, wxT("cp125%d"), &cp) == 1 )
+ else if ( registry == _T("MICROSOFT") )
{
{
- M_FONTDATA->m_encoding =
- (wxFontEncoding)(wxFONTENCODING_CP1250 + cp);
+ int cp;
+ if ( wxSscanf(encoding, wxT("cp125%d"), &cp) == 1 )
+ {
+ M_FONTDATA->m_encoding =
+ (wxFontEncoding)(wxFONTENCODING_CP1250 + cp);
+ }
}
}
+ else if ( registry == _T("KOI8") )
+ {
+ M_FONTDATA->m_encoding = wxFONTENCODING_KOI8;
+ }
+ //else: unknown encoding - may be give a warning here?
}
}
- else if ( registry == _T("KOI8") )
- {
- M_FONTDATA->m_encoding = wxFONTENCODING_KOI8;
- }
- //else: unknown encoding - may be give a warning here?
}
bool wxFont::Create( int pointSize,
}
bool wxFont::Create( int pointSize,
@@
-429,10
+433,9
@@
GdkFont *wxFont::GetInternalFont( float scale ) const
M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font );
}
M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font );
}
- if (!font)
- {
- wxLogError(wxT("could not load any font"));
- }
+ // it's quite useless to make it a wxCHECK because we're going to crash
+ // anyhow...
+ wxASSERT_MSG( font, wxT("could not load any font?") );
return font;
}
return font;
}