blob: 4548fc3b99de0f9249570a6ecf2201fceaaa226e [file] [log] [blame]
The Android Open Source Project52d4c302009-03-03 19:29:09 -08001//
2// Copyright 2005 The Android Open Source Project
3//
4// Window with simulated phone.
5//
6#ifndef _SIM_DEVICE_WINDOW_H
7#define _SIM_DEVICE_WINDOW_H
8
9#include "UserEvent.h"
10#include "DeviceManager.h"
11
12/*
13 * This window displays the device output.
14 */
15class DeviceWindow : public wxWindow {
16public:
17 DeviceWindow(wxWindow* parent, DeviceManager* pDM);
18 virtual ~DeviceWindow(void);
19
20#if 0 // can't work -- can't create bitmaps in other threads
21 /* this gets tucked into a user event */
22 class FrameData {
23 public:
24 FrameData(void)
25 : mDisplayIndex(-1), mpBitmap(NULL)
26 {}
27 ~FrameData(void) {
28 delete mpBitmap;
29 }
30
31 void Create(int displayIndex, wxBitmap* pBitmap) {
32 mDisplayIndex = displayIndex;
33 mpBitmap = pBitmap;
34 }
35
36 int GetDisplayIndex(void) const { return mDisplayIndex; }
37 wxBitmap* GetBitmap(void) const { return mpBitmap; }
38
39 private:
40 int mDisplayIndex;
41 wxBitmap* mpBitmap;
42 };
43#endif
44
45 void DeviceManagerClosing(void) { mpDeviceManager = NULL; }
46
47private:
48 void OnKeyDown(wxKeyEvent& event);
49 void OnKeyUp(wxKeyEvent& event);
50 void OnMouseLeftDown(wxMouseEvent& event);
51 void OnMouseLeftUp(wxMouseEvent& event);
52 void OnMouseRightDown(wxMouseEvent& event);
53 void OnMouseRightUp(wxMouseEvent& event);
54 void OnMouseMotion(wxMouseEvent& event);
55 void OnSize(wxSizeEvent& WXUNUSED(event));
56 void OnErase(wxEraseEvent& event);
57 void OnPaint(wxPaintEvent& WXUNUSED(event));
58 void OnUserEvent(UserEvent& event);
59
60 void ClampMouse(wxMouseEvent* pEvent);
61
62 DeviceManager* mpDeviceManager;
63 wxBitmap mBitmap;
64 wxBitmap mOnionSkinBitmap;
65 bool mHasOnionSkinBitmap;
66
67 DECLARE_EVENT_TABLE()
68};
69
70#endif // _SIM_DEVICE_WINDOW_H