
Applications can get the event handler routine for a panel item with the following call:
Panel_item item;
event_proc = (void (*)())xv_get(item, PANEL_EVENT_PROC);
You may not assume that the default event handler for any panel item is panel_de-
fault_handle_event(), as in previous XView versions. You must xv_get() the
item’s PANEL_EVENT_PROC. The event handler has the following parameters:
void
panel_item_event_proc(item, event)
Panel_item item;
Event *event;
7.19.8 Event Handling Example
The program item_move.c (a longer program listed in Appendix F, Example Programs) dem-
onstrates how events can be handled in panels. The program allows you to create, destroy,
and move around three different types of panel items. Two panels are displayed (see Figure
7-22) The control panel contains two panel items: a text item to type in panel item names and
a choice item providing the different item types that may be created. The destination panel is
where newly created panel items are placed. It is boxed. After items are created, you may
move them around the destination panel using the MENU mouse button. Moving the item off
the destination panel deletes the item.
Figure 7-22. Output of item_move.c in use
The code for item_move.c uses the interpose function, notify_inter-
pose_event_func(), to handle events within the destination panel. This interferes with
the normal event processing for the destination panel; ...