void pxpick_path_list(
Pint ws_id, /* workstation identifier (input) */ Pint pick_dev_num, /* pick device number (input) */ Ppoint *point, /* located point in DC (input) */ Pstore store, /* handle to store object (input) */ Pin_status *status, /* return status (output) */ Pxpick_path_list **pick_path_list /* return pick path list (output) */
)
typedef enum {
PIN_STATUS_NONE,
PIN_STATUS_OK,
PIN_STATUS_NO_IN
} Pin_status;
typedef struct {
Pint num_paths;
Ppick_path *paths
} Pxpick_path_list;
typedef struct {
Pint depth;
Ppick_path_elem *path_list;
} Ppick_path;
typedef struct {
Pint struct_id;
Pint pick_id;
Pint elem_pos;
} Ppick_path_elem;
Use of this function overcomes the differences in concept between an event-driven model ( MOTIF ) and the classic sequential model required for the use of PHIGS input.
Use SET PICK METHOD to select the appropriate pick method.
The store object must be allocated by CREATE STORE before calling this function. Use DELETE STORE to free the memory allocated to store the list of path.
point.y = window.height - ev.xbutton.y ;
where window.height is the height in pixels of the X window and ev.xbutton.y is the Y position acquired with the event.
Sample pick,see psample_pick
Set pick filter,see pset_pick_filter
Pick without interaction, see pxpick
Pick and locator without interaction (ext), see pxpick_loc
Locator without interaction (ext), see pxlocator3
Create store, see pcreate_store