class MyEncodingEnumerator : public wxFontEnumerator
{
public:
- MyEncodingEnumerator()
+ MyEncodingEnumerator()
{ m_n = 0; }
- const wxString& GetText() const
+ const wxString& GetText() const
{ return m_text; }
protected:
class MyFontEnumerator : public wxFontEnumerator
{
public:
- bool GotAny() const
+ bool GotAny() const
{ return !m_facenames.IsEmpty(); }
- const wxArrayString& GetFacenames() const
+ const wxArrayString& GetFacenames() const
{ return m_facenames; }
protected:
static const wxString encodingNames[] =
{
- "West European (Latin 1)",
- "Central European (Latin 2)",
- "Cyrillic (Latin 5)",
- "Greek (Latin 7)",
- "West European new (Latin 0)",
+ "Western European (ISO-8859-1)",
+ "Central European (ISO-8859-2)",
+ "Cyrillic (ISO-8859-5)",
+ "Greek (ISO-8859-7)",
+ "Western European with Euro (ISO-8859-15)",
"KOI8-R",
- "Windows Latin 2",
- "Windows Cyrillic",
- "Windows Latin 1",
+ "Windows Central European (CP 1250)",
+ "Windows Cyrillic (CP 1251)",
+ "Windows Western European (CP 1252)",
};
int n = wxGetSingleChoiceIndex("Choose an encoding", "Font demo",
void MyFrame::OnCheckNativeToFromString(wxCommandEvent& WXUNUSED(event))
{
- wxString fontInfo = m_canvas->GetTextFont().GetNativeFontInfo().ToString();
+ wxString fontInfo = m_canvas->GetTextFont().GetNativeFontInfoDesc();
- if(fontInfo.IsEmpty())
- wxMessageBox("Native font info string is empty!", "Font demo",
- wxOK);
+ if ( fontInfo.IsEmpty() )
+ {
+ wxLogError("Native font info string is empty!");
+ }
else
{
- wxNativeFontInfo info;
- info.FromString(fontInfo);
- wxFont font(info);
- if(fontInfo == font.GetNativeFontInfo().ToString())
- wxMessageBox("wxNativeFontInfo ToString()/FromString() works!",
- "Font demo", wxOK);
+ wxFont *font = wxFont::New(fontInfo);
+ if ( fontInfo != font->GetNativeFontInfoDesc() )
+ wxLogError("wxNativeFontInfo ToString()/FromString() broken!");
else
- wxMessageBox("wxNativeFontInfo ToString()/FromString() doesn't work!",
- "Font demo", wxOK);
+ wxLogError("wxNativeFontInfo works: %s", fontInfo.c_str());
+ delete font;
}
}
void MyFrame::DoChangeFont(const wxFont& font, const wxColour& col)
{
- Resize(GetSize(), font);
+ Resize(GetClientSize(), font);
m_canvas->SetTextFont(font);
if ( col.Ok() )
m_textctrl->LoadFile(filename);
- if (!wxTheFontMapper->IsEncodingAvailable(fontenc))
+ if ( fontenc == wxFONTENCODING_UTF8 ||
+ !wxTheFontMapper->IsEncodingAvailable(fontenc) )
{
// try to find some similar encoding:
wxFontEncoding encAlt;
if ( wxTheFontMapper->GetAltForEncoding(fontenc, &encAlt) )
{
wxEncodingConverter conv;
-
+
if (conv.Init(fontenc, encAlt))
{
fontenc = encAlt;
void MyFrame::OnSize(wxSizeEvent& event)
{
- wxSize size = event.GetSize();
-
- Resize(size);
+ Resize(GetClientSize());
event.Skip();
}
dc.DrawText(fontInfo, 5, 5);
- if(m_font.Ok())
+ if ( m_font.Ok() )
{
- dc.SetFont(wxFont(m_font.GetNativeFontInfo()));
- fontInfo.Printf("Native font info: %s", m_font.GetNativeFontInfo().ToString().GetData());
- dc.DrawText(fontInfo, 5, 5 + dc.GetCharHeight());
+ wxString fontDesc = m_font.GetNativeFontInfoDesc();
+ dc.SetFont(wxFont(fontDesc));
+ fontInfo.Printf("Native font info: %s", fontDesc.c_str());
+ dc.DrawText(fontInfo, 5, 5 + dc.GetCharHeight());
}
// prepare to draw the font