| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        uiaction.cpp
 
- // Purpose:     wxUIActionSimulator sample
 
- // Author:      Kevin Ollivier
 
- // Modified by:
 
- // Created:     04/01/98
 
- // Copyright:   (c) Kevin Ollivier, Steven Lamerton
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- // ============================================================================
 
- // declarations
 
- // ============================================================================
 
- // ----------------------------------------------------------------------------
 
- // headers
 
- // ----------------------------------------------------------------------------
 
- // 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" wxWidgets headers)
 
- #ifndef WX_PRECOMP
 
-     #include "wx/wx.h"
 
- #endif
 
- #if wxUSE_UIACTIONSIMULATOR
 
-     #include "wx/uiaction.h"
 
- #endif
 
- // ----------------------------------------------------------------------------
 
- // resources
 
- // ----------------------------------------------------------------------------
 
- // the application icon (under Windows and OS/2 it is in resources and even
 
- // though we could still include the XPM here it would be unused)
 
- #ifndef wxHAS_IMAGES_IN_RESOURCES
 
-     #include "../sample.xpm"
 
- #endif
 
- // ----------------------------------------------------------------------------
 
- // constants
 
- // ----------------------------------------------------------------------------
 
- // IDs for the controls and the menu commands
 
- enum
 
- {
 
-     // menu items
 
-     RunSimulation = 1,
 
-     SimulateText
 
- };
 
- // ----------------------------------------------------------------------------
 
- // private classes
 
- // ----------------------------------------------------------------------------
 
- // Define a new application type, each program should derive a class from wxApp
 
- class MyApp : public wxApp
 
- {
 
- public:
 
-     virtual bool OnInit();
 
- };
 
- #if wxUSE_UIACTIONSIMULATOR
 
- // Define a new frame type: this is going to be our main frame
 
- class MyFrame : public wxFrame
 
- {
 
- public:
 
-     // ctor(s)
 
-     MyFrame(const wxString& title);
 
-     void OnButtonPressed(wxCommandEvent& event);
 
-     void OnRunSimulation(wxCommandEvent& event);
 
-     void OnSimulateText(wxCommandEvent& event);
 
-     void OnExit(wxCommandEvent& WXUNUSED(event)) { Close(); }
 
- private:
 
-     wxButton* m_button;
 
-     wxTextCtrl* m_text;
 
-     wxDECLARE_EVENT_TABLE();
 
- };
 
- wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
 
-     EVT_BUTTON(wxID_ANY, MyFrame::OnButtonPressed)
 
-     EVT_MENU(RunSimulation, MyFrame::OnRunSimulation)
 
-     EVT_MENU(SimulateText, MyFrame::OnSimulateText)
 
-     EVT_MENU(wxID_EXIT, MyFrame::OnExit)
 
- wxEND_EVENT_TABLE()
 
- #endif // wxUSE_UIACTIONSIMULATOR
 
- // ============================================================================
 
- // implementation
 
- // ============================================================================
 
- // ----------------------------------------------------------------------------
 
- // the application class
 
- // ----------------------------------------------------------------------------
 
- IMPLEMENT_APP(MyApp)
 
- bool MyApp::OnInit()
 
- {
 
-     if ( !wxApp::OnInit() )
 
-         return false;
 
- #if wxUSE_UIACTIONSIMULATOR
 
-     MyFrame *frame = new MyFrame("wxUIActionSimulator sample application");
 
-     frame->Show(true);
 
-     return true;
 
- #else // !wxUSE_UIACTIONSIMULATOR
 
-     wxLogError("wxUSE_UIACTIONSIMULATOR must be 1 for this sample");
 
-     return false;
 
- #endif // wxUSE_UIACTIONSIMULATOR/!wxUSE_UIACTIONSIMULATOR
 
- }
 
- // ----------------------------------------------------------------------------
 
- // main frame
 
- // ----------------------------------------------------------------------------
 
- #if wxUSE_UIACTIONSIMULATOR
 
- // frame constructor
 
- MyFrame::MyFrame(const wxString& title)
 
-        : wxFrame(NULL, wxID_ANY, title)
 
- {
 
-     SetIcon(wxICON(sample));
 
- #if wxUSE_MENUS
 
-     // create a menu bar
 
-     wxMenu *fileMenu = new wxMenu;
 
-     fileMenu->Append(wxID_NEW, "&New File...", "Open a new file");
 
-     fileMenu->Append(RunSimulation, "&Run Simulation",
 
-                      "Run predefined UI action simulation");
 
-     fileMenu->Append(SimulateText, "Simulate &text input...",
 
-                      "Enter text to simulate");
 
-     fileMenu->AppendSeparator();
 
-     fileMenu->Append(wxID_EXIT, "E&xit\tAlt-X", "Quit this program");
 
-     wxMenuBar *menuBar = new wxMenuBar();
 
-     menuBar->Append(fileMenu, "&File");
 
-     SetMenuBar(menuBar);
 
- #endif // wxUSE_MENUS
 
-     wxPanel *panel = new wxPanel(this);
 
-     wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
 
-     panel->SetSizer(sizer);
 
-     m_button = new wxButton(panel, wxID_ANY, "&Button");
 
-     sizer->Add(m_button, wxSizerFlags().Centre().Border());
 
-     m_text = new wxTextCtrl(panel, wxID_ANY, "",
 
-                             wxDefaultPosition, wxDefaultSize,
 
-                             wxTE_MULTILINE);
 
-     sizer->Add(m_text, wxSizerFlags(1).Expand().Border());
 
- }
 
- // event handlers
 
- void MyFrame::OnRunSimulation(wxCommandEvent& WXUNUSED(event))
 
- {
 
-     wxUIActionSimulator sim;
 
-     // Add some extra distance to take account of window decorations
 
-     sim.MouseMove(m_button->GetScreenPosition() + wxPoint(10, 10));
 
-     sim.MouseClick(wxMOUSE_BTN_LEFT);
 
-     // Process the resulting button event
 
-     wxYield();
 
-     m_text->SetFocus();
 
-     sim.Char('A');
 
-     sim.Char('A', wxMOD_SHIFT);
 
-     sim.Char(WXK_RETURN);
 
-     sim.Char('Z');
 
-     sim.Char('Z', wxMOD_SHIFT);
 
-     sim.Char(WXK_RETURN);
 
-     sim.Text("aAbBcC");
 
-     sim.Char(WXK_RETURN);
 
-     sim.Text("1 234.57e-8");
 
-     sim.Char(WXK_RETURN);
 
- }
 
- void MyFrame::OnSimulateText(wxCommandEvent& WXUNUSED(event))
 
- {
 
-     static wxString s_text;
 
-     const wxString text = wxGetTextFromUser
 
-                           (
 
-                             "Enter text to simulate: ",
 
-                             "wxUIActionSimulator wxWidgets Sample",
 
-                             s_text,
 
-                             this
 
-                           );
 
-     if ( text.empty() )
 
-         return;
 
-     s_text = text;
 
-     wxUIActionSimulator sim;
 
-     m_text->SetFocus();
 
-     sim.Text(s_text.c_str());
 
- }
 
- void MyFrame::OnButtonPressed(wxCommandEvent& WXUNUSED(event))
 
- {
 
-     m_text->AppendText("Button pressed.\n");
 
- }
 
- #endif // wxUSE_UIACTIONSIMULATOR
 
 
  |