477 Commits

Author SHA1 Message Date
Jiří Techet
26587454b0 Remove TmWorkObject and all the OO related stuff
In addition, rename all functions, parameters, comments etc. mentioning
work_object and remove unnecessary parameters of various functions.
Delete dead code paths.

Also move common functions like tm_get_real_path() from tm_work_object to
tm_source_file.
2014-10-18 21:40:10 +02:00
Nick Treleaven
9d669a72f7 API: Rename document_reload_file -> document_reload_force
New name is clearer against document_reload_prompt.
Add deprecated alias.
2014-09-25 11:45:49 +01:00
Nick Treleaven
18181c2e90 Support pseudo-unique IDs for documents
Add GeanyDocument::id, document_find_by_id() to plugin API.

This also fixes clicking on a Messages item whose document has been
closed and reused. Now the click will be ignored instead of jumping to
an unexpected line in the new document.
2014-08-19 15:40:05 +01:00
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
Frank Lanitz
f205c97362 Update open string on filebrowser plugin to make clearer, that the file will be opened in Geany 2014-05-01 00:35:16 +02:00
Colomban Wendling
9f4ef363f2 Html chars: fix translation of category names
Although the strings were properly marked for translation, they weren't
actually translated because they missed run-time replacement.
2014-04-10 14:16:18 +02:00
Colomban Wendling
85af65323b Export: escape file name in case it contains HTML control characters 2014-04-09 18:08:01 +02:00
Colomban Wendling
1032d0fc68 Export: use DOC_FILENAME() instead of re-implementing it manually 2014-04-09 18:07:58 +02:00
Colomban Wendling
527dee7203 Export: fix LaTeX export for more than 2 consecutive '-', '<' or '>'
Fix escaping of '-', '<' and '>' characters to properly handle inputs
with more than 2 consecutive identical characters of this set.
2014-04-09 18:07:48 +02:00
Colomban Wendling
874c822328 Export: don't include unused, random styles
Fix the bounds checking on included styles only to check for inclusion
actually defined styles, not to include random styles based on
uninitialized array indices.
2014-04-09 18:07:30 +02:00
Colomban Wendling
4eb8205f56 Export: don't try to read past the document end
A faulty bound checking resulted in reading a byte past the document
end, which resulted in Scintilla returning byte 0 because the position
was invalid.  By adding this NUL byte to the string used to build the
body, the body was truncated after the last document byte (as C strings
are NUL-terminated), leading to any format structure after it to be
missing from the output.

This broke HTML and LaTeX export if the last line didn't end with a
newline, as the last line's style closing structure were missing.
2014-04-09 18:05:38 +02:00
Steven Valsesia
467f56ae7e Add a new feature: autosave when the editor lose focus
Documented unwanted behavior: pop-up saving.

Closes feature request #683.

Signed-off-by: Steven Valsesia <steven.valsesia@gmail.com>
2014-03-06 14:20:38 +01:00
Nick Treleaven
0998f1c19c Make code more readable by renaming poorly named macros NZV and NVL
Closes #159
2013-08-14 21:54:20 -07:00
Frank Lanitz
9fbe2bc319 splitwindow: Change wording for keybinding to by in sync with tools-menu entries. Should fix #102 2013-08-08 11:43:12 +02:00
Matthew Brush
13ec6ffbea Add new API function plugin_builder_connect_signals() 2013-06-09 15:22:25 -07:00
Colomban Wendling
9652a34ef0 Add ellipsis to menu items requiring further user input
This is a very common paradigm used by GNOME, KDE, MacOSX, Windows,
etc., and following it makes our UI more consistent with these and
easier to use by their users.

https://developer.gnome.org/hig-book/stable/menus-design.html.en#menu-item-type-command

Closes #3613494.
2013-05-19 23:15:38 +02:00
Adam Dingle
4807ba6ce5 file browser: Fix capitalization in menu item
Closes #3613558.
2013-05-19 23:15:19 +02:00
elextr
1e1032505d Make save actions use something bigger than a pointer for a buffer
At commit 160e5e stamp was changed from a gchar[512] to a gchar*
but the copy loop still used stamp and sizeof(stamp) as the buffer.
Now gchar[512] buffer is used again.
2013-05-02 17:51:12 +10:00
Colomban Wendling
8ece89096d Merge branch 'master' into gtk3-support 2013-01-29 15:29:10 +01:00
Enrico Tröger
6241a4520f Remove KEY prefix from GDK_KEY_BackSpace constant
GDK_KEY_* is GTK3 and doesn't work on older GTK versions.
2012-12-16 10:21:01 +01:00
Steven Blatnick
550b2c1219 Use a backspace to browse up a directory. 2012-12-13 10:45:08 -07:00
Colomban Wendling
6409840d4a Get rid of GtkComboBoxEntry API and use GtkComboBoxText API
Use the GtkComboBoxText API and the GtkComboBoxEntry replacement API
and map those to the old equivalents if not available.

This changes the type exposed by ui_combo_box_add_to_history() from
GtkComboBoxEntry to either GtkComboBox (under GTK2) or GtkComboBoxText
(under GTK3).  This should not be too much of an issue since
GtkComboBoxEntry and GtkComboBoxtext are subclasses of GtkComboBox,
but this will still emit warnings when when the calling code passes
a GtkComboBoxEntry pointer to ui_combo_box_add_to_history().

However, this requires the calling code to use the same mapping as we
do (GtkComboBoxText = GtkComboBox on GTK2, even on 2.24), or things
will blow and it'll be hard to understand why.  This wouldn't be an
issue if the calling code includes our gtkcompat.h header everywhere
it deals with combo boxes, which will be the case if it includes the
Geany headers everywhere but probably won't otherwise.  Oh dear.

A possible kind of workaround may be for ui_combo_box_add_to_history()
to do type-checking on its argument and use the actually correct API
for that type.
2012-10-08 20:08:06 +02:00
Colomban Wendling
a763e307f7 Don't access GtkWidget fields directly
Since many accessor are new in GTK versions we don't depend on, add
a header that defines them to the direct access if they aren't
available.
2012-10-08 20:08:06 +02:00
Colomban Wendling
c1a7b1b475 Fix various packing issue affecting GTK3 but compatible with GTK2 2012-09-28 18:06:58 +02:00
Colomban Wendling
3b14cca451 Don't use long-deprecated gtk_widget_{ref,unref}() 2012-09-13 16:34:18 +02:00
Colomban Wendling
5ada77df70 Don't use deprecated gtk_box_pack_start_defaults() 2012-09-13 16:34:18 +02:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
Matthew Brush
d36db75bcb ClassBuilder: Defy GTK+ conventions and instead generate valid C code 2012-08-10 21:05:41 -07:00
Nick Treleaven
74959b9cb9 Support MSYS=1 to enable building with MSYS; use $/ instead of DIRSEP
Defining MSYS=1 is cleaner than requiring users to define CP, RM, etc.
2012-07-04 17:13:14 +01:00
Nick Treleaven
65fe863691 Use PREFIX=C:/libs and minor cleanup (Windows makefiles)
This PREFIX works on both cmd.exe and MSYS, whereas backslash confuses
MSYS.
Use copy /y in doc/makefile.win32.
Remove unused targets binclean, exec.
2012-07-04 16:47:38 +01:00
Nick Treleaven
c72dce06a5 Merge remote-tracking branch 'origin/master' into tm/tree-refactoring
Conflicts:
	makefile.win32
	src/makefile.win32
2012-07-04 12:15:53 +01:00
Chow Loong Jin
8187268ad0 Link export plugin against libm (-lm)
The export plugin uses the pow() function from libm without linking against
it. It has worked so far because Geany itself has a link against libm, but
should that be removed in the future, this would fail to resolve symbols.

Signed-off-by: Chow Loong Jin <hyperair@debian.org>
Signed-off-by: Colomban Wendling <ban@herbesfolles.org>
2012-06-21 16:03:20 +02:00
Colomban Wendling
1c2c455b1d Update copyright information 2012-06-18 01:15:04 +02:00
Nick Treleaven
18cec1fb81 Fix Windows build 2012-06-06 15:21:00 +01:00
Colomban Wendling
d69a153bb4 Refactor tagmanager source files architecture
Split ctags and tagmanager sources, as follows:

tagmanager/ctags: the parsers, more or less upstream CTags;
tagmanager/mio: local MIO library copy;
tagmanager/src: actual tagmanager sources.
2012-05-08 23:01:23 +02:00
Enrico Tröger
3d1c7e3f57 PEP8 fixes 2012-05-04 23:11:40 +02:00
Enrico Tröger
af70c1dbcb Make the script Python3 compatible 2012-05-04 23:10:43 +02:00
Dimitar Zhekov
f2d33bc16e Add stash_group_free_settings() function to API
Frees the memory allocated for setting values in a group.
2012-04-06 14:04:01 +01:00
Lex Trotman
fa118fb12a Add build command access to plugin interface
Add ability for plugins to read and edit the fields of the build commands.
2012-02-15 14:18:34 +11:00
Nick Treleaven
b287553e4a Use 'SETPTR' instead of 'setptr'
This makes it clearer we're using a macro.
2012-01-25 16:26:16 +00:00
Nick Treleaven
011dd017e0 Enable default Scintilla editing menu for Split Window
This allows copying and pasting, undo etc.
2012-01-25 13:40:39 +00:00
Nick Treleaven
eb04c514ba Add API function ui_lookup_stock_label()
Using this can avoid adding i18n strings unnecessarily.
2012-01-08 17:37:58 +00:00
Nick Treleaven
34e6bddde8 Add File Browser path entry tooltip 2012-01-03 16:29:32 +00:00
Nick Treleaven
a5995468ef Show marker margin in split window
Although go to marker commands (or other keybindings) don't work, the
marker margin can still be useful, and improves alignment with the
original sci widget when using the Top & Bottom split.
2011-12-19 18:23:46 +00:00
Nick Treleaven
ffb33c5299 Show/hide fold margin on sync, not on split 2011-12-19 17:58:51 +00:00
Nick Treleaven
8bdc2d376b Don't manually disconnect "sci-notify" signal
This will get disconnected when the widget is destroyed.
2011-12-19 17:50:58 +00:00
Nick Treleaven
8818ee3fc9 Include gdk-pixbuf-2.0 path for recent GTK+ dev (Windows build)
Fixes #3396195.

Note: GTK+ 2.24 is the current maintained version of the developer
files bundle:
http://www.gtk.org/download/win32.php
2011-12-08 12:53:11 +00:00
Nick Treleaven
58729d4de9 Use foo.o instead of foo.dll.o to enable Make Object (Windows build) 2011-11-16 17:27:31 +00:00
Nick Treleaven
f1b9c58612 Fix auto-saving documents when the current document has no filename 2011-11-02 15:10:50 +00:00
Colomban Wendling
36ebb1f2b7 Use canonical macros for stock items rather than plain strings
This makes the code more readable, potentially more future-proof (if
the actual string changes) and better style (catches possible typos at
build-time).
2011-10-30 22:01:49 +01:00