Note: this breaks the plugin API for editor-related document fields.

Split new GeanyEditor struct type from GeanyDocument fields.
Add GeanyDocument::editor field.
GeanyEditor::document allows access back to document fields.
GeanyEditor::scintilla replaces GeanyDocument::sci.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2763 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Nick Treleaven 2008-07-08 10:50:13 +00:00
parent a0355ae842
commit bceab8d3e2
4 changed files with 28 additions and 13 deletions

View File

@ -1,3 +1,13 @@
2008-07-08 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/document.h, src/editor.h, src/plugindata.h:
Note: this breaks the plugin API for editor-related document fields.
Split new GeanyEditor struct type from GeanyDocument fields.
Add GeanyDocument::editor field.
GeanyEditor::document allows access back to document fields.
GeanyEditor::scintilla replaces GeanyDocument::sci.
2008-07-07 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* tagmanager/haskell.c:

View File

@ -82,30 +82,20 @@ struct GeanyDocument
gchar *encoding;
/** Internally used flag to indicate whether the file of this %document has a byte-order-mark. */
gboolean has_bom;
struct GeanyEditor *editor; /**< The editor widget associated with the document. */
/** The filetype for this %document, it's only a reference to one of the elements of the global
* filetypes array. */
GeanyFiletype *file_type;
/** TMWorkObject object for this %document. */
TMWorkObject *tm_file;
/** The Scintilla object for this %document. */
ScintillaObject *sci;
/** Whether this %document is read-only. */
gboolean readonly;
/** Whether this %document has been changed since it was last saved. */
gboolean changed;
/** %Document-specific line wrapping setting. */
gboolean line_wrapping;
/** %Document-specific indentation setting. */
gboolean auto_indent;
/** Percentage to scroll view by on paint, if positive. */
gfloat scroll_percent;
/** Time of the last disk check. */
time_t last_check;
/** Modification time of this %document on disk. */
time_t mtime;
/** %Document-specific indentation setting. */
gboolean use_tabs;
gboolean line_breaking; /**< Whether to split long lines as you type. */
/** The link-dereferenced, locale-encoded file name.
* If non-NULL, this indicates the file once existed on disk (not just as an
* unsaved document with a filename set).

View File

@ -99,6 +99,21 @@ typedef struct GeanyEditorPrefs
extern GeanyEditorPrefs editor_prefs;
/** Editor-owned fields for each document. */
typedef struct GeanyEditor
{
GeanyDocument *document; /**< The document associated with the editor. */
ScintillaObject *scintilla; /**< The Scintilla editor @c GtkWidget. */
gboolean line_wrapping; /**< @c TRUE if line wrapping is enabled. */
gboolean auto_indent; /**< @c TRUE if auto-indentation is enabled. */
/** Percentage to scroll view by on paint, if positive. */
gfloat scroll_percent;
gboolean use_tabs; /**< @c TRUE if tabs are used for indentation. */
gboolean line_breaking; /**< Whether to split long lines as you type. */
}
GeanyEditor;
typedef struct
{
gchar *current_word; /* holds word under the mouse or keyboard cursor */

View File

@ -36,12 +36,12 @@
/* The API version should be incremented whenever any plugin data types below are
* modified or appended to. */
static const gint api_version = 75;
static const gint api_version = 76;
/* The ABI version should be incremented whenever existing fields in the plugin
* data types below have to be changed or reordered. It should stay the same if fields
* are only appended, as this doesn't affect existing fields. */
static const gint abi_version = 40;
static const gint abi_version = 41;
/** Check the plugin can be loaded by Geany.
* This performs runtime checks that try to ensure: