//////////////////////////////////////////////////////////////////////////////
-// File: edit.cpp
+// File: contrib/samples/stc/edit.cpp
// Purpose: STC test module
// Maintainer: Wyo
// Created: 2003-09-01
// headers
//----------------------------------------------------------------------------
-// For compilers that support precompilation, includes <wx/wx.h>.
-#include <wx/wxprec.h>
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
// for all others, include the necessary headers (this file is usually all you
// need because it includes almost all 'standard' wxWidgets headers)
#ifndef WX_PRECOMP
- #include <wx/wx.h>
+ #include "wx/wx.h"
+ #include "wx/textdlg.h"
#endif
//! wxWidgets headers
-#include <wx/file.h> // raw file io support
-#include <wx/filename.h> // filename support
+#include "wx/file.h" // raw file io support
+#include "wx/filename.h" // filename support
//! application headers
#include "defsext.h" // additional definitions
// declarations
//============================================================================
+// The (uniform) style used for the annotations.
+const int ANNOTATION_STYLE = wxSTC_STYLE_LASTPREDEFINED + 1;
//============================================================================
// implementation
EVT_MENU (myID_WRAPMODEON, Edit::OnWrapmodeOn)
EVT_MENU (myID_CHARSETANSI, Edit::OnUseCharset)
EVT_MENU (myID_CHARSETMAC, Edit::OnUseCharset)
+ // annotations
+ EVT_MENU (myID_ANNOTATION_ADD, Edit::OnAnnotationAdd)
+ EVT_MENU (myID_ANNOTATION_REMOVE, Edit::OnAnnotationRemove)
+ EVT_MENU (myID_ANNOTATION_CLEAR, Edit::OnAnnotationClear)
+ EVT_MENU (myID_ANNOTATION_STYLE_HIDDEN, Edit::OnAnnotationStyle)
+ EVT_MENU (myID_ANNOTATION_STYLE_STANDARD, Edit::OnAnnotationStyle)
+ EVT_MENU (myID_ANNOTATION_STYLE_BOXED, Edit::OnAnnotationStyle)
// extra
EVT_MENU (myID_CHANGELOWER, Edit::OnChangeCase)
EVT_MENU (myID_CHANGEUPPER, Edit::OnChangeCase)
EVT_MENU (myID_CONVERTCRLF, Edit::OnConvertEOL)
EVT_MENU (myID_CONVERTLF, Edit::OnConvertEOL)
// stc
- EVT_STC_MARGINCLICK (-1, Edit::OnMarginClick)
- EVT_STC_CHARADDED (-1, Edit::OnCharAdded)
+ EVT_STC_MARGINCLICK (wxID_ANY, Edit::OnMarginClick)
+ EVT_STC_CHARADDED (wxID_ANY, Edit::OnCharAdded)
+ EVT_STC_KEY( wxID_ANY , Edit::OnKey )
END_EVENT_TABLE()
Edit::Edit (wxWindow *parent, wxWindowID id,
long style)
: wxStyledTextCtrl (parent, id, pos, size, style) {
- m_filename = _T("");
+ m_filename = wxEmptyString;
m_LineNrID = 0;
m_DividerID = 1;
// initialize language
m_language = NULL;
+ // Use all the bits in the style byte as styles, not indicators.
+ SetStyleBits(8);
+
// default font for all styles
SetViewEOL (g_CommonPrefs.displayEOLEnable);
SetIndentationGuides (g_CommonPrefs.indentGuideEnable);
wxSTC_WRAP_WORD: wxSTC_WRAP_NONE);
wxFont font (10, wxMODERN, wxNORMAL, wxNORMAL);
StyleSetFont (wxSTC_STYLE_DEFAULT, font);
- StyleSetForeground (wxSTC_STYLE_DEFAULT, wxColour (_T("BLACK")));
- StyleSetBackground (wxSTC_STYLE_DEFAULT, wxColour (_T("WHITE")));
- StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (_T("DARK GREY")));
- StyleSetBackground (wxSTC_STYLE_LINENUMBER, wxColour (_T("WHITE")));
- StyleSetForeground(wxSTC_STYLE_INDENTGUIDE, wxColour (_T("DARK GREY")));
+ StyleSetForeground (wxSTC_STYLE_DEFAULT, *wxBLACK);
+ StyleSetBackground (wxSTC_STYLE_DEFAULT, *wxWHITE);
+ StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (wxT("DARK GREY")));
+ StyleSetBackground (wxSTC_STYLE_LINENUMBER, *wxWHITE);
+ StyleSetForeground(wxSTC_STYLE_INDENTGUIDE, wxColour (wxT("DARK GREY")));
InitializePrefs (DEFAULT_LANGUAGE);
// set visibility
SetYCaretPolicy (wxSTC_CARET_EVEN|wxSTC_VISIBLE_STRICT|wxSTC_CARET_SLOP, 1);
// markers
- MarkerDefine (wxSTC_MARKNUM_FOLDER, wxSTC_MARK_DOTDOTDOT, _T("BLACK"), _T("BLACK"));
- MarkerDefine (wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN, _T("BLACK"), _T("BLACK"));
- MarkerDefine (wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_EMPTY, _T("BLACK"), _T("BLACK"));
- MarkerDefine (wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_DOTDOTDOT, _T("BLACK"), _T("WHITE"));
- MarkerDefine (wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_ARROWDOWN, _T("BLACK"), _T("WHITE"));
- MarkerDefine (wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_EMPTY, _T("BLACK"), _T("BLACK"));
- MarkerDefine (wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_EMPTY, _T("BLACK"), _T("BLACK"));
-
- // miscelaneous
- m_LineNrMargin = TextWidth (wxSTC_STYLE_LINENUMBER, _T("_999999"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDER, wxSTC_MARK_DOTDOTDOT, wxT("BLACK"), wxT("BLACK"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN, wxT("BLACK"), wxT("BLACK"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_EMPTY, wxT("BLACK"), wxT("BLACK"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_DOTDOTDOT, wxT("BLACK"), wxT("WHITE"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_ARROWDOWN, wxT("BLACK"), wxT("WHITE"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_EMPTY, wxT("BLACK"), wxT("BLACK"));
+ MarkerDefine (wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_EMPTY, wxT("BLACK"), wxT("BLACK"));
+
+ // annotations
+ AnnotationSetVisible(wxSTC_ANNOTATION_BOXED);
+
+ // miscellaneous
+ m_LineNrMargin = TextWidth (wxSTC_STYLE_LINENUMBER, wxT("_999999"));
m_FoldingMargin = 16;
CmdKeyClear (wxSTC_KEY_TAB, 0); // this is done by the menu accelerator key
SetLayoutCache (wxSTC_CACHE_PAGE);
Clear ();
}
+void Edit::OnKey (wxStyledTextEvent &WXUNUSED(event))
+{
+ wxMessageBox("OnKey");
+}
+
void Edit::OnEditCut (wxCommandEvent &WXUNUSED(event)) {
if (GetReadOnly() || (GetSelectionEnd()-GetSelectionStart() <= 0)) return;
Cut ();
SetCodePage (charset);
}
+void Edit::OnAnnotationAdd(wxCommandEvent& WXUNUSED(event))
+{
+ const int line = GetCurrentLine();
+
+ wxString ann = AnnotationGetText(line);
+ ann = wxGetTextFromUser
+ (
+ wxString::Format("Enter annotation for the line %d", line),
+ "Edit annotation",
+ ann,
+ this
+ );
+ if ( ann.empty() )
+ return;
+
+ AnnotationSetText(line, ann);
+ AnnotationSetStyle(line, ANNOTATION_STYLE);
+
+ // Scintilla doesn't update the scroll width for annotations, even with
+ // scroll width tracking on, so do it manually.
+ const int width = GetScrollWidth();
+
+ // NB: The following adjustments are only needed when using
+ // wxSTC_ANNOTATION_BOXED annotations style, but we apply them always
+ // in order to make things simpler and not have to redo the width
+ // calculations when the annotations visibility changes. In a real
+ // program you'd either just stick to a fixed annotations visibility or
+ // update the width when it changes.
+
+ // Take into account the fact that the annotation is shown indented, with
+ // the same indent as the line it's attached to.
+ int indent = GetLineIndentation(line);
+
+ // This is just a hack to account for the width of the box, there doesn't
+ // seem to be any way to get it directly from Scintilla.
+ indent += 3;
+
+ const int widthAnn = TextWidth(ANNOTATION_STYLE, ann + wxString(indent, ' '));
+
+ if (widthAnn > width)
+ SetScrollWidth(widthAnn);
+}
+
+void Edit::OnAnnotationRemove(wxCommandEvent& WXUNUSED(event))
+{
+ AnnotationSetText(GetCurrentLine(), wxString());
+}
+
+void Edit::OnAnnotationClear(wxCommandEvent& WXUNUSED(event))
+{
+ AnnotationClearAll();
+}
+
+void Edit::OnAnnotationStyle(wxCommandEvent& event)
+{
+ int style = 0;
+ switch (event.GetId()) {
+ case myID_ANNOTATION_STYLE_HIDDEN:
+ style = wxSTC_ANNOTATION_HIDDEN;
+ break;
+
+ case myID_ANNOTATION_STYLE_STANDARD:
+ style = wxSTC_ANNOTATION_STANDARD;
+ break;
+
+ case myID_ANNOTATION_STYLE_BOXED:
+ style = wxSTC_ANNOTATION_BOXED;
+ break;
+ }
+
+ AnnotationSetVisible(style);
+}
+
void Edit::OnChangeCase (wxCommandEvent &event) {
switch (event.GetId()) {
case myID_CHANGELOWER: {
}
void Edit::OnCharAdded (wxStyledTextEvent &event) {
- char chr = event.GetKey();
+ char chr = (char)event.GetKey();
int currentLine = GetCurrentLine();
// Change this if support for mac files with \r is needed
if (chr == '\n') {
curInfo = &g_LanguagePrefs [languageNr];
wxString filepattern = curInfo->filepattern;
filepattern.Lower();
- while (!filepattern.IsEmpty()) {
+ while (!filepattern.empty()) {
wxString cur = filepattern.BeforeFirst (';');
if ((cur == filename) ||
- (cur == (filename.BeforeLast ('.') + _T(".*"))) ||
- (cur == (_T("*.") + filename.AfterLast ('.')))) {
+ (cur == (filename.BeforeLast ('.') + wxT(".*"))) ||
+ (cur == (wxT("*.") + filename.AfterLast ('.')))) {
return curInfo->name;
}
filepattern = filepattern.AfterFirst (';');
// set margin for line numbers
SetMarginType (m_LineNrID, wxSTC_MARGIN_NUMBER);
- StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (_T("DARK GREY")));
- StyleSetBackground (wxSTC_STYLE_LINENUMBER, wxColour (_T("WHITE")));
+ StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (wxT("DARK GREY")));
+ StyleSetBackground (wxSTC_STYLE_LINENUMBER, *wxWHITE);
SetMarginWidth (m_LineNrID, 0); // start out not visible
+ // annotations style
+ StyleSetBackground(ANNOTATION_STYLE, wxColour(244, 220, 220));
+ StyleSetForeground(ANNOTATION_STYLE, *wxBLACK);
+ StyleSetSizeFractional(ANNOTATION_STYLE,
+ (StyleGetSizeFractional(wxSTC_STYLE_DEFAULT)*4)/5);
+
// default fonts for all styles!
int Nr;
for (Nr = 0; Nr < wxSTC_STYLE_LASTPREDEFINED; Nr++) {
}
// set common styles
- StyleSetForeground (wxSTC_STYLE_DEFAULT, wxColour (_T("DARK GREY")));
- StyleSetForeground (wxSTC_STYLE_INDENTGUIDE, wxColour (_T("DARK GREY")));
+ StyleSetForeground (wxSTC_STYLE_DEFAULT, wxColour (wxT("DARK GREY")));
+ StyleSetForeground (wxSTC_STYLE_INDENTGUIDE, wxColour (wxT("DARK GREY")));
// initialize settings
if (g_CommonPrefs.syntaxEnable) {
StyleSetUnderline (Nr, (curType.fontstyle & mySTC_STYLE_UNDERL) > 0);
StyleSetVisible (Nr, (curType.fontstyle & mySTC_STYLE_HIDDEN) == 0);
StyleSetCase (Nr, curType.lettercase);
- const wxChar *pwords = curInfo->styles[Nr].words;
+ const char *pwords = curInfo->styles[Nr].words;
if (pwords) {
SetKeyWords (keywordnr, pwords);
keywordnr += 1;
// folding
SetMarginType (m_FoldingID, wxSTC_MARGIN_SYMBOL);
SetMarginMask (m_FoldingID, wxSTC_MASK_FOLDERS);
- StyleSetBackground (m_FoldingID, wxColour (_T("WHITE")));
+ StyleSetBackground (m_FoldingID, *wxWHITE);
SetMarginWidth (m_FoldingID, 0);
SetMarginSensitive (m_FoldingID, false);
if (g_CommonPrefs.foldEnable) {
SetMarginWidth (m_FoldingID, curInfo->folds != 0? m_FoldingMargin: 0);
SetMarginSensitive (m_FoldingID, curInfo->folds != 0);
- SetProperty (_T("fold"), curInfo->folds != 0? _T("1"): _T("0"));
- SetProperty (_T("fold.comment"),
- (curInfo->folds & mySTC_FOLD_COMMENT) > 0? _T("1"): _T("0"));
- SetProperty (_T("fold.compact"),
- (curInfo->folds & mySTC_FOLD_COMPACT) > 0? _T("1"): _T("0"));
- SetProperty (_T("fold.preprocessor"),
- (curInfo->folds & mySTC_FOLD_PREPROC) > 0? _T("1"): _T("0"));
- SetProperty (_T("fold.html"),
- (curInfo->folds & mySTC_FOLD_HTML) > 0? _T("1"): _T("0"));
- SetProperty (_T("fold.html.preprocessor"),
- (curInfo->folds & mySTC_FOLD_HTMLPREP) > 0? _T("1"): _T("0"));
- SetProperty (_T("fold.comment.python"),
- (curInfo->folds & mySTC_FOLD_COMMENTPY) > 0? _T("1"): _T("0"));
- SetProperty (_T("fold.quotes.python"),
- (curInfo->folds & mySTC_FOLD_QUOTESPY) > 0? _T("1"): _T("0"));
+ SetProperty (wxT("fold"), curInfo->folds != 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.comment"),
+ (curInfo->folds & mySTC_FOLD_COMMENT) > 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.compact"),
+ (curInfo->folds & mySTC_FOLD_COMPACT) > 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.preprocessor"),
+ (curInfo->folds & mySTC_FOLD_PREPROC) > 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.html"),
+ (curInfo->folds & mySTC_FOLD_HTML) > 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.html.preprocessor"),
+ (curInfo->folds & mySTC_FOLD_HTMLPREP) > 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.comment.python"),
+ (curInfo->folds & mySTC_FOLD_COMMENTPY) > 0? wxT("1"): wxT("0"));
+ SetProperty (wxT("fold.quotes.python"),
+ (curInfo->folds & mySTC_FOLD_QUOTESPY) > 0? wxT("1"): wxT("0"));
}
SetFoldFlags (wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED |
wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED);
return true;
}
-bool Edit::LoadFile () {
-
+bool Edit::LoadFile ()
+{
+#if wxUSE_FILEDLG
// get filname
if (!m_filename) {
- wxFileDialog dlg (this, _T("Open file"), _T(""), _T(""),
- _T("Any file (*)|*"), wxOPEN | wxFILE_MUST_EXIST | wxCHANGE_DIR);
+ wxFileDialog dlg (this, wxT("Open file"), wxEmptyString, wxEmptyString,
+ wxT("Any file (*)|*"), wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
if (dlg.ShowModal() != wxID_OK) return false;
m_filename = dlg.GetPath();
}
// load file
return LoadFile (m_filename);
+#else
+ return false;
+#endif // wxUSE_FILEDLG
}
bool Edit::LoadFile (const wxString &filename) {
// load file in edit and clear undo
- if (!filename.IsEmpty()) m_filename = filename;
-// wxFile file (m_filename);
-// if (!file.IsOpened()) return false;
- ClearAll ();
-// long lng = file.Length ();
-// if (lng > 0) {
-// wxString buf;
-// wxChar *buff = buf.GetWriteBuf (lng);
-// file.Read (buff, lng);
-// buf.UngetWriteBuf ();
-// InsertText (0, buf);
-// }
-// file.Close();
-
+ if (!filename.empty()) m_filename = filename;
+
wxStyledTextCtrl::LoadFile(m_filename);
-
+
EmptyUndoBuffer();
// determine lexer language
return true;
}
-bool Edit::SaveFile () {
-
+bool Edit::SaveFile ()
+{
+#if wxUSE_FILEDLG
// return if no change
if (!Modified()) return true;
// get filname
if (!m_filename) {
- wxFileDialog dlg (this, _T("Save file"), _T(""), _T(""), _T("Any file (*)|*"),
- wxSAVE | wxOVERWRITE_PROMPT);
+ wxFileDialog dlg (this, wxT("Save file"), wxEmptyString, wxEmptyString, wxT("Any file (*)|*"),
+ wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
if (dlg.ShowModal() != wxID_OK) return false;
m_filename = dlg.GetPath();
}
// save file
return SaveFile (m_filename);
+#else
+ return false;
+#endif // wxUSE_FILEDLG
}
bool Edit::SaveFile (const wxString &filename) {
if (!Modified()) return true;
// // save edit in file and clear undo
-// if (!filename.IsEmpty()) m_filename = filename;
+// if (!filename.empty()) m_filename = filename;
// wxFile file (m_filename, wxFile::write);
// if (!file.IsOpened()) return false;
// wxString buf = GetText();
// return true;
return wxStyledTextCtrl::SaveFile(filename);
-
+
}
bool Edit::Modified () {
EditProperties::EditProperties (Edit *edit,
long style)
- : wxDialog (edit, -1, wxEmptyString,
+ : wxDialog (edit, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize,
style | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {
// fullname
wxBoxSizer *fullname = new wxBoxSizer (wxHORIZONTAL);
fullname->Add (10, 0);
- fullname->Add (new wxStaticText (this, -1, _("Full filename"),
- wxDefaultPosition, wxSize(80, -1)),
+ fullname->Add (new wxStaticText (this, wxID_ANY, _("Full filename"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL);
- fullname->Add (new wxStaticText (this, -1, edit->GetFilename()),
+ fullname->Add (new wxStaticText (this, wxID_ANY, edit->GetFilename()),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL);
// text info
wxGridSizer *textinfo = new wxGridSizer (4, 0, 2);
- textinfo->Add (new wxStaticText (this, -1, _("Language"),
- wxDefaultPosition, wxSize(80, -1)),
+ textinfo->Add (new wxStaticText (this, wxID_ANY, _("Language"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- textinfo->Add (new wxStaticText (this, -1, edit->m_language->name),
+ textinfo->Add (new wxStaticText (this, wxID_ANY, edit->m_language->name),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
- textinfo->Add (new wxStaticText (this, -1, _("Lexer-ID: "),
- wxDefaultPosition, wxSize(80, -1)),
+ textinfo->Add (new wxStaticText (this, wxID_ANY, _("Lexer-ID: "),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- text = wxString::Format (_T("%d"), edit->GetLexer());
- textinfo->Add (new wxStaticText (this, -1, text),
+ text = wxString::Format (wxT("%d"), edit->GetLexer());
+ textinfo->Add (new wxStaticText (this, wxID_ANY, text),
0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
- wxString EOLtype = _T("");
+ wxString EOLtype = wxEmptyString;
switch (edit->GetEOLMode()) {
- case wxSTC_EOL_CR: {EOLtype = _T("CR (Unix)"); break; }
- case wxSTC_EOL_CRLF: {EOLtype = _T("CRLF (Windows)"); break; }
- case wxSTC_EOL_LF: {EOLtype = _T("CR (Macintosh)"); break; }
+ case wxSTC_EOL_CR: {EOLtype = wxT("CR (Unix)"); break; }
+ case wxSTC_EOL_CRLF: {EOLtype = wxT("CRLF (Windows)"); break; }
+ case wxSTC_EOL_LF: {EOLtype = wxT("CR (Macintosh)"); break; }
}
- textinfo->Add (new wxStaticText (this, -1, _("Line endings"),
- wxDefaultPosition, wxSize(80, -1)),
+ textinfo->Add (new wxStaticText (this, wxID_ANY, _("Line endings"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- textinfo->Add (new wxStaticText (this, -1, EOLtype),
+ textinfo->Add (new wxStaticText (this, wxID_ANY, EOLtype),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
// text info box
wxStaticBoxSizer *textinfos = new wxStaticBoxSizer (
- new wxStaticBox (this, -1, _("Informations")),
+ new wxStaticBox (this, wxID_ANY, _("Informations")),
wxVERTICAL);
textinfos->Add (textinfo, 0, wxEXPAND);
textinfos->Add (0, 6);
// statistic
wxGridSizer *statistic = new wxGridSizer (4, 0, 2);
- statistic->Add (new wxStaticText (this, -1, _("Total lines"),
- wxDefaultPosition, wxSize(80, -1)),
+ statistic->Add (new wxStaticText (this, wxID_ANY, _("Total lines"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- text = wxString::Format (_T("%d"), edit->GetLineCount());
- statistic->Add (new wxStaticText (this, -1, text),
+ text = wxString::Format (wxT("%d"), edit->GetLineCount());
+ statistic->Add (new wxStaticText (this, wxID_ANY, text),
0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
- statistic->Add (new wxStaticText (this, -1, _("Total chars"),
- wxDefaultPosition, wxSize(80, -1)),
+ statistic->Add (new wxStaticText (this, wxID_ANY, _("Total chars"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- text = wxString::Format (_T("%d"), edit->GetTextLength());
- statistic->Add (new wxStaticText (this, -1, text),
+ text = wxString::Format (wxT("%d"), edit->GetTextLength());
+ statistic->Add (new wxStaticText (this, wxID_ANY, text),
0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
- statistic->Add (new wxStaticText (this, -1, _("Current line"),
- wxDefaultPosition, wxSize(80, -1)),
+ statistic->Add (new wxStaticText (this, wxID_ANY, _("Current line"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- text = wxString::Format (_T("%d"), edit->GetCurrentLine());
- statistic->Add (new wxStaticText (this, -1, text),
+ text = wxString::Format (wxT("%d"), edit->GetCurrentLine());
+ statistic->Add (new wxStaticText (this, wxID_ANY, text),
0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
- statistic->Add (new wxStaticText (this, -1, _("Current pos"),
- wxDefaultPosition, wxSize(80, -1)),
+ statistic->Add (new wxStaticText (this, wxID_ANY, _("Current pos"),
+ wxDefaultPosition, wxSize(80, wxDefaultCoord)),
0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT, 4);
- text = wxString::Format (_T("%d"), edit->GetCurrentPos());
- statistic->Add (new wxStaticText (this, -1, text),
+ text = wxString::Format (wxT("%d"), edit->GetCurrentPos());
+ statistic->Add (new wxStaticText (this, wxID_ANY, text),
0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxRIGHT, 4);
// char/line statistics
wxStaticBoxSizer *statistics = new wxStaticBoxSizer (
- new wxStaticBox (this, -1, _("Statistics")),
+ new wxStaticBox (this, wxID_ANY, _("Statistics")),
wxVERTICAL);
statistics->Add (statistic, 0, wxEXPAND);
statistics->Add (0, 6);
ShowModal();
}
+#if wxUSE_PRINTING_ARCHITECTURE
+
//----------------------------------------------------------------------------
// EditPrint
//----------------------------------------------------------------------------
-EditPrint::EditPrint (Edit *edit, wxChar *title)
+EditPrint::EditPrint (Edit *edit, const wxChar *title)
: wxPrintout(title) {
m_edit = edit;
m_printed = 0;
page.y);
// get margins informations and convert to printer pixels
- int top = 25; // default 25
- int bottom = 25; // default 25
- int left = 20; // default 20
- int right = 20; // default 20
- wxPoint (top, left) = g_pageSetupData->GetMarginTopLeft();
- wxPoint (bottom, right) = g_pageSetupData->GetMarginBottomRight();
+ wxPoint pt = g_pageSetupData->GetMarginTopLeft();
+ int left = pt.x;
+ int top = pt.y;
+ pt = g_pageSetupData->GetMarginBottomRight();
+ int right = pt.x;
+ int bottom = pt.y;
+
top = static_cast<int> (top * ppiScr.y / 25.4);
bottom = static_cast<int> (bottom * ppiScr.y / 25.4);
left = static_cast<int> (left * ppiScr.x / 25.4);
right = static_cast<int> (right * ppiScr.x / 25.4);
+
m_printRect = wxRect (left,
top,
page.x - (left + right),
return true;
}
+#endif // wxUSE_PRINTING_ARCHITECTURE