| 
									
										
										
										
											2015-06-11 22:57:41 +03:00
										 |  |  | #ifndef HAIKU_DIRECT_WINDOW_H
 | 
					
						
							|  |  |  | #define HAIKU_DIRECT_WINDOW_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <kernel/image.h> // needed for image_id
 | 
					
						
							|  |  |  | #include <DirectWindow.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-16 21:52:24 +03:00
										 |  |  | #include "os/input.h"
 | 
					
						
							| 
									
										
										
										
											2015-06-11 22:57:41 +03:00
										 |  |  | #include "haiku_gl_view.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define REDRAW_MSG 'rdrw'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HaikuDirectWindow : public BDirectWindow  | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2015-06-16 21:52:24 +03:00
										 |  |  | private: | 
					
						
							|  |  |  | 	unsigned int event_id; | 
					
						
							|  |  |  | 	Point2i last_mouse_pos; | 
					
						
							|  |  |  | 	bool last_mouse_pos_valid; | 
					
						
							|  |  |  | 	uint32 last_buttons_state; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	InputDefault* input; | 
					
						
							|  |  |  | 	HaikuGLView* view; | 
					
						
							|  |  |  | 	BMessageRunner* update_runner; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void DispatchMouseButton(BMessage* message); | 
					
						
							|  |  |  | 	void DispatchMouseMoved(BMessage* message); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-11 22:57:41 +03:00
										 |  |  | public: | 
					
						
							|  |  |  | 	HaikuDirectWindow(BRect p_frame); | 
					
						
							|  |  |  | 	~HaikuDirectWindow(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void SetHaikuGLView(HaikuGLView* p_view); | 
					
						
							| 
									
										
										
										
											2015-06-16 21:52:24 +03:00
										 |  |  | 	void StartMessageRunner(); | 
					
						
							|  |  |  | 	void StopMessageRunner(); | 
					
						
							|  |  |  | 	void SetInput(InputDefault* p_input); | 
					
						
							| 
									
										
										
										
											2015-06-11 22:57:41 +03:00
										 |  |  | 	virtual bool QuitRequested(); | 
					
						
							| 
									
										
										
										
											2015-06-16 21:52:24 +03:00
										 |  |  | 	virtual void DirectConnected(direct_buffer_info* info); | 
					
						
							|  |  |  | 	virtual void MessageReceived(BMessage* message); | 
					
						
							|  |  |  | 	virtual void DispatchMessage(BMessage* message, BHandler* handler); | 
					
						
							| 
									
										
										
										
											2015-06-11 22:57:41 +03:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |