forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathvtkJavaPanel.cxx
71 lines (52 loc) · 1.9 KB
/
vtkJavaPanel.cxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*=========================================================================
Program: Visualization Toolkit
Module: vtkJavaPanel.cxx
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "vtkSystemIncludes.h"
#include <X11/Intrinsic.h>
#include "vtkJavaUtil.h"
// #define VTKJAVADEBUG
// super hack 9000
// include the header file as a C code fragment
// include the JAVA C stubs file as a C code fragment
extern "C" {
#include "java/vtk_vtkPanel.h"
#include "java/vtk_vtkPanel.c"
typedef struct Classsun_awt_motif_MCanvasPeer {
struct Hjava_awt_Component *target;
long pData;
} Classsun_awt_motif_MCanvasPeer;
HandleTo(sun_awt_motif_MCanvasPeer);
struct ComponentData {
Widget widget;
int repaintPending;
int x1, y1, x2, y2;
};
struct CanvasData {
struct ComponentData comp;
Widget shell;
int flags;
};
#define PEER_PDATA(T, T2, x) ((struct T *)(unhand((struct T2 *)unhand(x)->peer)->pData))
}
#include "vtkRenderWindow.h"
void vtk_vtkPanel_setWindow(struct Hvtk_vtkPanel *me,
struct Hvtk_vtkRenderWindow *id0)
{
void *temp;
vtkRenderWindow *op;
op = (vtkRenderWindow *)vtkJavaGetPointerFromObject(id0,"vtkRenderWindow");
struct CanvasData *wdata =
PEER_PDATA(CanvasData, Hsun_awt_motif_MCanvasPeer, me);
Widget wig = wdata->comp.widget;
// cerr << XtDisplay(wig) << " Display\n";
// cerr << XtWindowOfObject(wig) << " Window\n";
op->SetDisplayId((void *)XtDisplay(wig));
op->SetWindowId((void *)XtWindowOfObject(wig));
}