X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..978f38c238bb83dbb5a73104e4e6870d984dd058:/src/generic/fontdlgg.cpp diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp index 5d0ea78fbd..8e02bee12b 100644 --- a/src/generic/fontdlgg.cpp +++ b/src/generic/fontdlgg.cpp @@ -31,6 +31,7 @@ #include "wx/dcclient.h" #include "wx/choice.h" #include "wx/checkbox.h" +#include #endif #include @@ -116,12 +117,14 @@ static wxString wxColourDialogNames[NUM_COLS]={"ORANGE", wxGenericFontDialog::wxGenericFontDialog(void) { + m_useEvents = FALSE; dialogParent = NULL; } wxGenericFontDialog::wxGenericFontDialog(wxWindow *parent, wxFontData *data): - wxDialog(parent, -1, "Font", wxPoint(0, 0), wxSize(600, 600), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) + wxDialog(parent, -1, _("Font"), wxPoint(0, 0), wxSize(600, 600), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) { + m_useEvents = FALSE; Create(parent, data); } @@ -185,38 +188,52 @@ void wxGenericFontDialog::CreateWidgets(void) { wxBeginBusyCursor(); - fontRect.x = 5; + fontRect.x = 10; #ifdef __X__ fontRect.y = 125; #else fontRect.y = 115; #endif - fontRect.width = 350; + fontRect.width = 430; fontRect.height = 100; -/* - static char *families[] = { "Roman", "Decorative", "Modern", "Script", "Swiss" }; - static char *styles[] = { "Normal", "Italic", "Slant" }; - static char *weights[] = { "Normal", "Light", "Bold" }; -*/ - static wxString families[] = { "Roman", "Decorative", "Modern", "Script", "Swiss" }; - static wxString styles[] = { "Normal", "Italic", "Slant" }; - static wxString weights[] = { "Normal", "Light", "Bold" }; - + /* + static char *families[] = { "Roman", "Decorative", "Modern", "Script", "Swiss" }; + static char *styles[] = { "Normal", "Italic", "Slant" }; + static char *weights[] = { "Normal", "Light", "Bold" }; + */ + + wxString + *families = new wxString[6], + *styles = new wxString[3], + *weights = new wxString[3]; + families[0] = _("Roman"); + families[1] = _("Decorative"); + 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(140, 10), wxSize(120, -1), 3, styles); - weightChoice = new wxChoice(this, wxID_FONT_WEIGHT, wxPoint(270, 10), wxSize(120, -1), 3, weights); + 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); colourChoice = new wxChoice(this, wxID_FONT_COLOUR, wxPoint(10, 40), wxSize(190, -1), NUM_COLS, wxColourDialogNames); -#ifdef __MOTIF__ +#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 #endif - wxString pointSizes[40]; + wxString *pointSizes = new wxString[40]; int i; for ( i = 0; i < 40; i++) { @@ -225,8 +242,8 @@ void wxGenericFontDialog::CreateWidgets(void) pointSizes[i] = buf; } - pointSizeChoice = new wxChoice(this, wxID_FONT_SIZE, wxPoint(210, y), wxSize(50, -1), 40, pointSizes); - underLineCheckBox = new wxCheckBox(this, wxID_FONT_UNDERLINE, "Underline", wxPoint(280, y)); + pointSizeChoice = new wxChoice(this, wxID_FONT_SIZE, wxPoint(230, y), wxSize(50, -1), 40, pointSizes); + underLineCheckBox = new wxCheckBox(this, wxID_FONT_UNDERLINE, _("Underline"), wxPoint(320, y)); int rectY; pointSizeChoice->GetPosition(&x, &rectY); //NL mod @@ -238,28 +255,33 @@ void wxGenericFontDialog::CreateWidgets(void) fontRect.y+=y+5; //NL mod - int by = (fontRect.y + fontRect.height + 5); + int by = (fontRect.y + fontRect.height + 10); - wxButton *okButton = new wxButton(this, wxID_OK, "OK", wxPoint(5, by)); - (void) new wxButton(this, wxID_OK, "Cancel", wxPoint(50, by)); + 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)); - familyChoice->SetStringSelection(wxFontFamilyIntToString(dialogFont.GetFamily())); + 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()); + pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1); okButton->SetDefault(); - SetClientSize(400, by + 30); + SetClientSize(450, by + 40); Centre(wxBOTH); wxEndBusyCursor(); + + delete[] families; + delete[] styles; + delete[] weights; + delete[] pointSizes; + m_useEvents = TRUE; } void wxGenericFontDialog::InitializeFont(void) @@ -278,7 +300,6 @@ void wxGenericFontDialog::InitializeFont(void) fontUnderline = fontData.initialFont.GetUnderlined(); } dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); - } void wxGenericFontDialog::PaintFontBackground(wxDC& dc) @@ -304,7 +325,7 @@ void wxGenericFontDialog::PaintFont(wxDC& dc) float cy = (float)(fontRect.y + (fontRect.height/2.0) - (h/2.0)); dc.SetTextForeground(fontData.fontColour); dc.SetClippingRegion( fontRect.x, fontRect.y, (long)(fontRect.width-2.0), (long)(fontRect.height-2.0)); - dc.DrawText("ABCDEFGabcdefg12345", (long)cx, (long)cy); + dc.DrawText(_("ABCDEFGabcdefg12345"), (long)cx, (long)cy); dc.DestroyClippingRegion(); dc.SetFont(wxNullFont); } @@ -313,16 +334,22 @@ void wxGenericFontDialog::PaintFont(wxDC& dc) void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event)) { - int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection()); - int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection()); - int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection()); + 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 fontUnderline = underLineCheckBox->GetValue(); dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); if (colourChoice->GetStringSelection() != "") { - wxColour *col = wxTheColourDatabase->FindColour(colourChoice->GetStringSelection()); + wxColour *col = (wxColour*) NULL; + col = wxTheColourDatabase->FindColour(colourChoice->GetStringSelection()); if (col) { fontData.fontColour = *col; @@ -375,6 +402,8 @@ char *wxFontFamilyIntToString(int family) return "Modern"; case wxSCRIPT: return "Script"; + case wxTELETYPE: + return "Teletype"; case wxSWISS: default: return "Swiss"; @@ -395,6 +424,8 @@ int wxFontFamilyStringToInt(char *family) return wxMODERN; else if (strcmp(family, "Script") == 0) return wxSCRIPT; + else if (strcmp(family, "Teletype") == 0) + return wxTELETYPE; else return wxSWISS; }