]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/stc/stctest.cpp
link with wininet.lib under Windows to avoid linking errors in wxUSE_URL_NATIVE=...
[wxWidgets.git] / samples / stc / stctest.cpp
index 8c27905685988659e74416e9684007019675a5d6..203cd15bbc65c26611a39d2f81abfa92cf643752 100644 (file)
@@ -1,5 +1,5 @@
 //////////////////////////////////////////////////////////////////////////////
-// File:        app.cpp
+// File:        contrib/samples/stc/stctest.cpp
 // Purpose:     STC test application
 // Maintainer:  Otto Wyss
 // 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
 #endif
 
 // for all others, include the necessary headers (this file is usually all you
-// need because it includes almost all 'standard' wxWindows headers)
+// need because it includes almost all 'standard' wxWidgets headers)
 #ifndef WX_PRECOMP
-    #include <wx/wx.h>
+    #include "wx/wx.h"
 #endif
 
-//! wxWindows headers
-#include <wx/config.h>   // configuration support
-#include <wx/filedlg.h>  // file dialog support
-#include <wx/filename.h> // filename support
-#include <wx/notebook.h> // notebook support
-#include <wx/settings.h> // system settings
-#include <wx/string.h>   // strings support
+//! wxWidgets headers
+#include "wx/config.h"   // configuration support
+#include "wx/filedlg.h"  // file dialog support
+#include "wx/filename.h" // filename support
+#include "wx/notebook.h" // notebook support
+#include "wx/settings.h" // system settings
+#include "wx/string.h"   // strings support
+#include "wx/image.h"    // images support
 
 //! application headers
 #include "defsext.h"     // Additional definitions
 //============================================================================
 
 #define APP_NAME _T("STC-Test")
-#define APP_DESCR _("See http://wxguide.sourceforge.net/indexedit.html")
+#define APP_DESCR _("See http://wxguide.sourceforge.net/")
 
 #define APP_MAINT _T("Otto Wyss")
-#define APP_VENDOR _T("wxWindows")
+#define APP_VENDOR _T("wxWidgets")
 #define APP_COPYRIGTH _T("(C) 2003 Otto Wyss")
-#define APP_LICENCE _T("wxWindows")
+#define APP_LICENCE _T("wxWidgets")
 
 #define APP_VERSION _T("0.1.alpha")
 #define APP_BUILD __DATE__
 
-#define APP_WEBSITE _T("http://www.wxWindows.org")
+#define APP_WEBSITE _T("http://www.wxWidgets.org")
 #define APP_MAIL _T("mailto://???")
 
 #define NONAME _("<untitled>")
@@ -75,10 +76,16 @@ class AppBook;
 //! global application name
 wxString *g_appname = NULL;
 
+#if wxUSE_PRINTING_ARCHITECTURE
+
 //! global print data, to remember settings during the session
 wxPrintData *g_printData = (wxPrintData*) NULL;
 wxPageSetupData *g_pageSetupData = (wxPageSetupData*) NULL;
 
+#endif // wxUSE_PRINTING_ARCHITECTURE
+
+
+class AppFrame;
 
 //----------------------------------------------------------------------------
 //! application APP_VENDOR-APP_NAME.
@@ -98,7 +105,7 @@ private:
 
 };
 
-// created dynamically by wxWindows
+// created dynamically by wxWidgets
 DECLARE_APP (App);
 
 //----------------------------------------------------------------------------
@@ -190,7 +197,7 @@ IMPLEMENT_APP (App)
 bool App::OnInit () {
 
     wxInitAllImageHandlers();
-    
+
     // set application and vendor name
     SetAppName (APP_NAME);
     SetVendorName (APP_VENDOR);
@@ -199,9 +206,11 @@ bool App::OnInit () {
     g_appname->Append (_T("-"));
     g_appname->Append (APP_NAME);
 
+#if wxUSE_PRINTING_ARCHITECTURE
     // initialize print data and setup
     g_printData = new wxPrintData;
     g_pageSetupData = new wxPageSetupDialogData;
+#endif // wxUSE_PRINTING_ARCHITECTURE
 
     // create application frame
     m_frame = new AppFrame (*g_appname);
@@ -219,9 +228,11 @@ int App::OnExit () {
     // delete global appname
     delete g_appname;
 
+#if wxUSE_PRINTING_ARCHITECTURE
     // delete global print data and setup
     if (g_printData) delete g_printData;
     if (g_pageSetupData) delete g_pageSetupData;
+#endif // wxUSE_PRINTING_ARCHITECTURE
 
     return 0;
 }
@@ -288,7 +299,7 @@ BEGIN_EVENT_TABLE (AppFrame, wxFrame)
 END_EVENT_TABLE ()
 
 AppFrame::AppFrame (const wxString &title)
-        : wxFrame ((wxFrame *)NULL, -1, title, wxDefaultPosition, wxSize(600,400),
+        : wxFrame ((wxFrame *)NULL, wxID_ANY, title, wxDefaultPosition, wxSize(750,550),
                     wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE) {
 
     // intitialize important variables
@@ -300,16 +311,17 @@ AppFrame::AppFrame (const wxString &title)
     SetBackgroundColour (_T("WHITE"));
 
     // about box shown for 1 seconds
-    AppAbout (this, 1000);
+    AppAbout dlg(this, 1000);
 
     // create menu
     m_menuBar = new wxMenuBar;
     CreateMenu ();
 
     // open first page
-    m_edit = new Edit (this, -1);
+    m_edit = new Edit (this, wxID_ANY);
     m_edit->SetFocus();
 
+    FileOpen (_T("stctest.cpp"));
 }
 
 AppFrame::~AppFrame () {
@@ -327,7 +339,7 @@ void AppFrame::OnClose (wxCloseEvent &event) {
 }
 
 void AppFrame::OnAbout (wxCommandEvent &WXUNUSED(event)) {
-    AppAbout (this);
+    AppAbout dlg(this);
 }
 
 void AppFrame::OnExit (wxCommandEvent &WXUNUSED(event)) {
@@ -337,12 +349,14 @@ void AppFrame::OnExit (wxCommandEvent &WXUNUSED(event)) {
 // file event handlers
 void AppFrame::OnFileOpen (wxCommandEvent &WXUNUSED(event)) {
     if (!m_edit) return;
+#if wxUSE_FILEDLG
     wxString fname;
-    wxFileDialog dlg (this, _T("Open file"), _T(""), _T(""), _T("Any file (*)|*"),
-                      wxOPEN | wxFILE_MUST_EXIST | wxCHANGE_DIR);
+    wxFileDialog dlg (this, _T("Open file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"),
+                      wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
     if (dlg.ShowModal() != wxID_OK) return;
     fname = dlg.GetPath ();
     FileOpen (fname);
+#endif // wxUSE_FILEDLG
 }
 
 void AppFrame::OnFileSave (wxCommandEvent &WXUNUSED(event)) {
@@ -357,11 +371,13 @@ void AppFrame::OnFileSave (wxCommandEvent &WXUNUSED(event)) {
 
 void AppFrame::OnFileSaveAs (wxCommandEvent &WXUNUSED(event)) {
     if (!m_edit) return;
+#if wxUSE_FILEDLG
     wxString filename = wxEmptyString;
-    wxFileDialog dlg (this, _T("Save file"), _T(""), _T(""), _T("Any file (*)|*"), wxSAVE|wxOVERWRITE_PROMPT);
+    wxFileDialog dlg (this, _T("Save file"), wxEmptyString, wxEmptyString, _T("Any file (*)|*"), wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
     if (dlg.ShowModal() != wxID_OK) return;
     filename = dlg.GetPath();
     m_edit->SaveFile (filename);
+#endif // wxUSE_FILEDLG
 }
 
 void AppFrame::OnFileClose (wxCommandEvent &WXUNUSED(event)) {
@@ -377,24 +393,30 @@ void AppFrame::OnFileClose (wxCommandEvent &WXUNUSED(event)) {
             }
         }
     }
+    m_edit->SetFilename (wxEmptyString);
+    m_edit->ClearAll();
+    m_edit->SetSavePoint();
 }
 
 // properties event handlers
 void AppFrame::OnProperties (wxCommandEvent &WXUNUSED(event)) {
     if (!m_edit) return;
-    EditProperties (m_edit, 0);
+    EditProperties dlg(m_edit, 0);
 }
 
 // print event handlers
 void AppFrame::OnPrintSetup (wxCommandEvent &WXUNUSED(event)) {
+#if wxUSE_PRINTING_ARCHITECTURE
     (*g_pageSetupData) = * g_printData;
     wxPageSetupDialog pageSetupDialog(this, g_pageSetupData);
     pageSetupDialog.ShowModal();
     (*g_printData) = pageSetupDialog.GetPageSetupData().GetPrintData();
     (*g_pageSetupData) = pageSetupDialog.GetPageSetupData();
+#endif // wxUSE_PRINTING_ARCHITECTURE
 }
 
 void AppFrame::OnPrintPreview (wxCommandEvent &WXUNUSED(event)) {
+#if wxUSE_PRINTING_ARCHITECTURE
     wxPrintDialogData printDialogData( *g_printData);
     wxPrintPreview *preview =
         new wxPrintPreview (new EditPrint (m_edit),
@@ -413,9 +435,11 @@ void AppFrame::OnPrintPreview (wxCommandEvent &WXUNUSED(event)) {
     frame->Centre(wxBOTH);
     frame->Initialize();
     frame->Show(true);
+#endif // wxUSE_PRINTING_ARCHITECTURE
 }
 
 void AppFrame::OnPrint (wxCommandEvent &WXUNUSED(event)) {
+#if wxUSE_PRINTING_ARCHITECTURE
     wxPrintDialogData printDialogData( *g_printData);
     wxPrinter printer (&printDialogData);
     EditPrint printout (m_edit);
@@ -428,6 +452,7 @@ void AppFrame::OnPrint (wxCommandEvent &WXUNUSED(event)) {
         }
     }
     (*g_printData) = printer.GetPrintDialogData().GetPrintData();
+#endif // wxUSE_PRINTING_ARCHITECTURE
 }
 
 // edit events
@@ -436,8 +461,8 @@ void AppFrame::OnEdit (wxCommandEvent &event) {
 }
 
 // private functions
-void AppFrame::CreateMenu () {
-
+void AppFrame::CreateMenu ()
+{
     // File menu
     wxMenu *menuFile = new wxMenu;
     menuFile->Append (wxID_OPEN, _("&Open ..\tCtrl+O"));
@@ -477,7 +502,7 @@ void AppFrame::CreateMenu () {
     menuEdit->Enable (myID_GOTO, false);
     menuEdit->AppendSeparator();
     menuEdit->Append (myID_INDENTINC, _("&Indent increase\tTab"));
-    menuEdit->Append (myID_INDENTRED, _("I&ndent reduce\tBksp"));
+    menuEdit->Append (myID_INDENTRED, _("I&ndent reduce\tShift+Tab"));
     menuEdit->AppendSeparator();
     menuEdit->Append (wxID_SELECTALL, _("&Select all\tCtrl+A"));
     menuEdit->Append (myID_SELECTLINE, _("Select &line\tCtrl+L"));
@@ -547,10 +572,10 @@ void AppFrame::CreateMenu () {
     m_menuBar->Append (menuWindow, _("&Window"));
     m_menuBar->Append (menuHelp, _("&Help"));
     SetMenuBar (m_menuBar);
-
 }
 
-void AppFrame::FileOpen (wxString fname) {
+void AppFrame::FileOpen (wxString fname)
+{
     wxFileName w(fname); w.Normalize(); fname = w.GetFullPath();
     m_edit->LoadFile (fname);
 }
@@ -581,9 +606,9 @@ END_EVENT_TABLE ()
 AppAbout::AppAbout (wxWindow *parent,
                     int milliseconds,
                     long style)
-        : wxDialog (parent, -1, wxEmptyString,
+        : wxDialog (parent, wxID_ANY, wxEmptyString,
                     wxDefaultPosition, wxDefaultSize,
-                    wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {
+                    style | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {
 
     // set timer if any
     m_timer = NULL;
@@ -597,27 +622,27 @@ AppAbout::AppAbout (wxWindow *parent,
 
     // about info
     wxGridSizer *aboutinfo = new wxGridSizer (2, 0, 2);
-    aboutinfo->Add (new wxStaticText(this, -1, _("Written by: ")),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, _("Written by: ")),
                     0, wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, APP_MAINT),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, APP_MAINT),
                     1, wxEXPAND | wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, _("Version: ")),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, _("Version: ")),
                     0, wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, APP_VERSION),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, APP_VERSION),
                     1, wxEXPAND | wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, _("Licence type: ")),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, _("Licence type: ")),
                     0, wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, APP_LICENCE),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, APP_LICENCE),
                     1, wxEXPAND | wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, _("Copyright: ")),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, _("Copyright: ")),
                     0, wxALIGN_LEFT);
-    aboutinfo->Add (new wxStaticText(this, -1, APP_COPYRIGTH),
+    aboutinfo->Add (new wxStaticText(this, wxID_ANY, APP_COPYRIGTH),
                     1, wxEXPAND | wxALIGN_LEFT);
 
     // about icontitle//info
     wxBoxSizer *aboutpane = new wxBoxSizer (wxHORIZONTAL);
     wxBitmap bitmap = wxBitmap(wxICON (mondrian));
-    aboutpane->Add (new wxStaticBitmap (this, -1, bitmap),
+    aboutpane->Add (new wxStaticBitmap (this, wxID_ANY, bitmap),
                     0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 20);
     aboutpane->Add (aboutinfo, 1, wxEXPAND);
     aboutpane->Add (60, 0);
@@ -625,12 +650,12 @@ AppAbout::AppAbout (wxWindow *parent,
     // about complete
     wxBoxSizer *totalpane = new wxBoxSizer (wxVERTICAL);
     totalpane->Add (0, 20);
-    wxStaticText *appname = new wxStaticText(this, -1, *g_appname);
+    wxStaticText *appname = new wxStaticText(this, wxID_ANY, *g_appname);
     appname->SetFont (wxFont (24, wxDEFAULT, wxNORMAL, wxBOLD));
     totalpane->Add (appname, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, 40);
     totalpane->Add (0, 10);
     totalpane->Add (aboutpane, 0, wxEXPAND | wxALL, 4);
-    totalpane->Add (new wxStaticText(this, -1, APP_DESCR),
+    totalpane->Add (new wxStaticText(this, wxID_ANY, APP_DESCR),
                     0, wxALIGN_CENTER | wxALL, 10);
     wxButton *okButton = new wxButton (this, wxID_OK, _("OK"));
     okButton->SetDefault();
@@ -638,7 +663,7 @@ AppAbout::AppAbout (wxWindow *parent,
 
     SetSizerAndFit (totalpane);
 
-    CenterOnScreen();    
+    CenterOnScreen();
     ShowModal();
 }
 
@@ -651,9 +676,8 @@ AppAbout::~AppAbout () {
 
 //----------------------------------------------------------------------------
 // event handlers
-void AppAbout::OnTimerEvent (wxTimerEvent &event) {
+void AppAbout::OnTimerEvent (wxTimerEvent &WXUNUSED(event)) {
     if (m_timer) delete m_timer;
     m_timer = NULL;
     EndModal (wxID_OK);
 }
-