]> git.saurik.com Git - wxWidgets.git/blob - samples/opengl/penguin/penguin.h
Implement NSMenuValidation protocol for the wxNSMenuItemTarget
[wxWidgets.git] / samples / opengl / penguin / penguin.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: penguin.h
3 // Purpose: wxGLCanvas demo program
4 // Author: Robert Roebling
5 // Modified by:
6 // Created: 04/01/98
7 // RCS-ID: $Id$
8 // Copyright: (c) Robert Roebling
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_PENGUIN_H_
13 #define _WX_PENGUIN_H_
14
15
16 #include "wx/defs.h"
17 #include "wx/app.h"
18 #include "wx/menu.h"
19 #include "wx/dcclient.h"
20
21 #include "wx/glcanvas.h"
22
23 extern "C" {
24 #include "lw.h"
25 #include "trackball.h"
26 }
27
28 /* information needed to display lightwave mesh */
29 typedef struct
30 {
31 // gint do_init; /* true if initgl not yet called */
32 int do_init;
33 lwObject *lwobject; /* lightwave object mesh */
34 float beginx,beginy; /* position of mouse */
35 float quat[4]; /* orientation of object */
36 float zoom; /* field of view in degrees */
37 } mesh_info;
38
39
40 /* Define a new application type */
41 class MyApp: public wxApp
42 {
43 public:
44 bool OnInit(void);
45 };
46
47 /* Define a new frame type */
48 class TestGLCanvas;
49
50 class MyFrame: public wxFrame
51 {
52 public:
53 MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size,
54 long style = wxDEFAULT_FRAME_STYLE);
55
56 void OnExit(wxCommandEvent& event);
57
58 void SetCanvas( TestGLCanvas *canvas ) { m_canvas = canvas; }
59 TestGLCanvas *GetCanvas() { return m_canvas; }
60
61 private:
62 TestGLCanvas* m_canvas;
63
64 DECLARE_EVENT_TABLE()
65 };
66
67 class TestGLCanvas: public wxGLCanvas
68 {
69 public:
70 TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
71 const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxT("TestGLCanvas"));
72 ~TestGLCanvas(void);
73
74 void OnPaint(wxPaintEvent& event);
75 void OnSize(wxSizeEvent& event);
76 void OnEraseBackground(wxEraseEvent& event);
77 void LoadLWO( const wxString &filename);
78 void OnMouse( wxMouseEvent& event );
79 void InitGL(void);
80
81 mesh_info info;
82 bool block;
83
84 private:
85 DECLARE_EVENT_TABLE()
86 };
87
88 #endif
89