Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Ben Boeckel
ParaView
Commits
f534676d
Commit
f534676d
authored
Jul 07, 2004
by
Sebastien Barre
Browse files
enh: add timer support for the generic interactor (joystick interaction would not work)
parent
0f34ebeb
Changes
2
Hide whitespace changes
Inline
Side-by-side
GUI/Widgets/vtkKWRenderWidget.cxx
View file @
f534676d
...
...
@@ -36,11 +36,16 @@
#endif
vtkStandardNewMacro
(
vtkKWRenderWidget
);
vtkCxxRevisionMacro
(
vtkKWRenderWidget
,
"1.7
4
"
);
vtkCxxRevisionMacro
(
vtkKWRenderWidget
,
"1.7
5
"
);
//----------------------------------------------------------------------------
vtkKWRenderWidget
::
vtkKWRenderWidget
()
{
// The main callback
this
->
Observer
=
vtkKWRenderWidgetCallbackCommand
::
New
();
this
->
EventIdentifier
=
-
1
;
// The vtkTkRenderWidget
this
->
ParentWindow
=
NULL
;
...
...
@@ -69,6 +74,9 @@ vtkKWRenderWidget::vtkKWRenderWidget()
this
->
Interactor
=
vtkKWGenericRenderWindowInteractor
::
New
();
this
->
Interactor
->
SetRenderWidget
(
this
);
this
->
Interactor
->
SetRenderWindow
(
this
->
RenderWindow
);
this
->
Interactor
->
AddObserver
(
vtkCommand
::
CreateTimerEvent
,
this
->
Observer
);
this
->
Interactor
->
AddObserver
(
vtkCommand
::
DestroyTimerEvent
,
this
->
Observer
);
this
->
InteractorTimerToken
=
NULL
;
// Corner annotation
...
...
@@ -105,11 +113,6 @@ vtkKWRenderWidget::vtkKWRenderWidget()
}
this
->
GetOverlayRenderer
()
->
SetActiveCamera
(
cam
);
// The main callback
this
->
Observer
=
vtkKWRenderWidgetCallbackCommand
::
New
();
this
->
EventIdentifier
=
-
1
;
// Current state (render mode, in expose, printing, etc)
this
->
RenderMode
=
vtkKWRenderWidget
::
STILL_RENDER
;
...
...
@@ -157,6 +160,12 @@ vtkKWRenderWidget::~vtkKWRenderWidget()
this
->
Interactor
=
NULL
;
}
if
(
this
->
InteractorTimerToken
)
{
Tcl_DeleteTimerHandler
(
this
->
InteractorTimerToken
);
this
->
InteractorTimerToken
=
NULL
;
}
if
(
this
->
VTKWidget
)
{
this
->
VTKWidget
->
Delete
();
...
...
@@ -1173,12 +1182,46 @@ void vtkKWRenderWidget::RemoveObservers()
}
//----------------------------------------------------------------------------
void
vtkKWRenderWidget
::
ProcessEvent
(
vtkObject
*
vtkNotUsed
(
caller
),
void
vtkKWRenderWidget_InteractorTimer
(
ClientData
arg
)
{
vtkRenderWindowInteractor
*
me
=
(
vtkRenderWindowInteractor
*
)
arg
;
me
->
InvokeEvent
(
vtkCommand
::
TimerEvent
);
}
//----------------------------------------------------------------------------
void
vtkKWRenderWidget
::
ProcessEvent
(
vtkObject
*
caller
,
unsigned
long
event
,
void
*
calldata
)
{
// Handle the timer event for the generic interactor
if
(
caller
==
this
->
Interactor
)
{
switch
(
event
)
{
case
vtkCommand
::
CreateTimerEvent
:
case
vtkCommand
::
DestroyTimerEvent
:
if
(
this
->
InteractorTimerToken
)
{
Tcl_DeleteTimerHandler
(
this
->
InteractorTimerToken
);
this
->
InteractorTimerToken
=
NULL
;
}
if
(
event
==
vtkCommand
::
CreateTimerEvent
)
{
this
->
InteractorTimerToken
=
Tcl_CreateTimerHandler
(
10
,
vtkKWRenderWidget_InteractorTimer
,
(
ClientData
)
caller
);
}
break
;
}
return
;
}
// Handle event for this class
const
char
*
cptr
=
0
;
switch
(
event
)
{
case
vtkCommand
::
CursorChangedEvent
:
...
...
@@ -1234,6 +1277,7 @@ void vtkKWRenderWidget::ProcessEvent(vtkObject *vtkNotUsed(caller),
this
->
Script
(
"%s config -cursor %s"
,
this
->
GetParentWindow
()
->
GetWidgetName
(),
cptr
);
}
break
;
}
}
...
...
GUI/Widgets/vtkKWRenderWidget.h
View file @
f534676d
...
...
@@ -267,6 +267,7 @@ protected:
int
InExpose
;
int
RenderState
;
int
Printing
;
Tcl_TimerToken
InteractorTimerToken
;
char
*
DistanceUnits
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment