iceWing
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Gdata.h
Go to the documentation of this file.
1 /* -*- mode: C; tab-width: 4; c-basic-offset: 4; -*- */
2 
3 /*
4  * Author: Frank Loemker
5  *
6  * Copyright (C) 1999-2009
7  * Frank Loemker, Applied Computer Science, Faculty of Technology,
8  * Bielefeld University, Germany
9  *
10  * This file is part of iceWing, a graphical plugin shell.
11  *
12  * iceWing is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * iceWing is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25  */
26 
27 #ifndef iw_Gdata_H
28 #define iw_Gdata_H
29 
30 #include <stdlib.h>
31 
32 typedef void *guiData;
33 
34 typedef void (*guiDataDestroyFunc) (void *objdata);
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /*********************************************************************
41  Free 'data' and all associated objdata.
42 *********************************************************************/
43 void gui_data_free (guiData data);
44 
45 /*********************************************************************
46  Free the data and the list entry associated with 'key'.
47 *********************************************************************/
48 void gui_data_remove (guiData data, const char *key);
49 
50 /*********************************************************************
51  Get the data associated with "key", return the address of the
52  stored data.
53 *********************************************************************/
54 void **gui_data_get (guiData data, const char *key);
55 
56 /*********************************************************************
57  Append 'objdata' to 'data'. The data is indexed by 'key'. If there
58  is already data associated with 'key' the new data will replace it.
59  'destroy' is called when the data is removed.
60  Return the address of the stored 'objdata'.
61 *********************************************************************/
62 void** gui_data_set (guiData *data, const char *key, void *objdata,
63  guiDataDestroyFunc destroy);
64 
65 #ifdef __cplusplus
66 }
67 #endif
68 
69 #endif /* iw_Gdata_H */