X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbe0af5b15f8b8e95ed45abc2140fb3a1fac3c87..e41bbc80bc908566f9fd674a1ce94c026d2138b2:/src/generic/fontdlgg.cpp diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp index 5a449ab8f7..5f1ad03f4c 100644 --- a/src/generic/fontdlgg.cpp +++ b/src/generic/fontdlgg.cpp @@ -6,7 +6,7 @@ // Created: 04/01/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -44,72 +44,73 @@ IMPLEMENT_DYNAMIC_CLASS(wxGenericFontDialog, wxDialog) BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog) - EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont) - EVT_PAINT(wxGenericFontDialog::OnPaint) + EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont) + EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont) + EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont) + EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont) + EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont) + EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont) + EVT_PAINT(wxGenericFontDialog::OnPaint) + EVT_CLOSE(wxGenericFontDialog::OnCloseWindow) END_EVENT_TABLE() #endif #define NUM_COLS 48 -static wxString wxColourDialogNames[NUM_COLS]={"ORANGE", - "GOLDENROD", - "WHEAT", - "SPRING GREEN", - "SKY BLUE", - "SLATE BLUE", - "MEDIUM VIOLET RED", - "PURPLE", - - "RED", - "YELLOW", - "MEDIUM SPRING GREEN", - "PALE GREEN", - "CYAN", - "LIGHT STEEL BLUE", - "ORCHID", - "LIGHT MAGENTA", - - "BROWN", - "YELLOW", - "GREEN", - "CADET BLUE", - "MEDIUM BLUE", - "MAGENTA", - "MAROON", - "ORANGE RED", - - "FIREBRICK", - "CORAL", - "FOREST GREEN", - "AQUARAMINE", - "BLUE", - "NAVY", - "THISTLE", - "MEDIUM VIOLET RED", - - "INDIAN RED", - "GOLD", - "MEDIUM SEA GREEN", - "MEDIUM BLUE", - "MIDNIGHT BLUE", - "GREY", - "PURPLE", - "KHAKI", - - "BLACK", - "MEDIUM FOREST GREEN", - "KHAKI", - "DARK GREY", - "SEA GREEN", - "LIGHT GREY", - "MEDIUM SLATE BLUE", - "WHITE" - }; +static wxString wxColourDialogNames[NUM_COLS]={_T("ORANGE"), + _T("GOLDENROD"), + _T("WHEAT"), + _T("SPRING GREEN"), + _T("SKY BLUE"), + _T("SLATE BLUE"), + _T("MEDIUM VIOLET RED"), + _T("PURPLE"), + + _T("RED"), + _T("YELLOW"), + _T("MEDIUM SPRING GREEN"), + _T("PALE GREEN"), + _T("CYAN"), + _T("LIGHT STEEL BLUE"), + _T("ORCHID"), + _T("LIGHT MAGENTA"), + + _T("BROWN"), + _T("YELLOW"), + _T("GREEN"), + _T("CADET BLUE"), + _T("MEDIUM BLUE"), + _T("MAGENTA"), + _T("MAROON"), + _T("ORANGE RED"), + + _T("FIREBRICK"), + _T("CORAL"), + _T("FOREST GREEN"), + _T("AQUARAMINE"), + _T("BLUE"), + _T("NAVY"), + _T("THISTLE"), + _T("MEDIUM VIOLET RED"), + + _T("INDIAN RED"), + _T("GOLD"), + _T("MEDIUM SEA GREEN"), + _T("MEDIUM BLUE"), + _T("MIDNIGHT BLUE"), + _T("GREY"), + _T("PURPLE"), + _T("KHAKI"), + + _T("BLACK"), + _T("MEDIUM FOREST GREEN"), + _T("KHAKI"), + _T("DARK GREY"), + _T("SEA GREEN"), + _T("LIGHT GREY"), + _T("MEDIUM SLATE BLUE"), + _T("WHITE") + }; /* * Generic wxFontDialog @@ -132,22 +133,21 @@ wxGenericFontDialog::~wxGenericFontDialog(void) { } -bool wxGenericFontDialog::OnClose(void) +void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { - Show(FALSE); - return FALSE; + EndModal(wxID_CANCEL); } - + bool wxGenericFontDialog::Create(wxWindow *parent, wxFontData *data) { dialogParent = parent; - + if (data) fontData = *data; InitializeFont(); CreateWidgets(); - + return TRUE; } @@ -160,14 +160,12 @@ int wxGenericFontDialog::ShowModal(void) fontData.chosenFont = dialogFont; } - return ret; + return ret; } void wxGenericFontDialog::OnPaint(wxPaintEvent& event) { - wxDialog::OnPaint(event); - wxPaintDC dc(this); PaintFontBackground(dc); PaintFont(dc); @@ -202,9 +200,9 @@ void wxGenericFontDialog::CreateWidgets(void) static char *styles[] = { "Normal", "Italic", "Slant" }; static char *weights[] = { "Normal", "Light", "Bold" }; */ - + wxString - *families = new wxString[5], + *families = new wxString[6], *styles = new wxString[3], *weights = new wxString[3]; families[0] = _("Roman"); @@ -212,33 +210,34 @@ void wxGenericFontDialog::CreateWidgets(void) families[2] = _("Modern"); families[3] = _("Script"); families[4] = _("Swiss" ); + families[5] = _("Teletype" ); styles[0] = _("Normal"); styles[1] = _("Italic"); styles[2] = _("Slant"); weights[0] = _("Normal"); weights[1] = _("Light"); weights[2] = _("Bold"); - + int x=-1; int y=40; familyChoice = new wxChoice(this, wxID_FONT_FAMILY, wxPoint(10, 10), wxSize(120, -1), 5, families); - styleChoice = new wxChoice(this, wxID_FONT_STYLE, wxPoint(160, 10), wxSize(120, -1), 3, styles); - weightChoice = new wxChoice(this, wxID_FONT_WEIGHT, wxPoint(310, 10), wxSize(120, -1), 3, weights); + styleChoice = new wxChoice(this, wxID_FONT_STYLE, wxPoint(170, 10), wxSize(120, -1), 3, styles); + weightChoice = new wxChoice(this, wxID_FONT_WEIGHT, wxPoint(330, 10), wxSize(120, -1), 3, weights); - colourChoice = new wxChoice(this, wxID_FONT_COLOUR, wxPoint(10, 40), wxSize(190, -1), NUM_COLS, wxColourDialogNames); + colourChoice = new wxChoice(this, wxID_FONT_COLOUR, wxPoint(10, 40), wxSize(180, -1), NUM_COLS, wxColourDialogNames); #if 0 // def __WXMOTIF__ // TODO: This necessary now? // We want the pointSizeText to line up on the y axis with the colourChoice colourChoice->GetPosition(&fontRect.x, &y); //NL mod - y+=3; //NL mod + y+=3; //NL mod #endif wxString *pointSizes = new wxString[40]; int i; for ( i = 0; i < 40; i++) { - char buf[5]; - sprintf(buf, "%d", i + 1); - pointSizes[i] = buf; + char buf[5]; + sprintf(buf, "%d", i + 1); + pointSizes[i] = buf; } pointSizeChoice = new wxChoice(this, wxID_FONT_SIZE, wxPoint(230, y), wxSize(50, -1), 40, pointSizes); @@ -250,27 +249,28 @@ void wxGenericFontDialog::CreateWidgets(void) pointSizeChoice->GetSize(&x, &y); //NL mod // Calculate the position of the bottom of the pointSizeChoice, and place - // the fontRect there (+5 for a nice gap) + // the fontRect there (+5 for a nice gap) fontRect.y+=y+5; //NL mod - int by = (fontRect.y + fontRect.height + 10); + int by = (fontRect.y + fontRect.height + 15); - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(220, by), wxSize(100,-1)); - (void) new wxButton(this, wxID_OK, _("Cancel"), wxPoint(340, by), wxSize(100,-1)); + wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(230, by), wxSize(75,-1)); + (void) new wxButton(this, wxID_OK, _("Cancel"), wxPoint(330, by), wxSize(75,-1)); familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) ); styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle())); weightChoice->SetStringSelection(wxFontWeightIntToString(dialogFont.GetWeight())); wxString name(wxTheColourDatabase->FindName(fontData.fontColour)); colourChoice->SetStringSelection(name); - + underLineCheckBox->SetValue(dialogFont.GetUnderlined()); pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1); okButton->SetDefault(); - SetClientSize(450, by + 40); + // SetClientSize(450, by + 40); + Fit(); Centre(wxBOTH); @@ -326,7 +326,7 @@ void wxGenericFontDialog::PaintFont(wxDC& dc) dc.SetClippingRegion( fontRect.x, fontRect.y, (long)(fontRect.width-2.0), (long)(fontRect.height-2.0)); dc.DrawText(_("ABCDEFGabcdefg12345"), (long)cx, (long)cy); dc.DestroyClippingRegion(); - dc.SetFont(wxNullFont); + dc.SetFont(wxNullFont); } dc.EndDrawing(); } @@ -334,18 +334,18 @@ void wxGenericFontDialog::PaintFont(wxDC& dc) void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event)) { if (!m_useEvents) return; - + int fontFamily = 0; /* shut up buggy egcs warnings */ fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection()); int fontWeight = 0; fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection()); int fontStyle = 0; fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection()); - int fontSize = atoi(pointSizeChoice->GetStringSelection()); + int fontSize = wxAtoi(pointSizeChoice->GetStringSelection()); int fontUnderline = underLineCheckBox->GetValue(); dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); - if (colourChoice->GetStringSelection() != "") + if (colourChoice->GetStringSelection() != _T("")) { wxColour *col = (wxColour*) NULL; col = wxTheColourDatabase->FindColour(colourChoice->GetStringSelection()); @@ -359,90 +359,94 @@ void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event)) PaintFont(dc); } -char *wxFontWeightIntToString(int weight) +wxChar *wxFontWeightIntToString(int weight) { switch (weight) { case wxLIGHT: - return "Light"; + return _T("Light"); case wxBOLD: - return "Bold"; + return _T("Bold"); case wxNORMAL: default: - return "Normal"; + return _T("Normal"); } - return "Normal"; + return _T("Normal"); } -char *wxFontStyleIntToString(int style) +wxChar *wxFontStyleIntToString(int style) { switch (style) { case wxITALIC: - return "Italic"; + return _T("Italic"); case wxSLANT: - return "Slant"; + return _T("Slant"); case wxNORMAL: default: - return "Normal"; + return _T("Normal"); } - return "Normal"; + return _T("Normal"); } -char *wxFontFamilyIntToString(int family) +wxChar *wxFontFamilyIntToString(int family) { switch (family) { case wxROMAN: - return "Roman"; + return _T("Roman"); case wxDECORATIVE: - return "Decorative"; + return _T("Decorative"); case wxMODERN: - return "Modern"; + return _T("Modern"); case wxSCRIPT: - return "Script"; + return _T("Script"); + case wxTELETYPE: + return _T("Teletype"); case wxSWISS: default: - return "Swiss"; + return _T("Swiss"); } - return "Swiss"; + return _T("Swiss"); } -int wxFontFamilyStringToInt(char *family) +int wxFontFamilyStringToInt(wxChar *family) { if (!family) return wxSWISS; - - if (strcmp(family, "Roman") == 0) + + if (wxStrcmp(family, _T("Roman")) == 0) return wxROMAN; - else if (strcmp(family, "Decorative") == 0) + else if (wxStrcmp(family, _T("Decorative")) == 0) return wxDECORATIVE; - else if (strcmp(family, "Modern") == 0) + else if (wxStrcmp(family, _T("Modern")) == 0) return wxMODERN; - else if (strcmp(family, "Script") == 0) + else if (wxStrcmp(family, _T("Script")) == 0) return wxSCRIPT; + else if (wxStrcmp(family, _T("Teletype")) == 0) + return wxTELETYPE; else return wxSWISS; } -int wxFontStyleStringToInt(char *style) +int wxFontStyleStringToInt(wxChar *style) { if (!style) return wxNORMAL; - if (strcmp(style, "Italic") == 0) + if (wxStrcmp(style, _T("Italic")) == 0) return wxITALIC; - else if (strcmp(style, "Slant") == 0) + else if (wxStrcmp(style, _T("Slant")) == 0) return wxSLANT; else return wxNORMAL; } -int wxFontWeightStringToInt(char *weight) +int wxFontWeightStringToInt(wxChar *weight) { if (!weight) return wxNORMAL; - if (strcmp(weight, "Bold") == 0) + if (wxStrcmp(weight, _T("Bold")) == 0) return wxBOLD; - else if (strcmp(weight, "Light") == 0) + else if (wxStrcmp(weight, _T("Light")) == 0) return wxLIGHT; else return wxNORMAL;