1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ 2 /* 3 * ianjuta-symbol.h -- Autogenerated from libanjuta.idl 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 */ 19 20 #ifndef _IANJUTA_SYMBOL_H_ 21 #define _IANJUTA_SYMBOL_H_ 22 23 #include <glib-object.h> 24 #include <gdk/gdk.h> 25 #include <gio/gio.h> 26 27 G_BEGIN_DECLS 28 29 #define IANJUTA_TYPE_SYMBOL (ianjuta_symbol_get_type ()) 30 #define IANJUTA_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IANJUTA_TYPE_SYMBOL, IAnjutaSymbol)) 31 #define IANJUTA_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IANJUTA_TYPE_SYMBOL)) 32 #define IANJUTA_SYMBOL_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), IANJUTA_TYPE_SYMBOL, IAnjutaSymbolIface)) 33 34 #define IANJUTA_TYPE_SYMBOL_FIELD (ianjuta_symbol_field_get_type()) 35 #define IANJUTA_TYPE_SYMBOL_TYPE (ianjuta_symbol_type_get_type()) 36 37 #define IANJUTA_SYMBOL_ERROR ianjuta_symbol_error_quark() 38 39 typedef struct _IAnjutaSymbol IAnjutaSymbol; 40 typedef struct _IAnjutaSymbolIface IAnjutaSymbolIface; 41 42 /** 43 * IAnjutaSymbolField: 44 * @IANJUTA_SYMBOL_FIELD_ID: Integer. A unique ID of the symbol 45 * @IANJUTA_SYMBOL_FIELD_NAME: String. Name of the symbol 46 * @IANJUTA_SYMBOL_FIELD_FILE_POS: Integer. The file line number where the symbol is found. 47 * @IANJUTA_SYMBOL_FIELD_SCOPE_DEF_ID: Integer. A unique ID to define scope created by this symbol. 48 * @IANJUTA_SYMBOL_FIELD_FILE_SCOPE: Boolean: TRUE if symbol is within file scope, 49 * otherwise FALSE. 50 * @IANJUTA_SYMBOL_FIELD_SIGNATURE: String. Signature of a method, if symbol is a funtion. 51 * Namely, the arguments list of the funtion. 52 * @IANJUTA_SYMBOL_FIELD_RETURNTYPE: String. Return type of a method, if symbol is a function. 53 * @IANJUTA_SYMBOL_FIELD_FILE_PATH: String. The relative path to the file where the symbol is found. 54 * @IANJUTA_SYMBOL_FIELD_PROJECT_NAME: String. The project name to which the symbol belongs to. 55 * @IANJUTA_SYMBOL_FIELD_PROJECT_VERSION: String. The project version to which the symbol belongs to. 56 * @IANJUTA_SYMBOL_FIELD_IMPLEMENTATION: String. Implementation attribute of a symbol. It may be 57 * "pure virtual", "virtual", etc. 58 * @IANJUTA_SYMBOL_FIELD_ACCESS: String. Access attribute of a symbol. 59 * It may be "public", "private" etc. 60 * @IANJUTA_SYMBOL_FIELD_KIND: Kind attribute of a symbol, such as 61 * "enumerator", "namespace", "class" etc. 62 * @IANJUTA_SYMBOL_FIELD_TYPE: Both string and Integer. Type attribute of a symbol. 63 * In string form, it is name of the type in string form. 64 * In integer form, it is IAnjutaSymbolType enumerator value. 65 * @IANJUTA_SYMBOL_FIELD_TYPE_NAME: type_name attribute of a symbol. 66 * If a type could be "class" then its type_name may be "MyFooClass" etc. 67 * @IANJUTA_SYMBOL_FIELD_IS_CONTAINER: Boolean. TRUE if symbol is 68 * a scope container, such as namespace, class, struct etc., otherwise 69 * FALSE. 70 * @IANJUTA_SYMBOL_FIELD_END: The end marker. 71 * 72 * Symbol Fields. Used to define and retrieve results from query. Each of 73 * these fields are either integer or string. Use the right method to 74 * retrieve them. That is, for integer use ianjuta_symbol_get_int(), 75 * for string use ianjuta_symbol_get_string(), and for boolean use 76 * ianjuta_symbol_get_boolean(). Some fields can be in both forms, 77 * e.g. #IANJUTA_SYMBOL_FIELD_TYPE. 78 */ 79 typedef enum { 80 IANJUTA_SYMBOL_FIELD_ID, 81 IANJUTA_SYMBOL_FIELD_NAME, 82 IANJUTA_SYMBOL_FIELD_FILE_POS, 83 IANJUTA_SYMBOL_FILED_SCOPE_DEF_ID, 84 IANJUTA_SYMBOL_FIELD_FILE_SCOPE, 85 IANJUTA_SYMBOL_FIELD_SIGNATURE, 86 IANJUTA_SYMBOL_FIELD_RETURNTYPE, 87 IANJUTA_SYMBOL_FIELD_TYPE, 88 IANJUTA_SYMBOL_FIELD_TYPE_NAME, 89 IANJUTA_SYMBOL_FIELD_FILE_PATH, 90 IANJUTA_SYMBOL_FIELD_PROJECT_NAME, 91 IANJUTA_SYMBOL_FIELD_PROJECT_VERSION, 92 IANJUTA_SYMBOL_FIELD_IMPLEMENTATION, 93 IANJUTA_SYMBOL_FIELD_ACCESS, 94 IANJUTA_SYMBOL_FIELD_KIND, 95 IANJUTA_SYMBOL_FIELD_IS_CONTAINER, 96 IANJUTA_SYMBOL_FIELD_END 97 } IAnjutaSymbolField; 98 99 /** 100 * IAnjutaSymbolType: 101 * @IANJUTA_SYMBOL_TYPE_NONE: None spedified. 102 * @IANJUTA_SYMBOL_TYPE_UNDEF: Unknown type. 103 * @IANJUTA_SYMBOL_TYPE_CLASS: Class declaration 104 * @IANJUTA_SYMBOL_TYPE_ENUM: Enum declaration 105 * @IANJUTA_SYMBOL_TYPE_ENUMERATOR: Enumerator value 106 * @IANJUTA_SYMBOL_TYPE_FIELD: Field (Java only) 107 * @IANJUTA_SYMBOL_TYPE_FUNCTION: Function definition 108 * @IANJUTA_SYMBOL_TYPE_INTERFACE: Interface (Java only) 109 * @IANJUTA_SYMBOL_TYPE_MEMBER: Member variable of class/struct 110 * @IANJUTA_SYMBOL_TYPE_METHOD: Class method (Java only) 111 * @IANJUTA_SYMBOL_TYPE_NAMESPACE: Namespace declaration 112 * @IANJUTA_SYMBOL_TYPE_PACKAGE: Package (Java only) 113 * @IANJUTA_SYMBOL_TYPE_PROTOTYPE: Function prototype 114 * @IANJUTA_SYMBOL_TYPE_STRUCT: Struct declaration 115 * @IANJUTA_SYMBOL_TYPE_TYPEDEF: Typedef 116 * @IANJUTA_SYMBOL_TYPE_UNION: Union 117 * @IANJUTA_SYMBOL_TYPE_VARIABLE: Variable 118 * @IANJUTA_SYMBOL_TYPE_EXTERNVAR: Extern or forward declaration 119 * @IANJUTA_SYMBOL_TYPE_MACRO: Macro (without arguments) 120 * @IANJUTA_SYMBOL_TYPE_MACRO_WITH_ARG: Parameterized macro 121 * @IANJUTA_SYMBOL_TYPE_FILE: File (Pseudo tag) 122 * @IANJUTA_SYMBOL_TYPE_OTHER: Other (non C/C++/Java tag) 123 * @IANJUTA_SYMBOL_TYPE_SCOPE_CONTAINER: types which are subjected to create a scope. 124 * @IANJUTA_SYMBOL_TYPE_MAX: Maximum value, used as end marker. 125 */ 126 typedef enum { 127 IANJUTA_SYMBOL_TYPE_NONE = 0, 128 IANJUTA_SYMBOL_TYPE_UNDEF = 1, 129 IANJUTA_SYMBOL_TYPE_CLASS = 2, 130 IANJUTA_SYMBOL_TYPE_ENUM = 4, 131 IANJUTA_SYMBOL_TYPE_ENUMERATOR = 8, 132 IANJUTA_SYMBOL_TYPE_FIELD = 16, 133 IANJUTA_SYMBOL_TYPE_FUNCTION = 32, 134 IANJUTA_SYMBOL_TYPE_INTERFACE = 64, 135 IANJUTA_SYMBOL_TYPE_MEMBER = 128, 136 IANJUTA_SYMBOL_TYPE_METHOD = 256, 137 IANJUTA_SYMBOL_TYPE_NAMESPACE = 512, 138 IANJUTA_SYMBOL_TYPE_PACKAGE = 1024, 139 IANJUTA_SYMBOL_TYPE_PROTOTYPE = 2048, 140 IANJUTA_SYMBOL_TYPE_STRUCT = 4096, 141 IANJUTA_SYMBOL_TYPE_TYPEDEF = 8192, 142 IANJUTA_SYMBOL_TYPE_UNION = 16384, 143 IANJUTA_SYMBOL_TYPE_VARIABLE = 32768, 144 IANJUTA_SYMBOL_TYPE_EXTERNVAR = 65536, 145 IANJUTA_SYMBOL_TYPE_MACRO = 131072, 146 IANJUTA_SYMBOL_TYPE_MACRO_WITH_ARG = 262144, 147 IANJUTA_SYMBOL_TYPE_FILE = 524288, 148 IANJUTA_SYMBOL_TYPE_OTHER = 1048576, 149 IANJUTA_SYMBOL_TYPE_SCOPE_CONTAINER = IANJUTA_SYMBOL_TYPE_CLASS | IANJUTA_SYMBOL_TYPE_ENUM | IANJUTA_SYMBOL_TYPE_INTERFACE | IANJUTA_SYMBOL_TYPE_NAMESPACE | IANJUTA_SYMBOL_TYPE_PACKAGE | IANJUTA_SYMBOL_TYPE_STRUCT | IANJUTA_SYMBOL_TYPE_UNION, 150 IANJUTA_SYMBOL_TYPE_MAX = 2097151 151 } IAnjutaSymbolType; 152 153 154 struct _IAnjutaSymbolIface { 155 GTypeInterface g_iface; 156 157 158 gboolean (*get_boolean) (IAnjutaSymbol *obj, IAnjutaSymbolField field, GError **err); 159 GFile* (*get_file) (IAnjutaSymbol *obj, GError **err); 160 const GdkPixbuf * (*get_icon) (IAnjutaSymbol *obj, GError **err); 161 gint (*get_int) (IAnjutaSymbol *obj, IAnjutaSymbolField field, GError **err); 162 const gchar* (*get_string) (IAnjutaSymbol *obj, IAnjutaSymbolField field, GError **err); 163 IAnjutaSymbolType (*get_sym_type) (IAnjutaSymbol *obj, GError **err); 164 165 }; 166 167 GType ianjuta_symbol_field_get_type (void); 168 GType ianjuta_symbol_type_get_type (void); 169 170 GQuark ianjuta_symbol_error_quark (void); 171 GType ianjuta_symbol_get_type (void); 172 173 gboolean ianjuta_symbol_get_boolean (IAnjutaSymbol *obj, IAnjutaSymbolField field, GError **err); 174 175 GFile* ianjuta_symbol_get_file (IAnjutaSymbol *obj, GError **err); 176 177 const GdkPixbuf * ianjuta_symbol_get_icon (IAnjutaSymbol *obj, GError **err); 178 179 gint ianjuta_symbol_get_int (IAnjutaSymbol *obj, IAnjutaSymbolField field, GError **err); 180 181 const gchar* ianjuta_symbol_get_string (IAnjutaSymbol *obj, IAnjutaSymbolField field, GError **err); 182 183 IAnjutaSymbolType ianjuta_symbol_get_sym_type (IAnjutaSymbol *obj, GError **err); 184 185 186 G_END_DECLS 187 188 #endif 189