716cd4107b
applet code (with changes copyright headers) as well as updates to the wxImage and dib.cpp modules to use virtual file systems so that we can load these objects from ZIP files correctly. The dib.cpp module was also extensively cleaned up (although the DIB writing code does not presently use file streams as we couldn't figure out if it was possible to write to a ZIP file stream). The code has been tested and functions correctly for both regular files and ZIP files. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
157 lines
5.1 KiB
C++
157 lines
5.1 KiB
C++
/****************************************************************************
|
|
*
|
|
* wxWindows HTML Applet Package
|
|
*
|
|
* Copyright (C) 1991-2001 SciTech Software, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* The contents of this file are subject to the wxWindows License
|
|
* Version 3.0 (the "License"); you may not use this file except in
|
|
* compliance with the License. You may obtain a copy of the License at
|
|
* http://www.wxwindows.org/licence3.txt
|
|
*
|
|
* Software distributed under the License is distributed on an
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* Language: ANSI C++
|
|
* Environment: Any
|
|
*
|
|
* Description: Main wxApplet sample program
|
|
*
|
|
****************************************************************************/
|
|
|
|
// For compilers that support precompilation, includes "wx/wx.h".
|
|
#include <wx/wxprec.h>
|
|
#ifdef __BORLANDC__
|
|
#pragma hdrstop
|
|
#endif
|
|
|
|
#include "wx/wx.h"
|
|
#include "wx/applet/window.h"
|
|
#include "applet.h"
|
|
|
|
/*---------------------------- Global variables ---------------------------*/
|
|
|
|
// Define the event tables for handling application frame events
|
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|
EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
|
|
EVT_MENU(Minimal_About, MyFrame::OnAbout)
|
|
EVT_MENU(Minimal_Back, MyFrame::OnBack)
|
|
EVT_MENU(Minimal_Forward, MyFrame::OnForward)
|
|
END_EVENT_TABLE()
|
|
|
|
// Create a new application object: this macro will allow wxWindows to create
|
|
// the application object during program execution (it's better than using a
|
|
// static object for many reasons) and also declares the accessor function
|
|
// wxGetApp() which will return the reference of the right type (i.e. MyApp and
|
|
// not wxApp)
|
|
IMPLEMENT_APP(MyApp)
|
|
|
|
/*------------------------- Implementation --------------------------------*/
|
|
|
|
/****************************************************************************
|
|
PARAMETERS:
|
|
title - Title for the frame window
|
|
pos - Position to place to frame window
|
|
size - Size of the frame window
|
|
|
|
REMARKS:
|
|
Application frame window constructor
|
|
****************************************************************************/
|
|
MyFrame::MyFrame(
|
|
const wxString& title,
|
|
const wxPoint& pos,
|
|
const wxSize& size)
|
|
: wxFrame(NULL, -1, title, pos, size)
|
|
{
|
|
// Create a menu bar
|
|
wxMenu *menuFile = new wxMenu;
|
|
wxMenu *menuNav = new wxMenu;
|
|
menuFile->Append(Minimal_Quit, "E&xit");
|
|
menuNav->Append(Minimal_Back, "Go &back");
|
|
menuNav->Append(Minimal_Forward, "Go &forward");
|
|
|
|
// Now append the freshly created menu to the menu bar...
|
|
wxMenuBar *menuBar = new wxMenuBar;
|
|
menuBar->Append(menuFile, "&File");
|
|
menuBar->Append(menuNav, "&Navigate");
|
|
|
|
// ... and attach this menu bar to the frame
|
|
SetMenuBar(menuBar);
|
|
CreateStatusBar(2);
|
|
|
|
// Create the HTML window
|
|
html = new wxHtmlAppletWindow(this);
|
|
html->SetRelatedFrame(this, "wxApplet Demo: '%s'");
|
|
html->SetRelatedStatusBar(1);
|
|
html->LoadPage("index.html");
|
|
}
|
|
|
|
/****************************************************************************
|
|
REMARKS:
|
|
Event handler for the 'Exit' menu item
|
|
****************************************************************************/
|
|
void MyFrame::OnQuit(
|
|
wxCommandEvent&)
|
|
{
|
|
// TRUE is to force the frame to close
|
|
Close(TRUE);
|
|
}
|
|
|
|
/****************************************************************************
|
|
REMARKS:
|
|
Event handler for the 'About' menu item
|
|
****************************************************************************/
|
|
void MyFrame::OnAbout(
|
|
wxCommandEvent&)
|
|
{
|
|
// TODO: Bring up and about html page!
|
|
}
|
|
|
|
/****************************************************************************
|
|
REMARKS:
|
|
Event handler for the 'Go back' menu item
|
|
****************************************************************************/
|
|
void MyFrame::OnBack(
|
|
wxCommandEvent&)
|
|
{
|
|
if (!html -> HistoryBack())
|
|
wxMessageBox("You reached prehistory era!");
|
|
}
|
|
|
|
/****************************************************************************
|
|
REMARKS:
|
|
Event handler for the 'Go forward' menu item
|
|
****************************************************************************/
|
|
void MyFrame::OnForward(
|
|
wxCommandEvent&)
|
|
{
|
|
if (!html -> HistoryForward())
|
|
wxMessageBox("No more items in history!");
|
|
}
|
|
|
|
/****************************************************************************
|
|
REMARKS:
|
|
`Main program' equivalent: the program execution "starts" here
|
|
****************************************************************************/
|
|
bool MyApp::OnInit()
|
|
{
|
|
// Create the main application window
|
|
MyFrame *frame = new MyFrame("wxApplet testing application",
|
|
wxPoint(50, 50), wxSize(640, 480));
|
|
|
|
// Show it and tell the application that it's our main window
|
|
frame->Show(TRUE);
|
|
SetTopWindow(frame);
|
|
|
|
// Success: wxApp::OnRun() will be called to run the application
|
|
return TRUE;
|
|
}
|
|
|