29 Commits

Author SHA1 Message Date
Matthew Brush
4efcbab332 Include what you use
This is a mega-commit - because most of it had to be done in one go
otherwise some commits would fail to compile - that attempts to fix a
few problems with Geany's includes as well as various other related
cleanups. After this change it's easier to use includes and there's
little worry about which order things are included in or who includes
what.

Overview of changes:

* Include config.h at the start of each source file if HAVE_CONFIG_H
  is defined (and never in headers).
* Go through each source file and make the includes section generally
  like this:
  - Always config.h first as above
  - Then if the file has a header with the same name, include that
  - Then include in alphabetical order each other internal/geany header.
  - Then include standard headers
  - Then include non-standard system headers
  - Then include GLib/GTK+ related stuff
* Doing as above makes it easier to find implicit header include
  dependencies and it exposed quite a few weird problems with includes
  or forward declarations, fix those.
* Make geany.h contain not much besides some defines.
  - Add a little header file "app.h" for GeanyApp and move it there
  - Move "app" global to new "app.h" file
  - Move "ignore_callback" global to "callbacks.h"
  - Move "geany_object" global to "geanyobject.h"
* Add an include in "geany.h" for "app.h" since GeanyApp used to be
  defined there and some plugins included this header to access
  GeanyApp.
* Include "gtkcompat.h" everywhere instead of gtk/gtk.h so that
  everywhere sees the same definitions (not a problem in practice AFAIK
  so this could be changed back if better that way.
* Remove forward declarations from previous commits as some people
  apparently consider this bad style, despite that it reduces inter-
  header dependencies.

TODO:
* As always, to test on win32
* As always, to test with not Autotools
* Test plugins better, both builtin and geany-plugins, likely API/ABI bump
* Test with various defines/flags that may change what is included
* win32.[ch] not really touched since I couldn't test
2014-05-21 15:37:19 -07:00
Matthew Brush
6f87aac118 Normalize use of header guards and extern "C" guards
* Always define GEANY_FOO_H to 1 in the header guards
* Always put a G_BEGIN_DECLS/G_END_DECLS guard in every header for
consistency, even private ones where it doesn't matter.
* Always include either <glib.h>, <gtk/gtk.h> or some other header
that will provide G_BEGIN_DECLS before using it. In a lot of headers
that use glib.h and gtk/gtk.h stuff anyway, this resolves an implicit
dependency they had on them being included before that header.
* Always put a comment at the #endif part of the guard so it's
easier to see what it applies to.
* Always use an underscore between the header guard identifier's words
even though the filename doesn't have one.
2014-05-21 12:18:26 -07:00
Matthew Brush
fec15c61c4 Move typedefs out of geany.h and into their own headers
This helps to avoid the requirement that geany.h be included before
using any of the changed headers.
2014-05-21 12:18:25 -07:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
Colomban Wendling
1c2c455b1d Update copyright information 2012-06-18 01:15:04 +02:00
Jiří Techet
8e2f7db298 Modify project dialog signals
Rename project-dialog-create signal to project-dialog-open because now
the dialog exists all the time and the signal name is misleading. Add
project-dialog-close signal to indicate that project dialog has been closed
and plugins can remove their tabs when needed.

In addition, bump plugin API and ABI version.
2012-02-20 00:20:03 +01:00
Enrico Tröger
7edcb7978f Remove double underscores around header guards (closes #3440258)
While this is a violation of the C standard in theory, it should not affect anything.
Anyway, removing the double underscores makes the header guard scheme more
consistent with the rest of Geany header files so it's still a good thing.
2011-11-20 13:31:07 +01:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Enrico Tröger
d91810115a Add and use signal "document-reload" to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5703 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-10 13:53:05 +00:00
Enrico Tröger
6ac2623208 Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5528 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-01-19 19:39:09 +00:00
Nick Treleaven
3d9bac808d Add plugin signals project-dialog-create and
project-dialog-confirmed so plugins can append a Project Properties
notebook tab (patch by Jiří Techet, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5235 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-09-16 15:14:09 +00:00
Nick Treleaven
6b4ba38e6d Add API signal "build-start" (patch by Jiří Techet, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5053 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-06-18 17:15:28 +00:00
Enrico Tröger
cc19e09d83 Add new signal: "geany-startup-complete" which is sent once all initialization and startup tasks has been done.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4527 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-17 15:17:30 +00:00
Enrico Tröger
7ba4a81181 Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4518 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-01 22:55:18 +00:00
Enrico Tröger
316f77f1f8 Add new plugin signal: "document-before-save".
Add get_line_end_position(), set_target_start(), set_target_end(), replace_target() to the plugin API (patch by Eugene Arshinov, thanks).
Add new plugin signal: "document-filetype-set" (closes #2852286).

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4162 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-06 16:51:11 +00:00
Nick Treleaven
d7cd30cd99 Add 'Show Paths' documents list popup item.
Add "load_settings" core-only signal emitted just after loading
main keyfile settings; useful to delay building UI elements until
settings have been read.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3976 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-16 15:04:21 +00:00
Enrico Tröger
39a6eb455e Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3446 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-04 18:30:42 +00:00
Nick Treleaven
9962e8abb8 Fix not switching to 2nd last used document when the last used
document has been closed (#1945162).
- Code changes:
Move geany_object extern to geany.h.
Remove CallbacksData struct.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3438 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-03 12:54:13 +00:00
Nick Treleaven
0f575ea2b7 Don't forget active plugins after disabling plugin support.
Use Stash for plugin-related prefs.
Add geany_object "save-settings" signal (for core only).
Add stash_group_add_string_vector().



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3425 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-28 13:21:35 +00:00
Enrico Tröger
44b7d27b50 Add "editor-notify" to the plugin API.
This signal is emitted whenever something in an editor widget changes, e.g. a character was typed.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3391 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-17 16:00:18 +00:00
Nick Treleaven
03f0700c23 Add plugin signal "document-close", sent just before a document is
closed.
(Merged from split-window-plugin branch).

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2953 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-16 15:47:26 +00:00
Enrico Tröger
b14568d1f8 Rename signal "populate-edit-menu" into "update-editor-menu".
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2755 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-05 09:37:37 +00:00
Enrico Tröger
2d5d52a08d Add plugin signal "populate-edit-menu" to notify plugins when the editing menu is shown.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2733 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-28 15:46:07 +00:00
Enrico Tröger
d3439f8a17 Use document pointer instead of an index to the documents array everywhere in the core code.
Pass a document pointer to the callbacks of all "document-*" signals.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2692 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-15 13:35:48 +00:00
Enrico Tröger
85f73129c0 Apply patch from Daniel Richard G. to fix to fix several compiler warnings, C89 violations and minor code problems (thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2267 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-20 11:24:23 +00:00
Enrico Tröger
e3201062c6 Update copyright information and change format of email addresses in source files.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2150 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-06 18:11:57 +00:00
Enrico Tröger
5e6b3d5165 Remove ununsed function project_save().
Fix typo in plugin API at utils_mkdir().
Add document_get_n_idx() to the plugin API.
Fix display of plugin separator in the Tools menu when only plugins without menu item are loaded.
Add three new signals: project_open, project_save, project_close.
On Shutdown close the project before plugins are unloaded to let plugins work on the last project closed event.			


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2065 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-11-21 18:54:12 +00:00
Nick Treleaven
52e8b9f27d Apply patch from blackdog to add "document-activate" plugin signal,
which is sent when switching notebook pages (thanks).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1816 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-08-23 15:22:13 +00:00
Nick Treleaven
15cec02d07 Add plugin symbol geany_callbacks (see plugindata.h for details).
Add GeanyObject type with "document-new", "document-open",
"document-save" signals.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1785 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-08-10 16:11:17 +00:00