Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoCallbackList.h
Go to the documentation of this file.
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : David Mott (MMM yyyy)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : VSG (MMM YYYY)
47**=======================================================================*/
48
49
50#ifndef _SO_CALLBACK_LIST_
51#define _SO_CALLBACK_LIST_
52
53#include <Inventor/SbPList.h>
54
56//
57// Class: SoCallbackList
58//
60
61// Callback functions that are registered with this class should
62// be cast to this type.
63typedef void SoCallbackListCB(void *userData, void *callbackData);
64
81
82 public:
83
92
99 void addCallback(SoCallbackListCB *f, void *userData = NULL);
103 void removeCallback(SoCallbackListCB *f, void *userData = NULL);
104
108 void clearCallbacks() { list.truncate(0); }
112 int getNumCallbacks() const { return list.getLength(); }
113
119 void invokeCallbacks(void *callbackData);
120
125 void enable(SbBool enableCallbacks){ m_enable = enableCallbacks;}
126
127 private:
128
129 //If set tofalse, callbacks will have no effect
130 SbBool m_enable;
131
132 // callbackList holds a list of functions and user data
133 SbPList list;
134
135};
136
137#endif /* _SO_CALLBACK_LIST_ */
138
List of generic (void *) pointers.
Definition SbPList.h:77
virtual void truncate(int start)
Removes all pointers after one with given index, inclusive.
Definition SbPList.h:215
int getLength() const
Returns number of pointers in list.
Definition SbPList.h:125
Manages a list of callbacks and associated data.
void addCallback(SoCallbackListCB *f, void *userData=NULL)
Adds a function to the list of callback functions.
void clearCallbacks()
Clears all callback functions from the list.
int getNumCallbacks() const
Returns the number of callback functions in the list.
~SoCallbackList()
Destructor.
SoCallbackList()
Constructor.
void removeCallback(SoCallbackListCB *f, void *userData=NULL)
Removes a function from the list of callback functions.
void invokeCallbacks(void *callbackData)
Invokes each callback function in the list, passing each function the user data supplied when they we...
void enable(SbBool enableCallbacks)
Set the callbacks enabled state.
int SbBool
Boolean type.
Definition SbBase.h:87
void SoCallbackListCB(void *userData, void *callbackData)