PtAddCallback()

Add a single callback entry to a callback list

Synopsis:

void PtAddCallback( PtWidget_t *widget,
                    unsigned long callback_type,
                    PtCallbackF_t *callback,
                    void *data );

Arguments:

widget
A pointer to the widget that you want to add the callback to.
callback_type
The name of the callback list you want to add the function to. For example, Pt_CB_ACTIVATE.
callback
A pointer to the function you want to add. The function takes this form:
int (*callback)(PtWidget_t *, void *,
                           PtCallbackInfo_t *)
  
data
A pointer to data that you want to pass as the second argument to the function.

Library:

ph

Description:

This function adds a callback to the callback list indicated by callback_type.


Note: Some types of callback resources have special routines that you should use instead of this one:
Pt_CB_FILTER
PtAddFilterCallback() or PtAddFilterCallbacks()
Pt_CB_HOTKEY
PtAddHotkeyHandler()
Pt_CB_RAW
PtAddEventHandler() or PtAddEventHandlers()

Examples:

#include <stdlib.h>
#include <Pt.h>

int activated( PtWidget_t *widget, void *data, 
           PtCallbackInfo_t *info)
{
    //suppress compiler warnings concerning unused arguments.
    widget = widget, data = data, info = info;
    
    PtExit( 0 );
    return Pt_CONTINUE;
}

int main()
{
    PtArg_t args;
    PtWidget_t *window, *button;

    if (PtInit(NULL) == -1)
       exit(EXIT_FAILURE);

    if ((window = PtCreateWidget(PtWindow, Pt_NO_PARENT,
                                 0, NULL)) == NULL)
      PtExit(EXIT_FAILURE);

    PtSetArg( &args, Pt_ARG_TEXT_STRING, "Press Me To Quit", 0 );
    button = PtCreateWidget( PtButton, Pt_DEFAULT_PARENT,
                             1, &args );

    //add an activate callback to the button.
    PtAddCallback( button, Pt_CB_ACTIVATE, activated, NULL ); 
        
    PtRealizeWidget( window );
    PtMainLoop();
    //unnecessary
    PtRemoveCallback( button, Pt_CB_ACTIVATE, activated, NULL );
    return EXIT_SUCCESS;
}

Classification:

Photon

Safety:
Interrupt handler No
Signal handler No
Thread No

See also:

PtAddCallbacks(), PtAddEventHandler(), PtAddEventHandlers(), PtAddFilterCallback(), PtAddFilterCallbacks(), PtAddHotkeyHandler(), PtRemoveCallback(), PtRemoveCallbacks()

PtCallbackInfo_t in the Photon Widget Reference

Managing Widgets in Application Code chapter of the Photon Programmer's Guide