set_content_update_callback
— Sets the callback for content updates in buffer window.
set_content_update_callback( : : WindowHandle, CallbackFunction, CallbackContext : )
set_content_update_callback
sets a callback CallbackFunction
,
which is called whenever the contents of the buffer window
WindowHandle
change.
The parameter CallbackContext
is always passed to the
callback.
The type of CallbackFunction
is: Herror callback(void *context)
On Windows systems, the __stdcall calling convention is used: Herror __stdcall callback(void *context)
The callback function must not call a HALCON operator. Doing so is undefined behavior. It is advised to perform only computationally inexpensive tasks in the callback, e.g., setting a flag or triggering an asynchronous operation.
In combination with the operators send_mouse_down_event
,
send_mouse_up_event
, and send_mouse_double_click_event
,
set_content_update_callback
can be used to create a buffer based
control for a GUI Toolkit (such as Qt), where the control passes mouse
events to the buffer, while the buffer notifies the control on changes by
calling the function CallbackFunction
.
The control then can obtain the contents of the buffer with
dump_window_image
and display them.
set_content_update_callback
depends on the library libcanvas, which
might not be available on embedded systems.
WindowHandle
(input_control) window →
(handle)
Window handle.
CallbackFunction
(input_control) pointer →
(integer)
Callback for content updates.
CallbackContext
(input_control) pointer →
(integer / handle)
Parameter to CallbackFunction.
If the window exists and is a buffer window,
set_content_update_callback
returns 2 (H_MSG_TRUE).
Foundation