25 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
Colomban Wendling
d6fba7ac82 Make GeanyWrapLabel work with GTK3
Although theoretically GtkLabel from GTK3 should be able to replace
GeanyWrapLabel altogether, a bug [1] with it makes it use way too much
space in our about dialog (and possibly other places), making it not
really usable.

So, port the GeanyWrapLabel hack to GTK3, with the appropriate
additional hacks for it to work.  At least it looks good and don't
seem to have resizing issues now.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=657621
2012-10-09 13:25:12 +02:00
Colomban Wendling
fa5a00b48b Map GeanyWrapLabel to GtkLabel on GTK3
The GTK3 version of GtkLabel provides what GeanyWrapLabel is for given
the appropriate settings are set, so no need to our own widget -- that
would require being updated to support GTK3 anyway.
2012-10-08 20:08:07 +02: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
Colomban Wendling
c84d486472 GeanyWrapLabel: fix rendering issues
GtkLabel may re-create its PangoLayout between calls leading to the
final layout used for rendering not to be set up with the appropriate
values for our sizing.  Then, re-set up the layout each time we have to
deal with it and straight before GtkLabel renders it.
2012-05-30 01:50:08 +02:00
Colomban Wendling
6c15dd4724 Drop GEANY_WRAP_LABEL_GET_PRIVATE() macro 2012-05-30 01:50:08 +02:00
Colomban Wendling
232919a16d GeanyWrapLabel: make sure we ask for the height matching our width
With this patch, we make sure the height we query is the one matching
the width we stored and not a newer or older one.

This only fixes the sizing problem, the rendering issue visible in
some situations is still present.

This fix is replicated from the fix in libview's WrapLabel, see
http://view.svn.sourceforge.net/viewvc/view/trunk/libview/libview/wrapLabel.cc?revision=132&view=markup
It also includes the "fix for the fix",
http://view.svn.sourceforge.net/viewvc/view/trunk/libview/libview/wrapLabel.cc?revision=135&view=markup
2012-05-30 01:44:49 +02:00
Colomban Wendling
0aea05d10d Fix various integer signedness and minor styling issues
Most noteworthy change is that all build commands IDs and groups are
now unsigned everywhere negative values aren't explicitly handled with
a special meaning.  This should not change anything in behavior, only
makes clear the index won't underflow.
2011-12-18 00:32:22 +01:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Colomban Wendling
edc8457e8a Cleanup GeanyWrapLabel a bit
* Do all mandatory initializations in _init() rather than _new();
 * Drop geany_wrap_label_set_text() in favor of plain
   gtk_label_set_text(), making the widget a little simpler and more
   transparent to the caller.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5795 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-05-10 23:51:01 +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
7c0e80c745 Fix build with GLib 2.8.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5283 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-10-06 15:32:40 +00:00
Enrico Tröger
8c963d2829 Make string arguments const where appropriate (patch by Colomban Wendling, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4862 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-25 17:43:39 +00:00
Nick Treleaven
9bb37bd6de Cache G_TYPE_INSTANCE_GET_PRIVATE() result when initializing an
object for efficiency.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4798 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-01 15:57:19 +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
a95a59a42f Remove all G_LIKELY macros inside g_return_if_fail() statements as this is redundant.
Remove many other G_LIKELY/G_UNLIKELY macros which doesn't make much sense to keep the code more readable.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3708 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-15 22:47:33 +00:00
Enrico Tröger
a9dc990049 Start using G_LIKELY/G_UNLIKELY macros to gain a little more performance when building the code with gcc.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3687 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-05 21:07:40 +00:00
Enrico Tröger
4daa599478 Use the G_DEFINE_TYPE() macro to generate the *_get_type() code.
Remove useless geany_object_finalize() function.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3549 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-02-05 19:04:54 +00:00
Enrico Tröger
8dc9c01f74 Fix wrong header include.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3523 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-28 17:57:16 +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
Enrico Tröger
4f54b68b8e Remove unnecessary finalize(() function.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2789 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-18 13:45:23 +00:00
Enrico Tröger
81dfe5aeeb Don't include utils.h to avoid the need to include geany.h for GTK 2.6 compatibility defintion of G_GNUC_NULL_TERMINATED.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2187 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-23 14:32:52 +00:00
Enrico Tröger
69f7c43626 Move class and label structs to geanywraplabel.c.
Override widget functions instead of using event handlers (trying to fix #1869399).	 


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2184 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-23 13:35:08 +00:00
Enrico Tröger
2ff8416767 Add GeanyWrapLabel (subclass of GtkLabel) to wrap text at any width.
Use GeanyWrapLabel in preferences dialog and plugin manager dialog to save a lot of space and improve layout of descriptive texts.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2152 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-09 13:24:36 +00:00