X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55acd85e7134f8d16d40dc21cd665c5ea18a98f1..a1469addcd748014836f254258357f05f70dad01:/src/generic/fontdlgg.cpp?ds=sidebyside diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp index 603d0afad6..d08904e7ac 100644 --- a/src/generic/fontdlgg.cpp +++ b/src/generic/fontdlgg.cpp @@ -51,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 @@ -132,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) @@ -188,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(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); -#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++) { @@ -241,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())); @@ -257,12 +271,17 @@ void wxGenericFontDialog::CreateWidgets(void) okButton->SetDefault(); - SetClientSize(450, by + 40); + // SetClientSize(450, by + 40); + Fit(); Centre(wxBOTH); wxEndBusyCursor(); - + + delete[] families; + delete[] styles; + delete[] weights; + delete[] pointSizes; m_useEvents = TRUE; } @@ -318,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; @@ -380,6 +403,8 @@ char *wxFontFamilyIntToString(int family) return "Modern"; case wxSCRIPT: return "Script"; + case wxTELETYPE: + return "Teletype"; case wxSWISS: default: return "Swiss"; @@ -400,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; }