set_content_update_callbackT_set_content_update_callbackSetContentUpdateCallbackSetContentUpdateCallback (Operator)

Name

set_content_update_callbackT_set_content_update_callbackSetContentUpdateCallbackSetContentUpdateCallback — Sets the callback for content updates in buffer window.

Signature

set_content_update_callback( : : WindowHandle, CallbackFunction, CallbackContext : )

Herror T_set_content_update_callback(const Htuple WindowHandle, const Htuple CallbackFunction, const Htuple CallbackContext)

void SetContentUpdateCallback(const HTuple& WindowHandle, const HTuple& CallbackFunction, const HTuple& CallbackContext)

void HWindow::SetContentUpdateCallback(void* CallbackFunction, const HTuple& CallbackContext) const

void HWindow::SetContentUpdateCallback(void* CallbackFunction, void* CallbackContext) const

static void HOperatorSet.SetContentUpdateCallback(HTuple windowHandle, HTuple callbackFunction, HTuple callbackContext)

void HWindow.SetContentUpdateCallback(IntPtr callbackFunction, HTuple callbackContext)

void HWindow.SetContentUpdateCallback(IntPtr callbackFunction, IntPtr callbackContext)

Description

set_content_update_callbackset_content_update_callbackSetContentUpdateCallbackSetContentUpdateCallbackSetContentUpdateCallback sets a callback CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction, which is called whenever the contents of the buffer window WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle change. The parameter CallbackContextCallbackContextCallbackContextCallbackContextcallbackContext is always passed to the callback.

The type of CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction 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_eventsend_mouse_down_eventSendMouseDownEventSendMouseDownEventSendMouseDownEvent, send_mouse_up_eventsend_mouse_up_eventSendMouseUpEventSendMouseUpEventSendMouseUpEvent, and send_mouse_double_click_eventsend_mouse_double_click_eventSendMouseDoubleClickEventSendMouseDoubleClickEventSendMouseDoubleClickEvent, set_content_update_callbackset_content_update_callbackSetContentUpdateCallbackSetContentUpdateCallbackSetContentUpdateCallback 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 CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction. The control then can obtain the contents of the buffer with dump_window_imagedump_window_imageDumpWindowImageDumpWindowImageDumpWindowImage and display them.

Attention

set_content_update_callbackset_content_update_callbackSetContentUpdateCallbackSetContentUpdateCallbackSetContentUpdateCallback depends on the library libcanvas, which might not be available on embedded systems.

Execution Information

Parameters

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (input_control)  window HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Window handle.

CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction (input_control)  pointer HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Callback for content updates.

CallbackContextCallbackContextCallbackContextCallbackContextcallbackContext (input_control)  pointer HTupleHTupleHtuple (integer / handle) (IntPtr / IntPtr) (Hlong / HHandle) (Hlong / handle)

Parameter to CallbackFunction.

Result

If the window exists and is a buffer window, set_content_update_callbackset_content_update_callbackSetContentUpdateCallbackSetContentUpdateCallbackSetContentUpdateCallback returns 2 (H_MSG_TRUE).

See also

flush_bufferflush_bufferFlushBufferFlushBufferFlushBuffer

Module

Foundation