diff --git a/samples/univ/Makefile.in b/samples/univ/Makefile.in new file mode 100644 index 0000000000..216ad76b63 --- /dev/null +++ b/samples/univ/Makefile.in @@ -0,0 +1,10 @@ +top_srcdir = @top_srcdir@/.. +top_builddir = ../.. +program_dir = samples/univ + +PROGRAM=univ + +OBJECTS=$(PROGRAM).o + +include ../../src/makeprog.env + diff --git a/samples/univ/univ.cpp b/samples/univ/univ.cpp new file mode 100644 index 0000000000..0797fa850f --- /dev/null +++ b/samples/univ/univ.cpp @@ -0,0 +1,117 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: univ.cpp +// Purpose: wxUniversal demo +// Author: Vadim Zeitlin +// Id: $Id$ +// Copyright: (c) 2000 Vadim Zeitlin +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +#ifdef __GNUG__ + #pragma implementation "univ.cpp" + #pragma interface "univ.cpp" +#endif + +// ---------------------------------------------------------------------------- +// 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" wxWindows headers) +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/frame.h" + #include "wx/dcclient.h" +#endif + +// Define a new application type, each program should derive a class from wxApp +class MyUnivApp : public wxApp +{ +public: + // override base class virtuals + // ---------------------------- + + // this one is called on application startup and is a good place for the app + // initialization (doing it here and not in the ctor allows to have an error + // return: if OnInit() returns false, the application terminates) + virtual bool OnInit(); +}; + +// Define a new frame type: this is going to be our main frame +class MyUnivFrame : public wxFrame +{ +public: + // ctor(s) + MyUnivFrame(const wxString& title); + +protected: + // event handlers + void OnPaint(wxPaintEvent& event); + void OnLeftUp(wxMouseEvent& event); + +private: + // any class wishing to process wxWindows events must use this macro + DECLARE_EVENT_TABLE() +}; + +// ---------------------------------------------------------------------------- +// event tables +// ---------------------------------------------------------------------------- + +IMPLEMENT_APP(MyUnivApp) + +BEGIN_EVENT_TABLE(MyUnivFrame, wxFrame) + EVT_PAINT(MyUnivFrame::OnPaint) + + EVT_LEFT_UP(MyUnivFrame::OnLeftUp) +END_EVENT_TABLE() + +// ============================================================================ +// implementation +// ============================================================================ + +// ---------------------------------------------------------------------------- +// app class +// ---------------------------------------------------------------------------- + +bool MyUnivApp::OnInit() +{ + wxFrame *frame = new MyUnivFrame(_T("wxUniversal demo")); + frame->Show(); + + return TRUE; +} + +// ---------------------------------------------------------------------------- +// top level frame class +// ---------------------------------------------------------------------------- + +MyUnivFrame::MyUnivFrame(const wxString& title) + : wxFrame(NULL, -1, title, wxDefaultPosition, wxSize(300, 150)) +{ +} + +void MyUnivFrame::OnPaint(wxPaintEvent& event) +{ + wxPaintDC dc(this); + dc.DrawText(_T("Ctrl-click to exit."), 10, 10); +} + +void MyUnivFrame::OnLeftUp(wxMouseEvent& event) +{ + if ( event.ControlDown() ) + { + Close(); + } +}