1 /* ide-buffer-addin.h 2 * 3 * Copyright 2017-2019 Christian Hergert <chergert@redhat.com> 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 3 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 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, see <http://www.gnu.org/licenses/>. 17 * 18 * SPDX-License-Identifier: GPL-3.0-or-later 19 */ 20 21 #pragma once 22 23 #if !defined (IDE_CODE_INSIDE) && !defined (IDE_CODE_COMPILATION) 24 # error "Only <libide-code.h> can be included directly." 25 #endif 26 27 #include <libide-core.h> 28 29 #include "ide-code-types.h" 30 31 G_BEGIN_DECLS 32 33 #define IDE_TYPE_BUFFER_ADDIN (ide_buffer_addin_get_type()) 34 35 IDE_AVAILABLE_IN_3_32 36 G_DECLARE_INTERFACE (IdeBufferAddin, ide_buffer_addin, IDE, BUFFER_ADDIN, GObject) 37 38 struct _IdeBufferAddinInterface 39 { 40 GTypeInterface parent_iface; 41 42 void (*load) (IdeBufferAddin *self, 43 IdeBuffer *buffer); 44 void (*unload) (IdeBufferAddin *self, 45 IdeBuffer *buffer); 46 void (*file_loaded) (IdeBufferAddin *self, 47 IdeBuffer *buffer, 48 GFile *file); 49 void (*save_file) (IdeBufferAddin *self, 50 IdeBuffer *buffer, 51 GFile *file); 52 void (*file_saved) (IdeBufferAddin *self, 53 IdeBuffer *buffer, 54 GFile *file); 55 void (*language_set) (IdeBufferAddin *self, 56 IdeBuffer *buffer, 57 const gchar *language_id); 58 void (*change_settled) (IdeBufferAddin *self, 59 IdeBuffer *buffer); 60 void (*style_scheme_changed) (IdeBufferAddin *self, 61 IdeBuffer *buffer); 62 void (*settle_async) (IdeBufferAddin *self, 63 GCancellable *cancellable, 64 GAsyncReadyCallback callback, 65 gpointer user_data); 66 gboolean (*settle_finish) (IdeBufferAddin *self, 67 GAsyncResult *result, 68 GError **error); 69 }; 70 71 IDE_AVAILABLE_IN_3_32 72 void ide_buffer_addin_load (IdeBufferAddin *self, 73 IdeBuffer *buffer); 74 IDE_AVAILABLE_IN_3_32 75 void ide_buffer_addin_unload (IdeBufferAddin *self, 76 IdeBuffer *buffer); 77 IDE_AVAILABLE_IN_3_32 78 void ide_buffer_addin_file_loaded (IdeBufferAddin *self, 79 IdeBuffer *buffer, 80 GFile *file); 81 IDE_AVAILABLE_IN_3_32 82 void ide_buffer_addin_save_file (IdeBufferAddin *self, 83 IdeBuffer *buffer, 84 GFile *file); 85 IDE_AVAILABLE_IN_3_32 86 void ide_buffer_addin_file_saved (IdeBufferAddin *self, 87 IdeBuffer *buffer, 88 GFile *file); 89 IDE_AVAILABLE_IN_3_32 90 void ide_buffer_addin_language_set (IdeBufferAddin *self, 91 IdeBuffer *buffer, 92 const gchar *language_id); 93 IDE_AVAILABLE_IN_3_32 94 void ide_buffer_addin_change_settled (IdeBufferAddin *self, 95 IdeBuffer *buffer); 96 IDE_AVAILABLE_IN_3_32 97 void ide_buffer_addin_style_scheme_changed (IdeBufferAddin *self, 98 IdeBuffer *buffer); 99 IDE_AVAILABLE_IN_3_32 100 void ide_buffer_addin_settle_async (IdeBufferAddin *self, 101 GCancellable *cancellable, 102 GAsyncReadyCallback callback, 103 gpointer user_data); 104 IDE_AVAILABLE_IN_3_32 105 gboolean ide_buffer_addin_settle_finish (IdeBufferAddin *self, 106 GAsyncResult *result, 107 GError **error); 108 IDE_AVAILABLE_IN_3_32 109 IdeBufferAddin *ide_buffer_addin_find_by_module_name (IdeBuffer *buffer, 110 const gchar *module_name); 111 112 G_END_DECLS 113