]> git.saurik.com Git - wxWidgets.git/commitdiff
1. some DDE tests in exec
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 21 Jan 2000 02:31:49 +0000 (02:31 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 21 Jan 2000 02:31:49 +0000 (02:31 +0000)
2. per-page images test in wizard
3. wxLog dialog test in dialogs

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/console/console.cpp
samples/dialogs/dialogs.cpp
samples/dialogs/dialogs.h
samples/exec/exec.cpp
samples/layout/layout.cpp
samples/notebook/test.cpp
samples/wizard/wiztest.cpp

index e01cf964bf4935a097787f79a15863177b5b2afd..80d7eb5be058f252bd2a154889ed667ac28ca4d1 100644 (file)
 //#define TEST_ARRAYS
 //#define TEST_CMDLINE
 //#define TEST_DIR
+#define TEST_EXECUTE
 //#define TEST_LOG
 //#define TEST_LONGLONG
 //#define TEST_MIME
 //#define TEST_STRINGS
 //#define TEST_THREADS
-#define TEST_TIME
+//#define TEST_TIME
 
 // ============================================================================
 // implementation
@@ -160,6 +161,34 @@ static void TestDirEnum()
 
 #endif // TEST_DIR
 
+// ----------------------------------------------------------------------------
+// wxExecute
+// ----------------------------------------------------------------------------
+
+#ifdef TEST_EXECUTE
+
+#include <wx/utils.h>
+
+static void TestExecute()
+{
+    puts("*** testing wxExecute ***");
+
+#ifdef __UNIX__
+    #define COMMAND "echo hi"
+#elif defined(__WXMSW__)
+    #define COMMAND "command.com -c 'echo hi'"
+#else
+    #error "no command to exec"
+#endif // OS
+
+    if ( wxExecute(COMMAND) == 0 )
+        puts("\nOk.");
+    else
+        puts("\nError.");
+}
+
+#endif // TEST_EXECUTE
+
 // ----------------------------------------------------------------------------
 // MIME types
 // ----------------------------------------------------------------------------
@@ -1851,6 +1880,10 @@ int main(int argc, char **argv)
     TestDirEnum();
 #endif // TEST_DIR
 
+#ifdef TEST_EXECUTE
+    TestExecute();
+#endif // TEST_EXECUTE
+
 #ifdef TEST_LOG
     wxString s;
     for ( size_t n = 0; n < 8000; n++ )
index 9edfbed05e7d63dc19fd531cac88bc7d5c89a4b8..59873ce7158eb7a47a8fc6266a996b0d93d1ffdd 100644 (file)
@@ -75,6 +75,7 @@ bool MyApp::OnInit(void)
 
 #endif
   file_menu->AppendSeparator();
+  file_menu->Append(DIALOGS_LOG_DIALOG, "&Log dialog\tCtrl-L");
   file_menu->Append(DIALOGS_MESSAGE_BOX, "&Message box\tCtrl-M");
   file_menu->Append(DIALOGS_TEXT_ENTRY,  "Text &entry\tCtrl-E");
   file_menu->Append(DIALOGS_NUM_ENTRY, "&Numeric entry\tCtrl-N");
@@ -96,7 +97,7 @@ bool MyApp::OnInit(void)
   myCanvas->SetBackgroundColour(*wxWHITE);
 
   frame->Centre(wxBOTH);
-  
+
   // Show the frame
   frame->Show(TRUE);
 
@@ -119,7 +120,7 @@ void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) )
         wxColour colour(i*16, i*16, i*16);
         data.SetCustomColour(i, colour);
       }
-      
+
       wxColourDialog *dialog = new wxColourDialog(this, &data);
       if (dialog->ShowModal() == wxID_OK)
       {
@@ -138,7 +139,7 @@ void MyFrame::ChooseFont(wxCommandEvent& WXUNUSED(event) )
       wxFontData data;
       data.SetInitialFont(wxGetApp().m_canvasFont);
       data.SetColour(wxGetApp().m_canvasTextColour);
-      
+
       wxFontDialog *dialog = new wxFontDialog(this, &data);
       if (dialog->ShowModal() == wxID_OK)
       {
@@ -160,7 +161,7 @@ void MyFrame::ChooseColourGeneric(wxCommandEvent& WXUNUSED(event))
         wxColour colour(i*16, i*16, i*16);
         data.SetCustomColour(i, colour);
       }
-      
+
       wxGenericColourDialog *dialog = new wxGenericColourDialog(this, &data);
       if (dialog->ShowModal() == wxID_OK)
       {
@@ -190,7 +191,16 @@ void MyFrame::ChooseFontGeneric(wxCommandEvent& WXUNUSED(event) )
       }
       dialog->Destroy();
 }
-#endif
+#endif // wxTEST_GENERIC_DIALOGS_IN_MSW
+
+void MyFrame::LogDialog(wxCommandEvent& event)
+{
+    wxLogMessage("This is some message - everything is ok so far.");
+    wxLogMessage("Another message...");
+    wxLogWarning("And then something went wrong!");
+    wxLogError("Intermediary error handler decided to abort.");
+    wxLogError("The top level caller detected an error.");
+}
 
 void MyFrame::MessageBox(wxCommandEvent& WXUNUSED(event) )
 {
@@ -204,7 +214,7 @@ void MyFrame::NumericEntry(wxCommandEvent& WXUNUSED(event) )
 {
     long res = wxGetNumberFromUser( "This is some text, actually a lot of text.\n"
                                     "Even two rows of text.",
-                                   "Enter a number:", "Numeric input test",
+                                    "Enter a number:", "Numeric input test",
                                      50, 0, 100, this );
 
     wxString msg;
@@ -215,8 +225,8 @@ void MyFrame::NumericEntry(wxCommandEvent& WXUNUSED(event) )
         icon = wxICON_HAND;
     }
     else
-    {            
-       msg.Printf(_T("You've entered %lu"), res );
+    {
+        msg.Printf(_T("You've entered %lu"), res );
         icon = wxICON_INFORMATION;
     }
 
@@ -378,6 +388,7 @@ END_EVENT_TABLE()
 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(DIALOGS_CHOOSE_COLOUR,                MyFrame::ChooseColour)
     EVT_MENU(DIALOGS_CHOOSE_FONT,                MyFrame::ChooseFont)
+    EVT_MENU(DIALOGS_LOG_DIALOG,                MyFrame::LogDialog)
     EVT_MENU(DIALOGS_MESSAGE_BOX,                MyFrame::MessageBox)
     EVT_MENU(DIALOGS_TEXT_ENTRY,                MyFrame::TextEntry)
     EVT_MENU(DIALOGS_NUM_ENTRY,                MyFrame::NumericEntry)
index a45fcd828ddebab44ca98c8a36b2191e499d920c..c1173e38df01abd39811823ae15c17e188321eb5 100644 (file)
@@ -31,6 +31,7 @@ public:
 
     void ChooseColour(wxCommandEvent& event);
     void ChooseFont(wxCommandEvent& event);
+    void LogDialog(wxCommandEvent& event);
     void MessageBox(wxCommandEvent& event);
     void SingleChoice(wxCommandEvent& event);
     void TextEntry(wxCommandEvent& event);
@@ -76,6 +77,7 @@ public:
 #define DIALOGS_DIR_CHOOSE                  11
 #define DIALOGS_TIP                         12
 #define DIALOGS_NUM_ENTRY                   13
+#define DIALOGS_LOG_DIALOG                  14
 
 #endif
 
index 65957f0d44e043e615720da01d4919f5eafbaefc..884e6e147eaf03c64ed884312679471801705507 100644 (file)
 
 #include "wx/process.h"
 
+#ifdef __WINDOWS__
+    #include "wx/dde.h"
+#endif // __WINDOWS__
+
 // ----------------------------------------------------------------------------
 // private classes
 // ----------------------------------------------------------------------------
@@ -72,6 +76,7 @@ public:
     void OnSyncExec(wxCommandEvent& event);
     void OnAsyncExec(wxCommandEvent& event);
     void OnShell(wxCommandEvent& event);
+    void OnDDEExec(wxCommandEvent& event);
 
     void OnAbout(wxCommandEvent& event);
 
@@ -114,9 +119,12 @@ enum
     Exec_SyncExec = 200,
     Exec_AsyncExec,
     Exec_Shell,
+    Exec_DDEExec,
     Exec_About = 300
 };
 
+static const wxChar *DIALOG_TITLE = _T("Exec sample");
+
 // ----------------------------------------------------------------------------
 // event tables and other macros for wxWindows
 // ----------------------------------------------------------------------------
@@ -130,6 +138,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(Exec_SyncExec, MyFrame::OnSyncExec)
     EVT_MENU(Exec_AsyncExec, MyFrame::OnAsyncExec)
     EVT_MENU(Exec_Shell, MyFrame::OnShell)
+    EVT_MENU(Exec_DDEExec, MyFrame::OnDDEExec)
 
     EVT_MENU(Exec_About, MyFrame::OnAbout)
 END_EVENT_TABLE()
@@ -195,6 +204,11 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     execMenu->Append(Exec_Shell, _T("Execute &shell command...\tCtrl-S"),
                      _T("Launch a shell and execute a command in it"));
 
+#ifdef __WINDOWS__
+    execMenu->AppendSeparator();
+    execMenu->Append(Exec_DDEExec, _T("Execute command via &DDE...\tCtrl-D"));
+#endif
+
     wxMenu *helpMenu = new wxMenu(_T(""), wxMENU_TEAROFF);
     helpMenu->Append(Exec_About, _T("&About...\tF1"), _T("Show about dialog"));
 
@@ -232,7 +246,7 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnSyncExec(wxCommandEvent& WXUNUSED(event))
 {
     wxString cmd = wxGetTextFromUser(_T("Enter the command: "),
-                                     _T("Exec sample"),
+                                     DIALOG_TITLE,
                                      m_cmdLast);
 
     if ( !cmd )
@@ -247,7 +261,7 @@ void MyFrame::OnSyncExec(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnAsyncExec(wxCommandEvent& WXUNUSED(event))
 {
     wxString cmd = wxGetTextFromUser(_T("Enter the command: "),
-                                     _T("Exec sample"),
+                                     DIALOG_TITLE,
                                      m_cmdLast);
 
     if ( !cmd )
@@ -269,7 +283,7 @@ void MyFrame::OnAsyncExec(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnShell(wxCommandEvent& WXUNUSED(event))
 {
     wxString cmd = wxGetTextFromUser(_T("Enter the command: "),
-                                     _T("Exec sample"),
+                                     DIALOG_TITLE,
                                      m_cmdLast);
 
     if ( !cmd )
@@ -281,6 +295,48 @@ void MyFrame::OnShell(wxCommandEvent& WXUNUSED(event))
     m_cmdLast = cmd;
 }
 
+void MyFrame::OnDDEExec(wxCommandEvent& WXUNUSED(event))
+{
+#ifdef __WINDOWS__
+    wxString server = wxGetTextFromUser(_T("Server to connect to:"),
+                                        DIALOG_TITLE, _T("IExplore"));
+    if ( !server )
+        return;
+
+    wxString topic = wxGetTextFromUser(_T("DDE topic:"),
+                                       DIALOG_TITLE, _T("WWW_OpenURL"));
+    if ( !topic )
+        return;
+
+    wxString cmd = wxGetTextFromUser(_T("DDE command:"),
+                                     DIALOG_TITLE,
+                                     _T("\"file:F:\\wxWindows\\samples\\"
+                                        "image\\horse.gif\",,-1,,,,,"));
+    if ( !cmd )
+        return;
+
+    wxDDEClient client;
+    wxConnectionBase *conn = client.MakeConnection("", server, topic);
+    if ( !conn )
+    {
+        wxLogError(_T("Failed to connect to the DDE server '%s'."),
+                   server.c_str());
+    }
+    else
+    {
+        if ( !conn->Execute(cmd) )
+        {
+            wxLogError(_T("Failed to execute command '%s' via DDE."),
+                       cmd.c_str());
+        }
+        else
+        {
+            wxLogStatus(_T("Successfully executed DDE command"));
+        }
+    }
+#endif // __WINDOWS__
+}
+
 // ----------------------------------------------------------------------------
 // MyProcess
 // ----------------------------------------------------------------------------
index 5b55468ada0da775a8d9bb893b0cdc56923220c2..1b5fa69511271f3ca0351a177d6e666419a77f45 100644 (file)
@@ -275,7 +275,9 @@ void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) )
   dc.DrawRoundedRectangle(150, 150, 100, 50, 20);
 
   dc.DrawEllipse(250, 250, 100, 50);
+#if wxUSE_SPLINES
   dc.DrawSpline(50, 200, 50, 100, 200, 10);
+#endif // wxUSE_SPLINES
   dc.DrawLine(50, 230, 200, 230);
 
   dc.SetPen(* wxBLACK_PEN);
index c2dffe86fe4daa06f4eecf629f7b77ef691a441b..657686b0c11e223701535892b7482664ed2157a8 100644 (file)
@@ -99,7 +99,8 @@ void MyApp::InitTabView(wxNotebook* notebook, wxPanel* window)
 
   wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" };
   wxRadioBox *radiobox = new wxRadioBox(panel2, -1, "Choose one",
-                                        wxDefaultPosition, wxDefaultSize, 5, animals);
+                                        wxDefaultPosition, wxDefaultSize, 5, animals,
+                                        2, wxRA_SPECIFY_ROWS);
 
   c = new wxLayoutConstraints;
   c->left.SameAs(panel2, wxLeft, 4);
index 69f137a4f516582fbe9f7fef7ec58ba0242cd01c..cd078af265df207f614f3863991454041120318b 100644 (file)
     #include "wiztest.xpm"
 #endif
 
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// ids for menu items
+enum
+{
+    Wizard_Quit = 100,
+    Wizard_Run,
+    Wizard_About = 1000
+};
+
+// ----------------------------------------------------------------------------
+// ressources
+// ----------------------------------------------------------------------------
+
+#ifdef __WXMSW__
+    #define BMP_WIZARD_1 wxBitmap("wiztest.bmp", wxBITMAP_TYPE_BMP)
+    #define BMP_WIZARD_2 wxBitmap("wiztest2.bmp", wxBITMAP_TYPE_BMP)
+#else
+    #define BMP_WIZARD_1 wxBitmap(wizimage)
+    #define BMP_WIZARD_2 wxBitmap(wizimage)
+#endif
+
 // ----------------------------------------------------------------------------
 // private classes
 // ----------------------------------------------------------------------------
@@ -53,7 +77,22 @@ public:
     virtual bool OnInit();
 };
 
-IMPLEMENT_APP(MyApp)
+class MyFrame : public wxFrame
+{
+public:
+    // ctor(s)
+    MyFrame(const wxString& title);
+
+    // event handlers (these functions should _not_ be virtual)
+    void OnQuit(wxCommandEvent& event);
+    void OnAbout(wxCommandEvent& event);
+    void OnRunWizard(wxCommandEvent& event);
+    void OnWizardCancel(wxWizardEvent& event);
+
+private:
+    // any class wishing to process wxWindows events must use this macro
+    DECLARE_EVENT_TABLE()
+};
 
 // ----------------------------------------------------------------------------
 // some pages for our wizard
@@ -63,11 +102,15 @@ IMPLEMENT_APP(MyApp)
 // overriding TransferDataFromWindow() - of course, in a real program, the
 // check wouldn't be so trivial and the data will be probably saved somewhere
 // too
+//
+// it also shows how to use a different bitmap for one of the pages
 class wxValidationPage : public wxWizardPageSimple
 {
 public:
     wxValidationPage(wxWizard *parent) : wxWizardPageSimple(parent)
     {
+        m_bitmap = BMP_WIZARD_2;
+
         m_checkbox = new wxCheckBox(this, -1, "&Check me");
     }
 
@@ -185,11 +228,25 @@ private:
 // implementation
 // ============================================================================
 
+// ----------------------------------------------------------------------------
+// event tables and such
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+    EVT_MENU(Wizard_Quit,  MyFrame::OnQuit)
+    EVT_MENU(Wizard_About, MyFrame::OnAbout)
+    EVT_MENU(Wizard_Run,   MyFrame::OnRunWizard)
+
+    EVT_WIZARD_CANCEL(-1, MyFrame::OnWizardCancel)
+END_EVENT_TABLE()
+
 BEGIN_EVENT_TABLE(wxRadioboxPage, wxWizardPageSimple)
     EVT_WIZARD_PAGE_CHANGING(-1, wxRadioboxPage::OnWizardPageChanging)
     EVT_WIZARD_CANCEL(-1, wxRadioboxPage::OnWizardCancel)
 END_EVENT_TABLE()
 
+IMPLEMENT_APP(MyApp)
+
 // ----------------------------------------------------------------------------
 // the application class
 // ----------------------------------------------------------------------------
@@ -197,15 +254,62 @@ END_EVENT_TABLE()
 // `Main program' equivalent: the program execution "starts" here
 bool MyApp::OnInit()
 {
-#ifdef __WXMSW__
-    wxBitmap bmpWizard("wiztest.bmp", wxBITMAP_TYPE_BMP);
-#else
-    wxBitmap bmpWizard(wizimage);
-#endif
+    MyFrame *frame = new MyFrame("wxWizard Sample");
+
+    // and show it (the frames, unlike simple controls, are not shown when
+    // created initially)
+    frame->Show(TRUE);
+
+    // we're done
+    return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// MyFrame
+// ----------------------------------------------------------------------------
+
+MyFrame::MyFrame(const wxString& title)
+       : wxFrame((wxFrame *)NULL, -1, title,
+                  wxDefaultPosition, wxSize(250, 150))  // small frame
+{
+    wxMenu *menuFile = new wxMenu;
+    menuFile->Append(Wizard_Run, "&Run wizard...\tCtrl-R");
+    menuFile->AppendSeparator();
+    menuFile->Append(Wizard_Quit, "E&xit\tAlt-X", "Quit this program");
+
+    wxMenu *helpMenu = new wxMenu;
+    helpMenu->Append(Wizard_About, "&About...\tF1", "Show about dialog");
+
+    // now append the freshly created menu to the menu bar...
+    wxMenuBar *menuBar = new wxMenuBar();
+    menuBar->Append(menuFile, "&File");
+    menuBar->Append(helpMenu, "&Help");
 
-    wxWizard *wizard = wxWizard::Create(NULL, -1,
+    // ... and attach this menu bar to the frame
+    SetMenuBar(menuBar);
+
+    // also create status bar which we use in OnWizardCancel
+    CreateStatusBar();
+}
+
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
+    // TRUE is to force the frame to close
+    Close(TRUE);
+}
+
+void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
+{
+    wxMessageBox("Demo of wxWizard class\n"
+                 "© 1999, 2000 Vadim Zeitlin",
+                 "About wxWizard sample", wxOK | wxICON_INFORMATION, this);
+}
+
+void MyFrame::OnRunWizard(wxCommandEvent& WXUNUSED(event))
+{
+    wxWizard *wizard = wxWizard::Create(this, -1,
                                         "Absolutely Useless Wizard",
-                                        bmpWizard);
+                                        BMP_WIZARD_1);
 
     // a wizard page may be either an object of predefined class
     wxWizardPageSimple *page1 = new wxWizardPageSimple(wizard);
@@ -237,8 +341,9 @@ bool MyApp::OnInit()
     }
 
     wizard->Destroy();
-
-    // we're done
-    return FALSE;
 }
 
+void MyFrame::OnWizardCancel(wxWizardEvent& WXUNUSED(event))
+{
+    wxLogStatus(this, "The wizard was cancelled.");
+}