1 /* 2 * xmcd - Motif(R) CD Audio Player/Ripper 3 * 4 * Copyright (C) 1993-2004 Ti Kan 5 * E-mail: xmcd@amb.org 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * 21 */ 22 #ifndef __CALLBACK_H__ 23 #define __CALLBACK_H__ 24 25 #ifndef lint 26 static char *_callback_h_ident_ = "@(#)callback.h 6.14 03/12/12"; 27 #endif 28 29 /* Macros */ 30 #define register_activate_cb(w, func, arg) \ 31 XtAddCallback((w), XmNactivateCallback, \ 32 (XtCallbackProc) (func), \ 33 (XtPointer) (arg)) 34 35 #define register_arm_cb(w, func, arg) \ 36 XtAddCallback((w), XmNarmCallback, \ 37 (XtCallbackProc) (func), \ 38 (XtPointer) (arg)) 39 40 #define register_disarm_cb(w, func, arg) \ 41 XtAddCallback((w), XmNdisarmCallback, \ 42 (XtCallbackProc) (func), \ 43 (XtPointer) (arg)) 44 45 #define register_valchg_cb(w, func, arg) \ 46 XtAddCallback((w), XmNvalueChangedCallback, \ 47 (XtCallbackProc) (func), \ 48 (XtPointer) (arg)) 49 50 #define register_drag_cb(w, func, arg) \ 51 XtAddCallback((w), XmNdragCallback, \ 52 (XtCallbackProc) (func), \ 53 (XtPointer) (arg)) 54 55 #define register_modvfy_cb(w, func, arg) \ 56 XtAddCallback((w), XmNmodifyVerifyCallback, \ 57 (XtCallbackProc) (func), \ 58 (XtPointer) (arg)) 59 60 #define register_focus_cb(w, func, arg) \ 61 XtAddCallback((w), XmNfocusCallback, \ 62 (XtCallbackProc) (func), \ 63 (XtPointer) (arg)) 64 65 #define register_losefocus_cb(w, func, arg) \ 66 XtAddCallback((w), XmNlosingFocusCallback, \ 67 (XtCallbackProc) (func), \ 68 (XtPointer) (arg)) 69 70 #define register_defaction_cb(w, func, arg) \ 71 XtAddCallback((w), XmNdefaultActionCallback, \ 72 (XtCallbackProc) (func), \ 73 (XtPointer) (arg)) 74 75 #define register_singlesel_cb(w, func, arg) \ 76 XtAddCallback((w), XmNsingleSelectionCallback, \ 77 (XtCallbackProc) (func), \ 78 (XtPointer) (arg)) 79 80 #define register_browsel_cb(w, func, arg) \ 81 XtAddCallback((w), XmNbrowseSelectionCallback, \ 82 (XtCallbackProc) (func), \ 83 (XtPointer) (arg)) 84 85 #define register_cascade_cb(w, func, arg) \ 86 XtAddCallback((w), XmNcascadingCallback, \ 87 (XtCallbackProc) (func), \ 88 (XtPointer) (arg)) 89 90 #define register_btnrel_ev(w, func, arg) \ 91 XtAddEventHandler((w), ButtonReleaseMask, \ 92 False, \ 93 (XtEventHandler) (func), \ 94 (XtPointer) (arg)) 95 96 #define register_focuschg_ev(w, func, arg) \ 97 XtAddEventHandler((w), FocusChangeMask, \ 98 False, \ 99 (XtEventHandler) (func), \ 100 (XtPointer) (arg)) 101 102 #define register_xingchg_ev(w, func, arg) \ 103 XtAddEventHandler((w), EnterWindowMask | LeaveWindowMask, \ 104 False, \ 105 (XtEventHandler) (func), \ 106 (XtPointer) (arg)) 107 108 109 /* Public function prototypes */ 110 extern void set_delw_atom(Atom); 111 extern void add_delw_callback(Widget, XtCallbackProc, XtPointer); 112 extern void rm_delw_callback(Widget, XtCallbackProc, XtPointer); 113 extern void register_callbacks(widgets_t *, curstat_t *); 114 115 #endif /* __CALLBACK_H__ */ 116 117