]>
git.saurik.com Git - wxWidgets.git/blob - samples/html/about/about.cpp
99f32b263e6e52f181e17d1fac07fdddff301f03
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     wxHtml testing example 
   4 ///////////////////////////////////////////////////////////////////////////// 
   7     #pragma implementation "test.cpp" 
   8     #pragma interface "test.cpp" 
  11 // For compilers that support precompilation, includes "wx/wx.h". 
  12 #include <wx/wxprec.h> 
  18 // for all others, include the necessary headers (this file is usually all you 
  19 // need because it includes almost all "standard" wxWindows headers 
  25 #include <wx/imagpng.h> 
  26 #include <wx/wxhtml.h> 
  28 // ---------------------------------------------------------------------------- 
  30 // ---------------------------------------------------------------------------- 
  33 // Define a new application type, each program should derive a class from wxApp 
  34    class MyApp 
: public wxApp
 
  37     // override base class virtuals 
  38     // ---------------------------- 
  40     // this one is called on application startup and is a good place for the app 
  41     // initialization (doing it here and not in the ctor allows to have an error 
  42     // return: if OnInit() returns false, the application terminates) 
  43       virtual bool OnInit(); 
  46 // Define a new frame type: this is going to be our main frame 
  47    class MyFrame 
: public wxFrame
 
  51       MyFrame(const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
); 
  53     // event handlers (these functions should _not_ be virtual) 
  54       void OnQuit(wxCommandEvent
& event
); 
  55       void OnAbout(wxCommandEvent
& event
); 
  58     // any class wishing to process wxWindows events must use this macro 
  62 // ---------------------------------------------------------------------------- 
  64 // ---------------------------------------------------------------------------- 
  66 // IDs for the controls and the menu commands 
  75     // controls start here (the numbers are, of course, arbitrary) 
  79 // ---------------------------------------------------------------------------- 
  80 // event tables and other macros for wxWindows 
  81 // ---------------------------------------------------------------------------- 
  83 // the event tables connect the wxWindows events with the functions (event 
  84 // handlers) which process them. It can be also done at run-time, but for the 
  85 // simple menu events like this the static method is much simpler. 
  86    BEGIN_EVENT_TABLE(MyFrame
, wxFrame
) 
  87    EVT_MENU(Minimal_Quit
,  MyFrame::OnQuit
) 
  88    EVT_MENU(Minimal_About
, MyFrame::OnAbout
) 
  91    // Create a new application object: this macro will allow wxWindows to create 
  92    // the application object during program execution (it's better than using a 
  93    // static object for many reasons) and also declares the accessor function 
  94    // wxGetApp() which will return the reference of the right type (i.e. MyApp and 
  98    // ============================================================================ 
 100    // ============================================================================ 
 102    // ---------------------------------------------------------------------------- 
 103    // the application class 
 104    // ---------------------------------------------------------------------------- 
 105    // `Main program' equivalent: the program execution "starts" here 
 108     wxImage::AddHandler(new wxPNGHandler
); 
 109     // Create the main application window 
 110       MyFrame 
*frame 
= new MyFrame("wxHtmlWindow testing application", 
 111          wxPoint(50, 50), wxSize(150, 50)); 
 113     // Show it and tell the application that it's our main window 
 114     // @@@ what does it do exactly, in fact? is it necessary here? 
 119     // success: wxApp::OnRun() will be called which will enter the main message 
 120     // loop and the application will run. If we returned FALSE here, the 
 121     // application would exit immediately. 
 125 // ---------------------------------------------------------------------------- 
 127 // ---------------------------------------------------------------------------- 
 131    MyFrame::MyFrame(const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
) 
 132    : wxFrame((wxFrame 
*)NULL
, -1, title
, pos
, size
) 
 135       wxMenu 
*menuFile 
= new wxMenu
; 
 137       menuFile
->Append(Minimal_About
, "&About"); 
 138       menuFile
->Append(Minimal_Quit
, "E&xit"); 
 140     // now append the freshly created menu to the menu bar... 
 141       wxMenuBar 
*menuBar 
= new wxMenuBar
; 
 142       menuBar
->Append(menuFile
, "&File"); 
 144     // ... and attach this menu bar to the frame 
 151    void MyFrame::OnQuit(wxCommandEvent
& WXUNUSED(event
)) 
 153     // TRUE is to force the frame to close 
 157    void MyFrame::OnAbout(wxCommandEvent
& WXUNUSED(event
)) 
 161         wxDialog 
dlg(this, -1, "About", wxDefaultPosition
, wxSize(400, 250), wxDIALOG_MODAL 
| wxDEFAULT_DIALOG_STYLE
); 
 163         wxDialog 
dlg(this, -1, "About", wxDefaultPosition
, wxSize(400, 230), wxDIALOG_MODAL 
| wxDEFAULT_DIALOG_STYLE
); 
 166         html 
= new wxHtmlWindow(&dlg
, -1, wxPoint(10, 10), wxSize(380, 160), wxHW_SCROLLBAR_NEVER
); 
 167         html 
-> SetBorders(0); 
 168         html 
-> LoadPage("data/about.htm"); 
 169         wxButton 
*bu1 
= new wxButton(&dlg
, wxID_OK
, "OK", wxPoint(250, 185), wxSize(100, 30));