X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/66bd6b93005b803910caca469110495ce549599f..8be97d65a6675eeaf0529dbb55f66d0eb5c5214f:/src/generic/fontdlgg.cpp diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp index f12689c768..d08904e7ac 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 @@ -50,6 +51,7 @@ BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog) 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 @@ -121,7 +123,7 @@ wxGenericFontDialog::wxGenericFontDialog(void) } 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); @@ -131,10 +133,9 @@ wxGenericFontDialog::~wxGenericFontDialog(void) { } -bool wxGenericFontDialog::OnClose(void) +void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& event) { - Show(FALSE); - return FALSE; + EndModal(wxID_CANCEL); } bool wxGenericFontDialog::Create(wxWindow *parent, wxFontData *data) @@ -187,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(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); -#ifdef __MOTIF__ + 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 #endif - wxString pointSizes[40]; + wxString *pointSizes = new wxString[40]; int i; for ( i = 0; i < 40; i++) { @@ -227,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 @@ -240,10 +255,10 @@ void wxGenericFontDialog::CreateWidgets(void) fontRect.y+=y+5; //NL mod - int by = (fontRect.y + fontRect.height + 5); + int by = (fontRect.y + fontRect.height + 15); - 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(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())); @@ -256,12 +271,17 @@ void wxGenericFontDialog::CreateWidgets(void) okButton->SetDefault(); - SetClientSize(400, by + 30); + // SetClientSize(450, by + 40); + Fit(); Centre(wxBOTH); wxEndBusyCursor(); - + + delete[] families; + delete[] styles; + delete[] weights; + delete[] pointSizes; m_useEvents = TRUE; } @@ -306,7 +326,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); } @@ -317,16 +337,20 @@ void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event)) { if (!m_useEvents) return; - int fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection()); - int fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection()); - int fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection()); + 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; @@ -379,6 +403,8 @@ char *wxFontFamilyIntToString(int family) return "Modern"; case wxSCRIPT: return "Script"; + case wxTELETYPE: + return "Teletype"; case wxSWISS: default: return "Swiss"; @@ -399,6 +425,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; }