Merge branch 'kugel-/linkage-cleanup_rebase-for-merge'
This merges PR#429 with only small history cleanup (no code changes), and ABI bump. Closes #355, #358 and #429.
This commit is contained in:
commit
f3078ebbc6
1
.gitignore
vendored
1
.gitignore
vendored
@ -92,6 +92,7 @@ Makefile.in
|
||||
# /src/
|
||||
#-----------------------------------------------------------------------
|
||||
/src/geany
|
||||
/src/signallist.i
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# /doc/
|
||||
|
@ -24,6 +24,7 @@ fi
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
m4_ifdef([AM_PROG_AR],[AM_PROG_AR])
|
||||
LT_INIT
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_C99
|
||||
AM_PROG_CC_C_O
|
||||
@ -74,7 +75,7 @@ AM_CONDITIONAL([GTK3], [test "x$gtk_package" = "xgtk+-3.0"])
|
||||
|
||||
# GTK/GLib/GIO checks
|
||||
gtk_modules="$gtk_package >= $gtk_min_version glib-2.0 >= 2.20"
|
||||
gtk_modules_private="gio-2.0 >= 2.20 gmodule-2.0"
|
||||
gtk_modules_private="gio-2.0 >= 2.20 gmodule-no-export-2.0"
|
||||
PKG_CHECK_MODULES([GTK], [$gtk_modules $gtk_modules_private])
|
||||
AC_SUBST([DEPENDENCIES], [$gtk_modules])
|
||||
AC_SUBST([GTK_CFLAGS])
|
||||
@ -122,6 +123,9 @@ AC_SUBST([pkgdatadir])
|
||||
GEANY_CHECK_DOCUTILS
|
||||
GEANY_CHECK_DOXYGEN
|
||||
|
||||
# libgeany
|
||||
GEANY_LIB_INIT
|
||||
|
||||
# Output
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
|
@ -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 \
|
||||
|
@ -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]
|
||||
|
||||
|
@ -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.
|
||||
@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)
|
||||
|
||||
|
@ -10,5 +10,5 @@ Name: Geany
|
||||
Description: A fast and lightweight IDE using GTK2
|
||||
Requires: @DEPENDENCIES@
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir}
|
||||
Libs: -L${libdir} -lgeany
|
||||
Cflags: -DGTK -I${includedir}/geany -I${includedir}/geany/tagmanager -I${includedir}/geany/scintilla
|
||||
|
58
m4/geany-lib.m4
Normal file
58
m4/geany-lib.m4
Normal file
@ -0,0 +1,58 @@
|
||||
dnl checks whether the compiler supports GCC4-style visibility
|
||||
AC_DEFUN([GCC4_VISIBILITY],
|
||||
[
|
||||
have_gcc4_visibility=no
|
||||
AC_MSG_CHECKING([whether compiler supports GCC4-style visibility])
|
||||
gcc_visibility_backup_cflags=$CFLAGS
|
||||
CFLAGS=-fvisibility=hidden
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[__attribute__((visibility("default")))
|
||||
int main(int argc, char **argv) { return 0; }]])],
|
||||
[have_gcc4_visibility=yes])
|
||||
AC_MSG_RESULT([$have_gcc4_visibility])
|
||||
CFLAGS="${gcc_visibility_backup_cflags}"
|
||||
])
|
||||
|
||||
dnl Checks and fills LIBGEANY_EXPORT_CFLAGS
|
||||
AC_DEFUN([GEANY_EXPORT],
|
||||
[
|
||||
AC_REQUIRE([GEANY_CHECK_MINGW])
|
||||
AC_REQUIRE([GCC4_VISIBILITY])
|
||||
|
||||
dnl FIXME: better way to detect Windows?
|
||||
AM_COND_IF([MINGW], [win32=yes], [win32=false])
|
||||
|
||||
export_CFLAGS=
|
||||
AS_IF([test x$win32 = xyes],
|
||||
[export_CFLAGS='-DGEANY_EXPORT_SYMBOL="__declspec(dllexport)"'],
|
||||
[test x$have_gcc4_visibility = xyes],
|
||||
[export_CFLAGS='-fvisibility=hidden -DGEANY_EXPORT_SYMBOL="__attribute__((visibility(\"default\")))"'],
|
||||
[dnl GEANY_EXPORT_SYMBOL expands to nothing
|
||||
export_CFLAGS='-DGEANY_EXPORT_SYMBOL'])
|
||||
|
||||
LIBGEANY_EXPORT_CFLAGS="${export_CFLAGS} -DGEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL"
|
||||
|
||||
AC_SUBST([LIBGEANY_EXPORT_CFLAGS])
|
||||
])
|
||||
|
||||
AC_DEFUN([GEANY_LIB_INIT],
|
||||
[
|
||||
AC_REQUIRE([GEANY_EXPORT])
|
||||
|
||||
dnl In the future, if we want to use libtool/library versioning, we can
|
||||
dnl set these variables accordingly. For now its the same as if not specified (0:0:0)
|
||||
libgeany_current=0
|
||||
libgeany_revision=0
|
||||
libgeany_age=0
|
||||
|
||||
LIBGEANY_CFLAGS="${LIBGEANY_EXPORT_CFLAGS}"
|
||||
LIBGEANY_LDFLAGS="-version-info ${libgeany_current}:${libgeany_revision}:${libgeany_age}"
|
||||
|
||||
AC_SUBST([LIBGEANY_CFLAGS])
|
||||
AC_SUBST([LIBGEANY_LDFLAGS])
|
||||
|
||||
dnl Check for utilities needed to do codegen
|
||||
AC_PATH_PROG([SORT], [sort], [
|
||||
AC_MSG_ERROR([The 'sort' utility is required, is it installed?])])
|
||||
AC_PATH_PROG([UNIQ], [uniq], [
|
||||
AC_MSG_ERROR([The 'uniq' utility is required, is it installed?])])
|
||||
])
|
@ -1,8 +1,7 @@
|
||||
# Adapted from Pidgin's plugins/Makefile.am, thanks
|
||||
|
||||
EXTRA_DIST = \
|
||||
makefile.win32 \
|
||||
genapi.py
|
||||
makefile.win32
|
||||
|
||||
if MINGW
|
||||
plugindir = $(libdir)
|
||||
@ -12,15 +11,8 @@ endif
|
||||
|
||||
plugins_includedir = $(includedir)/geany
|
||||
plugins_include_HEADERS = \
|
||||
geanyplugin.h \
|
||||
geanyfunctions.h
|
||||
|
||||
# systems without python should continue to build OK
|
||||
$(srcdir)/geanyfunctions.h: $(srcdir)/genapi.py $(srcdir)/../src/plugins.c
|
||||
(cd "$(srcdir)" && python genapi.py ../src/plugins.c) || true
|
||||
|
||||
all: geanyfunctions.h
|
||||
|
||||
geanyfunctions.h \
|
||||
geanyplugin.h
|
||||
|
||||
demoplugin_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
classbuilder_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
@ -31,7 +23,6 @@ filebrowser_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
splitwindow_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
|
||||
if PLUGINS
|
||||
|
||||
# Plugins to be installed
|
||||
plugin_LTLIBRARIES = \
|
||||
classbuilder.la \
|
||||
@ -61,13 +52,13 @@ saveactions_la_CFLAGS = -DG_LOG_DOMAIN=\""SaveActions"\"
|
||||
filebrowser_la_CFLAGS = -DG_LOG_DOMAIN=\""FileBrowser"\"
|
||||
splitwindow_la_CFLAGS = -DG_LOG_DOMAIN=\""SplitWindow"\"
|
||||
|
||||
demoplugin_la_LIBADD = $(GTK_LIBS)
|
||||
classbuilder_la_LIBADD = $(GTK_LIBS)
|
||||
htmlchars_la_LIBADD = $(GTK_LIBS)
|
||||
export_la_LIBADD = $(GTK_LIBS) -lm
|
||||
saveactions_la_LIBADD = $(GTK_LIBS)
|
||||
filebrowser_la_LIBADD = $(GTK_LIBS)
|
||||
splitwindow_la_LIBADD = $(GTK_LIBS)
|
||||
demoplugin_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS)
|
||||
classbuilder_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS)
|
||||
htmlchars_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS)
|
||||
export_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS) -lm
|
||||
saveactions_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS)
|
||||
filebrowser_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS)
|
||||
splitwindow_la_LIBADD = $(top_builddir)/src/libgeany.la $(GTK_LIBS)
|
||||
|
||||
endif # PLUGINS
|
||||
|
||||
|
@ -1,448 +1,28 @@
|
||||
/* 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
|
||||
*
|
||||
* E.g.:@code
|
||||
* #define plugin_add_toolbar_item \
|
||||
* geany_functions->p_plugin->plugin_add_toolbar_item @endcode
|
||||
* Copyright 2014 Matthew Brush <mbrush@codebrainz.ca>
|
||||
*
|
||||
* You need to declare the @ref geany_functions symbol yourself.
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* 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
|
||||
#include "geanyplugin.h"
|
||||
|
||||
#endif
|
||||
#endif /* GEANY_FUNCTIONS */
|
||||
|
@ -28,27 +28,39 @@
|
||||
#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 "build.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"
|
||||
#include "gtkcompat.h"
|
||||
|
||||
#endif
|
||||
|
@ -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)
|
@ -16,8 +16,8 @@ src/geanyentryaction.c
|
||||
src/highlighting.c
|
||||
src/keybindings.c
|
||||
src/keyfile.c
|
||||
src/libmain.c
|
||||
src/log.c
|
||||
src/main.c
|
||||
src/msgwindow.c
|
||||
src/navqueue.c
|
||||
src/notebook.c
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
SUBDIRS = include
|
||||
|
||||
noinst_LIBRARIES=libscintilla.a
|
||||
noinst_LTLIBRARIES=libscintilla.la
|
||||
|
||||
AM_CXXFLAGS = -DNDEBUG -DGTK -DSCI_LEXER -DG_THREADS_IMPL_NONE
|
||||
|
||||
@ -139,9 +139,10 @@ src/XPM.cxx \
|
||||
src/XPM.h \
|
||||
$(LEXER_SRCS)
|
||||
|
||||
libscintilla_a_SOURCES = $(SRCS)
|
||||
libscintilla_la_SOURCES = $(SRCS)
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir)/include -I$(srcdir)/src -I$(srcdir)/lexlib @GTK_CFLAGS@
|
||||
AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir)/include -I$(srcdir)/src -I$(srcdir)/lexlib \
|
||||
@GTK_CFLAGS@ @LIBGEANY_CFLAGS@
|
||||
|
||||
marshallers: gtk/scintilla-marshal.list
|
||||
glib-genmarshal --prefix scintilla_marshal gtk/scintilla-marshal.list --header > gtk/scintilla-marshal.h
|
||||
|
@ -3104,6 +3104,7 @@ sptr_t ScintillaGTK::DirectFunction(
|
||||
return reinterpret_cast<ScintillaGTK *>(ptr)->WndProc(iMessage, wParam, lParam);
|
||||
}
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
sptr_t scintilla_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
|
||||
ScintillaGTK *psci = reinterpret_cast<ScintillaGTK *>(sci->pscin);
|
||||
return psci->WndProc(iMessage, wParam, lParam);
|
||||
@ -3252,6 +3253,7 @@ static void scintilla_init(ScintillaObject *sci) {
|
||||
}
|
||||
}
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget* scintilla_new() {
|
||||
GtkWidget *widget = GTK_WIDGET(g_object_new(scintilla_get_type(), NULL));
|
||||
gtk_widget_set_direction(widget, GTK_TEXT_DIR_LTR);
|
||||
|
@ -32,7 +32,9 @@ vpath %.h ../src ../include ../lexlib
|
||||
vpath %.cxx ../src ../lexlib ../lexers
|
||||
|
||||
INCLUDEDIRS=-I ../include -I ../src -I ../lexlib
|
||||
CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -DGTK -DSCI_LEXER $(INCLUDEDIRS)
|
||||
CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -DGTK -DSCI_LEXER $(INCLUDEDIRS) \
|
||||
-DGEANY_EXPORT_SYMBOL="__declspec(dllexport)" \
|
||||
-DGEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL
|
||||
|
||||
ifdef THREADS
|
||||
THREADFLAGS=
|
||||
|
@ -1,5 +1,25 @@
|
||||
A patch to Scintilla 2.29 containing our changes to Scintilla
|
||||
(removing unused lexers and an updated marshallers file).
|
||||
diff --git a/scintilla/gtk/ScintillaGTK.cxx b/scintilla/gtk/ScintillaGTK.cxx
|
||||
index 18e3358..5c405bc 100644
|
||||
--- scintilla/gtk/ScintillaGTK.cxx
|
||||
+++ scintilla/gtk/ScintillaGTK.cxx
|
||||
@@ -2959,6 +2959,7 @@ sptr_t ScintillaGTK::DirectFunction(
|
||||
return reinterpret_cast<ScintillaGTK *>(ptr)->WndProc(iMessage, wParam, lParam);
|
||||
}
|
||||
|
||||
+GEANY_API_SYMBOL
|
||||
sptr_t scintilla_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
|
||||
ScintillaGTK *psci = reinterpret_cast<ScintillaGTK *>(sci->pscin);
|
||||
return psci->WndProc(iMessage, wParam, lParam);
|
||||
@@ -3107,6 +3108,7 @@ static void scintilla_init(ScintillaObject *sci) {
|
||||
}
|
||||
}
|
||||
|
||||
+GEANY_API_SYMBOL
|
||||
GtkWidget* scintilla_new() {
|
||||
GtkWidget *widget = GTK_WIDGET(g_object_new(scintilla_get_type(), NULL));
|
||||
gtk_widget_set_direction(widget, GTK_TEXT_DIR_LTR);
|
||||
diff -Naur scintilla_orig/gtk/scintilla-marshal.c scintilla/gtk/scintilla-marshal.c
|
||||
--- scintilla_orig/gtk/scintilla-marshal.c 2010-10-27 23:15:45.000000000 +0200
|
||||
+++ scintilla/gtk/scintilla-marshal.c 2011-04-03 17:42:59.000000000 +0200
|
||||
|
181
src/Makefile.am
181
src/Makefile.am
@ -3,7 +3,6 @@
|
||||
|
||||
EXTRA_DIST = \
|
||||
gb.c \
|
||||
win32.c win32.h \
|
||||
plugindata.h \
|
||||
documentprivate.h \
|
||||
filetypesprivate.h \
|
||||
@ -12,9 +11,53 @@ EXTRA_DIST = \
|
||||
projectprivate.h \
|
||||
makefile.win32
|
||||
|
||||
bin_PROGRAMS = geany
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/scintilla/include \
|
||||
-I$(top_srcdir)/tagmanager/src \
|
||||
-DGTK \
|
||||
-DGEANY_PRIVATE \
|
||||
-DG_LOG_DOMAIN=\""Geany"\" \
|
||||
@GTK_CFLAGS@ @GTHREAD_CFLAGS@ \
|
||||
$(MAC_INTEGRATION_CFLAGS)
|
||||
|
||||
SRCS = \
|
||||
bin_PROGRAMS = geany
|
||||
lib_LTLIBRARIES = libgeany.la
|
||||
|
||||
geany_SOURCES = main.c
|
||||
geany_LDADD = libgeany.la $(GTK_LIBS) $(GTHREAD_LIBS) $(INTLLIBS)
|
||||
|
||||
geany_includedir = $(includedir)/geany
|
||||
geany_include_HEADERS = \
|
||||
app.h \
|
||||
build.h \
|
||||
dialogs.h \
|
||||
document.h \
|
||||
editor.h \
|
||||
encodings.h \
|
||||
filetypes.h \
|
||||
geany.h \
|
||||
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 \
|
||||
utils.h
|
||||
|
||||
libgeany_la_SOURCES = \
|
||||
about.c about.h \
|
||||
app.h \
|
||||
build.c build.h \
|
||||
@ -34,7 +77,7 @@ SRCS = \
|
||||
keybindings.c keybindings.h \
|
||||
keyfile.c keyfile.h \
|
||||
log.c log.h \
|
||||
main.c main.h geany.h \
|
||||
libmain.c main.h geany.h \
|
||||
msgwindow.c msgwindow.h \
|
||||
navqueue.c navqueue.h \
|
||||
notebook.c notebook.h \
|
||||
@ -58,104 +101,70 @@ SRCS = \
|
||||
ui_utils.c ui_utils.h \
|
||||
utils.c utils.h
|
||||
|
||||
libgeany_la_CFLAGS = $(AM_CPPFLAGS) @LIBGEANY_CFLAGS@
|
||||
libgeany_la_LDFLAGS = @LIBGEANY_LDFLAGS@
|
||||
|
||||
geany_includedir = $(includedir)/geany
|
||||
|
||||
# only install headers that define types or macros, not just functions
|
||||
geany_include_HEADERS = \
|
||||
app.h \
|
||||
build.h \
|
||||
document.h \
|
||||
editor.h \
|
||||
encodings.h \
|
||||
filetypes.h \
|
||||
geany.h \
|
||||
gtkcompat.h \
|
||||
highlighting.h \
|
||||
keybindings.h \
|
||||
msgwindow.h \
|
||||
plugindata.h \
|
||||
prefs.h \
|
||||
project.h \
|
||||
search.h \
|
||||
stash.h \
|
||||
support.h \
|
||||
templates.h \
|
||||
toolbar.h \
|
||||
ui_utils.h \
|
||||
utils.h
|
||||
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/scintilla/include \
|
||||
-I$(top_srcdir)/tagmanager/src \
|
||||
@GTK_CFLAGS@ @GTHREAD_CFLAGS@ $(MAC_INTEGRATION_CFLAGS)
|
||||
|
||||
# tell automake we have a C++ file so it uses the C++ linker we need for Scintilla
|
||||
nodist_EXTRA_geany_SOURCES = dummy.cxx
|
||||
|
||||
|
||||
if MINGW
|
||||
# build Geany for Windows on non-Windows systems (cross-compile)
|
||||
|
||||
geany_SOURCES = $(SRCS) win32.c win32.h
|
||||
|
||||
geany_LDADD = \
|
||||
$(top_builddir)/scintilla/libscintilla.a \
|
||||
$(top_builddir)/tagmanager/ctags/libctags.a \
|
||||
$(top_builddir)/tagmanager/mio/libmio.a \
|
||||
$(top_builddir)/tagmanager/src/libtagmanager.a \
|
||||
libgeany_la_LIBADD = \
|
||||
$(top_builddir)/scintilla/libscintilla.la \
|
||||
$(top_builddir)/tagmanager/ctags/libctags.la \
|
||||
$(top_builddir)/tagmanager/mio/libmio.la \
|
||||
$(top_builddir)/tagmanager/src/libtagmanager.la \
|
||||
@GTK_LIBS@ \
|
||||
@GTHREAD_LIBS@ \
|
||||
$(INTLLIBS) \
|
||||
-lole32 -luuid -lwsock32 \
|
||||
geany_private.res
|
||||
$(MAC_INTEGRATION_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
AM_CFLAGS = -DGEANY_DATADIR=\"data\" \
|
||||
-DGEANY_DOCDIR=\"\" \
|
||||
-DGEANY_LIBDIR=\"\" \
|
||||
-DGEANY_LOCALEDIR=\"\" \
|
||||
-DGEANY_PREFIX=\"\" \
|
||||
-DGEANY_PRIVATE \
|
||||
-DGTK \
|
||||
-DG_LOG_DOMAIN=\""Geany"\"
|
||||
# tell automake we have a C++ file so it uses the C++ linker we need for Scintilla
|
||||
nodist_EXTRA_libgeany_la_SOURCES = dummy1.cxx
|
||||
|
||||
geany_LDFLAGS = -mwindows -mms-bitfields
|
||||
CLEANFILES =
|
||||
|
||||
if MINGW
|
||||
# build Geany for Windows (possibly on non-Windows systems -- cross-compile)
|
||||
|
||||
AM_CPPFLAGS += \
|
||||
-DGEANY_DATADIR=\"data\" \
|
||||
-DGEANY_DOCDIR=\"\" \
|
||||
-DGEANY_LIBDIR=\"\" \
|
||||
-DGEANY_LOCALEDIR=\"\" \
|
||||
-DGEANY_PREFIX=\"\"
|
||||
|
||||
geany_LDADD += geany_private.res
|
||||
|
||||
WINDRES = $(host_alias)-windres
|
||||
|
||||
geany_private.res: $(top_srcdir)/geany_private.rc
|
||||
$(WINDRES) -i $(top_srcdir)/geany_private.rc --input-format=rc -o $@ -O coff
|
||||
|
||||
clean-local:
|
||||
rm -f geany_private.res
|
||||
libgeany_la_SOURCES += win32.c win32.h
|
||||
libgeany_la_LIBADD += -lole32 -lwsock32 -lcomdlg32
|
||||
libgeany_la_LDFLAGS += -Wl,-luuid -mwindows -mms-bitfields -no-undefined
|
||||
|
||||
CLEANFILES += geany_private.res
|
||||
|
||||
else
|
||||
# build Geany for all other platforms
|
||||
|
||||
geany_SOURCES = $(SRCS) vte.c vte.h
|
||||
AM_CPPFLAGS += \
|
||||
-DGEANY_DATADIR=\""$(datadir)"\" \
|
||||
-DGEANY_DOCDIR=\""$(docdir)"\" \
|
||||
-DGEANY_LIBDIR=\""$(libdir)"\" \
|
||||
-DGEANY_LOCALEDIR=\""$(localedir)"\" \
|
||||
-DGEANY_PREFIX=\""$(prefix)"\"
|
||||
|
||||
geany_LDADD = \
|
||||
$(top_builddir)/scintilla/libscintilla.a \
|
||||
$(top_builddir)/tagmanager/ctags/libctags.a \
|
||||
$(top_builddir)/tagmanager/mio/libmio.a \
|
||||
$(top_builddir)/tagmanager/src/libtagmanager.a \
|
||||
@GTK_LIBS@ \
|
||||
@GTHREAD_LIBS@ \
|
||||
$(MAC_INTEGRATION_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
AM_CFLAGS = -DGEANY_DATADIR=\""$(datadir)"\" \
|
||||
-DGEANY_DOCDIR=\""$(docdir)"\" \
|
||||
-DGEANY_LIBDIR=\""$(libdir)"\" \
|
||||
-DGEANY_LOCALEDIR=\""$(localedir)"\" \
|
||||
-DGEANY_PREFIX=\""$(prefix)"\" \
|
||||
-DGEANY_PRIVATE \
|
||||
-DGTK \
|
||||
-DG_LOG_DOMAIN=\""Geany"\"
|
||||
|
||||
clean-local:
|
||||
libgeany_la_SOURCES += vte.c vte.h
|
||||
|
||||
endif
|
||||
|
||||
callbacks.c: signallist.i
|
||||
|
||||
glade_file=$(top_srcdir)/data/geany.glade
|
||||
|
||||
signallist.i: $(glade_file) Makefile
|
||||
$(AM_V_GEN)( \
|
||||
echo '/* This file is auto-generated, do not edit. */' && \
|
||||
$(SED) -n 's/^.*handler="\([^"]\{1,\}\)".*$$/ITEM(\1)/p' "$(glade_file)" \
|
||||
| $(SORT) | $(UNIQ) \
|
||||
) > $@ || { $(RM) $@ && exit 1; }
|
||||
|
||||
CLEANFILES += signallist.i
|
||||
|
@ -509,6 +509,7 @@ static GeanyBuildCommand *get_build_group(const GeanyBuildSource src, const Gean
|
||||
* Updates the menu.
|
||||
*
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void build_remove_menu_item(const GeanyBuildSource src, const GeanyBuildGroup grp, const gint cmd)
|
||||
{
|
||||
GeanyBuildCommand *bc;
|
||||
@ -569,6 +570,7 @@ GeanyBuildCommand *build_get_menu_item(GeanyBuildSource src, GeanyBuildGroup grp
|
||||
* This is a pointer to an internal structure and must not be freed.
|
||||
*
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *build_get_current_menu_item(const GeanyBuildGroup grp, const guint cmd,
|
||||
const GeanyBuildCmdEntries fld)
|
||||
{
|
||||
@ -609,7 +611,7 @@ const gchar *build_get_current_menu_item(const GeanyBuildGroup grp, const guint
|
||||
* @param val the value to set the field to, is copied
|
||||
*
|
||||
**/
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
void build_set_menu_item(const GeanyBuildSource src, const GeanyBuildGroup grp,
|
||||
const guint cmd, const GeanyBuildCmdEntries fld, const gchar *val)
|
||||
{
|
||||
@ -654,7 +656,7 @@ void build_set_menu_item(const GeanyBuildSource src, const GeanyBuildGroup grp,
|
||||
* @param cmd the index of the command within the group.
|
||||
*
|
||||
**/
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
void build_activate_menu_item(const GeanyBuildGroup grp, const guint cmd)
|
||||
{
|
||||
on_build_menu_item(NULL, GRP_CMD_TO_POINTER(grp, cmd));
|
||||
@ -2782,7 +2784,7 @@ void build_set_group_count(GeanyBuildGroup grp, gint count)
|
||||
* @return a count of the number of commands in the group
|
||||
*
|
||||
**/
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
guint build_get_group_count(const GeanyBuildGroup grp)
|
||||
{
|
||||
g_return_val_if_fail(grp < GEANY_GBG_COUNT, 0);
|
||||
|
383
src/callbacks.c
383
src/callbacks.c
File diff suppressed because it is too large
Load Diff
123
src/callbacks.h
123
src/callbacks.h
@ -26,83 +26,86 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/* Defined in auto-generated code in signalconn.c */
|
||||
void callbacks_connect(GtkBuilder *builder);
|
||||
|
||||
extern gboolean ignore_callback;
|
||||
|
||||
G_MODULE_EXPORT void on_new1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_new1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_save1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_save1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_save_as1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_save_as1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_quit1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_quit1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_open1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_open1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_save_all1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_save_all1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_close1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_close1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_close_all1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_close_all1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_replace_tabs_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_replace_tabs_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
void on_toolbutton_search_clicked(GtkAction *action, gpointer user_data);
|
||||
|
||||
gboolean toolbar_popup_menu(GtkWidget *widget, GdkEventButton *event, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_undo1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_undo1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_redo1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_redo1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_cut1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_cut1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_copy1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_copy1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_paste1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_paste1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_delete1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_delete1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_zoom_in1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_zoom_in1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_zoom_out1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_zoom_out1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
void on_toolbar_search_entry_changed(GtkAction *action, const gchar *text, gpointer user_data);
|
||||
|
||||
void on_toolbar_search_entry_activate(GtkAction *action, const gchar *text, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_toggle_case1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_toggle_case1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_usage1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_usage1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_preferences1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_preferences1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_normal_size1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_normal_size1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_show_color_chooser1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_show_color_chooser1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_next1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_next1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_previous1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_previous1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_nextsel1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_nextsel1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_prevsel1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_prevsel1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_replace1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_replace1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_in_files1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_in_files1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_toolbutton_reload_clicked(GtkAction *action, gpointer user_data);
|
||||
void on_toolbutton_reload_clicked(GtkAction *action, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_go_to_line_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_go_to_line_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_help1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_help1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
void on_toolbutton_compile_clicked(GtkAction *action, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_line_wrapping1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data);
|
||||
void on_line_wrapping1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data);
|
||||
|
||||
void on_toolbutton_goto_entry_activate(GtkAction *action, const gchar *text, gpointer user_data);
|
||||
|
||||
@ -110,63 +113,63 @@ void on_toolbutton_goto_clicked(GtkAction *action, gpointer user_data);
|
||||
|
||||
void on_toolbutton_run_clicked(GtkAction *action, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_remove_indicators1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_remove_indicators1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_print1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_print1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_select_all1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_select_all1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_show_sidebar1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data);
|
||||
void on_menu_show_sidebar1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_comment_line1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_comment_line1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_uncomment_line1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_uncomment_line1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_increase_indent1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_increase_indent1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_decrease_indent1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_decrease_indent1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_toggle_line_commentation1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_toggle_line_commentation1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_next_message1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_next_message1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_project_new1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_project_new1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_project_open1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_project_open1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_project_close1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_project_close1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_project_properties1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_project_properties1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_open_selected_file1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_open_selected_file1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_remove_markers1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_remove_markers1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_context_action1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_context_action1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_menu_toggle_all_additional_widgets1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_menu_toggle_all_additional_widgets1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
void on_toolbutton_back_activate(GtkAction *action, gpointer user_data);
|
||||
|
||||
void on_toolbutton_forward_activate(GtkAction *action, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT gboolean on_motion_event(GtkWidget *widget, GdkEventMotion *event, gpointer user_data);
|
||||
gboolean on_motion_event(GtkWidget *widget, GdkEventMotion *event, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT gboolean on_escape_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
|
||||
gboolean on_escape_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_line_breaking1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_line_breaking1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_replace_spaces_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_replace_spaces_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_previous_message1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_previous_message1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_close_other_documents1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_close_other_documents1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_find_document_usage1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_find_document_usage1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_send_selection_to_vte1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_send_selection_to_vte1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_MODULE_EXPORT void on_plugin_preferences1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
void on_plugin_preferences1_activate(GtkMenuItem *menuitem, gpointer user_data);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@ -665,6 +665,7 @@ static gboolean show_save_as_gtk(GeanyDocument *doc)
|
||||
*
|
||||
* @return @c TRUE if the file was saved, otherwise @c FALSE.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean dialogs_show_save_as(void)
|
||||
{
|
||||
GeanyDocument *doc = document_get_current();
|
||||
@ -726,6 +727,7 @@ static void show_msgbox_dialog(GtkWidget *dialog, GtkMessageType type, GtkWindow
|
||||
* @param text Printf()-style format string.
|
||||
* @param ... Arguments for the @a text format string.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void dialogs_show_msgbox(GtkMessageType type, const gchar *text, ...)
|
||||
{
|
||||
#ifndef G_OS_WIN32
|
||||
@ -1067,6 +1069,7 @@ static void on_dialog_input(const gchar *str, gpointer data)
|
||||
* @param default_text Text to display in the input field, or @c NULL.
|
||||
* @return New copy of user input or @c NULL if cancelled.
|
||||
* @since 0.20. */
|
||||
GEANY_API_SYMBOL
|
||||
gchar *dialogs_show_input(const gchar *title, GtkWindow *parent, const gchar *label_text,
|
||||
const gchar *default_text)
|
||||
{
|
||||
@ -1107,6 +1110,7 @@ gchar *dialogs_show_input_goto_line(const gchar *title, GtkWindow *parent, const
|
||||
*
|
||||
* @since 0.16
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean dialogs_show_input_numeric(const gchar *title, const gchar *label_text,
|
||||
gdouble *value, gdouble min, gdouble max, gdouble step)
|
||||
{
|
||||
@ -1372,6 +1376,7 @@ static gint show_prompt(GtkWidget *parent,
|
||||
*
|
||||
* @return @c TRUE if the user answered with Yes, otherwise @c FALSE.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean dialogs_show_question(const gchar *text, ...)
|
||||
{
|
||||
gchar *string;
|
||||
|
@ -148,6 +148,7 @@ static GtkWidget* document_show_message(GeanyDocument *doc, GtkMessageType msgty
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument* document_find_by_real_path(const gchar *realname)
|
||||
{
|
||||
guint i;
|
||||
@ -193,6 +194,7 @@ static gchar *get_real_path_from_utf8(const gchar *utf8_filename)
|
||||
* @return The matching document, or @c NULL.
|
||||
* @see document_find_by_real_path().
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_find_by_filename(const gchar *utf8_filename)
|
||||
{
|
||||
guint i;
|
||||
@ -256,6 +258,7 @@ GeanyDocument *document_find_by_sci(ScintillaObject *sci)
|
||||
* gboolean still_open = (doc != NULL);
|
||||
* @endcode
|
||||
* @since 1.25. */
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_find_by_id(guint id)
|
||||
{
|
||||
guint i;
|
||||
@ -297,6 +300,7 @@ static GtkWidget *document_get_notebook_child(GeanyDocument *doc)
|
||||
* @param doc The document.
|
||||
* @return The index.
|
||||
* @since 0.19 */
|
||||
GEANY_API_SYMBOL
|
||||
gint document_get_notebook_page(GeanyDocument *doc)
|
||||
{
|
||||
GtkWidget *child = document_get_notebook_child(doc);
|
||||
@ -359,6 +363,7 @@ GeanyDocument *document_get_from_notebook_child(GtkWidget *page)
|
||||
*
|
||||
* @return The corresponding document for the given notebook page, or @c NULL.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_get_from_page(guint page_num)
|
||||
{
|
||||
GtkWidget *parent;
|
||||
@ -377,6 +382,7 @@ GeanyDocument *document_get_from_page(guint page_num)
|
||||
*
|
||||
* @return A pointer to the current document or @c NULL if there are no opened documents.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_get_current(void)
|
||||
{
|
||||
gint cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(main_widgets.notebook));
|
||||
@ -417,6 +423,7 @@ void document_finalize(void)
|
||||
* @since 0.17
|
||||
*/
|
||||
/* TODO make more use of this */
|
||||
GEANY_API_SYMBOL
|
||||
gchar *document_get_basename_for_display(GeanyDocument *doc, gint length)
|
||||
{
|
||||
gchar *base_name, *short_name;
|
||||
@ -464,6 +471,7 @@ void document_update_tab_label(GeanyDocument *doc)
|
||||
* @param doc The document to use.
|
||||
* @param changed Whether the document state should indicate changes have been made.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void document_set_text_changed(GeanyDocument *doc, gboolean changed)
|
||||
{
|
||||
g_return_if_fail(doc != NULL);
|
||||
@ -687,6 +695,7 @@ static GeanyDocument *document_create(const gchar *utf8_filename)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean document_close(GeanyDocument *doc)
|
||||
{
|
||||
g_return_val_if_fail(doc, FALSE);
|
||||
@ -776,6 +785,7 @@ static gboolean remove_page(guint page_num)
|
||||
*
|
||||
* @return @c TRUE if the document was actually removed or @c FALSE otherwise.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean document_remove_page(guint page_num)
|
||||
{
|
||||
gboolean done = remove_page(page_num);
|
||||
@ -817,6 +827,7 @@ GeanyDocument *document_new_file_if_non_open(void)
|
||||
*
|
||||
* @return The new document.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_new_file(const gchar *utf8_filename, GeanyFiletype *ft, const gchar *text)
|
||||
{
|
||||
GeanyDocument *doc;
|
||||
@ -900,6 +911,7 @@ GeanyDocument *document_new_file(const gchar *utf8_filename, GeanyFiletype *ft,
|
||||
*
|
||||
* @return The document opened or @c NULL.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_open_file(const gchar *locale_filename, gboolean readonly,
|
||||
GeanyFiletype *ft, const gchar *forced_enc)
|
||||
{
|
||||
@ -1495,6 +1507,7 @@ void document_open_file_list(const gchar *data, gsize length)
|
||||
* @param ft The filetype for the document or @c NULL to auto-detect the filetype.
|
||||
* @param forced_enc The file encoding to use or @c NULL to auto-detect the file encoding.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void document_open_files(const GSList *filenames, gboolean readonly, GeanyFiletype *ft,
|
||||
const gchar *forced_enc)
|
||||
{
|
||||
@ -1516,6 +1529,7 @@ void document_open_files(const GSList *filenames, gboolean readonly, GeanyFilety
|
||||
*
|
||||
* @return @c TRUE if the document was actually reloaded or @c FALSE otherwise.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean document_reload_force(GeanyDocument *doc, const gchar *forced_enc)
|
||||
{
|
||||
gint pos = 0;
|
||||
@ -1661,6 +1675,7 @@ static void replace_header_filename(GeanyDocument *doc)
|
||||
*
|
||||
* @since 0.16
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void document_rename_file(GeanyDocument *doc, const gchar *new_filename)
|
||||
{
|
||||
gchar *old_locale_filename = utils_get_locale_from_utf8(doc->file_name);
|
||||
@ -1726,6 +1741,7 @@ gboolean document_need_save_as(GeanyDocument *doc)
|
||||
*
|
||||
* @since 0.16
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean document_save_file_as(GeanyDocument *doc, const gchar *utf8_fname)
|
||||
{
|
||||
gboolean ret;
|
||||
@ -2013,6 +2029,7 @@ static gboolean save_file_handle_infobars(GeanyDocument *doc, gboolean force)
|
||||
*
|
||||
* @return @c TRUE if the file was saved or @c FALSE if the file could not or should not be saved.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean document_save_file(GeanyDocument *doc, gboolean force)
|
||||
{
|
||||
gchar *errmsg;
|
||||
@ -2726,6 +2743,7 @@ static void document_load_config(GeanyDocument *doc, GeanyFiletype *type,
|
||||
/** Sets the filetype of the document (which controls syntax highlighting and tags)
|
||||
* @param doc The document to use.
|
||||
* @param type The filetype. */
|
||||
GEANY_API_SYMBOL
|
||||
void document_set_filetype(GeanyDocument *doc, GeanyFiletype *type)
|
||||
{
|
||||
gboolean ft_changed;
|
||||
@ -2778,6 +2796,7 @@ void document_reload_config(GeanyDocument *doc)
|
||||
* @param doc The document to use.
|
||||
* @param new_encoding The encoding to be set for the document.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void document_set_encoding(GeanyDocument *doc, const gchar *new_encoding)
|
||||
{
|
||||
if (doc == NULL || new_encoding == NULL ||
|
||||
@ -3141,6 +3160,7 @@ const gchar *document_get_status_widget_class(GeanyDocument *doc)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
const GdkColor *document_get_status_color(GeanyDocument *doc)
|
||||
{
|
||||
gint status;
|
||||
@ -3192,6 +3212,7 @@ const GdkColor *document_get_status_color(GeanyDocument *doc)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyDocument *document_index(gint idx)
|
||||
{
|
||||
return (idx >= 0 && idx < (gint) documents_array->len) ? documents[idx] : NULL;
|
||||
@ -3633,6 +3654,7 @@ gboolean document_check_disk_status(GeanyDocument *doc, gboolean force)
|
||||
*
|
||||
* @since 0.21
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint document_compare_by_display_name(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
GeanyDocument *doc_a = *((GeanyDocument**) a);
|
||||
@ -3662,6 +3684,7 @@ gint document_compare_by_display_name(gconstpointer a, gconstpointer b)
|
||||
*
|
||||
* @since 0.21 (GEANY_API_VERSION 209)
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint document_compare_by_tab_order(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
GeanyDocument *doc_a = *((GeanyDocument**) a);
|
||||
@ -3691,6 +3714,7 @@ gint document_compare_by_tab_order(gconstpointer a, gconstpointer b)
|
||||
*
|
||||
* @since 0.21 (GEANY_API_VERSION 209)
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint document_compare_by_tab_order_reverse(gconstpointer a, gconstpointer b)
|
||||
{
|
||||
return -1 * document_compare_by_tab_order(a, b);
|
||||
|
15
src/editor.c
15
src/editor.c
@ -1202,6 +1202,7 @@ get_default_indent_prefs(void)
|
||||
* settings may have changed, or if this function has been called for a different editor.
|
||||
* @param editor The editor, or @c NULL to get the default indent prefs.
|
||||
* @return The indent prefs. */
|
||||
GEANY_API_SYMBOL
|
||||
const GeanyIndentPrefs *
|
||||
editor_get_indent_prefs(GeanyEditor *editor)
|
||||
{
|
||||
@ -1726,6 +1727,7 @@ void editor_find_current_word_sciwc(GeanyEditor *editor, gint pos, gchar *word,
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *editor_get_word_at_pos(GeanyEditor *editor, gint pos, const gchar *wordchars)
|
||||
{
|
||||
static gchar cword[GEANY_MAX_WORD_LENGTH];
|
||||
@ -2343,6 +2345,7 @@ static void fix_indentation(GeanyEditor *editor, GString *buf)
|
||||
* @warning Make sure all \\t tab chars in @a text are intended as indent widths or alignment,
|
||||
* not hard tabs, as those won't be preserved.
|
||||
* @note This doesn't scroll the cursor in view afterwards. **/
|
||||
GEANY_API_SYMBOL
|
||||
void editor_insert_text_block(GeanyEditor *editor, const gchar *text, gint insert_pos,
|
||||
gint cursor_index, gint newline_indent_size, gboolean replace_newlines)
|
||||
{
|
||||
@ -4064,6 +4067,7 @@ void editor_indicator_clear_errors(GeanyEditor *editor)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void editor_indicator_clear(GeanyEditor *editor, gint indic)
|
||||
{
|
||||
glong last_pos;
|
||||
@ -4089,6 +4093,7 @@ void editor_indicator_clear(GeanyEditor *editor, gint indic)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void editor_indicator_set_on_line(GeanyEditor *editor, gint indic, gint line)
|
||||
{
|
||||
gint start, end;
|
||||
@ -4138,6 +4143,7 @@ void editor_indicator_set_on_line(GeanyEditor *editor, gint indic, gint line)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void editor_indicator_set_on_range(GeanyEditor *editor, gint indic, gint start, gint end)
|
||||
{
|
||||
g_return_if_fail(editor != NULL);
|
||||
@ -4191,6 +4197,7 @@ void editor_insert_color(GeanyEditor *editor, const gchar *colour)
|
||||
*
|
||||
* @since 0.20
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint editor_get_eol_char_mode(GeanyEditor *editor)
|
||||
{
|
||||
gint mode = file_prefs.default_eol_character;
|
||||
@ -4212,6 +4219,7 @@ gint editor_get_eol_char_mode(GeanyEditor *editor)
|
||||
*
|
||||
* @since 0.19
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *editor_get_eol_char_name(GeanyEditor *editor)
|
||||
{
|
||||
gint mode = file_prefs.default_eol_character;
|
||||
@ -4233,6 +4241,7 @@ const gchar *editor_get_eol_char_name(GeanyEditor *editor)
|
||||
*
|
||||
* @since 0.19
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint editor_get_eol_char_len(GeanyEditor *editor)
|
||||
{
|
||||
gint mode = file_prefs.default_eol_character;
|
||||
@ -4258,6 +4267,7 @@ gint editor_get_eol_char_len(GeanyEditor *editor)
|
||||
*
|
||||
* @since 0.19
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *editor_get_eol_char(GeanyEditor *editor)
|
||||
{
|
||||
gint mode = file_prefs.default_eol_character;
|
||||
@ -4492,6 +4502,7 @@ void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void editor_set_indent_type(GeanyEditor *editor, GeanyIndentType type)
|
||||
{
|
||||
editor_set_indent(editor, type, editor->indent_width);
|
||||
@ -4567,6 +4578,7 @@ gboolean editor_goto_line(GeanyEditor *editor, gint line_no, gint offset)
|
||||
*
|
||||
* @since 0.20
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark)
|
||||
{
|
||||
g_return_val_if_fail(editor, FALSE);
|
||||
@ -4811,6 +4823,7 @@ static ScintillaObject *create_new_sci(GeanyEditor *editor)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
ScintillaObject *editor_create_widget(GeanyEditor *editor)
|
||||
{
|
||||
const GeanyIndentPrefs *iprefs = get_default_indent_prefs();
|
||||
@ -5141,6 +5154,7 @@ void editor_indent(GeanyEditor *editor, gboolean increase)
|
||||
* @param snippet_name Snippet name.
|
||||
* @return snippet or @c NULL if it was not found. Must not be freed.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *editor_find_snippet(GeanyEditor *editor, const gchar *snippet_name)
|
||||
{
|
||||
const gchar *subhash_name = editor ? editor->document->file_type->name : "Default";
|
||||
@ -5157,6 +5171,7 @@ const gchar *editor_find_snippet(GeanyEditor *editor, const gchar *snippet_name)
|
||||
* @param pos .
|
||||
* @param snippet .
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void editor_insert_snippet(GeanyEditor *editor, gint pos, const gchar *snippet)
|
||||
{
|
||||
GString *pattern;
|
||||
|
@ -263,6 +263,7 @@ const GeanyEncoding *encodings_get_from_index(gint idx)
|
||||
*
|
||||
* @since 0.13
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar* encodings_get_charset_from_index(gint idx)
|
||||
{
|
||||
g_return_val_if_fail(idx >= 0 && idx < GEANY_ENCODINGS_MAX, NULL);
|
||||
@ -639,6 +640,7 @@ void encodings_encoding_store_cell_data_func(GtkCellLayout *cell_layout,
|
||||
* @return If the conversion was successful, a newly allocated nul-terminated string,
|
||||
* which must be freed with @c g_free(). Otherwise @c NULL.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *encodings_convert_to_utf8_from_charset(const gchar *buffer, gssize size,
|
||||
const gchar *charset, gboolean fast)
|
||||
{
|
||||
@ -797,6 +799,7 @@ static gchar *encodings_convert_to_utf8_with_suggestion(const gchar *buffer, gss
|
||||
* @return If the conversion was successful, a newly allocated nul-terminated string,
|
||||
* which must be freed with @c g_free(). Otherwise @c NULL.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *encodings_convert_to_utf8(const gchar *buffer, gssize size, gchar **used_encoding)
|
||||
{
|
||||
gchar *regex_charset;
|
||||
|
@ -235,6 +235,7 @@ static gint cmp_filetype(gconstpointer pft1, gconstpointer pft2, gpointer data)
|
||||
* The list does not change on subsequent calls.
|
||||
* @return The list - do not free.
|
||||
* @see filetypes_by_title. */
|
||||
GEANY_API_SYMBOL
|
||||
const GSList *filetypes_get_sorted_by_name(void)
|
||||
{
|
||||
static GSList *list = NULL;
|
||||
@ -734,6 +735,7 @@ GeanyFiletype *filetypes_detect_from_document(GeanyDocument *doc)
|
||||
* @return The detected filetype for @a utf8_filename or @c filetypes[GEANY_FILETYPES_NONE]
|
||||
* if it could not be detected.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyFiletype *filetypes_detect_from_file(const gchar *utf8_filename)
|
||||
{
|
||||
gchar line[1024];
|
||||
@ -1216,6 +1218,7 @@ gboolean filetype_has_tags(GeanyFiletype *ft)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyFiletype *filetypes_lookup_by_name(const gchar *name)
|
||||
{
|
||||
GeanyFiletype *ft;
|
||||
@ -1461,6 +1464,7 @@ void filetypes_reload_extensions(void)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
GeanyFiletype *filetypes_index(gint idx)
|
||||
{
|
||||
return (idx >= 0 && idx < (gint) filetypes_array->len) ? filetypes[idx] : NULL;
|
||||
@ -1498,6 +1502,7 @@ void filetypes_reload(void)
|
||||
* @param ft .
|
||||
* @return .
|
||||
* @since Geany 0.20 */
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *filetypes_get_display_name(GeanyFiletype *ft)
|
||||
{
|
||||
return ft->id == GEANY_FILETYPES_NONE ? _("None") : ft->name;
|
||||
|
@ -1072,6 +1072,7 @@ void highlighting_init_styles(guint filetype_idx, GKeyFile *config, GKeyFile *co
|
||||
/** Sets up highlighting and other visual settings.
|
||||
* @param sci Scintilla widget.
|
||||
* @param ft Filetype settings to use. */
|
||||
GEANY_API_SYMBOL
|
||||
void highlighting_set_styles(ScintillaObject *sci, GeanyFiletype *ft)
|
||||
{
|
||||
guint lexer_id = get_lexer_filetype(ft);
|
||||
@ -1161,6 +1162,7 @@ void highlighting_set_styles(ScintillaObject *sci, GeanyFiletype *ft)
|
||||
* @param style_id A Scintilla lexer style, e.g. @c SCE_DIFF_ADDED. See scintilla/include/SciLexer.h.
|
||||
* @return A pointer to the style struct.
|
||||
* @see Scintilla messages @c SCI_STYLEGETFORE, etc, for use with scintilla_send_message(). */
|
||||
GEANY_API_SYMBOL
|
||||
const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id)
|
||||
{
|
||||
g_return_val_if_fail(ft_id >= 0 && (guint) ft_id < filetypes_array->len, NULL);
|
||||
@ -1383,6 +1385,7 @@ void highlighting_show_color_scheme_dialog(void)
|
||||
*
|
||||
* @return @c TRUE if the style is a string, @c FALSE otherwise.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean highlighting_is_string_style(gint lexer, gint style)
|
||||
{
|
||||
/* Don't forget STRINGEOL, to prevent completion whilst typing a string with no closing char. */
|
||||
@ -1570,6 +1573,7 @@ gboolean highlighting_is_string_style(gint lexer, gint style)
|
||||
*
|
||||
* @return @c TRUE if the style is a comment, @c FALSE otherwise.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean highlighting_is_comment_style(gint lexer, gint style)
|
||||
{
|
||||
switch (lexer)
|
||||
@ -1742,6 +1746,7 @@ gboolean highlighting_is_comment_style(gint lexer, gint style)
|
||||
*
|
||||
* @return @c TRUE if the style is code, @c FALSE otherwise.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean highlighting_is_code_style(gint lexer, gint style)
|
||||
{
|
||||
switch (lexer)
|
||||
|
@ -119,6 +119,7 @@ static void add_popup_menu_accels(void);
|
||||
* @param mods GdkModifierType mask.
|
||||
* @return Significant modifiers from the mask.
|
||||
* @since 1.25. */
|
||||
GEANY_API_SYMBOL
|
||||
GdkModifierType keybindings_get_modifiers(GdkModifierType mods)
|
||||
{
|
||||
#ifdef __APPLE__
|
||||
@ -134,6 +135,7 @@ GdkModifierType keybindings_get_modifiers(GdkModifierType mods)
|
||||
* @param key_id Keybinding index for the group.
|
||||
* @return The keybinding.
|
||||
* @since 0.19. */
|
||||
GEANY_API_SYMBOL
|
||||
GeanyKeyBinding *keybindings_get_item(GeanyKeyGroup *group, gsize key_id)
|
||||
{
|
||||
if (group->plugin)
|
||||
@ -163,6 +165,7 @@ GeanyKeyBinding *keybindings_get_item(GeanyKeyGroup *group, gsize key_id)
|
||||
* underscores - these won't be displayed.
|
||||
* @param menu_item Optional widget to set an accelerator for, or @c NULL.
|
||||
* @return The keybinding - normally this is ignored. */
|
||||
GEANY_API_SYMBOL
|
||||
GeanyKeyBinding *keybindings_set_item(GeanyKeyGroup *group, gsize key_id,
|
||||
GeanyKeyCallback callback, guint key, GdkModifierType mod,
|
||||
const gchar *kf_name, const gchar *label, GtkWidget *menu_item)
|
||||
@ -1289,6 +1292,7 @@ GeanyKeyBinding *keybindings_lookup_item(guint group_id, guint key_id)
|
||||
* Example: @code keybindings_send_command(GEANY_KEY_GROUP_FILE, GEANY_KEYS_FILE_OPEN); @endcode
|
||||
* @param group_id @ref GeanyKeyGroupID keybinding group index that contains the @a key_id keybinding.
|
||||
* @param key_id @ref GeanyKeyBindingID keybinding index. */
|
||||
GEANY_API_SYMBOL
|
||||
void keybindings_send_command(guint group_id, guint key_id)
|
||||
{
|
||||
GeanyKeyBinding *kb;
|
||||
|
1405
src/libmain.c
Normal file
1405
src/libmain.c
Normal file
File diff suppressed because it is too large
Load Diff
1381
src/main.c
1381
src/main.c
File diff suppressed because it is too large
Load Diff
@ -75,6 +75,8 @@ gboolean main_handle_filename(const gchar *locale_filename);
|
||||
|
||||
void main_load_project_from_command_line(const gchar *locale_filename, gboolean use_session);
|
||||
|
||||
gint main_lib(gint argc, gchar **argv);
|
||||
|
||||
#endif /* GEANY_PRIVATE */
|
||||
|
||||
G_END_DECLS
|
||||
|
@ -6,7 +6,9 @@ DEFINES = -DHAVE_CONFIG_H \
|
||||
-DGEANY_LOCALEDIR=\"\" \
|
||||
-DGEANY_LIBDIR=\"\" \
|
||||
-DGEANY_PREFIX=\"\" \
|
||||
-DGTK
|
||||
-DGTK \
|
||||
-DGEANY_EXPORT_SYMBOL="__declspec(dllexport)" \
|
||||
-DGEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL
|
||||
|
||||
.SUFFIXES: .c .o .h .a
|
||||
WINDRES = windres.exe
|
||||
|
@ -104,6 +104,7 @@ void msgwin_show_hide_tabs(void)
|
||||
/** Sets the Messages path for opening any parsed filenames without absolute path
|
||||
* from message lines.
|
||||
* @param messages_dir The directory. **/
|
||||
GEANY_API_SYMBOL
|
||||
void msgwin_set_messages_dir(const gchar *messages_dir)
|
||||
{
|
||||
g_free(msgwindow.messages_dir);
|
||||
@ -286,6 +287,7 @@ static const GdkColor *get_color(gint msg_color)
|
||||
* @param format @c printf()-style format string.
|
||||
* @param ... Arguments for the @c format string.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void msgwin_compiler_add(gint msg_color, const gchar *format, ...)
|
||||
{
|
||||
gchar *string;
|
||||
@ -359,6 +361,7 @@ void msgwin_show_hide(gboolean show)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void msgwin_msg_add(gint msg_color, gint line, GeanyDocument *doc, const gchar *format, ...)
|
||||
{
|
||||
gchar *string;
|
||||
@ -417,6 +420,7 @@ void msgwin_msg_add_string(gint msg_color, gint line, GeanyDocument *doc, const
|
||||
* @param format @c printf()-style format string.
|
||||
* @param ... Arguments for the @c format string.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void msgwin_status_add(const gchar *format, ...)
|
||||
{
|
||||
GtkTreeIter iter;
|
||||
@ -1199,6 +1203,7 @@ static gboolean on_msgwin_button_press_event(GtkWidget *widget, GdkEventButton *
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void msgwin_switch_tab(gint tabnum, gboolean show)
|
||||
{
|
||||
GtkWidget *widget = NULL; /* widget to focus */
|
||||
@ -1233,6 +1238,7 @@ void msgwin_switch_tab(gint tabnum, gboolean show)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void msgwin_clear_tab(gint tabnum)
|
||||
{
|
||||
GtkListStore *store = NULL;
|
||||
|
@ -149,6 +149,7 @@ static void add_new_position(const gchar *utf8_filename, gint pos)
|
||||
*
|
||||
* @return @c TRUE if the cursor has changed the position to @a line or @c FALSE otherwise.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean navqueue_goto_line(GeanyDocument *old_doc, GeanyDocument *new_doc, gint line)
|
||||
{
|
||||
gint pos;
|
||||
|
497
src/plugindata.h
497
src/plugindata.h
@ -72,7 +72,7 @@ G_BEGIN_DECLS
|
||||
* Changing this forces all plugins to be recompiled before Geany can load them. */
|
||||
/* This should usually stay the same if fields are only appended, assuming only pointers to
|
||||
* structs and not structs themselves are declared by plugins. */
|
||||
#define GEANY_ABI_VERSION (70 << GEANY_ABI_SHIFT)
|
||||
#define GEANY_ABI_VERSION (71 << GEANY_ABI_SHIFT)
|
||||
|
||||
|
||||
/** Defines a function to check the plugin is safe to load.
|
||||
@ -265,499 +265,14 @@ 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
|
||||
|
||||
/* 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;
|
||||
|
||||
#define document_reload_file document_reload_force
|
||||
|
||||
/** @deprecated - copy into your plugin code if needed.
|
||||
|
326
src/plugins.c
326
src/plugins.c
@ -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);
|
||||
|
@ -48,6 +48,7 @@
|
||||
* @note You should still destroy @a item yourself, usually in @ref plugin_cleanup().
|
||||
* @param plugin Must be @ref geany_plugin.
|
||||
* @param item The item to add. */
|
||||
GEANY_API_SYMBOL
|
||||
void plugin_add_toolbar_item(GeanyPlugin *plugin, GtkToolItem *item)
|
||||
{
|
||||
GtkToolbar *toolbar = GTK_TOOLBAR(main_widgets.toolbar);
|
||||
@ -91,6 +92,7 @@ void plugin_add_toolbar_item(GeanyPlugin *plugin, GtkToolItem *item)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void plugin_module_make_resident(GeanyPlugin *plugin)
|
||||
{
|
||||
g_return_if_fail(plugin);
|
||||
@ -126,6 +128,7 @@ void plugin_module_make_resident(GeanyPlugin *plugin)
|
||||
* @note Since version 1.25 (API >= 218), the object lifetime is watched and so the above
|
||||
* restriction does not apply. However, for objects destroyed by the plugin,
|
||||
* @c g_signal_connect() is safe and has lower overhead. */
|
||||
GEANY_API_SYMBOL
|
||||
void plugin_signal_connect(GeanyPlugin *plugin,
|
||||
GObject *object, const gchar *signal_name, gboolean after,
|
||||
GCallback callback, gpointer user_data)
|
||||
@ -238,6 +241,7 @@ static guint plugin_source_add(GeanyPlugin *plugin, GSource *source, GSourceFunc
|
||||
* @see g_timeout_add()
|
||||
* @since 0.21, plugin API 205.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
guint plugin_timeout_add(GeanyPlugin *plugin, guint interval, GSourceFunc function, gpointer data)
|
||||
{
|
||||
return plugin_source_add(plugin, g_timeout_source_new(interval), function, data);
|
||||
@ -257,6 +261,7 @@ guint plugin_timeout_add(GeanyPlugin *plugin, guint interval, GSourceFunc functi
|
||||
* @see g_timeout_add_seconds()
|
||||
* @since 0.21, plugin API 205.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
guint plugin_timeout_add_seconds(GeanyPlugin *plugin, guint interval, GSourceFunc function,
|
||||
gpointer data)
|
||||
{
|
||||
@ -276,6 +281,7 @@ guint plugin_timeout_add_seconds(GeanyPlugin *plugin, guint interval, GSourceFun
|
||||
* @see g_idle_add()
|
||||
* @since 0.21, plugin API 205.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
guint plugin_idle_add(GeanyPlugin *plugin, GSourceFunc function, gpointer data)
|
||||
{
|
||||
return plugin_source_add(plugin, g_idle_source_new(), function, data);
|
||||
@ -290,6 +296,7 @@ guint plugin_idle_add(GeanyPlugin *plugin, GSourceFunc function, gpointer data)
|
||||
* @param callback Group callback, or @c NULL if you only want individual keybinding callbacks.
|
||||
* @return The plugin's keybinding group.
|
||||
* @since 0.19. */
|
||||
GEANY_API_SYMBOL
|
||||
GeanyKeyGroup *plugin_set_key_group(GeanyPlugin *plugin,
|
||||
const gchar *section_name, gsize count, GeanyKeyGroupCallback callback)
|
||||
{
|
||||
@ -402,6 +409,7 @@ static void configure_plugins(Plugin *current_plugin)
|
||||
* @param plugin Must be @ref geany_plugin.
|
||||
* @since 0.19. */
|
||||
/* if NULL, show all plugins */
|
||||
GEANY_API_SYMBOL
|
||||
void plugin_show_configure(GeanyPlugin *plugin)
|
||||
{
|
||||
Plugin *p;
|
||||
@ -489,6 +497,7 @@ static void connect_plugin_signals(GtkBuilder *builder, GObject *object,
|
||||
*
|
||||
* @since 1.24, plugin API 217.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void plugin_builder_connect_signals(GeanyPlugin *plugin,
|
||||
GtkBuilder *builder, gpointer user_data)
|
||||
{
|
||||
|
@ -473,8 +473,7 @@ static void destroy_project(gboolean open_default)
|
||||
/* Shows the file chooser dialog when base path button is clicked
|
||||
* FIXME: this should be connected in Glade but 3.8.1 has a bug
|
||||
* where it won't pass any objects as user data (#588824). */
|
||||
G_MODULE_EXPORT void
|
||||
on_project_properties_base_path_button_clicked(GtkWidget *button,
|
||||
static void on_project_properties_base_path_button_clicked(GtkWidget *button,
|
||||
GtkWidget *base_path_entry)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
@ -1154,6 +1153,7 @@ static gboolean write_config(gboolean emit_signal)
|
||||
*
|
||||
* @since 1.25
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void project_write_config(void)
|
||||
{
|
||||
if (!write_config(TRUE))
|
||||
|
@ -44,6 +44,7 @@
|
||||
|
||||
#define SSM(s, m, w, l) scintilla_send_message(s, m, w, l)
|
||||
|
||||
|
||||
/* line numbers visibility */
|
||||
void sci_set_line_numbers(ScintillaObject *sci, gboolean set)
|
||||
{
|
||||
@ -181,6 +182,7 @@ void sci_add_text(ScintillaObject *sci, const gchar *text)
|
||||
/** Sets all text.
|
||||
* @param sci Scintilla widget.
|
||||
* @param text Text. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_text(ScintillaObject *sci, const gchar *text)
|
||||
{
|
||||
if( text != NULL ){ /* if null text is passed to scintilla will segfault */
|
||||
@ -218,6 +220,7 @@ void sci_redo(ScintillaObject *sci)
|
||||
/** Begins grouping a set of edits together as one Undo action.
|
||||
* You must call sci_end_undo_action() after making your edits.
|
||||
* @param sci Scintilla @c GtkWidget. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_start_undo_action(ScintillaObject *sci)
|
||||
{
|
||||
SSM(sci, SCI_BEGINUNDOACTION, 0, 0);
|
||||
@ -227,6 +230,7 @@ void sci_start_undo_action(ScintillaObject *sci)
|
||||
/** Ends grouping a set of edits together as one Undo action.
|
||||
* @param sci Scintilla @c GtkWidget.
|
||||
* @see sci_start_undo_action(). */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_end_undo_action(ScintillaObject *sci)
|
||||
{
|
||||
SSM(sci, SCI_ENDUNDOACTION, 0, 0);
|
||||
@ -279,6 +283,7 @@ gint sci_get_zoom(ScintillaObject *sci)
|
||||
* @param sci Scintilla widget.
|
||||
* @param line_number Line number.
|
||||
* @param marker Marker number. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_marker_at_line(ScintillaObject *sci, gint line_number, gint marker)
|
||||
{
|
||||
SSM(sci, SCI_MARKERADD, (uptr_t) line_number, marker);
|
||||
@ -289,6 +294,7 @@ void sci_set_marker_at_line(ScintillaObject *sci, gint line_number, gint marker)
|
||||
* @param sci Scintilla widget.
|
||||
* @param line_number Line number.
|
||||
* @param marker Marker number. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_delete_marker_at_line(ScintillaObject *sci, gint line_number, gint marker)
|
||||
{
|
||||
SSM(sci, SCI_MARKERDELETE, (uptr_t) line_number, marker);
|
||||
@ -300,6 +306,7 @@ void sci_delete_marker_at_line(ScintillaObject *sci, gint line_number, gint mark
|
||||
* @param line Line number.
|
||||
* @param marker Marker number.
|
||||
* @return Whether it's set. */
|
||||
GEANY_API_SYMBOL
|
||||
gboolean sci_is_marker_set_at_line(ScintillaObject *sci, gint line, gint marker)
|
||||
{
|
||||
gint state;
|
||||
@ -357,6 +364,7 @@ gint sci_marker_previous(ScintillaObject *sci, gint line, gint marker_mask, gboo
|
||||
* @param sci Scintilla widget.
|
||||
* @param position Position.
|
||||
* @return The line. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_line_from_position(ScintillaObject *sci, gint position)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_LINEFROMPOSITION, (uptr_t) position, 0);
|
||||
@ -367,6 +375,7 @@ gint sci_get_line_from_position(ScintillaObject *sci, gint position)
|
||||
* @param sci Scintilla widget.
|
||||
* @param position Position.
|
||||
* @return The column. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_col_from_position(ScintillaObject *sci, gint position)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETCOLUMN, (uptr_t) position, 0);
|
||||
@ -383,6 +392,7 @@ gint sci_get_position_from_col(ScintillaObject *sci, gint line, gint col)
|
||||
* @param sci Scintilla widget.
|
||||
* @param line Line.
|
||||
* @return Position. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_position_from_line(ScintillaObject *sci, gint line)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_POSITIONFROMLINE, (uptr_t) line, 0);
|
||||
@ -392,6 +402,7 @@ gint sci_get_position_from_line(ScintillaObject *sci, gint line)
|
||||
/** Gets the cursor position.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Position. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_current_position(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETCURRENTPOS, 0, 0);
|
||||
@ -413,6 +424,7 @@ gint sci_get_cursor_virtual_space(ScintillaObject *sci)
|
||||
* @param sci Scintilla widget.
|
||||
* @param position Position.
|
||||
* @param scroll_to_caret Whether to scroll the cursor in view. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_current_position(ScintillaObject *sci, gint position, gboolean scroll_to_caret)
|
||||
{
|
||||
if (scroll_to_caret)
|
||||
@ -438,6 +450,7 @@ void sci_set_current_line(ScintillaObject *sci, gint line)
|
||||
/** Gets the total number of lines.
|
||||
* @param sci Scintilla widget.
|
||||
* @return The line count. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_line_count(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETLINECOUNT, 0, 0);
|
||||
@ -447,6 +460,7 @@ gint sci_get_line_count(ScintillaObject *sci)
|
||||
/** Sets the selection start position.
|
||||
* @param sci Scintilla widget.
|
||||
* @param position Position. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_selection_start(ScintillaObject *sci, gint position)
|
||||
{
|
||||
SSM(sci, SCI_SETSELECTIONSTART, (uptr_t) position, 0);
|
||||
@ -456,6 +470,7 @@ void sci_set_selection_start(ScintillaObject *sci, gint position)
|
||||
/** Sets the selection end position.
|
||||
* @param sci Scintilla widget.
|
||||
* @param position Position. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_selection_end(ScintillaObject *sci, gint position)
|
||||
{
|
||||
SSM(sci, SCI_SETSELECTIONEND, (uptr_t) position, 0);
|
||||
@ -472,6 +487,7 @@ void sci_set_selection(ScintillaObject *sci, gint anchorPos, gint currentPos)
|
||||
* @param sci Scintilla widget.
|
||||
* @param line Line.
|
||||
* @return The position at the end of the line. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_line_end_position(ScintillaObject *sci, gint line)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETLINEENDPOSITION, (uptr_t) line, 0);
|
||||
@ -505,6 +521,7 @@ void sci_clear(ScintillaObject *sci)
|
||||
/** Gets the selection start position.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Position. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_selection_start(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETSELECTIONSTART, 0, 0);
|
||||
@ -514,6 +531,7 @@ gint sci_get_selection_start(ScintillaObject *sci)
|
||||
/** Gets the selection end position.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Position. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_selection_end(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETSELECTIONEND, 0, 0);
|
||||
@ -523,6 +541,7 @@ gint sci_get_selection_end(ScintillaObject *sci)
|
||||
/** Replaces selection.
|
||||
* @param sci Scintilla widget.
|
||||
* @param text Text. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_replace_sel(ScintillaObject *sci, const gchar *text)
|
||||
{
|
||||
SSM(sci, SCI_REPLACESEL, 0, (sptr_t) text);
|
||||
@ -532,6 +551,7 @@ void sci_replace_sel(ScintillaObject *sci, const gchar *text)
|
||||
/** Gets the length of all text.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Length. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_length(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETLENGTH, 0, 0);
|
||||
@ -542,6 +562,7 @@ gint sci_get_length(ScintillaObject *sci)
|
||||
* @param sci Scintilla widget.
|
||||
* @returns The lexer ID
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_lexer(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETLEXER, 0, 0);
|
||||
@ -563,6 +584,7 @@ void sci_set_lexer(ScintillaObject *sci, guint lexer_id)
|
||||
* @param sci Scintilla widget.
|
||||
* @param line Line number.
|
||||
* @return Length. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_line_length(ScintillaObject *sci, gint line)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_LINELENGTH, (uptr_t) line, 0);
|
||||
@ -586,6 +608,7 @@ gchar *sci_get_string(ScintillaObject *sci, guint msg, gulong wParam)
|
||||
* @param sci Scintilla widget.
|
||||
* @param line_num Line number.
|
||||
* @return A @c NULL-terminated copy of the line text. */
|
||||
GEANY_API_SYMBOL
|
||||
gchar *sci_get_line(ScintillaObject *sci, gint line_num)
|
||||
{
|
||||
return sci_get_string(sci, SCI_GETLINE, (gulong) line_num);
|
||||
@ -599,6 +622,7 @@ gchar *sci_get_line(ScintillaObject *sci, gint line_num)
|
||||
* @param sci Scintilla widget.
|
||||
* @param len Length of @a text buffer, usually sci_get_length() + 1.
|
||||
* @param text Text buffer; must be allocated @a len + 1 bytes for null-termination. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_get_text(ScintillaObject *sci, gint len, gchar *text)
|
||||
{
|
||||
SSM(sci, SCI_GETTEXT, (uptr_t) len, (sptr_t) text);
|
||||
@ -614,6 +638,7 @@ void sci_get_text(ScintillaObject *sci, gint len, gchar *text)
|
||||
*
|
||||
* @since 1.23 (0.17)
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *sci_get_contents(ScintillaObject *sci, gint buffer_len)
|
||||
{
|
||||
gchar *text;
|
||||
@ -634,6 +659,7 @@ gchar *sci_get_contents(ScintillaObject *sci, gint buffer_len)
|
||||
* @param sci Scintilla widget.
|
||||
* @param text Text buffer; must be allocated sci_get_selected_text_length() + 1 bytes
|
||||
* for null-termination. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_get_selected_text(ScintillaObject *sci, gchar *text)
|
||||
{
|
||||
SSM(sci, SCI_GETSELTEXT, 0, (sptr_t) text);
|
||||
@ -647,6 +673,7 @@ void sci_get_selected_text(ScintillaObject *sci, gchar *text)
|
||||
*
|
||||
* @since 0.17
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *sci_get_selection_contents(ScintillaObject *sci)
|
||||
{
|
||||
return sci_get_string(sci, SCI_GETSELTEXT, 0);
|
||||
@ -656,6 +683,7 @@ gchar *sci_get_selection_contents(ScintillaObject *sci)
|
||||
/** Gets selected text length.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Length. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_selected_text_length(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETSELTEXT, 0, 0);
|
||||
@ -673,6 +701,7 @@ gint sci_get_position_from_xy(ScintillaObject *sci, gint x, gint y, gboolean nea
|
||||
* @param sci Scintilla widget.
|
||||
* @param line Line number.
|
||||
* @return Whether @a line will be drawn on the screen. */
|
||||
GEANY_API_SYMBOL
|
||||
gboolean sci_get_line_is_visible(ScintillaObject *sci, gint line)
|
||||
{
|
||||
return SSM(sci, SCI_GETLINEVISIBLE, (uptr_t) line, 0) != FALSE;
|
||||
@ -682,6 +711,7 @@ gboolean sci_get_line_is_visible(ScintillaObject *sci, gint line)
|
||||
/** Makes @a line visible (folding may have hidden it).
|
||||
* @param sci Scintilla widget.
|
||||
* @param line Line number. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_ensure_line_is_visible(ScintillaObject *sci, gint line)
|
||||
{
|
||||
SSM(sci, SCI_ENSUREVISIBLE, (uptr_t) line, 0);
|
||||
@ -743,6 +773,7 @@ void sci_set_tab_width(ScintillaObject *sci, gint width)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_tab_width(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETTABWIDTH, 0, 0);
|
||||
@ -753,6 +784,7 @@ gint sci_get_tab_width(ScintillaObject *sci)
|
||||
* @param sci Scintilla widget.
|
||||
* @param pos Position.
|
||||
* @return Char. */
|
||||
GEANY_API_SYMBOL
|
||||
gchar sci_get_char_at(ScintillaObject *sci, gint pos)
|
||||
{
|
||||
return (gchar) SSM(sci, SCI_GETCHARAT, (uptr_t) pos, 0);
|
||||
@ -783,6 +815,7 @@ void sci_use_popup(ScintillaObject *sci, gboolean enable)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean sci_has_selection(ScintillaObject *sci)
|
||||
{
|
||||
if (SSM(sci, SCI_GETSELECTIONEND, 0, 0) - SSM(sci, SCI_GETSELECTIONSTART, 0, 0))
|
||||
@ -817,6 +850,7 @@ void sci_set_anchor(ScintillaObject *sci, gint pos)
|
||||
|
||||
/** Scrolls the cursor in view.
|
||||
* @param sci Scintilla widget. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_scroll_caret(ScintillaObject *sci)
|
||||
{
|
||||
SSM(sci, SCI_SCROLLCARET, 0, 0);
|
||||
@ -862,6 +896,7 @@ gint sci_search_prev(ScintillaObject *sci, gint flags, const gchar *text)
|
||||
* The @c chrgText.cpMin and @c chrgText.cpMax members of @c TextToFind are filled in
|
||||
* with the start and end positions of the found text.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_find_text(ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_FINDTEXT, (uptr_t) flags, (sptr_t) ttf);
|
||||
@ -873,6 +908,7 @@ gint sci_find_text(ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf)
|
||||
* @param style The style.
|
||||
* @param font The font name.
|
||||
* @param size The font size. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_font(ScintillaObject *sci, gint style, const gchar *font, gint size)
|
||||
{
|
||||
SSM(sci, SCI_STYLESETFONT, (uptr_t) style, (sptr_t) font);
|
||||
@ -887,6 +923,7 @@ void sci_set_font(ScintillaObject *sci, gint style, const gchar *font, gint size
|
||||
* @param line Line.
|
||||
* @param unfold Whether to unfold first.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void sci_goto_line(ScintillaObject *sci, gint line, gboolean unfold)
|
||||
{
|
||||
if (unfold) SSM(sci, SCI_ENSUREVISIBLE, (uptr_t) line, 0);
|
||||
@ -904,6 +941,7 @@ void sci_marker_delete_all(ScintillaObject *sci, gint marker)
|
||||
* @param sci Scintilla widget.
|
||||
* @param position Position.
|
||||
* @return Style ID. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_style_at(ScintillaObject *sci, gint position)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETSTYLEAT, (uptr_t) position, 0);
|
||||
@ -937,6 +975,7 @@ void sci_clear_cmdkey(ScintillaObject *sci, gint key)
|
||||
* @param start Start.
|
||||
* @param end End.
|
||||
* @param text Text will be zero terminated and must be allocated (end - start + 1) bytes. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_get_text_range(ScintillaObject *sci, gint start, gint end, gchar *text)
|
||||
{
|
||||
struct Sci_TextRange tr;
|
||||
@ -955,6 +994,7 @@ void sci_get_text_range(ScintillaObject *sci, gint start, gint end, gchar *text)
|
||||
*
|
||||
* @since 0.17
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *sci_get_contents_range(ScintillaObject *sci, gint start, gint end)
|
||||
{
|
||||
gchar *text;
|
||||
@ -983,6 +1023,7 @@ void sci_selection_duplicate(ScintillaObject *sci)
|
||||
* @param sci Scintilla widget.
|
||||
* @param pos Position, or -1 for current.
|
||||
* @param text Text. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_insert_text(ScintillaObject *sci, gint pos, const gchar *text)
|
||||
{
|
||||
SSM(sci, SCI_INSERTTEXT, (uptr_t) pos, (sptr_t) text);
|
||||
@ -995,18 +1036,21 @@ void sci_target_from_selection(ScintillaObject *sci)
|
||||
}
|
||||
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_target_start(ScintillaObject *sci, gint start)
|
||||
{
|
||||
SSM(sci, SCI_SETTARGETSTART, (uptr_t) start, 0);
|
||||
}
|
||||
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_target_end(ScintillaObject *sci, gint end)
|
||||
{
|
||||
SSM(sci, SCI_SETTARGETEND, (uptr_t) end, 0);
|
||||
}
|
||||
|
||||
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_replace_target(ScintillaObject *sci, const gchar *text, gboolean regex)
|
||||
{
|
||||
return (gint) SSM(sci, (regex) ? SCI_REPLACETARGETRE : SCI_REPLACETARGET, (uptr_t) -1, (sptr_t) text);
|
||||
@ -1032,6 +1076,7 @@ void sci_set_readonly(ScintillaObject *sci, gboolean readonly)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void sci_send_command(ScintillaObject *sci, gint cmd)
|
||||
{
|
||||
SSM(sci, cmd, 0, 0);
|
||||
@ -1041,6 +1086,7 @@ void sci_send_command(ScintillaObject *sci, gint cmd)
|
||||
/** Gets current line number.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Line number. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_current_line(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_LINEFROMPOSITION, (uptr_t) SSM(sci, SCI_GETCURRENTPOS, 0, 0), 0);
|
||||
@ -1084,6 +1130,7 @@ gint sci_get_first_visible_line(ScintillaObject *sci)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void sci_indicator_set(ScintillaObject *sci, gint indic)
|
||||
{
|
||||
SSM(sci, SCI_SETINDICATORCURRENT, (uptr_t) indic, 0);
|
||||
@ -1108,6 +1155,7 @@ void sci_indicator_fill(ScintillaObject *sci, gint pos, gint len)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void sci_indicator_clear(ScintillaObject *sci, gint pos, gint len)
|
||||
{
|
||||
SSM(sci, SCI_INDICATORCLEARRANGE, (uptr_t) pos, len);
|
||||
@ -1139,6 +1187,7 @@ void sci_set_autoc_max_height(ScintillaObject *sci, gint val)
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_find_matching_brace(ScintillaObject *sci, gint pos)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_BRACEMATCH, (uptr_t) pos, 0);
|
||||
@ -1178,6 +1227,7 @@ gint sci_get_pos_at_line_sel_end(ScintillaObject *sci, gint line)
|
||||
/** Gets selection mode.
|
||||
* @param sci Scintilla widget.
|
||||
* @return Selection mode. */
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_selection_mode(ScintillaObject *sci)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETSELECTIONMODE, 0, 0);
|
||||
@ -1187,6 +1237,7 @@ gint sci_get_selection_mode(ScintillaObject *sci)
|
||||
/** Sets selection mode.
|
||||
* @param sci Scintilla widget.
|
||||
* @param mode Mode. */
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_selection_mode(ScintillaObject *sci, gint mode)
|
||||
{
|
||||
SSM(sci, SCI_SETSELECTIONMODE, (uptr_t) mode, 0);
|
||||
@ -1207,6 +1258,7 @@ void sci_set_scrollbar_mode(ScintillaObject *sci, gboolean visible)
|
||||
*
|
||||
* @since 0.19
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void sci_set_line_indentation(ScintillaObject *sci, gint line, gint indent)
|
||||
{
|
||||
SSM(sci, SCI_SETLINEINDENTATION, (uptr_t) line, indent);
|
||||
@ -1220,6 +1272,7 @@ void sci_set_line_indentation(ScintillaObject *sci, gint line, gint indent)
|
||||
*
|
||||
* @since 0.19
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint sci_get_line_indentation(ScintillaObject *sci, gint line)
|
||||
{
|
||||
return (gint) SSM(sci, SCI_GETLINEINDENTATION, (uptr_t) line, 0);
|
||||
|
@ -1034,6 +1034,7 @@ static void create_fif_dialog(void)
|
||||
*
|
||||
* @since 0.14, plugin API 53
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void search_show_find_in_files_dialog(const gchar *dir)
|
||||
{
|
||||
search_show_find_in_files_dialog_full(NULL, dir);
|
||||
|
20
src/stash.c
20
src/stash.c
@ -274,6 +274,7 @@ static void keyfile_action(SettingAction action, StashGroup *group, GKeyFile *ke
|
||||
* so that all Stash settings are initialized to defaults.
|
||||
* @param group .
|
||||
* @param keyfile Usually loaded from a configuration file first. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_load_from_key_file(StashGroup *group, GKeyFile *keyfile)
|
||||
{
|
||||
keyfile_action(SETTING_READ, group, keyfile);
|
||||
@ -284,6 +285,7 @@ void stash_group_load_from_key_file(StashGroup *group, GKeyFile *keyfile)
|
||||
* @a keyfile is usually written to a configuration file afterwards.
|
||||
* @param group .
|
||||
* @param keyfile . */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_save_to_key_file(StashGroup *group, GKeyFile *keyfile)
|
||||
{
|
||||
keyfile_action(SETTING_WRITE, group, keyfile);
|
||||
@ -298,6 +300,7 @@ void stash_group_save_to_key_file(StashGroup *group, GKeyFile *keyfile)
|
||||
* @return @c TRUE if a key file could be loaded.
|
||||
* @see stash_group_load_from_key_file().
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean stash_group_load_from_file(StashGroup *group, const gchar *filename)
|
||||
{
|
||||
GKeyFile *keyfile;
|
||||
@ -322,6 +325,7 @@ gboolean stash_group_load_from_file(StashGroup *group, const gchar *filename)
|
||||
* failed operation is returned.
|
||||
* @see stash_group_save_to_key_file().
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gint stash_group_save_to_file(StashGroup *group, const gchar *filename,
|
||||
GKeyFileFlags flags)
|
||||
{
|
||||
@ -346,6 +350,7 @@ gint stash_group_save_to_file(StashGroup *group, const gchar *filename,
|
||||
/** Creates a new group.
|
||||
* @param name Name used for @c GKeyFile group.
|
||||
* @return Group. */
|
||||
GEANY_API_SYMBOL
|
||||
StashGroup *stash_group_new(const gchar *name)
|
||||
{
|
||||
StashGroup *group = g_new0(StashGroup, 1);
|
||||
@ -361,6 +366,7 @@ StashGroup *stash_group_new(const gchar *name)
|
||||
* Useful e.g. to avoid freeing strings individually.
|
||||
* @note This is *not* called by stash_group_free().
|
||||
* @param group . */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_free_settings(StashGroup *group)
|
||||
{
|
||||
StashPref *entry;
|
||||
@ -382,6 +388,7 @@ void stash_group_free_settings(StashGroup *group)
|
||||
|
||||
/** Frees a group.
|
||||
* @param group . */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_free(StashGroup *group)
|
||||
{
|
||||
StashPref *entry;
|
||||
@ -442,6 +449,7 @@ add_pref(StashGroup *group, GType type, gpointer setting,
|
||||
* @param setting Address of setting variable.
|
||||
* @param key_name Name for key in a @c GKeyFile.
|
||||
* @param default_value Value to use if the key doesn't exist when loading. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_boolean(StashGroup *group, gboolean *setting,
|
||||
const gchar *key_name, gboolean default_value)
|
||||
{
|
||||
@ -454,6 +462,7 @@ void stash_group_add_boolean(StashGroup *group, gboolean *setting,
|
||||
* @param setting Address of setting variable.
|
||||
* @param key_name Name for key in a @c GKeyFile.
|
||||
* @param default_value Value to use if the key doesn't exist when loading. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_integer(StashGroup *group, gint *setting,
|
||||
const gchar *key_name, gint default_value)
|
||||
{
|
||||
@ -467,6 +476,7 @@ void stash_group_add_integer(StashGroup *group, gint *setting,
|
||||
* @param setting Address of setting variable.
|
||||
* @param key_name Name for key in a @c GKeyFile.
|
||||
* @param default_value String to copy if the key doesn't exist when loading, or @c NULL. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_string(StashGroup *group, gchar **setting,
|
||||
const gchar *key_name, const gchar *default_value)
|
||||
{
|
||||
@ -480,6 +490,7 @@ void stash_group_add_string(StashGroup *group, gchar **setting,
|
||||
* @param setting Address of setting variable.
|
||||
* @param key_name Name for key in a @c GKeyFile.
|
||||
* @param default_value Vector to copy if the key doesn't exist when loading. Usually @c NULL. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_string_vector(StashGroup *group, gchar ***setting,
|
||||
const gchar *key_name, const gchar **default_value)
|
||||
{
|
||||
@ -734,6 +745,7 @@ static void pref_action(PrefAction action, StashGroup *group, GtkWidget *owner)
|
||||
* @param owner If non-NULL, used to lookup widgets by name, otherwise
|
||||
* widget pointers are assumed.
|
||||
* @see stash_group_update(). */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_display(StashGroup *group, GtkWidget *owner)
|
||||
{
|
||||
pref_action(PREF_DISPLAY, group, owner);
|
||||
@ -746,6 +758,7 @@ void stash_group_display(StashGroup *group, GtkWidget *owner)
|
||||
* @param owner If non-NULL, used to lookup widgets by name, otherwise
|
||||
* widget pointers are assumed.
|
||||
* @see stash_group_display(). */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_update(StashGroup *group, GtkWidget *owner)
|
||||
{
|
||||
pref_action(PREF_UPDATE, group, owner);
|
||||
@ -773,6 +786,7 @@ add_widget_pref(StashGroup *group, GType setting_type, gpointer setting,
|
||||
* @param default_value Value to use if the key doesn't exist when loading.
|
||||
* @param widget_id @c GtkWidget pointer or string to lookup widget later.
|
||||
* @see stash_group_add_radio_buttons(). */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_toggle_button(StashGroup *group, gboolean *setting,
|
||||
const gchar *key_name, gboolean default_value, StashWidgetID widget_id)
|
||||
{
|
||||
@ -795,6 +809,7 @@ void stash_group_add_toggle_button(StashGroup *group, gboolean *setting,
|
||||
* stash_group_add_radio_buttons(group, &which_one_setting, "which_one", BAR,
|
||||
* "radio_foo", FOO, "radio_bar", BAR, NULL);
|
||||
* @endcode */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_radio_buttons(StashGroup *group, gint *setting,
|
||||
const gchar *key_name, gint default_value,
|
||||
StashWidgetID widget_id, gint enum_id, ...)
|
||||
@ -845,6 +860,7 @@ void stash_group_add_radio_buttons(StashGroup *group, gint *setting,
|
||||
* @param key_name Name for key in a @c GKeyFile.
|
||||
* @param default_value Value to use if the key doesn't exist when loading.
|
||||
* @param widget_id @c GtkWidget pointer or string to lookup widget later. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_spin_button_integer(StashGroup *group, gint *setting,
|
||||
const gchar *key_name, gint default_value, StashWidgetID widget_id)
|
||||
{
|
||||
@ -860,6 +876,7 @@ void stash_group_add_spin_button_integer(StashGroup *group, gint *setting,
|
||||
* @param default_value Value to use if the key doesn't exist when loading.
|
||||
* @param widget_id @c GtkWidget pointer or string to lookup widget later.
|
||||
* @see stash_group_add_combo_box_entry(). */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_combo_box(StashGroup *group, gint *setting,
|
||||
const gchar *key_name, gint default_value, StashWidgetID widget_id)
|
||||
{
|
||||
@ -876,6 +893,7 @@ void stash_group_add_combo_box(StashGroup *group, gint *setting,
|
||||
* @param widget_id @c GtkWidget pointer or string to lookup widget later. */
|
||||
/* We could maybe also have something like stash_group_add_combo_box_entry_with_menu()
|
||||
* for the history list - or should that be stored as a separate setting? */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_combo_box_entry(StashGroup *group, gchar **setting,
|
||||
const gchar *key_name, const gchar *default_value, StashWidgetID widget_id)
|
||||
{
|
||||
@ -890,6 +908,7 @@ void stash_group_add_combo_box_entry(StashGroup *group, gchar **setting,
|
||||
* @param key_name Name for key in a @c GKeyFile.
|
||||
* @param default_value Value to use if the key doesn't exist when loading.
|
||||
* @param widget_id @c GtkWidget pointer or string to lookup widget later. */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_entry(StashGroup *group, gchar **setting,
|
||||
const gchar *key_name, const gchar *default_value, StashWidgetID widget_id)
|
||||
{
|
||||
@ -922,6 +941,7 @@ static GType object_get_property_type(GObject *object, const gchar *property_nam
|
||||
* @c GObject data.
|
||||
* @warning Currently only string GValue properties will be freed before setting; patch for
|
||||
* other types - see @c handle_widget_property(). */
|
||||
GEANY_API_SYMBOL
|
||||
void stash_group_add_widget_property(StashGroup *group, gpointer setting,
|
||||
const gchar *key_name, gpointer default_value, StashWidgetID widget_id,
|
||||
const gchar *property_name, GType type)
|
||||
|
@ -36,6 +36,9 @@ typedef gconstpointer StashWidgetID;
|
||||
|
||||
StashGroup *stash_group_new(const gchar *name);
|
||||
|
||||
void stash_group_add_boolean(StashGroup *group, gboolean *setting,
|
||||
const gchar *key_name, gboolean default_value);
|
||||
|
||||
void stash_group_add_integer(StashGroup *group, gint *setting,
|
||||
const gchar *key_name, gint default_value);
|
||||
|
||||
@ -94,9 +97,6 @@ void stash_group_set_various(StashGroup *group, gboolean write_once);
|
||||
|
||||
void stash_group_set_use_defaults(StashGroup *group, gboolean use_defaults);
|
||||
|
||||
void stash_group_add_boolean(StashGroup *group, gboolean *setting,
|
||||
const gchar *key_name, gboolean default_value);
|
||||
|
||||
/* *** GTK-related functions *** */
|
||||
|
||||
void stash_tree_setup(GPtrArray *group_array, GtkTreeView *tree);
|
||||
|
@ -292,6 +292,7 @@ GString *symbols_find_typenames_as_string(gint lang, gboolean global)
|
||||
*
|
||||
* @since 0.19
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *symbols_get_context_separator(gint ft_id)
|
||||
{
|
||||
switch (ft_id)
|
||||
|
@ -456,6 +456,7 @@ static gchar *get_template_fileheader(GeanyFiletype *ft)
|
||||
|
||||
|
||||
/* TODO change the signature to take a GeanyDocument? this would break plugin API/ABI */
|
||||
GEANY_API_SYMBOL
|
||||
gchar *templates_get_template_fileheader(gint filetype_idx, const gchar *fname)
|
||||
{
|
||||
GeanyFiletype *ft = filetypes[filetype_idx];
|
||||
|
@ -165,6 +165,7 @@ static void set_statusbar(const gchar *text, gboolean allow_override)
|
||||
/** Displays text on the statusbar.
|
||||
* @param log Whether the message should be recorded in the Status window.
|
||||
* @param format A @c printf -style string. */
|
||||
GEANY_API_SYMBOL
|
||||
void ui_set_statusbar(gboolean log, const gchar *format, ...)
|
||||
{
|
||||
gchar *string;
|
||||
@ -966,6 +967,7 @@ static void on_doc_sensitive_widget_destroy(GtkWidget *widget, G_GNUC_UNUSED gpo
|
||||
*
|
||||
* @since 0.15
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_add_document_sensitive(GtkWidget *widget)
|
||||
{
|
||||
gboolean enable = gtk_notebook_get_n_pages(GTK_NOTEBOOK(main_widgets.notebook)) > 0;
|
||||
@ -1459,6 +1461,7 @@ void ui_update_view_editor_menu_items(void)
|
||||
* @param label_text The label text.
|
||||
* @param alignment An address to store the alignment widget pointer.
|
||||
* @return The frame widget, setting the alignment container for packing child widgets. */
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget *ui_frame_new_with_alignment(const gchar *label_text, GtkWidget **alignment)
|
||||
{
|
||||
GtkWidget *label, *align;
|
||||
@ -1481,6 +1484,7 @@ GtkWidget *ui_frame_new_with_alignment(const gchar *label_text, GtkWidget **alig
|
||||
/** Makes a fixed border for dialogs without increasing the button box border.
|
||||
* @param dialog The parent container for the @c GtkVBox.
|
||||
* @return The packed @c GtkVBox. */
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget *ui_dialog_vbox_new(GtkDialog *dialog)
|
||||
{
|
||||
GtkWidget *vbox = gtk_vbox_new(FALSE, 12); /* need child vbox to set a separate border. */
|
||||
@ -1555,6 +1559,7 @@ void ui_dialog_set_primary_button_order(GtkDialog *dialog, gint response, ...)
|
||||
* @param text Button label text, can include mnemonics.
|
||||
* @return The new @c GtkButton.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget *ui_button_new_with_image(const gchar *stock_id, const gchar *text)
|
||||
{
|
||||
GtkWidget *image, *button;
|
||||
@ -1575,6 +1580,7 @@ GtkWidget *ui_button_new_with_image(const gchar *stock_id, const gchar *text)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget *
|
||||
ui_image_menu_item_new(const gchar *stock_id, const gchar *label)
|
||||
{
|
||||
@ -1605,6 +1611,7 @@ static void entry_clear_icon_release_cb(GtkEntry *entry, gint icon_pos,
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_entry_add_clear_icon(GtkEntry *entry)
|
||||
{
|
||||
g_object_set(entry, "secondary-icon-stock", GTK_STOCK_CLEAR,
|
||||
@ -1697,6 +1704,7 @@ static gboolean tree_model_find_text(GtkTreeModel *model,
|
||||
* @param combo_entry .
|
||||
* @param text Text to add, or @c NULL for current entry text.
|
||||
* @param history_len Max number of items, or @c 0 for default. */
|
||||
GEANY_API_SYMBOL
|
||||
void ui_combo_box_add_to_history(GtkComboBoxText *combo_entry,
|
||||
const gchar *text, gint history_len)
|
||||
{
|
||||
@ -1875,6 +1883,7 @@ static gboolean ui_tree_view_query_tooltip_cb(GtkWidget *widget, gint x, gint y,
|
||||
*/
|
||||
/* Note: @p column is int and not uint both to match gtk_tree_view_set_tooltip_column() signature
|
||||
* and to allow future support of -1 to unset if ever wanted */
|
||||
GEANY_API_SYMBOL
|
||||
void ui_tree_view_set_tooltip_text_column(GtkTreeView *tree_view, gint column)
|
||||
{
|
||||
g_return_if_fail(column >= 0);
|
||||
@ -1892,6 +1901,7 @@ void ui_tree_view_set_tooltip_text_column(GtkTreeView *tree_view, gint column)
|
||||
* @param widget The widget.
|
||||
* @param str The font name as expected by pango_font_description_from_string().
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_widget_modify_font_from_string(GtkWidget *widget, const gchar *str)
|
||||
{
|
||||
PangoFontDescription *pfd;
|
||||
@ -1913,6 +1923,7 @@ void ui_widget_modify_font_from_string(GtkWidget *widget, const gchar *str)
|
||||
* @return The @c GtkHBox.
|
||||
*/
|
||||
/* @see ui_setup_open_button_callback(). */
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget *ui_path_box_new(const gchar *title, GtkFileChooserAction action, GtkEntry *entry)
|
||||
{
|
||||
GtkWidget *vbox, *dirbtn, *openimg, *hbox, *path_entry;
|
||||
@ -2063,6 +2074,7 @@ void ui_statusbar_showhide(gboolean state)
|
||||
* @param table
|
||||
* @param row The row number of the table.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_table_add_row(GtkTable *table, gint row, ...)
|
||||
{
|
||||
va_list args;
|
||||
@ -2435,7 +2447,7 @@ void ui_init_builder(void)
|
||||
}
|
||||
g_free(interface_file);
|
||||
|
||||
gtk_builder_connect_signals(builder, NULL);
|
||||
callbacks_connect(builder);
|
||||
|
||||
edit_menu1 = GTK_WIDGET(gtk_builder_get_object(builder, "edit_menu1"));
|
||||
prefs_dialog = GTK_WIDGET(gtk_builder_get_object(builder, "prefs_dialog"));
|
||||
@ -2642,6 +2654,7 @@ void ui_auto_separator_add_ref(GeanyAutoSeparator *autosep, GtkWidget *item)
|
||||
* @since 0.16
|
||||
* @deprecated 0.21 use gtk_widget_set_tooltip_text() instead
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_widget_set_tooltip_text(GtkWidget *widget, const gchar *text)
|
||||
{
|
||||
gtk_widget_set_tooltip_text(widget, text);
|
||||
@ -2659,6 +2672,7 @@ void ui_widget_set_tooltip_text(GtkWidget *widget, const gchar *text)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
GtkWidget *ui_lookup_widget(GtkWidget *widget, const gchar *widget_name)
|
||||
{
|
||||
GtkWidget *parent, *found_widget;
|
||||
@ -2737,6 +2751,7 @@ static gboolean progress_bar_pulse(gpointer data)
|
||||
*
|
||||
* @since 0.16
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_progress_bar_start(const gchar *text)
|
||||
{
|
||||
g_return_if_fail(progress_bar_timer_id == 0);
|
||||
@ -2756,6 +2771,7 @@ void ui_progress_bar_start(const gchar *text)
|
||||
*
|
||||
* @since 0.16
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void ui_progress_bar_stop(void)
|
||||
{
|
||||
gtk_widget_hide(GTK_WIDGET(main_widgets.progressbar));
|
||||
@ -2837,6 +2853,7 @@ GtkWidget *ui_label_new_bold(const gchar *text)
|
||||
* the corresponding document pointer as @c user_data.
|
||||
* @warning You should check @c doc->is_valid in the callback.
|
||||
* @since 0.19 */
|
||||
GEANY_API_SYMBOL
|
||||
void ui_menu_add_document_items(GtkMenu *menu, GeanyDocument *active, GCallback callback)
|
||||
{
|
||||
ui_menu_add_document_items_sorted(menu, active, callback, NULL);
|
||||
@ -2857,6 +2874,7 @@ void ui_menu_add_document_items(GtkMenu *menu, GeanyDocument *active, GCallback
|
||||
* @param compare_func is used to sort the list. Might be @c NULL to not sort the list.
|
||||
* @warning You should check @c doc->is_valid in the callback.
|
||||
* @since 0.21 */
|
||||
GEANY_API_SYMBOL
|
||||
void ui_menu_add_document_items_sorted(GtkMenu *menu, GeanyDocument *active,
|
||||
GCallback callback, GCompareFunc compare_func)
|
||||
{
|
||||
@ -2916,6 +2934,7 @@ void ui_menu_add_document_items_sorted(GtkMenu *menu, GeanyDocument *active,
|
||||
* @param keyval A keyval.
|
||||
* @return @c TRUE if @a keyval is the one of the Enter/Return key values, otherwise @c FALSE.
|
||||
* @since 0.19 */
|
||||
GEANY_API_SYMBOL
|
||||
gboolean ui_is_keyval_enter_or_return(guint keyval)
|
||||
{
|
||||
return (keyval == GDK_Return || keyval == GDK_ISO_Enter|| keyval == GDK_KP_Enter);
|
||||
@ -2928,6 +2947,7 @@ gboolean ui_is_keyval_enter_or_return(guint keyval)
|
||||
* @param default_value The default value in case the value could not be read.
|
||||
* @return The value for the property if it exists, otherwise the @a default_value.
|
||||
* @since 0.19 */
|
||||
GEANY_API_SYMBOL
|
||||
gint ui_get_gtk_settings_integer(const gchar *property_name, gint default_value)
|
||||
{
|
||||
if (g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(
|
||||
@ -3017,6 +3037,7 @@ void ui_focus_current_document(void)
|
||||
* @param stock_id stock_id to lookup e.g. @c GTK_STOCK_OPEN.
|
||||
* @return The label text for stock
|
||||
* @since Geany 1.22 */
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *ui_lookup_stock_label(const gchar *stock_id)
|
||||
{
|
||||
GtkStockItem item;
|
||||
|
23
src/utils.c
23
src/utils.c
@ -69,6 +69,7 @@
|
||||
*
|
||||
* @since 0.16
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
void utils_open_browser(const gchar *uri)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
@ -210,6 +211,7 @@ gboolean utils_is_opening_brace(gchar c, gboolean include_angles)
|
||||
* @return 0 if the file was successfully written, otherwise the @c errno of the
|
||||
* failed operation is returned.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gint utils_write_file(const gchar *filename, const gchar *text)
|
||||
{
|
||||
g_return_val_if_fail(filename != NULL, ENOENT);
|
||||
@ -269,6 +271,7 @@ gint utils_write_file(const gchar *filename, const gchar *text)
|
||||
* @param size .
|
||||
* @return The tag name (newly allocated) or @c NULL if no opening tag was found.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_find_open_xml_tag(const gchar sel[], gint size)
|
||||
{
|
||||
const gchar *cur, *begin;
|
||||
@ -293,6 +296,7 @@ gchar *utils_find_open_xml_tag(const gchar sel[], gint size)
|
||||
* @param size .
|
||||
* @return pointer to '<' of the found opening tag within @a sel, or @c NULL if no opening tag was found.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
const gchar *utils_find_open_xml_tag_pos(const gchar sel[], gint size)
|
||||
{
|
||||
/* stolen from anjuta and modified */
|
||||
@ -500,6 +504,7 @@ static gchar *utf8_strdown(const gchar *str)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gint utils_str_casecmp(const gchar *s1, const gchar *s2)
|
||||
{
|
||||
gchar *tmp1, *tmp2;
|
||||
@ -542,6 +547,7 @@ gint utils_str_casecmp(const gchar *s1, const gchar *s2)
|
||||
* @since 0.17
|
||||
*/
|
||||
/* This following function is taken from Gedit. */
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_str_middle_truncate(const gchar *string, guint truncate_length)
|
||||
{
|
||||
GString *truncated;
|
||||
@ -591,6 +597,7 @@ gchar *utils_str_middle_truncate(const gchar *string, guint truncate_length)
|
||||
*
|
||||
* @return @c TRUE if @a a equals @a b, else @c FALSE.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean utils_str_equal(const gchar *a, const gchar *b)
|
||||
{
|
||||
/* (taken from libexo from os-cillation) */
|
||||
@ -608,6 +615,7 @@ gboolean utils_str_equal(const gchar *a, const gchar *b)
|
||||
*
|
||||
* @return A newly-allocated string, should be freed when no longer needed.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_remove_ext_from_filename(const gchar *filename)
|
||||
{
|
||||
gchar *last_dot;
|
||||
@ -726,6 +734,7 @@ gint utils_strpos(const gchar *haystack, const gchar *needle)
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_get_date_time(const gchar *format, time_t *time_to_use)
|
||||
{
|
||||
const struct tm *tm;
|
||||
@ -794,6 +803,7 @@ gchar *utils_get_initials(const gchar *name)
|
||||
* @return The value associated with @a key as an integer, or the given default value if the value
|
||||
* could not be retrieved.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gint utils_get_setting_integer(GKeyFile *config, const gchar *section, const gchar *key,
|
||||
const gint default_value)
|
||||
{
|
||||
@ -824,6 +834,7 @@ gint utils_get_setting_integer(GKeyFile *config, const gchar *section, const gch
|
||||
* @return The value associated with @a key as a boolean, or the given default value if the value
|
||||
* could not be retrieved.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean utils_get_setting_boolean(GKeyFile *config, const gchar *section, const gchar *key,
|
||||
const gboolean default_value)
|
||||
{
|
||||
@ -854,6 +865,7 @@ gboolean utils_get_setting_boolean(GKeyFile *config, const gchar *section, const
|
||||
* @return A newly allocated string, either the value for @a key or a copy of the given
|
||||
* default value if it could not be retrieved.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_get_setting_string(GKeyFile *config, const gchar *section, const gchar *key,
|
||||
const gchar *default_value)
|
||||
{
|
||||
@ -1247,6 +1259,7 @@ gboolean utils_wrap_string(gchar *string, gint wrapstart)
|
||||
* @return The converted string in locale encoding, or a copy of the input string if conversion
|
||||
* failed. Should be freed with g_free(). If @a utf8_text is @c NULL, @c NULL is returned.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_get_locale_from_utf8(const gchar *utf8_text)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
@ -1275,6 +1288,7 @@ gchar *utils_get_locale_from_utf8(const gchar *utf8_text)
|
||||
* @return The converted string in UTF-8 encoding, or a copy of the input string if conversion
|
||||
* failed. Should be freed with g_free(). If @a locale_text is @c NULL, @c NULL is returned.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_get_utf8_from_locale(const gchar *locale_text)
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
@ -1364,6 +1378,7 @@ gchar **utils_strv_new(const gchar *first, ...)
|
||||
* @return 0 if the directory was successfully created, otherwise the @c errno of the
|
||||
* failed operation is returned.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gint utils_mkdir(const gchar *path, gboolean create_parent_dirs)
|
||||
{
|
||||
gint mode = 0700;
|
||||
@ -1400,6 +1415,7 @@ gint utils_mkdir(const gchar *path, gboolean create_parent_dirs)
|
||||
* freed when no longer needed.
|
||||
* @see utils_get_file_list().
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GSList *utils_get_file_list_full(const gchar *path, gboolean full_path, gboolean sort, GError **error)
|
||||
{
|
||||
GSList *list = NULL;
|
||||
@ -1444,6 +1460,7 @@ GSList *utils_get_file_list_full(const gchar *path, gboolean full_path, gboolean
|
||||
* freed when no longer needed.
|
||||
* @see utils_get_file_list_full().
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
GSList *utils_get_file_list(const gchar *path, guint *length, GError **error)
|
||||
{
|
||||
GSList *list = utils_get_file_list_full(path, FALSE, TRUE, error);
|
||||
@ -1531,6 +1548,7 @@ gint utils_string_replace(GString *str, gint pos, gint len, const gchar *replace
|
||||
*
|
||||
* @return Number of replacements made.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
guint utils_string_replace_all(GString *haystack, const gchar *needle, const gchar *replace)
|
||||
{
|
||||
guint count = 0;
|
||||
@ -1564,6 +1582,7 @@ guint utils_string_replace_all(GString *haystack, const gchar *needle, const gch
|
||||
*
|
||||
* @since 0.16
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
guint utils_string_replace_first(GString *haystack, const gchar *needle, const gchar *replace)
|
||||
{
|
||||
gint pos = utils_string_find(haystack, 0, -1, needle);
|
||||
@ -1648,6 +1667,7 @@ const gchar *utils_get_default_dir_utf8(void)
|
||||
*
|
||||
* @return @c TRUE on success, @c FALSE if an error was set.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
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)
|
||||
@ -1691,6 +1711,7 @@ gboolean utils_spawn_sync(const gchar *dir, gchar **argv, gchar **env, GSpawnFla
|
||||
*
|
||||
* @return @c TRUE on success, @c FALSE if an error was set.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gboolean utils_spawn_async(const gchar *dir, gchar **argv, gchar **env, GSpawnFlags flags,
|
||||
GSpawnChildSetupFunc child_setup, gpointer user_data, GPid *child_pid,
|
||||
GError **error)
|
||||
@ -1859,6 +1880,7 @@ void utils_tidy_path(gchar *filename)
|
||||
*
|
||||
* @see @c g_strdelimit.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *utils_str_remove_chars(gchar *string, const gchar *chars)
|
||||
{
|
||||
const gchar *r;
|
||||
@ -1970,6 +1992,7 @@ static gboolean str_in_array(const gchar **haystack, const gchar *needle)
|
||||
*
|
||||
* @return The new environment array.
|
||||
**/
|
||||
GEANY_API_SYMBOL
|
||||
gchar **utils_copy_environment(const gchar **exclude_vars, const gchar *first_varname, ...)
|
||||
{
|
||||
gchar **result;
|
||||
|
@ -3,12 +3,13 @@ AM_CPPFLAGS = \
|
||||
-I$(srcdir)/.. \
|
||||
-DG_LOG_DOMAIN=\"CTags\"
|
||||
AM_CFLAGS = \
|
||||
$(GTK_CFLAGS)
|
||||
$(GTK_CFLAGS) \
|
||||
@LIBGEANY_CFLAGS@
|
||||
|
||||
EXTRA_DIST = \
|
||||
makefile.win32
|
||||
|
||||
noinst_LIBRARIES = libctags.a
|
||||
noinst_LTLIBRARIES = libctags.la
|
||||
|
||||
parsers = \
|
||||
abaqus.c \
|
||||
@ -54,7 +55,7 @@ parsers = \
|
||||
verilog.c \
|
||||
vhdl.c
|
||||
|
||||
libctags_a_SOURCES = \
|
||||
libctags_la_SOURCES = \
|
||||
args.c \
|
||||
args.h \
|
||||
ctags.c \
|
||||
@ -83,4 +84,3 @@ libctags_a_SOURCES = \
|
||||
vstring.c \
|
||||
vstring.h \
|
||||
$(parsers)
|
||||
|
||||
|
@ -599,11 +599,7 @@ extern FILE *tempFile (const char *const mode, char **const pName)
|
||||
tmpdir = TMPDIR;
|
||||
name = xMalloc (strlen (tmpdir) + 1 + strlen (template) + 1, char);
|
||||
sprintf (name, "%s%c%s", tmpdir, OUTPUT_PATH_SEPARATOR, template);
|
||||
#ifdef G_OS_WIN32
|
||||
fd = mkstemps(name, 0);
|
||||
#else
|
||||
fd = mkstemp(name);
|
||||
#endif
|
||||
#else
|
||||
name = xMalloc (L_tmpnam, char);
|
||||
if (tmpnam (name) != name)
|
||||
|
@ -1,9 +1,9 @@
|
||||
noinst_LIBRARIES = libmio.a
|
||||
noinst_LTLIBRARIES = libmio.la
|
||||
|
||||
AM_CPPFLAGS = -DG_LOG_DOMAIN=\"MIO\" #-DMIO_DEBUG
|
||||
AM_CFLAGS = $(GTK_CFLAGS)
|
||||
AM_CFLAGS = $(GTK_CFLAGS) @LIBGEANY_CFLAGS@
|
||||
|
||||
libmio_a_SOURCES = mio.c
|
||||
libmio_la_SOURCES = mio.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
mio.h \
|
||||
|
@ -5,12 +5,13 @@ AM_CPPFLAGS = \
|
||||
-DGEANY_PRIVATE \
|
||||
-DG_LOG_DOMAIN=\"Tagmanager\"
|
||||
AM_CFLAGS = \
|
||||
$(GTK_CFLAGS)
|
||||
$(GTK_CFLAGS) \
|
||||
@LIBGEANY_CFLAGS@
|
||||
|
||||
EXTRA_DIST = \
|
||||
makefile.win32
|
||||
|
||||
noinst_LIBRARIES = libtagmanager.a
|
||||
noinst_LTLIBRARIES = libtagmanager.la
|
||||
|
||||
tagmanager_includedir = $(includedir)/geany/tagmanager
|
||||
tagmanager_include_HEADERS = \
|
||||
@ -20,7 +21,7 @@ tagmanager_include_HEADERS = \
|
||||
tm_workspace.h
|
||||
|
||||
|
||||
libtagmanager_a_SOURCES =\
|
||||
libtagmanager_la_SOURCES =\
|
||||
tm_tagmanager.h \
|
||||
tm_parser.h \
|
||||
tm_source_file.h \
|
||||
|
@ -29,7 +29,9 @@ GTK_INCLUDES= \
|
||||
|
||||
INCLUDEDIRS=-I ../ctags -I ../ -I . $(GTK_INCLUDES)
|
||||
|
||||
CBASEFLAGS=-Wall -pipe -mms-bitfields -DGEANY_PRIVATE -DPACKAGE=\"geany\" -Wno-missing-braces -Wno-char-subscripts $(INCLUDEDIRS)
|
||||
CBASEFLAGS=-Wall -pipe -mms-bitfields -DGEANY_PRIVATE -DPACKAGE=\"geany\" -Wno-missing-braces -Wno-char-subscripts $(INCLUDEDIRS) \
|
||||
-DGEANY_EXPORT_SYMBOL="__declspec(dllexport)" \
|
||||
-DGEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL
|
||||
ifdef DEBUG
|
||||
CFLAGS= -O0 -g $(CBASEFLAGS)
|
||||
else
|
||||
|
@ -84,6 +84,7 @@ static char *realpath (const char *pathname, char *resolved_path)
|
||||
@param file_name The original file_name
|
||||
@return A newly allocated string containing the real path to the file. NULL if none is available.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
gchar *tm_get_real_path(const gchar *file_name)
|
||||
{
|
||||
if (file_name)
|
||||
@ -195,6 +196,7 @@ static gboolean tm_source_file_init(TMSourceFile *source_file, const char *file_
|
||||
* @param name Name of the used programming language, NULL for autodetection.
|
||||
* @return The created unparsed TMSourceFile object.
|
||||
* */
|
||||
GEANY_API_SYMBOL
|
||||
TMSourceFile *tm_source_file_new(const char *file_name, const char *name)
|
||||
{
|
||||
TMSourceFile *source_file = g_new(TMSourceFile, 1);
|
||||
@ -225,6 +227,7 @@ static void tm_source_file_destroy(TMSourceFile *source_file)
|
||||
function the TMSourceFile has to be removed from the TMWorkspace.
|
||||
@param source_file The source file to free.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void tm_source_file_free(TMSourceFile *source_file)
|
||||
{
|
||||
if (NULL != source_file)
|
||||
|
@ -157,6 +157,7 @@ static void update_source_file(TMSourceFile *source_file, guchar* text_buf,
|
||||
/** Adds a source file to the workspace, parses it and updates the workspace tags.
|
||||
@param source_file The source file to add to the workspace.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void tm_workspace_add_source_file(TMSourceFile *source_file)
|
||||
{
|
||||
g_return_if_fail(source_file != NULL);
|
||||
@ -199,6 +200,7 @@ void tm_workspace_update_source_file_buffer(TMSourceFile *source_file, guchar* t
|
||||
pointer call tm_source_file_free() on it.
|
||||
@param source_file Pointer to the source file to be removed.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void tm_workspace_remove_source_file(TMSourceFile *source_file)
|
||||
{
|
||||
guint i;
|
||||
@ -266,6 +268,7 @@ static void tm_workspace_update(void)
|
||||
tm_workspace_update_source_file() separately for each of the files.
|
||||
@param source_files The source files to be added to the workspace.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void tm_workspace_add_source_files(GPtrArray *source_files)
|
||||
{
|
||||
guint i;
|
||||
@ -290,6 +293,7 @@ void tm_workspace_add_source_files(GPtrArray *source_files)
|
||||
call tm_source_file_free() on each of them.
|
||||
@param source_files The source files to be removed from the workspace.
|
||||
*/
|
||||
GEANY_API_SYMBOL
|
||||
void tm_workspace_remove_source_files(GPtrArray *source_files)
|
||||
{
|
||||
guint i, j;
|
||||
|
145
wscript
145
wscript
@ -58,10 +58,11 @@ MINIMUM_GTK_VERSION = '2.16.0'
|
||||
MINIMUM_GTK3_VERSION = '3.0.0'
|
||||
MINIMUM_GLIB_VERSION = '2.20.0'
|
||||
|
||||
GEANY_LIB_VERSION = '0.0.0'
|
||||
|
||||
top = '.'
|
||||
out = '_build_'
|
||||
|
||||
|
||||
mio_sources = set(['tagmanager/mio/mio.c'])
|
||||
|
||||
ctags_sources = set([
|
||||
@ -132,7 +133,7 @@ geany_sources = set([
|
||||
'src/editor.c', 'src/encodings.c', 'src/filetypes.c', 'src/geanyentryaction.c',
|
||||
'src/geanymenubuttonaction.c', 'src/geanyobject.c', 'src/geanywraplabel.c',
|
||||
'src/highlighting.c', 'src/keybindings.c',
|
||||
'src/keyfile.c', 'src/log.c', 'src/main.c', 'src/msgwindow.c', 'src/navqueue.c', 'src/notebook.c', 'src/osx.c',
|
||||
'src/keyfile.c', 'src/log.c', 'src/libmain.c', 'src/msgwindow.c', 'src/navqueue.c', 'src/notebook.c', 'src/osx.c',
|
||||
'src/plugins.c', 'src/pluginutils.c', 'src/prefix.c', 'src/prefs.c', 'src/printing.c', 'src/project.c',
|
||||
'src/sciwrappers.c', 'src/search.c', 'src/socket.c', 'src/stash.c',
|
||||
'src/symbols.c',
|
||||
@ -186,6 +187,7 @@ def configure(conf):
|
||||
conf.load('compiler_c')
|
||||
is_win32 = _target_is_win32(conf)
|
||||
|
||||
visibility_hidden_supported = conf.check_cc(cflags=['-Werror', '-fvisibility=hidden'], mandatory=False)
|
||||
conf.check_cc(header_name='fcntl.h', mandatory=False)
|
||||
conf.check_cc(header_name='fnmatch.h', mandatory=False)
|
||||
conf.check_cc(header_name='glob.h', mandatory=False)
|
||||
@ -268,7 +270,7 @@ but you then may not have a local copy of the HTML manual.'''
|
||||
'-mwindows',
|
||||
'-static-libgcc',
|
||||
'-static-libstdc++'])
|
||||
conf.env.append_value('LIB_WIN32', ['wsock32', 'uuid', 'ole32'])
|
||||
conf.env.append_value('LIB_WIN32', ['wsock32', 'uuid', 'ole32', 'comdlg32'])
|
||||
# explicitly define Windows version for older Mingw environments
|
||||
conf.define('WINVER', '0x0501', quote=False) # for SHGetFolderPathAndSubDirW
|
||||
conf.define('_WIN32_IE', '0x0500', quote=False) # for SHGFP_TYPE
|
||||
@ -307,6 +309,21 @@ but you then may not have a local copy of the HTML manual.'''
|
||||
|
||||
conf.write_config_header('config.h', remove=False)
|
||||
|
||||
# GEANY_EXPORT_SYMBOL and GEANY_API_SYMBOL
|
||||
if is_win32:
|
||||
geanyexport_cflags = []
|
||||
geanyexport_defines = ['GEANY_EXPORT_SYMBOL=__declspec(dllexport)']
|
||||
elif visibility_hidden_supported:
|
||||
geanyexport_cflags = ['-fvisibility=hidden']
|
||||
geanyexport_defines = ['GEANY_EXPORT_SYMBOL=__attribute__((visibility("default")))']
|
||||
else: # unknown, define to nothing
|
||||
geanyexport_cflags = []
|
||||
geanyexport_defines = ['GEANY_EXPORT_SYMBOL=']
|
||||
geanyexport_defines.append('GEANY_API_SYMBOL=GEANY_EXPORT_SYMBOL')
|
||||
conf.env['DEFINES_geanyexport'] = geanyexport_defines
|
||||
conf.env['CFLAGS_geanyexport'] = geanyexport_cflags
|
||||
conf.env['CXXFLAGS_geanyexport'] = geanyexport_cflags
|
||||
|
||||
# some more compiler flags
|
||||
conf.env.append_value('CFLAGS', ['-DHAVE_CONFIG_H'])
|
||||
if conf.env['CC_NAME'] == 'gcc' and '-O' not in ''.join(conf.env['CFLAGS']):
|
||||
@ -389,52 +406,49 @@ def build(bld):
|
||||
defines = 'G_LOG_DOMAIN="%s"' % plugin_name,
|
||||
target = plugin_name,
|
||||
uselib = ['GTK', 'GLIB', 'GMODULE'] + uselib_add,
|
||||
use = ['geany'],
|
||||
install_path = instpath)
|
||||
|
||||
# CTags
|
||||
bld(
|
||||
features = ['c', 'cstlib'],
|
||||
bld.objects(
|
||||
features = ['c'],
|
||||
source = ctags_sources,
|
||||
name = 'ctags',
|
||||
target = 'ctags',
|
||||
includes = ['.', 'tagmanager', 'tagmanager/ctags'],
|
||||
defines = 'G_LOG_DOMAIN="CTags"',
|
||||
uselib = ['GLIB'],
|
||||
install_path = None) # do not install this library
|
||||
uselib = ['cshlib', 'GLIB', 'geanyexport'])
|
||||
|
||||
# Tagmanager
|
||||
bld(
|
||||
features = ['c', 'cstlib'],
|
||||
bld.objects(
|
||||
features = ['c'],
|
||||
source = tagmanager_sources,
|
||||
name = 'tagmanager',
|
||||
target = 'tagmanager',
|
||||
includes = ['.', 'tagmanager', 'tagmanager/ctags'],
|
||||
defines = ['GEANY_PRIVATE', 'G_LOG_DOMAIN="Tagmanager"'],
|
||||
uselib = ['GTK', 'GLIB'],
|
||||
install_path = None) # do not install this library
|
||||
uselib = ['cshlib', 'GTK', 'GLIB', 'geanyexport'])
|
||||
|
||||
# MIO
|
||||
bld(
|
||||
features = ['c', 'cstlib'],
|
||||
bld.objects(
|
||||
features = ['c'],
|
||||
source = mio_sources,
|
||||
name = 'mio',
|
||||
target = 'mio',
|
||||
includes = ['.', 'tagmanager/mio/'],
|
||||
defines = 'G_LOG_DOMAIN="MIO"',
|
||||
uselib = ['GTK', 'GLIB'],
|
||||
install_path = None) # do not install this library
|
||||
uselib = ['cshlib', 'GTK', 'GLIB', 'geanyexport'])
|
||||
|
||||
# Scintilla
|
||||
files = bld.srcnode.ant_glob('scintilla/**/*.cxx', src=True, dir=False)
|
||||
scintilla_sources.update([file.path_from(bld.srcnode) for file in files])
|
||||
bld(
|
||||
features = ['c', 'cxx', 'cxxstlib'],
|
||||
bld.objects(
|
||||
features = ['c', 'cxx'],
|
||||
name = 'scintilla',
|
||||
target = 'scintilla',
|
||||
source = scintilla_sources,
|
||||
includes = ['.', 'scintilla/include', 'scintilla/src', 'scintilla/lexlib'],
|
||||
uselib = ['GTK', 'GLIB', 'GMODULE', 'M'],
|
||||
install_path = None) # do not install this library
|
||||
uselib = ['cshlib', 'cxxshlib', 'GTK', 'GLIB', 'GMODULE', 'M', 'geanyexport'])
|
||||
|
||||
# Geany
|
||||
if bld.env['HAVE_VTE'] == 1:
|
||||
@ -443,23 +457,59 @@ def build(bld):
|
||||
geany_sources.add('src/win32.c')
|
||||
geany_sources.add('geany_private.rc')
|
||||
|
||||
def gen_signallist(task):
|
||||
from xml.etree import ElementTree
|
||||
|
||||
def find_handlers(xml_filename):
|
||||
tree = ElementTree.parse(xml_filename)
|
||||
signals = tree.getroot().findall(".//signal")
|
||||
return [sig.attrib["handler"] for sig in signals]
|
||||
|
||||
handlers = []
|
||||
for node in task.inputs:
|
||||
handlers += find_handlers(node.abspath())
|
||||
handlers = sorted(set(handlers))
|
||||
|
||||
for node in task.outputs:
|
||||
node.write("/* This file is auto-generated, do not edit. */\n" +
|
||||
''.join(["ITEM(%s)\n" % h for h in handlers]))
|
||||
|
||||
# signallist.i
|
||||
bld(
|
||||
features = ['c', 'cxx', 'cprogram'],
|
||||
source = 'data/geany.glade',
|
||||
target = 'src/signallist.i',
|
||||
name = 'signallist.i',
|
||||
rule = gen_signallist)
|
||||
|
||||
base_uselibs = ['GTK', 'GLIB', 'GMODULE', 'GIO', 'GTHREAD', 'WIN32', 'MAC_INTEGRATION', 'SUNOS_SOCKET', 'M']
|
||||
|
||||
# libgeany
|
||||
bld.shlib(
|
||||
features = ['c', 'cxx'],
|
||||
name = 'geany',
|
||||
target = 'geany',
|
||||
source = geany_sources,
|
||||
includes = ['.', 'scintilla/include', 'tagmanager/src', 'src'],
|
||||
defines = ['G_LOG_DOMAIN="Geany"', 'GEANY_PRIVATE'],
|
||||
uselib = base_uselibs + ['geanyexport'],
|
||||
use = ['scintilla', 'ctags', 'tagmanager', 'mio'],
|
||||
linkflags = bld.env['LINKFLAGS_cprogram'],
|
||||
vnum = GEANY_LIB_VERSION,
|
||||
install_path = '${PREFIX}/bin' if is_win32 else '${LIBDIR}')
|
||||
|
||||
# geany executable
|
||||
t = bld.program(
|
||||
features = ['c', 'cxx'],
|
||||
name = 'geany_bin',
|
||||
target = 'geany',
|
||||
source = ['src/main.c'],
|
||||
includes = ['.', 'scintilla/include', 'tagmanager/src'],
|
||||
defines = ['G_LOG_DOMAIN="Geany"', 'GEANY_PRIVATE'],
|
||||
uselib = ['GTK', 'GLIB', 'GMODULE', 'GIO', 'GTHREAD', 'WIN32', 'MAC_INTEGRATION', 'SUNOS_SOCKET', 'M'],
|
||||
use = ['scintilla', 'ctags', 'tagmanager', 'mio'])
|
||||
|
||||
# geanyfunctions.h
|
||||
bld(
|
||||
source = ['plugins/genapi.py', 'src/plugins.c'],
|
||||
name = 'geanyfunctions.h',
|
||||
before = ['c', 'cxx'],
|
||||
cwd = '%s/plugins' % bld.path.abspath(),
|
||||
rule = '%s genapi.py -q' % sys.executable)
|
||||
uselib = base_uselibs + ['geanyexport'],
|
||||
use = ['geany'])
|
||||
if not is_win32:
|
||||
# http://www.freehackers.org/~tnagy/testdoc/single.html#common_c
|
||||
t.rpath = bld.env['LIBDIR']
|
||||
|
||||
# Plugins
|
||||
if bld.env['HAVE_PLUGINS'] == 1:
|
||||
@ -554,11 +604,36 @@ def build(bld):
|
||||
###
|
||||
# Headers
|
||||
bld.install_files('${PREFIX}/include/geany', '''
|
||||
src/app.h src/document.h src/editor.h src/encodings.h src/filetypes.h src/geany.h
|
||||
src/highlighting.h src/keybindings.h src/msgwindow.h src/plugindata.h
|
||||
src/prefs.h src/project.h src/search.h src/stash.h src/support.h
|
||||
src/templates.h src/toolbar.h src/ui_utils.h src/utils.h src/build.h src/gtkcompat.h
|
||||
plugins/geanyplugin.h plugins/geanyfunctions.h''')
|
||||
src/app.h
|
||||
src/build.h
|
||||
src/dialogs.h
|
||||
src/document.h
|
||||
src/editor.h
|
||||
src/encodings.h
|
||||
src/filetypes.h
|
||||
src/geany.h
|
||||
src/highlighting.h
|
||||
src/keybindings.h
|
||||
src/main.h
|
||||
src/msgwindow.h
|
||||
src/navqueue.h
|
||||
src/plugindata.h
|
||||
src/pluginutils.h
|
||||
src/prefs.h
|
||||
src/project.h
|
||||
src/sciwrappers.h
|
||||
src/search.h
|
||||
src/stash.h
|
||||
src/support.h
|
||||
src/symbols.h
|
||||
src/templates.h
|
||||
src/toolbar.h
|
||||
src/ui_utils.h
|
||||
src/utils.h
|
||||
src/gtkcompat.h
|
||||
plugins/geanyplugin.h
|
||||
plugins/geanyfunctions.h
|
||||
''')
|
||||
bld.install_files('${PREFIX}/include/geany/scintilla', '''
|
||||
scintilla/include/SciLexer.h scintilla/include/Scintilla.h
|
||||
scintilla/include/Scintilla.iface scintilla/include/ScintillaWidget.h ''')
|
||||
|
Loading…
x
Reference in New Issue
Block a user