Panda3D
Loading...
Searching...
No Matches
pythonGraphicsWindowProc.cxx
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file pythonGraphicsWindowProc.cxx
10 * @author Walt Destler
11 * @date 2010-05
12 */
13
16
17#ifdef HAVE_PYTHON
18
19TypeHandle PythonGraphicsWindowProc::_type_handle;
20
21/**
22 * Initializes this PythonGraphicsWindowProc to use the specified callback
23 * handler and name.
24 */
25PythonGraphicsWindowProc::
26PythonGraphicsWindowProc(PyObject* function, PyObject* name) :
27 PythonCallbackObject(function)
28{
29 _name = name;
30 Py_INCREF(_name);
31}
32
33/**
34 * Decrements references to the handler and name objects.
35 */
36PythonGraphicsWindowProc::
37~PythonGraphicsWindowProc(){
38 Py_DECREF(_name);
39}
40
41#ifdef WIN32
42
43/**
44 * A WIN32-specific method that is called when a Window proc event occurrs.
45 * Calls the python handler.
46 */
47LONG PythonGraphicsWindowProc::
48wnd_proc(GraphicsWindow* graphicsWindow, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam){
49 GraphicsWindowProcCallbackData cdata(graphicsWindow);
50 cdata.set_hwnd((uintptr_t)hwnd);
51 cdata.set_msg(msg);
52 cdata.set_wparam(wparam);
53 cdata.set_lparam(lparam);
54 do_callback(&cdata);
55
56 return 0;
57}
58
59#endif // WIN32
60
61/**
62 * Returns the python name object.
63 */
64PyObject* PythonGraphicsWindowProc::
65get_name(){
66 return _name;
67}
68
69#endif // HAVE_PYTHON
This specialization on CallbackData is passed when the callback is initiated from from an implementat...
A window, fullscreen or on a desktop, into which a graphics device sends its output for interactive d...
TypeHandle is the identifier used to differentiate C++ class types.
Definition typeHandle.h:81
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.