home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
wxos2233.zip
/
wxOS2-2_3_3.zip
/
wxWindows-2.3.3
/
utils
/
emulator
/
src
/
emulator.h
< prev
next >
Wrap
C/C++ Source or Header
|
2002-07-14
|
5KB
|
169 lines
///////////////////////////////////////////////////////////////////////////////
// Name: emulator.h
// Purpose: wxX11-based PDA emulator classes
// Author: Julian Smart
// Modified by:
// Created: 2002-03-10
// RCS-ID: $Id: emulator.h,v 1.5 2002/07/13 12:14:07 GD Exp $
// Copyright: (c) wxWindows team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_EMULATOR_H_
#define _WX_EMULATOR_H_
#ifdef __GNUG__
#pragma interface "emulator.h"
#endif
#define wxEMULATOR_VERSION 0.1
// Information about the emulator decorations
class wxEmulatorInfo: public wxObject
{
public:
wxEmulatorInfo() { Init(); }
wxEmulatorInfo(const wxEmulatorInfo& info) { Init(); Copy(info); }
void operator= (const wxEmulatorInfo& info) { Copy(info); }
void Copy(const wxEmulatorInfo& info);
// Initialisation
void Init();
// Loads bitmaps
bool Load(const wxString& appDir);
// Emulator config filename
wxString m_emulatorFilename;
// Emulator title
wxString m_emulatorTitle;
// Emulator description
wxString m_emulatorDescription;
// The offset from the top-left of the main emulator
// bitmap and the virtual screen (where Xnest is
// positioned)
wxPoint m_emulatorScreenPosition;
// The emulated screen size, e.g. 320x240
wxSize m_emulatorScreenSize;
// The emulated device size. This is ignored
// if there is a background bitmap
wxSize m_emulatorDeviceSize;
// The bitmap used for drawing the main emulator
// decorations
wxBitmap m_emulatorBackgroundBitmap;
wxString m_emulatorBackgroundBitmapName;
// The intended background colour (for filling in
// areas of the window not covered by the bitmap)
wxColour m_emulatorBackgroundColour;
// TODO: an array of bitmaps and ids for custom buttons
};
// Emulator app class
class wxEmulatorContainer;
class wxEmulatorApp : public wxApp
{
public:
wxEmulatorApp();
virtual bool OnInit();
// Load the specified emulator
bool LoadEmulator(const wxString& appDir);
// Get app dir
wxString GetAppDir() const { return m_appDir; }
// Prepend the current app program directory to the name
wxString GetFullAppPath(const wxString& filename) const;
public:
wxEmulatorInfo m_emulatorInfo;
#ifdef __WXX11__
wxAdoptedWindow* m_xnestWindow;
#else
wxWindow* m_xnestWindow;
#endif
wxEmulatorContainer* m_containerWindow;
wxString m_appDir;
wxString m_displayNumber;
long m_xnestPID;
};
// The container for the Xnest window. The decorations
// will be drawn on this window.
class wxEmulatorContainer: public wxWindow
{
public:
wxEmulatorContainer(wxWindow* parent, wxWindowID id);
void DoResize();
void OnSize(wxSizeEvent& event);
void OnPaint(wxPaintEvent& event);
void OnEraseBackground(wxEraseEvent& event);
DECLARE_CLASS(wxEmulatorContainer)
DECLARE_EVENT_TABLE()
};
// Frame class
class wxEmulatorFrame : public wxFrame
{
public:
// ctor(s)
wxEmulatorFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
// event handlers
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
private:
// any class wishing to process wxWindows events must use this macro
DECLARE_EVENT_TABLE()
};
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// IDs for the controls and the menu commands
enum
{
// menu items
Emulator_Quit = 1,
// it is important for the id corresponding to the "About" command to have
// this standard value as otherwise it won't be handled properly under Mac
// (where it is special and put into the "Apple" menu)
Emulator_About = wxID_ABOUT
};
// Returns the image type, or -1, determined from the extension.
wxBitmapType wxDetermineImageType(const wxString& filename);
// Convert a colour to a 6-digit hex string
wxString wxColourToHexString(const wxColour& col);
// Convert 6-digit hex string to a colour
wxColour wxHexStringToColour(const wxString& hex);
// Find the absolute path where this application has been run from.
wxString wxFindAppPath(const wxString& argv0, const wxString& cwd, const wxString& appVariableName);
#endif
// _WX_EMULATOR_H_