void RichEdit::SetStyle() { if(!IsSelection()) { NextUndo(); WithSetStyleLayout<TopWindow> d; CtrlLayoutOKCancel(d, t_("Set style")); d.newstyle <<= d.Breaker(IDYES); d.style.AddKey(); d.style.AddColumn(); d.style.NoHeader().NoGrid(); for(int i = 0; i < text.GetStyleCount(); i++) d.style.Add(text.GetStyleId(i), text.GetStyle(i).name); d.style.Sort(1, CompareStyle); int q = d.style.Find(RichStyle::GetDefaultId()); if(q >= 0) d.style.SetDisplay(q, 0, Single<DisplayDefault>()); d.style.FindSetCursor(formatinfo.styleid); RichStyle cs; cs.format = formatinfo; cs.format.sscript = 0; cs.format.link.Clear(); cs.format.indexentry.Clear(); cs.format.language = LNG_ENGLISH; cs.format.label.Clear(); Uuid id; switch(d.Run()) { case IDCANCEL: return; case IDOK: if(d.style.IsCursor()) { id = d.style.GetKey(); const RichStyle& st = text.GetStyle(id); cs.name = st.name; cs.next = st.next; SaveStyleUndo(id); break; } return; case IDYES: String newname; if(EditText(newname, Format(t_("New style no. %d"), text.GetStyleCount()), "Name", CharFilterAscii128)) { cs.name = newname; id = Uuid::Create(); cs.next = id; SaveStylesUndo(); break; } return; } text.SetStyle(id, cs); ReadStyles(); formatinfo.styleid = id; SaveFormat(GetCursor(), 0); text.ReStyle(GetCursor(), id); Finish(); } }
void RichEdit::ApplyStylesheet(const RichText& r) { NextUndo(); SaveStylesUndo(); text.OverrideStyles(r.GetStyles(), false, false); ReadStyles(); Finish(); }
void RichEdit::Styles() { NextUndo(); StyleManager s; s.Setup(ffs, unit); s.Set(text); if(s.Execute() != IDOK || !s.IsChanged()) return; SaveStylesUndo(); SetModify(); s.Get(text); ReadStyles(); Finish(); }
void Config::LoadSave(wxCommandEvent& event) { if (event.GetId() == save_id) { wxString file = wxFileSelector(_("Save style to file"), wxEmptyString, wxT("style.ini"), wxT("ini"), _("Config file (*.ini)|*.ini"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT); if (file != wxEmptyString) WriteStyles(file); } else { wxString file = wxFileSelector(_("Load style from file"), wxEmptyString, wxT("style.ini"), wxT("ini"), _("Config file (*.ini)|*.ini"), wxFD_OPEN); if (file != wxEmptyString) { ReadStyles(file); UpdateExample(); } } }
void Config::SetProperties() { SetTitle(_("wxMaxima configuration")); m_maximaProgram->SetToolTip(_("Enter the path to the Maxima executable.")); m_additionalParameters->SetToolTip(_("Additional parameters for Maxima" " (e.g. -l clisp).")); m_saveSize->SetToolTip(_("Save wxMaxima window size/position between sessions.")); m_savePanes->SetToolTip(_("Save panes layout between sessions.")); m_matchParens->SetToolTip(_("Write matching parenthesis in text controls.")); m_showLong->SetToolTip(_("Show long expressions in wxMaxima document.")); m_language->SetToolTip(_("Language used for wxMaxima GUI.")); m_fixedFontInTC->SetToolTip(_("Set fixed font in text controls.")); m_getFont->SetToolTip(_("Font used for display in document.")); m_getMathFont->SetToolTip(_("Font used for displaying math characters in document.")); m_changeAsterisk->SetToolTip(_("Use centered dot character for multiplication")); m_defaultPort->SetToolTip(_("The default port used for communication between Maxima and wxMaxima.")); wxConfig *config = (wxConfig *)wxConfig::Get(); wxString mp, mc, ib, mf; bool match = true, showLongExpr = false, savePanes = false; bool fixedFontTC = true, changeAsterisk = false, usejsmath = true, keepPercent = true; bool enterEvaluates = false, saveUntitled = true, openHCaret = false; bool insertAns = true; bool fixReorderedIndices = false; int rs = 0; int lang = wxLANGUAGE_UNKNOWN; int panelSize = 1; config->Read(wxT("maxima"), &mp); config->Read(wxT("parameters"), &mc); config->Read(wxT("AUI/savePanes"), &savePanes); config->Read(wxT("pos-restore"), &rs); config->Read(wxT("matchParens"), &match); config->Read(wxT("showLong"), &showLongExpr); config->Read(wxT("language"), &lang); config->Read(wxT("changeAsterisk"), &changeAsterisk); config->Read(wxT("fixedFontTC"), &fixedFontTC); config->Read(wxT("panelSize"), &panelSize); config->Read(wxT("enterEvaluates"), &enterEvaluates); config->Read(wxT("saveUntitled"), &saveUntitled); config->Read(wxT("openHCaret"), &openHCaret); config->Read(wxT("insertAns"), &insertAns); config->Read(wxT("fixReorderedIndices"), &fixReorderedIndices); config->Read(wxT("usejsmath"), &usejsmath); config->Read(wxT("keepPercent"), &keepPercent); int i = 0; for (i = 0; i < LANGUAGE_NUMBER; i++) if (langs[i] == lang) break; if (i < LANGUAGE_NUMBER) m_language->SetSelection(i); else m_language->SetSelection(0); #if defined __WXMSW__ wxString cwd = wxGetCwd(); cwd.Replace(wxT("wxMaxima"), wxT("\\bin\\maxima.bat")); if (wxFileExists(cwd)) { m_maximaProgram->SetValue(cwd); m_maximaProgram->Enable(false); m_mpBrowse->Enable(false); } else { if (mp.Length()) m_maximaProgram->SetValue(mp); else m_maximaProgram->SetValue(wxT("maxima.bat")); } #elif defined __WXMAC__ if (mp.Length()) m_maximaProgram->SetValue(mp); else // this is where the mac installer installs maxima m_maximaProgram->SetValue(wxT("/Applications/Maxima.app")); #else if (mp.Length()) m_maximaProgram->SetValue(mp); else m_maximaProgram->SetValue(wxT("maxima")); #endif m_additionalParameters->SetValue(mc); if (rs == 1) m_saveSize->SetValue(true); else m_saveSize->SetValue(false); m_savePanes->SetValue(savePanes); m_matchParens->SetValue(match); m_showLong->SetValue(showLongExpr); m_changeAsterisk->SetValue(changeAsterisk); m_enterEvaluates->SetValue(enterEvaluates); m_saveUntitled->SetValue(saveUntitled); m_openHCaret->SetValue(openHCaret); m_insertAns->SetValue(insertAns); m_fixReorderedIndices->SetValue(fixReorderedIndices); m_fixedFontInTC->SetValue(fixedFontTC); m_useJSMath->SetValue(usejsmath); m_keepPercentWithSpecials->SetValue(keepPercent); m_getStyleFont->Enable(false); if (!wxFontEnumerator::IsValidFacename(wxT("jsMath-cmex10")) || !wxFontEnumerator::IsValidFacename(wxT("jsMath-cmsy10")) || !wxFontEnumerator::IsValidFacename(wxT("jsMath-cmr10")) || !wxFontEnumerator::IsValidFacename(wxT("jsMath-cmmi10")) || !wxFontEnumerator::IsValidFacename(wxT("jsMath-cmti10"))) m_useJSMath->Enable(false); ReadStyles(); }