1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ 2 /* 3 * plugin.h 4 * Copyright (C) Ishan Chattopadhyaya 2009 <ichattopadhyaya@gmail.com> 5 * 6 * plugin.h is free software. 7 * 8 * You may redistribute it and/or modify it under the terms of the 9 * GNU General Public License, as published by the Free Software 10 * Foundation; either version 2 of the License, or (at your option) 11 * any later version. 12 * 13 * plugin.h is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 * See the GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with plugin.h. If not, write to: 20 * The Free Software Foundation, Inc., 21 * 51 Franklin Street, Fifth Floor 22 * Boston, MA 02110-1301, USA. 23 */ 24 25 #ifndef _PYTHON_PLUGIN_H_ 26 #define _PYTHON_PLUGIN_H_ 27 28 #include <libanjuta/anjuta-plugin.h> 29 #include <libanjuta/interfaces/ianjuta-editor.h> 30 #include <libanjuta/interfaces/ianjuta-symbol-manager.h> 31 32 extern GType indent_python_plugin_get_type (GTypeModule *module); 33 #define ANJUTA_TYPE_PLUGIN_INDENT_PYTHON (indent_python_plugin_get_type (NULL)) 34 #define ANJUTA_PLUGIN_INDENT_PYTHON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ANJUTA_TYPE_PLUGIN_INDENT_PYTHON, IndentPythonPlugin)) 35 #define ANJUTA_PLUGIN_INDENT_PYTHON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), ANJUTA_TYPE_PLUGIN_INDENT_PYTHON, IndentPythonPluginClass)) 36 #define ANJUTA_IS_PLUGIN_INDENT_PYTHON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), ANJUTA_TYPE_PLUGIN_INDENT_PYTHON)) 37 #define ANJUTA_IS_PLUGIN_INDENT_PYTHON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ANJUTA_TYPE_PLUGIN_INDENT_PYTHON)) 38 #define ANJUTA_PLUGIN_INDENT_PYTHON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), ANJUTA_TYPE_PLUGIN_INDENT_PYTHON, IndentPythonPluginClass)) 39 40 41 typedef struct _IndentPythonPlugin IndentPythonPlugin; 42 typedef struct _IndentPythonPluginClass IndentPythonPluginClass; 43 44 struct _IndentPythonPlugin{ 45 AnjutaPlugin parent; 46 gint uiid; 47 GtkActionGroup *action_group; 48 49 AnjutaPreferences *prefs; 50 GObject *current_editor; 51 gboolean support_installed; 52 const gchar *current_language; 53 54 gchar *project_root_directory; 55 gchar *current_editor_filename; 56 gchar *current_fm_filename; 57 58 /* Watches */ 59 gint editor_watch_id; 60 61 /* Adaptive indentation parameters */ 62 gint param_brace_indentation; 63 gint param_case_indentation; 64 gint param_label_indentation; 65 66 /* Preferences */ 67 GtkBuilder* bxml; 68 GSettings* settings; 69 }; 70 71 struct _IndentPythonPluginClass{ 72 AnjutaPluginClass parent_class; 73 }; 74 75 #endif 76