[geany/geany] 860df2: Remove struct/macro/funcptr linkage control for plugin API
Matthew Brush
git-noreply at xxxxx
Fri Apr 10 15:07:01 UTC 2015
Branch: refs/heads/master
Author: Matthew Brush <matt at geany.org>
Committer: Thomas Martitz <kugel at rockbox.org>
Date: Tue, 10 Mar 2015 21:06:47 UTC
Commit: 860df27696de75ab41765ed5700eb8e9991bccab
https://github.com/geany/geany/commit/860df27696de75ab41765ed5700eb8e9991bccab
Log Message:
-----------
Remove struct/macro/funcptr linkage control for plugin API
Add rest of headers needed for declarations of all public API
functions. Add HAVE_PLUGINS define to geanyplugins.h since some headers
need this and it should always be valid for this header.
geanyfunctions.h left for source-level backwards compatibility for
plugins which might `#include` this header directly. I don't know why
they do it, but some Geany-Plugins do this.
Modified Paths:
--------------
doc/Doxyfile.in
doc/Makefile.am
doc/plugins.dox
plugins/Makefile.am
plugins/geanyfunctions.h
plugins/geanyplugin.h
plugins/genapi.py
src/Makefile.am
src/plugindata.h
src/plugins.c
Modified: doc/Doxyfile.in
1 lines changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -775,7 +775,6 @@ WARN_LOGFILE =
INPUT = @top_srcdir@/src/ \
@top_srcdir@/doc/ \
@top_srcdir@/plugins/geanyplugin.h \
- @top_srcdir@/plugins/geanyfunctions.h \
@top_srcdir@/tagmanager/src/tm_source_file.c \
@top_srcdir@/tagmanager/src/tm_source_file.h \
@top_srcdir@/tagmanager/src/tm_workspace.c \
Modified: doc/Makefile.am
1 lines changed, 0 insertions(+), 1 deletions(-)
===================================================================
@@ -96,7 +96,6 @@ doxygen_sources = \
$(srcdir)/*.dox \
$(top_srcdir)/src/*.[ch] \
$(top_srcdir)/plugins/geanyplugin.h \
- $(top_srcdir)/plugins/geanyfunctions.h \
$(top_srcdir)/tagmanager/src/tm_source_file.[ch] \
$(top_srcdir)/tagmanager/src/tm_workspace.[ch]
Modified: doc/plugins.dox
7 lines changed, 2 insertions(+), 5 deletions(-)
===================================================================
@@ -187,14 +187,12 @@ so there is no need to include @a gtk/gtk.h yourself.
@note
@a plugindata.h contains the biggest part of the plugin API and provides some basic macros.
- at a geanyfunctions.h provides some macros for convenient access to plugin API functions.
-Then you should define three basic variables which will give access to data fields and
-functions provided by the plugin API.
+Then you should define two basic variables which will give access to data fields
+provided by the plugin API.
@code
GeanyPlugin *geany_plugin;
GeanyData *geany_data;
-GeanyFunctions *geany_functions;
@endcode
Now you can go on and write your first lines for your new plugin. As mentioned before,
@@ -363,7 +361,6 @@ Once this is done, your first plugin is ready. Congratulations!
GeanyPlugin *geany_plugin;
GeanyData *geany_data;
-GeanyFunctions *geany_functions;
PLUGIN_VERSION_CHECK(211)
Modified: plugins/Makefile.am
14 lines changed, 3 insertions(+), 11 deletions(-)
===================================================================
@@ -1,22 +1,14 @@
# Adapted from Pidgin's plugins/Makefile.am, thanks
EXTRA_DIST = \
- makefile.win32 \
- genapi.py
+ makefile.win32
plugindir = $(libdir)/geany
plugins_includedir = $(includedir)/geany
plugins_include_HEADERS = \
- geanyplugin.h \
- geanyfunctions.h
-
-# systems without python should continue to build OK
-geanyfunctions.h: genapi.py ../src/plugins.c
- python genapi.py || true
-
-all: geanyfunctions.h
-
+ geanyfunctions.h \
+ geanyplugin.h
demoplugin_la_LDFLAGS = -module -avoid-version -no-undefined
classbuilder_la_LDFLAGS = -module -avoid-version -no-undefined
Modified: plugins/geanyfunctions.h
463 lines changed, 23 insertions(+), 440 deletions(-)
===================================================================
@@ -1,448 +1,31 @@
-/* This file is generated automatically by genapi.py - do not edit. */
-
-/** @file geanyfunctions.h @ref geany_functions wrappers.
- * This allows the use of normal API function names in plugins by defining macros.
+/*
+ * geanyfunctions.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ * Copyright 2014 Matthew Brush <mbrush at codebrainz.ca>
*
- * E.g.:@code
- * #define plugin_add_toolbar_item \
- * geany_functions->p_plugin->plugin_add_toolbar_item @endcode
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
- * You need to declare the @ref geany_functions symbol yourself.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * Note: This must be included after all other API headers to prevent conflicts with
- * other header's function prototypes - this is done for you when using geanyplugin.h.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+/* This file exists purely for backwards compatibility. */
+
#ifndef GEANY_FUNCTIONS_H
-#define GEANY_FUNCTIONS_H
+#define GEANY_FUNCTIONS_H 1
-#define plugin_add_toolbar_item \
- geany_functions->p_plugin->plugin_add_toolbar_item
-#define plugin_module_make_resident \
- geany_functions->p_plugin->plugin_module_make_resident
-#define plugin_signal_connect \
- geany_functions->p_plugin->plugin_signal_connect
-#define plugin_set_key_group \
- geany_functions->p_plugin->plugin_set_key_group
-#define plugin_show_configure \
- geany_functions->p_plugin->plugin_show_configure
-#define plugin_timeout_add \
- geany_functions->p_plugin->plugin_timeout_add
-#define plugin_timeout_add_seconds \
- geany_functions->p_plugin->plugin_timeout_add_seconds
-#define plugin_idle_add \
- geany_functions->p_plugin->plugin_idle_add
-#define plugin_builder_connect_signals \
- geany_functions->p_plugin->plugin_builder_connect_signals
-#define document_new_file \
- geany_functions->p_document->document_new_file
-#define document_get_current \
- geany_functions->p_document->document_get_current
-#define document_get_from_page \
- geany_functions->p_document->document_get_from_page
-#define document_find_by_filename \
- geany_functions->p_document->document_find_by_filename
-#define document_find_by_real_path \
- geany_functions->p_document->document_find_by_real_path
-#define document_save_file \
- geany_functions->p_document->document_save_file
-#define document_open_file \
- geany_functions->p_document->document_open_file
-#define document_open_files \
- geany_functions->p_document->document_open_files
-#define document_remove_page \
- geany_functions->p_document->document_remove_page
-#define document_reload_force \
- geany_functions->p_document->document_reload_force
-#define document_set_encoding \
- geany_functions->p_document->document_set_encoding
-#define document_set_text_changed \
- geany_functions->p_document->document_set_text_changed
-#define document_set_filetype \
- geany_functions->p_document->document_set_filetype
-#define document_close \
- geany_functions->p_document->document_close
-#define document_index \
- geany_functions->p_document->document_index
-#define document_save_file_as \
- geany_functions->p_document->document_save_file_as
-#define document_rename_file \
- geany_functions->p_document->document_rename_file
-#define document_get_status_color \
- geany_functions->p_document->document_get_status_color
-#define document_get_basename_for_display \
- geany_functions->p_document->document_get_basename_for_display
-#define document_get_notebook_page \
- geany_functions->p_document->document_get_notebook_page
-#define document_compare_by_display_name \
- geany_functions->p_document->document_compare_by_display_name
-#define document_compare_by_tab_order \
- geany_functions->p_document->document_compare_by_tab_order
-#define document_compare_by_tab_order_reverse \
- geany_functions->p_document->document_compare_by_tab_order_reverse
-#define document_find_by_id \
- geany_functions->p_document->document_find_by_id
-#define editor_get_indent_prefs \
- geany_functions->p_editor->editor_get_indent_prefs
-#define editor_create_widget \
- geany_functions->p_editor->editor_create_widget
-#define editor_indicator_set_on_range \
- geany_functions->p_editor->editor_indicator_set_on_range
-#define editor_indicator_set_on_line \
- geany_functions->p_editor->editor_indicator_set_on_line
-#define editor_indicator_clear \
- geany_functions->p_editor->editor_indicator_clear
-#define editor_set_indent_type \
- geany_functions->p_editor->editor_set_indent_type
-#define editor_get_word_at_pos \
- geany_functions->p_editor->editor_get_word_at_pos
-#define editor_get_eol_char_name \
- geany_functions->p_editor->editor_get_eol_char_name
-#define editor_get_eol_char_len \
- geany_functions->p_editor->editor_get_eol_char_len
-#define editor_get_eol_char \
- geany_functions->p_editor->editor_get_eol_char
-#define editor_insert_text_block \
- geany_functions->p_editor->editor_insert_text_block
-#define editor_get_eol_char_mode \
- geany_functions->p_editor->editor_get_eol_char_mode
-#define editor_goto_pos \
- geany_functions->p_editor->editor_goto_pos
-#define editor_find_snippet \
- geany_functions->p_editor->editor_find_snippet
-#define editor_insert_snippet \
- geany_functions->p_editor->editor_insert_snippet
-#define scintilla_send_message \
- geany_functions->p_scintilla->scintilla_send_message
-#define scintilla_new \
- geany_functions->p_scintilla->scintilla_new
-#define sci_send_command \
- geany_functions->p_sci->sci_send_command
-#define sci_start_undo_action \
- geany_functions->p_sci->sci_start_undo_action
-#define sci_end_undo_action \
- geany_functions->p_sci->sci_end_undo_action
-#define sci_set_text \
- geany_functions->p_sci->sci_set_text
-#define sci_insert_text \
- geany_functions->p_sci->sci_insert_text
-#define sci_get_text \
- geany_functions->p_sci->sci_get_text
-#define sci_get_length \
- geany_functions->p_sci->sci_get_length
-#define sci_get_current_position \
- geany_functions->p_sci->sci_get_current_position
-#define sci_set_current_position \
- geany_functions->p_sci->sci_set_current_position
-#define sci_get_col_from_position \
- geany_functions->p_sci->sci_get_col_from_position
-#define sci_get_line_from_position \
- geany_functions->p_sci->sci_get_line_from_position
-#define sci_get_position_from_line \
- geany_functions->p_sci->sci_get_position_from_line
-#define sci_replace_sel \
- geany_functions->p_sci->sci_replace_sel
-#define sci_get_selected_text \
- geany_functions->p_sci->sci_get_selected_text
-#define sci_get_selected_text_length \
- geany_functions->p_sci->sci_get_selected_text_length
-#define sci_get_selection_start \
- geany_functions->p_sci->sci_get_selection_start
-#define sci_get_selection_end \
- geany_functions->p_sci->sci_get_selection_end
-#define sci_get_selection_mode \
- geany_functions->p_sci->sci_get_selection_mode
-#define sci_set_selection_mode \
- geany_functions->p_sci->sci_set_selection_mode
-#define sci_set_selection_start \
- geany_functions->p_sci->sci_set_selection_start
-#define sci_set_selection_end \
- geany_functions->p_sci->sci_set_selection_end
-#define sci_get_text_range \
- geany_functions->p_sci->sci_get_text_range
-#define sci_get_line \
- geany_functions->p_sci->sci_get_line
-#define sci_get_line_length \
- geany_functions->p_sci->sci_get_line_length
-#define sci_get_line_count \
- geany_functions->p_sci->sci_get_line_count
-#define sci_get_line_is_visible \
- geany_functions->p_sci->sci_get_line_is_visible
-#define sci_ensure_line_is_visible \
- geany_functions->p_sci->sci_ensure_line_is_visible
-#define sci_scroll_caret \
- geany_functions->p_sci->sci_scroll_caret
-#define sci_find_matching_brace \
- geany_functions->p_sci->sci_find_matching_brace
-#define sci_get_style_at \
- geany_functions->p_sci->sci_get_style_at
-#define sci_get_char_at \
- geany_functions->p_sci->sci_get_char_at
-#define sci_get_current_line \
- geany_functions->p_sci->sci_get_current_line
-#define sci_has_selection \
- geany_functions->p_sci->sci_has_selection
-#define sci_get_tab_width \
- geany_functions->p_sci->sci_get_tab_width
-#define sci_indicator_clear \
- geany_functions->p_sci->sci_indicator_clear
-#define sci_indicator_set \
- geany_functions->p_sci->sci_indicator_set
-#define sci_get_contents \
- geany_functions->p_sci->sci_get_contents
-#define sci_get_contents_range \
- geany_functions->p_sci->sci_get_contents_range
-#define sci_get_selection_contents \
- geany_functions->p_sci->sci_get_selection_contents
-#define sci_set_font \
- geany_functions->p_sci->sci_set_font
-#define sci_get_line_end_position \
- geany_functions->p_sci->sci_get_line_end_position
-#define sci_set_target_start \
- geany_functions->p_sci->sci_set_target_start
-#define sci_set_target_end \
- geany_functions->p_sci->sci_set_target_end
-#define sci_replace_target \
- geany_functions->p_sci->sci_replace_target
-#define sci_set_marker_at_line \
- geany_functions->p_sci->sci_set_marker_at_line
-#define sci_delete_marker_at_line \
- geany_functions->p_sci->sci_delete_marker_at_line
-#define sci_is_marker_set_at_line \
- geany_functions->p_sci->sci_is_marker_set_at_line
-#define sci_goto_line \
- geany_functions->p_sci->sci_goto_line
-#define sci_find_text \
- geany_functions->p_sci->sci_find_text
-#define sci_set_line_indentation \
- geany_functions->p_sci->sci_set_line_indentation
-#define sci_get_line_indentation \
- geany_functions->p_sci->sci_get_line_indentation
-#define sci_get_lexer \
- geany_functions->p_sci->sci_get_lexer
-#define templates_get_template_fileheader \
- geany_functions->p_templates->templates_get_template_fileheader
-#define utils_str_equal \
- geany_functions->p_utils->utils_str_equal
-#define utils_string_replace_all \
- geany_functions->p_utils->utils_string_replace_all
-#define utils_get_file_list \
- geany_functions->p_utils->utils_get_file_list
-#define utils_write_file \
- geany_functions->p_utils->utils_write_file
-#define utils_get_locale_from_utf8 \
- geany_functions->p_utils->utils_get_locale_from_utf8
-#define utils_get_utf8_from_locale \
- geany_functions->p_utils->utils_get_utf8_from_locale
-#define utils_remove_ext_from_filename \
- geany_functions->p_utils->utils_remove_ext_from_filename
-#define utils_mkdir \
- geany_functions->p_utils->utils_mkdir
-#define utils_get_setting_boolean \
- geany_functions->p_utils->utils_get_setting_boolean
-#define utils_get_setting_integer \
- geany_functions->p_utils->utils_get_setting_integer
-#define utils_get_setting_string \
- geany_functions->p_utils->utils_get_setting_string
-#define utils_spawn_sync \
- geany_functions->p_utils->utils_spawn_sync
-#define utils_spawn_async \
- geany_functions->p_utils->utils_spawn_async
-#define utils_str_casecmp \
- geany_functions->p_utils->utils_str_casecmp
-#define utils_get_date_time \
- geany_functions->p_utils->utils_get_date_time
-#define utils_open_browser \
- geany_functions->p_utils->utils_open_browser
-#define utils_string_replace_first \
- geany_functions->p_utils->utils_string_replace_first
-#define utils_str_middle_truncate \
- geany_functions->p_utils->utils_str_middle_truncate
-#define utils_str_remove_chars \
- geany_functions->p_utils->utils_str_remove_chars
-#define utils_get_file_list_full \
- geany_functions->p_utils->utils_get_file_list_full
-#define utils_copy_environment \
- geany_functions->p_utils->utils_copy_environment
-#define utils_find_open_xml_tag \
- geany_functions->p_utils->utils_find_open_xml_tag
-#define utils_find_open_xml_tag_pos \
- geany_functions->p_utils->utils_find_open_xml_tag_pos
-#define ui_dialog_vbox_new \
- geany_functions->p_ui->ui_dialog_vbox_new
-#define ui_frame_new_with_alignment \
- geany_functions->p_ui->ui_frame_new_with_alignment
-#define ui_set_statusbar \
- geany_functions->p_ui->ui_set_statusbar
-#define ui_table_add_row \
- geany_functions->p_ui->ui_table_add_row
-#define ui_path_box_new \
- geany_functions->p_ui->ui_path_box_new
-#define ui_button_new_with_image \
- geany_functions->p_ui->ui_button_new_with_image
-#define ui_add_document_sensitive \
- geany_functions->p_ui->ui_add_document_sensitive
-#define ui_widget_set_tooltip_text \
- geany_functions->p_ui->ui_widget_set_tooltip_text
-#define ui_image_menu_item_new \
- geany_functions->p_ui->ui_image_menu_item_new
-#define ui_lookup_widget \
- geany_functions->p_ui->ui_lookup_widget
-#define ui_progress_bar_start \
- geany_functions->p_ui->ui_progress_bar_start
-#define ui_progress_bar_stop \
- geany_functions->p_ui->ui_progress_bar_stop
-#define ui_entry_add_clear_icon \
- geany_functions->p_ui->ui_entry_add_clear_icon
-#define ui_menu_add_document_items \
- geany_functions->p_ui->ui_menu_add_document_items
-#define ui_widget_modify_font_from_string \
- geany_functions->p_ui->ui_widget_modify_font_from_string
-#define ui_is_keyval_enter_or_return \
- geany_functions->p_ui->ui_is_keyval_enter_or_return
-#define ui_get_gtk_settings_integer \
- geany_functions->p_ui->ui_get_gtk_settings_integer
-#define ui_combo_box_add_to_history \
- geany_functions->p_ui->ui_combo_box_add_to_history
-#define ui_menu_add_document_items_sorted \
- geany_functions->p_ui->ui_menu_add_document_items_sorted
-#define ui_lookup_stock_label \
- geany_functions->p_ui->ui_lookup_stock_label
-#define ui_tree_view_set_tooltip_text_column \
- geany_functions->p_ui->ui_tree_view_set_tooltip_text_column
-#define dialogs_show_question \
- geany_functions->p_dialogs->dialogs_show_question
-#define dialogs_show_msgbox \
- geany_functions->p_dialogs->dialogs_show_msgbox
-#define dialogs_show_save_as \
- geany_functions->p_dialogs->dialogs_show_save_as
-#define dialogs_show_input_numeric \
- geany_functions->p_dialogs->dialogs_show_input_numeric
-#define dialogs_show_input \
- geany_functions->p_dialogs->dialogs_show_input
-#define msgwin_status_add \
- geany_functions->p_msgwin->msgwin_status_add
-#define msgwin_compiler_add \
- geany_functions->p_msgwin->msgwin_compiler_add
-#define msgwin_msg_add \
- geany_functions->p_msgwin->msgwin_msg_add
-#define msgwin_clear_tab \
- geany_functions->p_msgwin->msgwin_clear_tab
-#define msgwin_switch_tab \
- geany_functions->p_msgwin->msgwin_switch_tab
-#define msgwin_set_messages_dir \
- geany_functions->p_msgwin->msgwin_set_messages_dir
-#define encodings_convert_to_utf8 \
- geany_functions->p_encodings->encodings_convert_to_utf8
-#define encodings_convert_to_utf8_from_charset \
- geany_functions->p_encodings->encodings_convert_to_utf8_from_charset
-#define encodings_get_charset_from_index \
- geany_functions->p_encodings->encodings_get_charset_from_index
-#define keybindings_send_command \
- geany_functions->p_keybindings->keybindings_send_command
-#define keybindings_set_item \
- geany_functions->p_keybindings->keybindings_set_item
-#define keybindings_get_item \
- geany_functions->p_keybindings->keybindings_get_item
-#define keybindings_get_modifiers \
- geany_functions->p_keybindings->keybindings_get_modifiers
-#define tm_get_real_path \
- geany_functions->p_tm->tm_get_real_path
-#define tm_source_file_new \
- geany_functions->p_tm->tm_source_file_new
-#define tm_source_file_free \
- geany_functions->p_tm->tm_source_file_free
-#define tm_workspace_add_source_file \
- geany_functions->p_tm->tm_workspace_add_source_file
-#define tm_workspace_remove_source_file \
- geany_functions->p_tm->tm_workspace_remove_source_file
-#define tm_workspace_add_source_files \
- geany_functions->p_tm->tm_workspace_add_source_files
-#define tm_workspace_remove_source_files \
- geany_functions->p_tm->tm_workspace_remove_source_files
-#define search_show_find_in_files_dialog \
- geany_functions->p_search->search_show_find_in_files_dialog
-#define highlighting_get_style \
- geany_functions->p_highlighting->highlighting_get_style
-#define highlighting_set_styles \
- geany_functions->p_highlighting->highlighting_set_styles
-#define highlighting_is_string_style \
- geany_functions->p_highlighting->highlighting_is_string_style
-#define highlighting_is_comment_style \
- geany_functions->p_highlighting->highlighting_is_comment_style
-#define highlighting_is_code_style \
- geany_functions->p_highlighting->highlighting_is_code_style
-#define filetypes_detect_from_file \
- geany_functions->p_filetypes->filetypes_detect_from_file
-#define filetypes_lookup_by_name \
- geany_functions->p_filetypes->filetypes_lookup_by_name
-#define filetypes_index \
- geany_functions->p_filetypes->filetypes_index
-#define filetypes_get_display_name \
- geany_functions->p_filetypes->filetypes_get_display_name
-#define filetypes_get_sorted_by_name \
- geany_functions->p_filetypes->filetypes_get_sorted_by_name
-#define navqueue_goto_line \
- geany_functions->p_navqueue->navqueue_goto_line
-#define main_reload_configuration \
- geany_functions->p_main->main_reload_configuration
-#define main_locale_init \
- geany_functions->p_main->main_locale_init
-#define main_is_realized \
- geany_functions->p_main->main_is_realized
-#define stash_group_new \
- geany_functions->p_stash->stash_group_new
-#define stash_group_add_boolean \
- geany_functions->p_stash->stash_group_add_boolean
-#define stash_group_add_integer \
- geany_functions->p_stash->stash_group_add_integer
-#define stash_group_add_string \
- geany_functions->p_stash->stash_group_add_string
-#define stash_group_add_string_vector \
- geany_functions->p_stash->stash_group_add_string_vector
-#define stash_group_load_from_key_file \
- geany_functions->p_stash->stash_group_load_from_key_file
-#define stash_group_save_to_key_file \
- geany_functions->p_stash->stash_group_save_to_key_file
-#define stash_group_free \
- geany_functions->p_stash->stash_group_free
-#define stash_group_load_from_file \
- geany_functions->p_stash->stash_group_load_from_file
-#define stash_group_save_to_file \
- geany_functions->p_stash->stash_group_save_to_file
-#define stash_group_add_toggle_button \
- geany_functions->p_stash->stash_group_add_toggle_button
-#define stash_group_add_radio_buttons \
- geany_functions->p_stash->stash_group_add_radio_buttons
-#define stash_group_add_spin_button_integer \
- geany_functions->p_stash->stash_group_add_spin_button_integer
-#define stash_group_add_combo_box \
- geany_functions->p_stash->stash_group_add_combo_box
-#define stash_group_add_combo_box_entry \
- geany_functions->p_stash->stash_group_add_combo_box_entry
-#define stash_group_add_entry \
- geany_functions->p_stash->stash_group_add_entry
-#define stash_group_add_widget_property \
- geany_functions->p_stash->stash_group_add_widget_property
-#define stash_group_display \
- geany_functions->p_stash->stash_group_display
-#define stash_group_update \
- geany_functions->p_stash->stash_group_update
-#define stash_group_free_settings \
- geany_functions->p_stash->stash_group_free_settings
-#define symbols_get_context_separator \
- geany_functions->p_symbols->symbols_get_context_separator
-#define build_activate_menu_item \
- geany_functions->p_build->build_activate_menu_item
-#define build_get_current_menu_item \
- geany_functions->p_build->build_get_current_menu_item
-#define build_remove_menu_item \
- geany_functions->p_build->build_remove_menu_item
-#define build_set_menu_item \
- geany_functions->p_build->build_set_menu_item
-#define build_get_group_count \
- geany_functions->p_build->build_get_group_count
-#define project_write_config \
- geany_functions->p_project->project_write_config
+/* This remains so that older plugins that contain a `GeanyFunctions *geany_functions;`
+ * variable in their plugin - as was previously required - will still compile
+ * without changes. */
+typedef struct GeanyFunctionsUndefined GeanyFunctions;
-#endif
+#endif /* GEANY_FUNCTIONS */
Modified: plugins/geanyplugin.h
15 lines changed, 12 insertions(+), 3 deletions(-)
===================================================================
@@ -28,27 +28,36 @@
#ifndef GEANY_PLUGIN_H
#define GEANY_PLUGIN_H 1
-/* Note: only include headers that define types or macros, not just functions */
+#ifndef HAVE_PLUGINS
+# define HAVE_PLUGINS 1
+#endif
+
+/* Only include public headers here */
#include "app.h"
+#include "dialogs.h"
#include "document.h"
#include "editor.h"
#include "encodings.h"
#include "filetypes.h"
#include "geany.h"
+#include "geanyfunctions.h"
#include "highlighting.h"
#include "keybindings.h"
+#include "main.h"
#include "msgwindow.h"
+#include "navqueue.h"
#include "plugindata.h"
+#include "pluginutils.h"
#include "prefs.h"
#include "project.h"
+#include "sciwrappers.h"
#include "search.h"
#include "stash.h"
#include "support.h"
+#include "symbols.h"
#include "templates.h"
#include "toolbar.h"
#include "ui_utils.h"
#include "utils.h"
-#include "geanyfunctions.h"
-
#endif
Modified: plugins/genapi.py
98 lines changed, 0 insertions(+), 98 deletions(-)
===================================================================
@@ -1,98 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# genapi.py - this file is part of Geany, a fast and lightweight IDE
-#
-# Copyright 2008-2011 Nick Treleaven <nick.treleaven<at>btinternet.com>
-# Copyright 2008-2011 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# $(Id)
-
-r"""
-Creates macros for each plugin API function pointer, e.g.:
-
-#define plugin_add_toolbar_item \
- geany_functions->p_plugin->plugin_add_toolbar_item
-"""
-
-
-import re
-import sys
-
-
-def get_function_names():
- names = []
- filep = open('../src/plugins.c')
- while 1:
- line = filep.readline()
- if line == "":
- break
- match = re.match("^\t&([a-z][a-z0-9_]+)", line)
- if match:
- symbol = match.group(1)
- if not symbol.endswith('_funcs'):
- names.append(symbol)
- filep.close()
- return names
-
-
-def get_api_tuple(source):
- match = re.match("^([a-z]+)_([a-z][a-z0-9_]+)$", source)
- return 'p_' + match.group(1), match.group(2)
-
-
-header = \
-r'''/* This file is generated automatically by genapi.py - do not edit. */
-
-/** @file %s @ref geany_functions wrappers.
- * This allows the use of normal API function names in plugins by defining macros.
- *
- * E.g.:@code
- * #define plugin_add_toolbar_item \
- * geany_functions->p_plugin->plugin_add_toolbar_item @endcode
- *
- * You need to declare the @ref geany_functions symbol yourself.
- *
- * Note: This must be included after all other API headers to prevent conflicts with
- * other header's function prototypes - this is done for you when using geanyplugin.h.
- */
-
-#ifndef GEANY_FUNCTIONS_H
-#define GEANY_FUNCTIONS_H
-
-'''
-
-if __name__ == "__main__":
- outfile = 'geanyfunctions.h'
-
- fnames = get_function_names()
- if not fnames:
- sys.exit("No function names read!")
-
- f = open(outfile, 'w')
- f.write(header % (outfile))
-
- for fname in fnames:
- ptr, name = get_api_tuple(fname)
- # note: name no longer needed
- f.write('#define %s \\\n\tgeany_functions->%s->%s\n' % (fname, ptr, fname))
-
- f.write('\n#endif\n')
- f.close()
-
- if not '-q' in sys.argv:
- sys.stdout.write('Generated %s\n' % outfile)
Modified: src/Makefile.am
6 lines changed, 6 insertions(+), 0 deletions(-)
===================================================================
@@ -67,6 +67,7 @@ geany_includedir = $(includedir)/geany
geany_include_HEADERS = \
app.h \
build.h \
+ dialogs.h \
document.h \
editor.h \
encodings.h \
@@ -75,13 +76,18 @@ geany_include_HEADERS = \
gtkcompat.h \
highlighting.h \
keybindings.h \
+ main.h \
msgwindow.h \
+ navqueue.h \
plugindata.h \
+ pluginutils.h \
prefs.h \
project.h \
+ sciwrappers.h \
search.h \
stash.h \
support.h \
+ symbols.h \
templates.h \
toolbar.h \
ui_utils.h \
Modified: src/plugindata.h
490 lines changed, 0 insertions(+), 490 deletions(-)
===================================================================
@@ -265,496 +265,6 @@ void plugin_cleanup(void);
#endif
-
-/** This contains pointers to functions owned by Geany for plugins to use.
- * Functions from the core can be appended when needed by plugin authors, but may
- * require some changes. */
-typedef struct GeanyFunctions
-{
- struct DocumentFuncs *p_document; /**< See document.h */
- struct SciFuncs *p_sci; /**< See sciwrappers.h */
- struct TemplateFuncs *p_templates; /**< See templates.h */
- struct UtilsFuncs *p_utils; /**< See utils.h */
- struct UIUtilsFuncs *p_ui; /**< See ui_utils.h */
- /** @deprecated Use ui_lookup_widget() instead. */
- struct SupportFuncs *p_support;
- struct DialogFuncs *p_dialogs; /**< See dialogs.h */
- /** @deprecated Use @ref GeanyFunctions::p_msgwin instead. */
- struct MsgWinFuncs *p_msgwindow;
- struct EncodingFuncs *p_encodings; /**< See encodings.h */
- struct KeybindingFuncs *p_keybindings; /**< See keybindings.h */
- struct TagManagerFuncs *p_tm; /**< See tagmanager/src */
- struct SearchFuncs *p_search; /**< See search.h */
- struct HighlightingFuncs *p_highlighting; /**< See highlighting.h */
- struct FiletypeFuncs *p_filetypes; /**< See filetypes.h */
- struct NavQueueFuncs *p_navqueue; /**< See navqueue.h */
- struct EditorFuncs *p_editor; /**< See editor.h */
- struct MainFuncs *p_main; /**< See main.h */
- struct PluginFuncs *p_plugin; /**< See pluginutils.c */
- struct ScintillaFuncs *p_scintilla; /**< See ScintillaFuncs */
- struct MsgWinFuncs *p_msgwin; /**< See msgwindow.h */
- struct StashFuncs *p_stash; /**< See stash.h */
- struct SymbolsFuncs *p_symbols; /**< See symbols.h */
- struct BuildFuncs *p_build; /**< See build.h */
- struct ProjectFuncs *p_project; /**< See project.h */
-}
-GeanyFunctions;
-
-
-/* For more information about these functions, see the main source code.
- * E.g. for p_document->new_file(), see document_new_file() in document.c. */
-
-/* See document.h */
-typedef struct DocumentFuncs
-{
- struct GeanyDocument* (*document_new_file) (const gchar *utf8_filename, struct GeanyFiletype *ft,
- const gchar *text);
- struct GeanyDocument* (*document_get_current) (void);
- struct GeanyDocument* (*document_get_from_page) (guint page_num);
- struct GeanyDocument* (*document_find_by_filename) (const gchar *utf8_filename);
- struct GeanyDocument* (*document_find_by_real_path) (const gchar *realname);
- gboolean (*document_save_file) (struct GeanyDocument *doc, gboolean force);
- struct GeanyDocument* (*document_open_file) (const gchar *locale_filename, gboolean readonly,
- struct GeanyFiletype *ft, const gchar *forced_enc);
- void (*document_open_files) (const GSList *filenames, gboolean readonly,
- struct GeanyFiletype *ft, const gchar *forced_enc);
- gboolean (*document_remove_page) (guint page_num);
- gboolean (*document_reload_force) (struct GeanyDocument *doc, const gchar *forced_enc);
- void (*document_set_encoding) (struct GeanyDocument *doc, const gchar *new_encoding);
- void (*document_set_text_changed) (struct GeanyDocument *doc, gboolean changed);
- void (*document_set_filetype) (struct GeanyDocument *doc, struct GeanyFiletype *type);
- gboolean (*document_close) (struct GeanyDocument *doc);
- struct GeanyDocument* (*document_index)(gint idx);
- gboolean (*document_save_file_as) (struct GeanyDocument *doc, const gchar *utf8_fname);
- void (*document_rename_file) (struct GeanyDocument *doc, const gchar *new_filename);
- const GdkColor* (*document_get_status_color) (struct GeanyDocument *doc);
- gchar* (*document_get_basename_for_display) (struct GeanyDocument *doc, gint length);
- gint (*document_get_notebook_page) (struct GeanyDocument *doc);
- gint (*document_compare_by_display_name) (gconstpointer a, gconstpointer b);
- gint (*document_compare_by_tab_order) (gconstpointer a, gconstpointer b);
- gint (*document_compare_by_tab_order_reverse) (gconstpointer a, gconstpointer b);
- GeanyDocument* (*document_find_by_id)(guint id);
-}
-DocumentFuncs;
-
-
-struct _ScintillaObject;
-
-/** See http://scintilla.org for the full documentation. */
-typedef struct ScintillaFuncs
-{
- /** Send Scintilla a message. */
- long int (*scintilla_send_message) (struct _ScintillaObject *sci, unsigned int iMessage,
- long unsigned int wParam, long int lParam);
- /** Create a new ScintillaObject widget. */
- GtkWidget* (*scintilla_new)(void);
-}
-ScintillaFuncs;
-
-
-/** Wrapper functions for Scintilla messages.
- * See sciwrappers.h for the list of functions. */
-typedef struct SciFuncs
-{
- /** @deprecated Use @c scintilla_send_message() instead. */
- long int (*sci_send_message) (struct _ScintillaObject *sci, unsigned int iMessage,
- long unsigned int wParam, long int lParam);
- void (*sci_send_command) (struct _ScintillaObject *sci, gint cmd);
-
- void (*sci_start_undo_action) (struct _ScintillaObject *sci);
- void (*sci_end_undo_action) (struct _ScintillaObject *sci);
- void (*sci_set_text) (struct _ScintillaObject *sci, const gchar *text);
- void (*sci_insert_text) (struct _ScintillaObject *sci, gint pos, const gchar *text);
- void (*sci_get_text) (struct _ScintillaObject *sci, gint len, gchar *text);
- gint (*sci_get_length) (struct _ScintillaObject *sci);
- gint (*sci_get_current_position) (struct _ScintillaObject *sci);
- void (*sci_set_current_position) (struct _ScintillaObject *sci, gint position,
- gboolean scroll_to_caret);
- gint (*sci_get_col_from_position) (struct _ScintillaObject *sci, gint position);
- gint (*sci_get_line_from_position) (struct _ScintillaObject *sci, gint position);
- gint (*sci_get_position_from_line) (struct _ScintillaObject *sci, gint line);
- void (*sci_replace_sel) (struct _ScintillaObject *sci, const gchar *text);
- void (*sci_get_selected_text) (struct _ScintillaObject *sci, gchar *text);
- gint (*sci_get_selected_text_length) (struct _ScintillaObject *sci);
- gint (*sci_get_selection_start) (struct _ScintillaObject *sci);
- gint (*sci_get_selection_end) (struct _ScintillaObject *sci);
- gint (*sci_get_selection_mode) (struct _ScintillaObject *sci);
- void (*sci_set_selection_mode) (struct _ScintillaObject *sci, gint mode);
- void (*sci_set_selection_start) (struct _ScintillaObject *sci, gint position);
- void (*sci_set_selection_end) (struct _ScintillaObject *sci, gint position);
- void (*sci_get_text_range) (struct _ScintillaObject *sci, gint start, gint end, gchar *text);
- gchar* (*sci_get_line) (struct _ScintillaObject *sci, gint line_num);
- gint (*sci_get_line_length) (struct _ScintillaObject *sci, gint line);
- gint (*sci_get_line_count) (struct _ScintillaObject *sci);
- gboolean (*sci_get_line_is_visible) (struct _ScintillaObject *sci, gint line);
- void (*sci_ensure_line_is_visible) (struct _ScintillaObject *sci, gint line);
- void (*sci_scroll_caret) (struct _ScintillaObject *sci);
- gint (*sci_find_matching_brace) (struct _ScintillaObject *sci, gint pos);
- gint (*sci_get_style_at) (struct _ScintillaObject *sci, gint position);
- gchar (*sci_get_char_at) (struct _ScintillaObject *sci, gint pos);
- gint (*sci_get_current_line) (struct _ScintillaObject *sci);
- gboolean (*sci_has_selection) (struct _ScintillaObject *sci);
- gint (*sci_get_tab_width) (struct _ScintillaObject *sci);
- void (*sci_indicator_clear) (struct _ScintillaObject *sci, gint start, gint end);
- void (*sci_indicator_set) (struct _ScintillaObject *sci, gint indic);
- gchar* (*sci_get_contents) (struct _ScintillaObject *sci, gint len);
- gchar* (*sci_get_contents_range) (struct _ScintillaObject *sci, gint start, gint end);
- gchar* (*sci_get_selection_contents) (struct _ScintillaObject *sci);
- void (*sci_set_font) (struct _ScintillaObject *sci, gint style, const gchar *font, gint size);
- gint (*sci_get_line_end_position) (struct _ScintillaObject *sci, gint line);
- void (*sci_set_target_start) (struct _ScintillaObject *sci, gint start);
- void (*sci_set_target_end) (struct _ScintillaObject *sci, gint end);
- gint (*sci_replace_target) (struct _ScintillaObject *sci, const gchar *text, gboolean regex);
- void (*sci_set_marker_at_line) (struct _ScintillaObject *sci, gint line_number, gint marker);
- void (*sci_delete_marker_at_line) (struct _ScintillaObject *sci, gint line_number, gint marker);
- gboolean (*sci_is_marker_set_at_line) (struct _ScintillaObject *sci, gint line, gint marker);
- void (*sci_goto_line) (struct _ScintillaObject *sci, gint line, gboolean unfold);
- gint (*sci_find_text) (struct _ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf);
- void (*sci_set_line_indentation) (struct _ScintillaObject *sci, gint line, gint indent);
- gint (*sci_get_line_indentation) (struct _ScintillaObject *sci, gint line);
- gint (*sci_get_lexer) (struct _ScintillaObject *sci);
-}
-SciFuncs;
-
-
-/* See templates.h */
-typedef struct TemplateFuncs
-{
- gchar* (*templates_get_template_fileheader) (gint filetype_idx, const gchar *fname);
-}
-TemplateFuncs;
-
-
-/* See utils.h */
-typedef struct UtilsFuncs
-{
- gboolean (*utils_str_equal) (const gchar *a, const gchar *b);
- guint (*utils_string_replace_all) (GString *haystack, const gchar *needle,
- const gchar *replacement);
- GSList* (*utils_get_file_list) (const gchar *path, guint *length, GError **error);
- gint (*utils_write_file) (const gchar *filename, const gchar *text);
- gchar* (*utils_get_locale_from_utf8) (const gchar *utf8_text);
- gchar* (*utils_get_utf8_from_locale) (const gchar *locale_text);
- gchar* (*utils_remove_ext_from_filename) (const gchar *filename);
- gint (*utils_mkdir) (const gchar *path, gboolean create_parent_dirs);
- gboolean (*utils_get_setting_boolean) (GKeyFile *config, const gchar *section, const gchar *key,
- const gboolean default_value);
- gint (*utils_get_setting_integer) (GKeyFile *config, const gchar *section, const gchar *key,
- const gint default_value);
- gchar* (*utils_get_setting_string) (GKeyFile *config, const gchar *section, const gchar *key,
- const gchar *default_value);
- gboolean (*utils_spawn_sync) (const gchar *dir, gchar **argv, gchar **env, GSpawnFlags flags,
- GSpawnChildSetupFunc child_setup, gpointer user_data, gchar **std_out,
- gchar **std_err, gint *exit_status, GError **error);
- gboolean (*utils_spawn_async) (const gchar *dir, gchar **argv, gchar **env, GSpawnFlags flags,
- GSpawnChildSetupFunc child_setup, gpointer user_data, GPid *child_pid,
- GError **error);
- gint (*utils_str_casecmp) (const gchar *s1, const gchar *s2);
- gchar* (*utils_get_date_time) (const gchar *format, time_t *time_to_use);
- void (*utils_open_browser) (const gchar *uri);
- guint (*utils_string_replace_first) (GString *haystack, const gchar *needle,
- const gchar *replace);
- gchar* (*utils_str_middle_truncate) (const gchar *string, guint truncate_length);
- gchar* (*utils_str_remove_chars) (gchar *string, const gchar *chars);
- GSList* (*utils_get_file_list_full)(const gchar *path, gboolean full_path, gboolean sort,
- GError **error);
- gchar** (*utils_copy_environment)(const gchar **exclude_vars, const gchar *first_varname, ...);
- gchar* (*utils_find_open_xml_tag) (const gchar sel[], gint size);
- const gchar* (*utils_find_open_xml_tag_pos) (const gchar sel[], gint size);
-}
-UtilsFuncs;
-
-
-/* See main.h */
-typedef struct MainFuncs
-{
- void (*main_reload_configuration) (void);
- void (*main_locale_init) (const gchar *locale_dir, const gchar *package);
- gboolean (*main_is_realized) (void);
-}
-MainFuncs;
-
-
-/* See ui_utils.h */
-typedef struct UIUtilsFuncs
-{
- GtkWidget* (*ui_dialog_vbox_new) (GtkDialog *dialog);
- GtkWidget* (*ui_frame_new_with_alignment) (const gchar *label_text, GtkWidget **alignment);
- void (*ui_set_statusbar) (gboolean log, const gchar *format, ...) G_GNUC_PRINTF (2, 3);
- void (*ui_table_add_row) (GtkTable *table, gint row, ...) G_GNUC_NULL_TERMINATED;
- GtkWidget* (*ui_path_box_new) (const gchar *title, GtkFileChooserAction action, GtkEntry *entry);
- GtkWidget* (*ui_button_new_with_image) (const gchar *stock_id, const gchar *text);
- void (*ui_add_document_sensitive) (GtkWidget *widget);
- void (*ui_widget_set_tooltip_text) (GtkWidget *widget, const gchar *text);
- GtkWidget* (*ui_image_menu_item_new) (const gchar *stock_id, const gchar *label);
- GtkWidget* (*ui_lookup_widget) (GtkWidget *widget, const gchar *widget_name);
- void (*ui_progress_bar_start) (const gchar *text);
- void (*ui_progress_bar_stop) (void);
- void (*ui_entry_add_clear_icon) (GtkEntry *entry);
- void (*ui_menu_add_document_items) (GtkMenu *menu, struct GeanyDocument *active,
- GCallback callback);
- void (*ui_widget_modify_font_from_string) (GtkWidget *widget, const gchar *str);
- gboolean (*ui_is_keyval_enter_or_return) (guint keyval);
- gint (*ui_get_gtk_settings_integer) (const gchar *property_name, gint default_value);
- void (*ui_combo_box_add_to_history) (GtkComboBoxText *combo_entry,
- const gchar *text, gint history_len);
- void (*ui_menu_add_document_items_sorted) (GtkMenu *menu, struct GeanyDocument *active,
- GCallback callback, GCompareFunc compare_func);
- const gchar* (*ui_lookup_stock_label)(const gchar *stock_id);
- void (*ui_tree_view_set_tooltip_text_column) (GtkTreeView *tree_view, gint column);
-}
-UIUtilsFuncs;
-
-
-/* See dialogs.h */
-typedef struct DialogFuncs
-{
- gboolean (*dialogs_show_question) (const gchar *text, ...) G_GNUC_PRINTF (1, 2);
- void (*dialogs_show_msgbox) (GtkMessageType type, const gchar *text, ...) G_GNUC_PRINTF (2, 3);
- gboolean (*dialogs_show_save_as) (void);
- gboolean (*dialogs_show_input_numeric) (const gchar *title, const gchar *label_text,
- gdouble *value, gdouble min, gdouble max, gdouble step);
- gchar* (*dialogs_show_input)(const gchar *title, GtkWindow *parent, const gchar *label_text,
- const gchar *default_text);
-}
-DialogFuncs;
-
-
-/* @deprecated Use ui_lookup_widget() instead. */
-typedef struct SupportFuncs
-{
- GtkWidget* (*support_lookup_widget) (GtkWidget *widget, const gchar *widget_name);
-}
-SupportFuncs;
-
-
-/* See msgwindow.h */
-typedef struct MsgWinFuncs
-{
- /* status_add() does not set the status bar - use ui->set_statusbar() instead. */
- void (*msgwin_status_add) (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
- void (*msgwin_compiler_add) (gint msg_color, const gchar *format, ...) G_GNUC_PRINTF (2, 3);
- void (*msgwin_msg_add) (gint msg_color, gint line, struct GeanyDocument *doc,
- const gchar *format, ...) G_GNUC_PRINTF (4, 5);
- void (*msgwin_clear_tab) (gint tabnum);
- void (*msgwin_switch_tab) (gint tabnum, gboolean show);
- void (*msgwin_set_messages_dir) (const gchar *messages_dir);
-}
-MsgWinFuncs;
-
-
-/* See encodings.h */
-typedef struct EncodingFuncs
-{
- gchar* (*encodings_convert_to_utf8) (const gchar *buffer, gssize size, gchar **used_encoding);
- gchar* (*encodings_convert_to_utf8_from_charset) (const gchar *buffer, gssize size,
- const gchar *charset, gboolean fast);
- const gchar* (*encodings_get_charset_from_index) (gint idx);
-}
-EncodingFuncs;
-
-
-struct GeanyKeyGroup;
-/* avoid including keybindings.h */
-typedef void (*_GeanyKeyCallback) (guint key_id);
-
-/* See keybindings.h */
-typedef struct KeybindingFuncs
-{
- void (*keybindings_send_command) (guint group_id, guint key_id);
- struct GeanyKeyBinding* (*keybindings_set_item) (struct GeanyKeyGroup *group, gsize key_id,
- _GeanyKeyCallback callback, guint key, GdkModifierType mod,
- const gchar *name, const gchar *label, GtkWidget *menu_item);
- struct GeanyKeyBinding* (*keybindings_get_item)(struct GeanyKeyGroup *group, gsize key_id);
- GdkModifierType (*keybindings_get_modifiers)(GdkModifierType mods);
-}
-KeybindingFuncs;
-
-
-/* See highlighting.h */
-typedef struct HighlightingFuncs
-{
- const struct GeanyLexerStyle* (*highlighting_get_style) (gint ft_id, gint style_id);
- void (*highlighting_set_styles) (struct _ScintillaObject *sci, struct GeanyFiletype *ft);
- gboolean (*highlighting_is_string_style) (gint lexer, gint style);
- gboolean (*highlighting_is_comment_style) (gint lexer, gint style);
- gboolean (*highlighting_is_code_style) (gint lexer, gint style);
-}
-HighlightingFuncs;
-
-
-/* See filetypes.h */
-typedef struct FiletypeFuncs
-{
- GeanyFiletype* (*filetypes_detect_from_file) (const gchar *utf8_filename);
- GeanyFiletype* (*filetypes_lookup_by_name) (const gchar *name);
- GeanyFiletype* (*filetypes_index)(gint idx);
- const gchar* (*filetypes_get_display_name)(GeanyFiletype *ft);
- const GSList* (*filetypes_get_sorted_by_name)(void);
- /* Remember to convert any filetype_id arguments to GeanyFiletype pointers in any
- * appended functions */
-}
-FiletypeFuncs;
-
-
-/* See search.h */
-typedef struct SearchFuncs
-{
- void (*search_show_find_in_files_dialog) (const gchar *dir);
-}
-SearchFuncs;
-
-
-/* See tagmanager/include */
-typedef struct TagManagerFuncs
-{
- gchar* (*tm_get_real_path) (const gchar *file_name);
- TMSourceFile* (*tm_source_file_new) (const char *file_name, const char *name);
- void (*tm_source_file_free) (TMSourceFile *source_file);
- void (*tm_workspace_add_source_file) (TMSourceFile *source_file);
- void (*tm_workspace_remove_source_file) (TMSourceFile *source_file);
- void (*tm_workspace_add_source_files) (GPtrArray *source_files);
- void (*tm_workspace_remove_source_files) (GPtrArray *source_files);
-}
-TagManagerFuncs;
-
-
-/* See navqueue.h */
-typedef struct NavQueueFuncs
-{
- gboolean (*navqueue_goto_line) (struct GeanyDocument *old_doc, struct GeanyDocument *new_doc,
- gint line);
-}
-NavQueueFuncs;
-
-
-struct GeanyEditor;
-
-/* See editor.h */
-typedef struct EditorFuncs
-{
- const struct GeanyIndentPrefs* (*editor_get_indent_prefs)(struct GeanyEditor *editor);
- struct _ScintillaObject* (*editor_create_widget)(struct GeanyEditor *editor);
-
- void (*editor_indicator_set_on_range) (struct GeanyEditor *editor, gint indic, gint start, gint end);
- void (*editor_indicator_set_on_line) (struct GeanyEditor *editor, gint indic, gint line);
- void (*editor_indicator_clear) (struct GeanyEditor *editor, gint indic);
-
- void (*editor_set_indent_type)(struct GeanyEditor *editor, GeanyIndentType type);
- gchar* (*editor_get_word_at_pos) (struct GeanyEditor *editor, gint pos, const gchar *wordchars);
-
- const gchar* (*editor_get_eol_char_name) (struct GeanyEditor *editor);
- gint (*editor_get_eol_char_len) (struct GeanyEditor *editor);
- const gchar* (*editor_get_eol_char) (struct GeanyEditor *editor);
-
- void (*editor_insert_text_block) (struct GeanyEditor *editor, const gchar *text,
- gint insert_pos, gint cursor_index, gint newline_indent_size,
- gboolean replace_newlines);
-
- gint (*editor_get_eol_char_mode) (struct GeanyEditor *editor);
- gboolean (*editor_goto_pos) (struct GeanyEditor *editor, gint pos, gboolean mark);
-
- const gchar* (*editor_find_snippet) (struct GeanyEditor *editor, const gchar *snippet_name);
- void (*editor_insert_snippet) (struct GeanyEditor *editor, gint pos, const gchar *snippet);
-}
-EditorFuncs;
-
-
-/* avoid including keybindings.h */
-typedef gboolean (*_GeanyKeyGroupCallback) (guint key_id);
-
-/* See pluginutils.c */
-typedef struct PluginFuncs
-{
- void (*plugin_add_toolbar_item)(GeanyPlugin *plugin, GtkToolItem *item);
- void (*plugin_module_make_resident) (GeanyPlugin *plugin);
- void (*plugin_signal_connect) (GeanyPlugin *plugin,
- GObject *object, const gchar *signal_name, gboolean after,
- GCallback callback, gpointer user_data);
- struct GeanyKeyGroup* (*plugin_set_key_group)(GeanyPlugin *plugin,
- const gchar *section_name, gsize count, _GeanyKeyGroupCallback callback);
- void (*plugin_show_configure)(GeanyPlugin *plugin);
- guint (*plugin_timeout_add) (GeanyPlugin *plugin, guint interval, GSourceFunc function,
- gpointer data);
- guint (*plugin_timeout_add_seconds) (GeanyPlugin *plugin, guint interval,
- GSourceFunc function, gpointer data);
- guint (*plugin_idle_add) (GeanyPlugin *plugin, GSourceFunc function, gpointer data);
- void (*plugin_builder_connect_signals) (GeanyPlugin *plugin, GtkBuilder *builder, gpointer user_data);
-}
-PluginFuncs;
-
-
-struct StashGroup;
-
-/* See stash.h */
-typedef struct StashFuncs
-{
- struct StashGroup *(*stash_group_new)(const gchar *name);
- void (*stash_group_add_boolean)(struct StashGroup *group, gboolean *setting,
- const gchar *key_name, gboolean default_value);
- void (*stash_group_add_integer)(struct StashGroup *group, gint *setting,
- const gchar *key_name, gint default_value);
- void (*stash_group_add_string)(struct StashGroup *group, gchar **setting,
- const gchar *key_name, const gchar *default_value);
- void (*stash_group_add_string_vector)(struct StashGroup *group, gchar ***setting,
- const gchar *key_name, const gchar **default_value);
- void (*stash_group_load_from_key_file)(struct StashGroup *group, GKeyFile *keyfile);
- void (*stash_group_save_to_key_file)(struct StashGroup *group, GKeyFile *keyfile);
- void (*stash_group_free)(struct StashGroup *group);
- gboolean (*stash_group_load_from_file)(struct StashGroup *group, const gchar *filename);
- gint (*stash_group_save_to_file)(struct StashGroup *group, const gchar *filename,
- GKeyFileFlags flags);
- void (*stash_group_add_toggle_button)(struct StashGroup *group, gboolean *setting,
- const gchar *key_name, gboolean default_value, gconstpointer widget_id);
- void (*stash_group_add_radio_buttons)(struct StashGroup *group, gint *setting,
- const gchar *key_name, gint default_value,
- gconstpointer widget_id, gint enum_id, ...) G_GNUC_NULL_TERMINATED;
- void (*stash_group_add_spin_button_integer)(struct StashGroup *group, gint *setting,
- const gchar *key_name, gint default_value, gconstpointer widget_id);
- void (*stash_group_add_combo_box)(struct StashGroup *group, gint *setting,
- const gchar *key_name, gint default_value, gconstpointer widget_id);
- void (*stash_group_add_combo_box_entry)(struct StashGroup *group, gchar **setting,
- const gchar *key_name, const gchar *default_value, gconstpointer widget_id);
- void (*stash_group_add_entry)(struct StashGroup *group, gchar **setting,
- const gchar *key_name, const gchar *default_value, gconstpointer widget_id);
- void (*stash_group_add_widget_property)(struct StashGroup *group, gpointer setting,
- const gchar *key_name, gpointer default_value, gconstpointer widget_id,
- const gchar *property_name, GType type);
- void (*stash_group_display)(struct StashGroup *group, GtkWidget *owner);
- void (*stash_group_update)(struct StashGroup *group, GtkWidget *owner);
- void (*stash_group_free_settings)(struct StashGroup *group);
-}
-StashFuncs;
-
-
-/* See symbols.h */
-typedef struct SymbolsFuncs
-{
- const gchar* (*symbols_get_context_separator)(gint ft_id);
-}
-SymbolsFuncs;
-
-/* See build.h */
-typedef struct BuildFuncs
-{
- void (*build_activate_menu_item)(const GeanyBuildGroup grp, const guint cmd);
- const gchar *(*build_get_current_menu_item)(const GeanyBuildGroup grp, const guint cmd,
- const GeanyBuildCmdEntries field);
- void (*build_remove_menu_item)(const GeanyBuildSource src, const GeanyBuildGroup grp,
- const gint cmd);
- void (*build_set_menu_item)(const GeanyBuildSource src, const GeanyBuildGroup grp,
- const guint cmd, const GeanyBuildCmdEntries field, const gchar *value);
- guint (*build_get_group_count)(const GeanyBuildGroup grp);
-}
-BuildFuncs;
-
-/* See project.h */
-typedef struct ProjectFuncs
-{
- void (*project_write_config)(void);
-}
-ProjectFuncs;
-
/* Deprecated aliases */
#ifndef GEANY_DISABLE_DEPRECATED
Modified: src/plugins.c
326 lines changed, 1 insertions(+), 325 deletions(-)
===================================================================
@@ -75,326 +75,6 @@ static GtkWidget *menu_separator = NULL;
static gchar *get_plugin_path(void);
static void pm_show_dialog(GtkMenuItem *menuitem, gpointer user_data);
-
-static PluginFuncs plugin_funcs = {
- &plugin_add_toolbar_item,
- &plugin_module_make_resident,
- &plugin_signal_connect,
- &plugin_set_key_group,
- &plugin_show_configure,
- &plugin_timeout_add,
- &plugin_timeout_add_seconds,
- &plugin_idle_add,
- &plugin_builder_connect_signals
-};
-
-static DocumentFuncs doc_funcs = {
- &document_new_file,
- &document_get_current,
- &document_get_from_page,
- &document_find_by_filename,
- &document_find_by_real_path,
- &document_save_file,
- &document_open_file,
- &document_open_files,
- &document_remove_page,
- &document_reload_force,
- &document_set_encoding,
- &document_set_text_changed,
- &document_set_filetype,
- &document_close,
- &document_index,
- &document_save_file_as,
- &document_rename_file,
- &document_get_status_color,
- &document_get_basename_for_display,
- &document_get_notebook_page,
- &document_compare_by_display_name,
- &document_compare_by_tab_order,
- &document_compare_by_tab_order_reverse,
- &document_find_by_id
-};
-
-static EditorFuncs editor_funcs = {
- &editor_get_indent_prefs,
- &editor_create_widget,
- &editor_indicator_set_on_range,
- &editor_indicator_set_on_line,
- &editor_indicator_clear,
- &editor_set_indent_type,
- &editor_get_word_at_pos,
- &editor_get_eol_char_name,
- &editor_get_eol_char_len,
- &editor_get_eol_char,
- &editor_insert_text_block,
- &editor_get_eol_char_mode,
- &editor_goto_pos,
- &editor_find_snippet,
- &editor_insert_snippet
-};
-
-static ScintillaFuncs scintilla_funcs = {
- &scintilla_send_message,
- &scintilla_new
-};
-
-/* Macro to prevent a duplicate macro being generated in geanyfunctions.h */
-#define _scintilla_send_message_macro scintilla_send_message
-
-static SciFuncs sci_funcs = {
- &_scintilla_send_message_macro,
- &sci_send_command,
- &sci_start_undo_action,
- &sci_end_undo_action,
- &sci_set_text,
- &sci_insert_text,
- &sci_get_text,
- &sci_get_length,
- &sci_get_current_position,
- &sci_set_current_position,
- &sci_get_col_from_position,
- &sci_get_line_from_position,
- &sci_get_position_from_line,
- &sci_replace_sel,
- &sci_get_selected_text,
- &sci_get_selected_text_length,
- &sci_get_selection_start,
- &sci_get_selection_end,
- &sci_get_selection_mode,
- &sci_set_selection_mode,
- &sci_set_selection_start,
- &sci_set_selection_end,
- &sci_get_text_range,
- &sci_get_line,
- &sci_get_line_length,
- &sci_get_line_count,
- &sci_get_line_is_visible,
- &sci_ensure_line_is_visible,
- &sci_scroll_caret,
- &sci_find_matching_brace,
- &sci_get_style_at,
- &sci_get_char_at,
- &sci_get_current_line,
- &sci_has_selection,
- &sci_get_tab_width,
- &sci_indicator_clear,
- &sci_indicator_set,
- &sci_get_contents,
- &sci_get_contents_range,
- &sci_get_selection_contents,
- &sci_set_font,
- &sci_get_line_end_position,
- &sci_set_target_start,
- &sci_set_target_end,
- &sci_replace_target,
- &sci_set_marker_at_line,
- &sci_delete_marker_at_line,
- &sci_is_marker_set_at_line,
- &sci_goto_line,
- &sci_find_text,
- &sci_set_line_indentation,
- &sci_get_line_indentation,
- &sci_get_lexer
-};
-
-static TemplateFuncs template_funcs = {
- &templates_get_template_fileheader
-};
-
-static UtilsFuncs utils_funcs = {
- &utils_str_equal,
- &utils_string_replace_all,
- &utils_get_file_list,
- &utils_write_file,
- &utils_get_locale_from_utf8,
- &utils_get_utf8_from_locale,
- &utils_remove_ext_from_filename,
- &utils_mkdir,
- &utils_get_setting_boolean,
- &utils_get_setting_integer,
- &utils_get_setting_string,
- &utils_spawn_sync,
- &utils_spawn_async,
- &utils_str_casecmp,
- &utils_get_date_time,
- &utils_open_browser,
- &utils_string_replace_first,
- &utils_str_middle_truncate,
- &utils_str_remove_chars,
- &utils_get_file_list_full,
- &utils_copy_environment,
- &utils_find_open_xml_tag,
- &utils_find_open_xml_tag_pos
-};
-
-static UIUtilsFuncs uiutils_funcs = {
- &ui_dialog_vbox_new,
- &ui_frame_new_with_alignment,
- &ui_set_statusbar,
- &ui_table_add_row,
- &ui_path_box_new,
- &ui_button_new_with_image,
- &ui_add_document_sensitive,
- &ui_widget_set_tooltip_text,
- &ui_image_menu_item_new,
- &ui_lookup_widget,
- &ui_progress_bar_start,
- &ui_progress_bar_stop,
- &ui_entry_add_clear_icon,
- &ui_menu_add_document_items,
- &ui_widget_modify_font_from_string,
- &ui_is_keyval_enter_or_return,
- &ui_get_gtk_settings_integer,
- &ui_combo_box_add_to_history,
- &ui_menu_add_document_items_sorted,
- &ui_lookup_stock_label,
- &ui_tree_view_set_tooltip_text_column
-};
-
-static DialogFuncs dialog_funcs = {
- &dialogs_show_question,
- &dialogs_show_msgbox,
- &dialogs_show_save_as,
- &dialogs_show_input_numeric,
- &dialogs_show_input
-};
-
-/* Macro to prevent confusing macro being generated in geanyfunctions.h */
-#define _lookup_widget_macro ui_lookup_widget
-
-/* deprecated */
-static SupportFuncs support_funcs = {
- &_lookup_widget_macro
-};
-
-static MsgWinFuncs msgwin_funcs = {
- &msgwin_status_add,
- &msgwin_compiler_add,
- &msgwin_msg_add,
- &msgwin_clear_tab,
- &msgwin_switch_tab,
- &msgwin_set_messages_dir
-};
-
-static EncodingFuncs encoding_funcs = {
- &encodings_convert_to_utf8,
- &encodings_convert_to_utf8_from_charset,
- &encodings_get_charset_from_index
-};
-
-static KeybindingFuncs keybindings_funcs = {
- &keybindings_send_command,
- &keybindings_set_item,
- &keybindings_get_item,
- &keybindings_get_modifiers
-};
-
-static TagManagerFuncs tagmanager_funcs = {
- &tm_get_real_path,
- &tm_source_file_new,
- &tm_source_file_free,
- &tm_workspace_add_source_file,
- &tm_workspace_remove_source_file,
- &tm_workspace_add_source_files,
- &tm_workspace_remove_source_files
-};
-
-static SearchFuncs search_funcs = {
- &search_show_find_in_files_dialog
-};
-
-static HighlightingFuncs highlighting_funcs = {
- &highlighting_get_style,
- &highlighting_set_styles,
- &highlighting_is_string_style,
- &highlighting_is_comment_style,
- &highlighting_is_code_style
-};
-
-static FiletypeFuncs filetype_funcs = {
- &filetypes_detect_from_file,
- &filetypes_lookup_by_name,
- &filetypes_index,
- &filetypes_get_display_name,
- &filetypes_get_sorted_by_name
-};
-
-static NavQueueFuncs navqueue_funcs = {
- &navqueue_goto_line
-};
-
-static MainFuncs main_funcs = {
- &main_reload_configuration,
- &main_locale_init,
- &main_is_realized
-};
-
-static StashFuncs stash_funcs = {
- &stash_group_new,
- &stash_group_add_boolean,
- &stash_group_add_integer,
- &stash_group_add_string,
- &stash_group_add_string_vector,
- &stash_group_load_from_key_file,
- &stash_group_save_to_key_file,
- &stash_group_free,
- &stash_group_load_from_file,
- &stash_group_save_to_file,
- &stash_group_add_toggle_button,
- &stash_group_add_radio_buttons,
- &stash_group_add_spin_button_integer,
- &stash_group_add_combo_box,
- &stash_group_add_combo_box_entry,
- &stash_group_add_entry,
- &stash_group_add_widget_property,
- &stash_group_display,
- &stash_group_update,
- &stash_group_free_settings
-};
-
-static SymbolsFuncs symbols_funcs = {
- &symbols_get_context_separator
-};
-
-static BuildFuncs build_funcs = {
- &build_activate_menu_item,
- &build_get_current_menu_item,
- &build_remove_menu_item,
- &build_set_menu_item,
- &build_get_group_count
-};
-
-static ProjectFuncs project_funcs = {
- &project_write_config
-};
-
-static GeanyFunctions geany_functions = {
- &doc_funcs,
- &sci_funcs,
- &template_funcs,
- &utils_funcs,
- &uiutils_funcs,
- &support_funcs,
- &dialog_funcs,
- &msgwin_funcs,
- &encoding_funcs,
- &keybindings_funcs,
- &tagmanager_funcs,
- &search_funcs,
- &highlighting_funcs,
- &filetype_funcs,
- &navqueue_funcs,
- &editor_funcs,
- &main_funcs,
- &plugin_funcs,
- &scintilla_funcs,
- &msgwin_funcs,
- &stash_funcs,
- &symbols_funcs,
- &build_funcs,
- &project_funcs
-};
-
static GeanyData geany_data;
@@ -598,7 +278,7 @@ plugin_load(Plugin *plugin)
PluginFields **plugin_fields;
/* set these symbols before plugin_init() is called
- * we don't set geany_functions and geany_data since they are set directly by plugin_new() */
+ * we don't set geany_data since it is set directly by plugin_new() */
g_module_symbol(plugin->module, "geany_plugin", (void *) &p_geany_plugin);
if (p_geany_plugin)
*p_geany_plugin = &plugin->public;
@@ -663,7 +343,6 @@ plugin_new(const gchar *fname, gboolean load_plugin, gboolean add_to_list)
Plugin *plugin;
GModule *module;
GeanyData **p_geany_data;
- GeanyFunctions **p_geany_functions;
void (*plugin_set_info)(PluginInfo*);
g_return_val_if_fail(fname, NULL);
@@ -731,9 +410,6 @@ plugin_new(const gchar *fname, gboolean load_plugin, gboolean add_to_list)
g_module_symbol(module, "geany_data", (void *) &p_geany_data);
if (p_geany_data)
*p_geany_data = &geany_data;
- g_module_symbol(module, "geany_functions", (void *) &p_geany_functions);
- if (p_geany_functions)
- *p_geany_functions = &geany_functions;
/* read plugin name, etc. */
plugin_set_info(&plugin->info);
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list