/* * @OPENGROUP_COPYRIGHT@ * COPYRIGHT NOTICE * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc. * Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group * ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for * the full copyright text. * * This software is subject to an open license. It may only be * used on, with or for operating systems which are themselves open * source systems. You must contact The Open Group for a license * allowing distribution and sublicensing of this software on, with, * or for operating systems which are not Open Source programs. * * See http://www.opengroup.org/openmotif/license for full * details of the license agreement. Any use, reproduction, or * distribution of the program constitutes recipient's acceptance of * this agreement. * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS * PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY * WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY * OR FITNESS FOR A PARTICULAR PURPOSE * * EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT * NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE * EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. */ /* * HISTORY */ /* $XConsortium: xis_protos.h /main/7 1995/07/14 11:43:40 drk $ */ /*********************************************************************** @(#)xis_protos.h 1.4.1.1 Date:1/22/91 Author: SJS History: 08/08/90 SJS prototypes moved to here. Calls: Summary: ************************************************************************/ /* This file need to be included by xislib.h because of type definitions */ /****************************************************************************** EVENT FUNCTIONS ******************************************************************************/ extern Time xisGetEventTime /* Gets time stamp from event record. Returns 0 if none */ PARAMS(( XEvent *event /* Ptr to X-event struct */ )); extern Time xisGetServerTime /* Get approx current server time. Delay specified amount*/ PARAMS(( Time inter_button_time /* Min delay time since */ /* last button press. */ )); extern void xisMovePointer /* Move pointer to new x,y location with linear motion */ PARAMS(( int new_x, /* Destination root x coord */ int new_y /* Distination root y coord */ )); extern void xisPrintEvent /* Print relavent trace details of the specified event */ PARAMS(( XEvent *event /* Ptr to X-event struct */ )); extern int xisSynchronize /* Process events until system reaches next quiet state. Returns True if processed at least one event */ PARAMS(( void )); extern void xisProcessEvents /* Process events until done_func = true or time-out */ PARAMS(( int (*done_func)(), /* Func that returns True */ /* when done procesing evnts*/ int max_wait_time /* Max time-out time in */ /* milliseconds. */ )); extern void xisProcessObjects /* Regenerate objects hierarchy */ PARAMS(( void )); extern void xisSendEvent /* Sends 1 synthesized event to the specified window */ PARAMS(( Window window, /* Event window */ Window subwindow, /* Child windw toward action*/ int type, /* XEvent type */ Time time, /* X-Server time stamp */ int wx, /* X-coord of pntr in window*/ int wy, /* Y-coord of pntr in window*/ int rx, /* X-coord of pntr in root */ int ry, /* Y-coord of pntr in root */ unsigned int state, /* XServer modifier keys */ unsigned int detail /* Key,Button changed state */ )); /****************************************************************************** INFO FUNCTIONS ******************************************************************************/ extern XisObjectRecord *xisAllocObject /* Allocates one object record and returns a pointer to it*/ PARAMS(( XisObjectRecord *parent_obj, /* Parent of new object */ Widget widget, /* Widget id of new object */ int object_code, /* Object code (user defined*/ int instance /* Instance code(userdefined*/ )); extern void xisBeginSession /* Opens and initializes dialog with input synth tools */ PARAMS(( Display *display_in, /* Display connected to */ XtAppContext app_context_in, /* Xt Application Context */ int num_objects_types, /* Num unique objects */ void (*generate_objects_func)(),/*Func updates objects */ char *(*get_obj_type_name_func)(),/*Returns obj type name*/ char *(*get_class_name_func)(),/*Returns widg class name */ Widget (window_to_widget_func)(),/*Returns widg from windo*/ void (*trace_msg_func)(), /* Trace message function */ void (*warning_msg_func)(), /* Warning message function*/ void (*error_msg_func)() /* Error message function */ )); extern void xisFreeObject /* Frees the specified object record storage */ PARAMS(( XisObjectRecord *object /* Object to free */ )); extern XisInformRecord *xisGetInformInfo /* Gets pointer to xisInform info struct */ PARAMS(( void )); extern XisObjectRecord *xisGetObjectFromWidget /* Gets top level object pointer from widget id */ PARAMS(( Widget widget /* Widget to map to object */ )); extern XisStateRecord *xisGetStateInfo /* Gets pointer to xisState info struct */ PARAMS(( void )); extern void xisUseSessionInfo /* Checks if xisInitDisplayInfo called previously */ PARAMS(( char *routine_name /* Routine name called from */ )); /****************************************************************************** OTHER FUNCTIONS ******************************************************************************/ extern long xisConcat /* Concatenates two object types together */ PARAMS(( long cum_object_type, /* Cumulative obj type */ long new_object_type /* New obj to concat on cum */ )); extern void xisCreateSimple /* Creates a simple window which may be used as */ /* a "dummy" focus */ PARAMS(( void )); extern XisObjectRecord *xisFindObject /* Looks up the object with matching widget,obj,instance */ PARAMS(( Widget widget, /* Object widget id */ int object_type, /* Object object_code */ int instance /* Object instance code */ )); extern XisObjectRecord *xisFindObjectAtLocation /* Looks up the topmost object at location x,y */ PARAMS(( int x, /* X-coord rel to root */ int y /* Y-coord rel to root */ )); extern XisObjectRecord *xisFindObjectFromWidget /* Looks up object with matching widget */ PARAMS(( Widget widget /* Widget to match */ )); extern XisObjectRecord *xisFindObjectFromWindow /* Looks up object with matching window id */ PARAMS(( Window window /* Window id to match */ )); extern XisObjectRecord *xisFindParentObjectFromWindow /* Looks up parent obj with matching window*/ PARAMS(( Window window /* Window id to match */ )); extern int xisGetEdgeCode /* Returns TopEdge, BottomEdge, LeftEdge, or RightEdge */ PARAMS(( XisObjectRecord *object, /* object in question */ int old_x, /* X coord moved ptr from */ int old_y, /* Y coord moved ptr from */ int new_x, /* X coord moved ptr to */ int new_y /* Y coord moved ptr to */ )); extern XisObjectRecord *xisGetFocusObject /* Returns object/widget that has the keyboard input focus */ PARAMS(( void )); extern Widget xisGetFocusWidget /* Returns widget that has the MOTIF keyboard input focus */ PARAMS(( void )); extern char *xisGetKeyName /* Returns a ptr to a string describing an xis key */ PARAMS(( int key /* xis key code */ )); extern char *xisGetObjectName /* Returns pointer to string name of object */ PARAMS(( XisObjectRecord *object /* Object whose name you want*/ )); extern void xisGetPointerInfo /* Returns pointer location information */ PARAMS(( Window *ptr_window, /* Innermost window ptr is in*/ int *root_x, /* X-coord rel to root window*/ int *root_y, /* Y-coord rel to root window*/ int *window_x, /* X-coord rel to ptr window */ int *window_y, /* Y-coord rel to ptr window */ unsigned int *button_mask /* Currently pressed buttons */ )); extern void xisGetPointerLocation /* Returns current pointer location in root window */ PARAMS(( int *root_x, /* X-coord rel to root window*/ int *root_y /* Y-coord rel to root window*/ )); extern Widget xisGetShellWidget /* Returns the topmost shell of the specified widget */ PARAMS(( Widget widget /* Widget in question */ )); extern char *xisGetWindowName /* Returns the name of the specified window */ PARAMS(( Window window /* Window to get name of */ )); extern int xisIsAncestorObject /* Returns True if 1st object is ancestor of 2nd */ PARAMS(( XisObjectRecord *object1, /* 1st object struct ptr */ XisObjectRecord *object2 /* 2nd object struct ptr */ )); extern int xisIsAncestorWindow /* Returns True if 1st window is ancestor of 2nd */ PARAMS(( Window window1, /* 1st window */ Window window2 /* 2nd window */ )); extern int xisIsMapped /* Returns True if window is mapped */ PARAMS(( Window window /* Window in question */ )); extern int xisIsViewable /* Returns True if window is viewable */ PARAMS(( Window window /* Window in question */ )); extern int xisIsWidgetMapped /* Returns True if widget is mapped */ PARAMS(( Widget widget /* Widget in question */ )); extern void xisInitRandom /* Initializes the pseudo random num generator with seed */ PARAMS(( int seed /* Seed, any integer value */ )); extern int xisArbitrary /* Returns arbitrary num between inclusive values range */ PARAMS(( int lo, /* Low inclusive number */ int hi /* High inclusive number */ )); extern void xisSetMultiClickTime /* Sets xis global min inter-click time interval */ PARAMS(( Time time /* Time in milliseconds */ )); extern int xisTerminateRequested /* Returns true if Ctrl-C pressed */ PARAMS(( void )); extern void xisUngrabMouseButton /* Ungrabs the mouse button */ PARAMS(( void )); extern int xisWindowExists /* Returns True if window exists */ PARAMS(( Window window /* Window in question */ )); /****************************************************************************** PRIMITIVE BEHAVIOR FUNCTIONS ******************************************************************************/ extern void xisCommonButtonPress /* Central button press synthesis routine */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num, /* Mouse button num 1 - 5 */ int clicks /* Num button multi clicks */ )); extern void xisCMovePointer /* Common Move pointer code for both routines above */ PARAMS(( XisObjectRecord *current_obj, /* Current object */ int curr_x, /* Curr pointer root x coord*/ int curr_y, /* Curr pointer root y coord */ int target_x, /* Destination root x coord */ int target_y /* Destination root y coord */ )); extern void xisClickMouseButton /* Press-hold-release mouse button */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num /* Mouse button num 1 - 5 */ )); extern void xisClickKey /* Press-hold-release mouse button */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int key /* Xis key code */ )); extern void xisCreateWidget /* Process InformExpectedActions on widget creation */ PARAMS(( Widget widget /* Widget id of new widget */ )); extern void xisDestroyWidget /* Process InformExpectedActions on widget destruction */ PARAMS(( Widget widget /* Widget id of new widget */ )); extern int xisIsActionRegion /* Returns true is specified region is where event occur*/ PARAMS(( int object_type /* Object type code */ )); extern int xisIsActiveMouseButton /* Returns true is specified button_num is active */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num /* Button number 1- 5 */ )); extern int xisIsActiveKey /* Returns true is specified key is active */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int key_code /* Key is Space,Return... */ )); extern int xisIsKeyboardFocusRegion /* Returns True if region is in keyboard focus */ PARAMS(( int object_type /* Object type code */ )); extern int xisIsPointerOverRegion /* Returns True if pointer over region */ PARAMS(( int object_type /* Object type code */ )); extern int xisIsPointerOverWidget /* Returns True if pointer is over curr widget */ PARAMS(( int bool /* False = negative logic */ )); extern int xisIsSelectedRegion /* Returns True if specified region is selected*/ PARAMS(( int object_type_in /* Object type code */ )); extern int xisIsWidgetInKeyboardFocus /* Returns True if widget is in keyboard focus */ PARAMS(( int bool /* False = negative logic */ )); extern int xisIsWidgetSelected /* Returns True if curr widget is selected */ PARAMS(( int bool /* False = negative logic */ )); extern int xisIsMouseButtonDown /* Returns True if given button | mod keys are down */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num /* Btn1,2,3.. */ )); extern void xisMultiClickMouseButton /* Synthesizes a multiclick mouse button event */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num, /* Mouse button num 1-5 */ int num_clicks /* Num clicks */ )); extern void xisMovePointerRel /* Move pointer to new x,y location with linear motion */ PARAMS(( int new_x, /* Destination root x coord */ int new_y /* Distination root y coord */ )); extern void xisMovePointerTo /* Move pointer over specified widget, object, instance */ PARAMS(( Widget widget, /* Specified widget */ int object_code, /* Specified object */ int instance, /* Specified instance */ int direction /* MoveUp, MoveDown, etc */ )); extern void xisPressMouseButton /* Synthesize a mouse button press event */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num /* Mouse button num 1 - 5 */ )); extern void xisProcessObjects /* Regenerate the graphical objects data structure */ PARAMS(( void )); extern void xisReleaseMouseButton /* Synthesize a mouse button release event */ PARAMS(( unsigned int modifier_keys, /* ShiftMask,ControlMask,etc*/ int button_num /* Mouse button num 1 - 5 */ )); extern void xisRestorePointer /* Puts pointer back to location saved by xisSavePointer*/ PARAMS(( void )); extern void xisSavePointer /* Saves pointer location for restoring w/xisRestorePointer*/ PARAMS(( void )); extern void xisSetKeyboardFocus /* Sets keyboard focus to specified widget */ PARAMS(( Widget widget, /* Widget to set focus to */ int object_type, /* Object type */ int instance /* Instance of object */ )); extern void xisSetKeyboardFocusObject /* Saves global keyboard focus setting */ PARAMS(( Widget widget, /* Widget to set focus to */ int object_type, /* Object type */ int instance /* Instance of object */ )); extern void xisSetFocusMode /* Sets keyboard focus mode to natural or controlled */ PARAMS(( int mode /* KEYBOARD_FOCUS_NATURAL,..*/ )); extern int xisGetDragDistance /* Get drag distance and widnow id */ PARAMS(( Widget *pwin, /* Returned widget id */ int *pdel_x, /* Returned delta x */ int *pdel_y /* Returned delta y */ )); /* End of xis_protos.h Add new definitions ABOVE THIS LINE */