* plugins/build-basic-autotools/build-basic-autotools.c,
[anjuta-git-plugin.git] / libanjuta / interfaces / libanjuta.idl
bloba7c95f0845988aab3926399f7c14b519f00be1bf
1 // -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2 //
3 // libanjuta interfaces. Generate stubs with anjuta-idl-compiler.pl
4 //
5 // Copyright (C) 2004 Naba Kumar <naba@gnome.org>
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 2 of the License, or
10 // (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Library General Public License for more details.
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 #include <glib-object.h>
23 /**
24 * SECTION:ianjuta-file
25 * @title: IAnjutaFile
26 * @short_description: Implemented by plugins that can open files.
27 * @see_also: #IAnjutaFileSavable
28 * @stability: Unstable
29 * @include: libanjuta/interfaces/ianjuta-file.h
31 * Any plugin that can open files should implemented this interface. Along
32 * with the 'File Loader::SupportedMimeTypes' property of the plugin in
33 * .plugin file, it will be used by the loader to open files of that type.
35 interface IAnjutaFile
37 #include <gio/gio.h>
38 /**
39 * ianjuta_file_open:
40 * @obj: Self
41 * @file: file to open.
42 * @err: Error propagation and reporting
44 * The implementor opens the given file.
46 void open (GFile* file);
48 /**
49 * ianjuta_file_get_file:
50 * @obj: Self
51 * @err: Error propagation and reporting
53 * Returns the file that was opened with ianjuta_file_open().
55 * Return value: The last file opened.
57 GFile* get_file ();
59 /**
60 * SECTION:ianjuta-file-savable
61 * @title: IAnjutaFileSavable
62 * @short_description: Implemented by plugins that can save files.
63 * @see_also: #IAnjutaFile
64 * @stability: Unstable
65 * @include: libanjuta/interfaces/ianjuta-file-savable.h
67 * Plugins implementing #IAnjutaFile inteface that can also save files
68 * should also implement this interface.
70 interface IAnjutaFileSavable
72 /**
73 * IAnjutaFileSavable::save_point:
74 * @obj: Self
75 * @entered: TRUE if save point is entered, FALSE otherwise.
77 * This signal is emitted when the editor enters or leave the save
78 * point. Save point is the point where the contents were saved to
79 * non-volatile memory (e.g. disk). For example, performing undo/redo
80 * will enter or leave the save point in an editor.
82 void ::save_point (gboolean entered);
84 /**
85 * IAnjutaFileSavable::saved:
86 * @obj: Self
87 * @file: file where the content is saved.
89 * This signal is emitted when the content is saved.
91 void ::saved (GFile* file);
93 /**
94 * ianjuta_file_savable_save:
95 * @obj: Self
96 * @err: Error propagation and reporting
98 * Saves the content to the original file from which it was loaded.
100 void save ();
103 * ianjuta_file_savable_save_as:
104 * @obj: Self
105 * @file: File to save the content.
106 * @err: Error propagation and reporting
108 * Saves the content to a different File.
110 void save_as (GFile* file);
113 * ianjuta_file_savable_set_dirty:
114 * @obj: Self
115 * @dirty:
116 * @err: Error propagation and reporting
118 * if @dirty is TRUE, sets dirty for the content. Save point will be
119 * left and the content will be considered not saved. Otherwise,
120 * content will considered saved and save-point will be entered.
122 void set_dirty (gboolean dirty);
125 * ianjuta_file_savable_is_dirty:
126 * @obj: Self
127 * @err: Error propagation and reporting
129 * Returns the dirty status of the content.
131 * Return value: TRUE if dirty, FALSE otherwise.
133 gboolean is_dirty ();
136 * ianjuta_file_savable_is_read_only:
137 * @obj: Self
138 * @err: Error propagation and reporting
140 * Return is the file is read-only
142 * Return value: TRUE if read-only, FALSE otherwise.
144 gboolean is_read_only ();
150 * SECTION:ianjuta-stream
151 * @title: IAnjutaStream
152 * @short_description: Implemented by plugins that can open file streams
153 * @see_also:
154 * @stability: Unstable
155 * @include: libanjuta/interfaces/ianjuta-stream.h
158 interface IAnjutaStream
160 #include <stdio.h>
163 * ianjuta_stream_open:
164 * @obj: Self
165 * @stream: Stream to open from.
166 * @err: Error propagation and reporting
168 * The implementor opens the given stream.
170 void open (FILE* stream);
173 * SECTION:ianjuta-stream-savable
174 * @title: IAnjutaStreamSavable
175 * @short_description: Implemented by plugins that can save file streams
176 * @see_also:
177 * @stability: Unstable
178 * @include: libanjuta/interfaces/ianjuta-stream-savable.h
181 interface IAnjutaStreamSavable
184 * ianjuta_stream_save:
185 * @obj: Self
186 * @stream: Stream to save to.
187 * @err: Error propagation and reporting
189 * The implementor saves the content to the given stream.
191 void save (FILE* stream);
196 * SECTION:ianjuta-markable
197 * @title: IAnjutaMarkable
198 * @short_description: Implemented by editors (or views) with markers support
199 * @see_also:
200 * @stability: Unstable
201 * @include: libanjuta/interfaces/ianjuta-markable.h
204 interface IAnjutaMarkable
206 enum Error
208 INVALID_LOCATION
211 enum Marker
213 LINEMARKER,
214 BOOKMARK,
215 BREAKPOINT_DISABLED,
216 BREAKPOINT_ENABLED,
217 PROGRAM_COUNTER
220 void ::marker_clicked (gboolean double_click, gint location);
223 * ianjuta_markable_mark:
224 * @obj: Self
225 * @location: Location at which the marker to set.
226 * @marker: Type of marker to be used
227 * @err: Error propagation and reporting
229 * Marks the specified location with the given marker type. Location is
230 * implementation depenedent. For example, for an editor location means
231 * lines where markers are set.
233 * Return value: Handle of the location marked. Can be used later to obtain
234 * new location, if it has been moved due to addetions/deletions in the
235 * implementor object.
237 gint mark (gint location, Marker marker);
240 * ianjuta_markable_location_from_handle:
241 * @obj: Self
242 * @handle: Handle of location.
243 * @err: Error propagation and reporting
245 * Location where a marker is set could have moved by some operation in
246 * the implementation. To retrieve the correct location where the marker
247 * has moved, pass the handle retured by ianjuta_markable_mark() to this
248 * method.
250 * Return value: Current location where the marker was set.
252 gint location_from_handle (gint handle);
255 * ianjuta_markable_unmark:
256 * @obj: Self
257 * @location: Location where the marker is set.
258 * @marker: The marker to unset.
259 * @err: Error propagation and reporting
261 * Clears the @marker at given @location.
263 void unmark (gint location, Marker marker);
266 * ianjuta_markable_is_marker_set:
267 * @obj: Self
268 * @location: Location to check.
269 * @marker: Marker to check.
270 * @err: Error propagation and reporting
272 * Check if the @marker is set at the given @location.
274 * Returns: TRUE if the marker is set at the location, other false.
276 gboolean is_marker_set (gint location, Marker marker);
279 * ianjuta_markable_delete_all_markers:
280 * @obj: Self
281 * @marker: Marker to delete.
282 * @err: Error propagation and reporting
284 * Delete the @marker from all locations.
286 void delete_all_markers (Marker marker);
290 * SECTION:ianjuta-indicable
291 * @title: IAnjutaIndicable
292 * @short_description: Implemented by indicate that indicate a range
293 * @see_also:
294 * @stability: Unstable
295 * @include: libanjuta/interfaces/ianjuta-indicable.h
298 interface IAnjutaIndicable
300 #include <libanjuta/interfaces/ianjuta-iterable.h>
301 enum Indicator
303 NONE,
304 IMPORTANT,
305 WARNING,
306 CRITICAL
309 void set (IAnjutaIterable *begin_location, IAnjutaIterable *end_location, Indicator indicator);
310 void clear ();
314 * SECTION:ianjuta-iterable
315 * @title: IAnjutaIterable
316 * @short_description: Implemented by objects that can iterate
317 * @see_also:
318 * @stability: Unstable
319 * @include: libanjuta/interfaces/ianjuta-iterable.h
322 interface IAnjutaIterable
325 * ianjuta_iterable_first:
326 * @obj: Self
327 * @err: Error propagation and reporting
329 * Set iter to first element position. Returns FALSE if
330 * there is no element in the iterable (hence does not have first).
331 * The iter points to the first valid item.
333 * Returns: TRUE if sucessful, other FALSE.
335 gboolean first ();
338 * ianjuta_iterable_next:
339 * @obj: Self
340 * @err: Error propagation and reporting
342 * Set the iter position to next element position. Iter can go until one
343 * item past the last item and lands in end-iter. end-iter does not point
344 * to any valid item and signifies end of the list. Returns FALSE if iter
345 * was already at end-iter (iter can not go past it) and remains pointed
346 * to the end-iter.
348 * Returns: TRUE if sucessful, otherwise FALSE if already at end-iter.
350 gboolean next ();
353 * ianjuta_iterable_previous:
354 * @obj: Self
355 * @err: Error propagation and reporting
357 * Set the iter position to previous element position. Returns FALSE if
358 * there is no previous element and the iter remains pointed to the first
359 * element.
361 * Returns: TRUE if sucessful, other FALSE.
363 gboolean previous ();
366 * ianjuta_iterable_last:
367 * @obj: Self
368 * @err: Error propagation and reporting
370 * Set iter position to end-iter (one past last element) position.
371 * Returns FALSE if there is no element in the iterable (already
372 * at end-iter).
374 * Returns: TRUE if sucessful, other FALSE.
376 gboolean last ();
379 * ianjuta_iterable_foreach:
380 * @obj: Self
381 * @callback: Callback to call for each element.
382 * @user_data: user data that is passed back to the callback.
383 * @err: Error propagation and reporting
385 * Call callback for each element in the list. Call back is passed the
386 * same iter, but with different position set (from first to last). This
387 * method does not affect current position. i.e. current position is
388 * restored at the end of this method.
390 void foreach (GFunc callback, gpointer user_data);
393 * ianjuta_iterable_set_position:
394 * @obj: Self
395 * @position: New position for the iter.
396 * @err: Error propagation and reporting
398 * Sets the current position of the iter to @position. The given @position
399 * must be from 0 to length - 1 (#ianjuta_iter_get_length()) to point to
400 * a valid element. Passing @position < 0 will set it to end-iter. It
401 * returns TRUE for the above cases. FLASE will be returned, if
402 * out-of-range @position is passed (@position > length - 1) and iter is
403 * set to end-iter.
405 * Returns: TRUE if successfully set (i.e. @position is within the range or
406 * end-iter). otherwise returns FALSE (i.e. @position is out of data range).
408 gboolean set_position (gint position);
411 * ianjuta_iterable_get_position:
412 * @obj: Self
413 * @err: Error propagation and reporting
415 * Index of the current iter in the iterable. It will be
416 * from 0 to length - 1 (ianjuta_iter_get_length()) if iter is pointed
417 * at valid element. It will return -1 if iter is pointed at end-iter.
419 * Returns: integer index, or -1 for end-iter.
421 gint get_position ();
424 * ianjuta_iterable_get_length:
425 * @obj: Self
426 * @err: Error propagation and reporting
428 * Length of the iterable (number of elements indexable by it).
430 * Returns: total length of the list.
432 gint get_length ();
435 * ianjuta_iterable_clone:
436 * @obj: Self
437 * @err: Error propagation and reporting
439 * Clones the iterable. The returned iterable object must be unrefed
440 * when done.
442 * Returns: A new instance of this iterable pointing at the same location.
444 IAnjutaIterable *clone ();
447 * ianjuta_iterable_assign:
448 * @obj: Self
449 * @src_iter: Source iter from which to copy the assignment.
450 * @err: Error propagation and reporting
452 * Assigns the iter position from @src_iter.
455 void assign (IAnjutaIterable *src_iter);
458 * ianjuta_iterable_compare:
459 * @obj: Self
460 * @iter2: Second iter to compare.
461 * @err: Error propagation and reporting
463 * Compares the position of @iter2 with this @obj. Returns -1
464 * value if this @obj is smaller than @iter2. Returns +1 value
465 * if this @obj is larger than @iter2. And returns 0 if both are equal.
466 * If you want difference of the iter positions, use
467 * #ianjuta_iterable_diff(). This method is meant for fast comparision.
469 * Returns: 0 if equal, -1 if @obj is smaller than @iter2
470 * or +1 if @obj is larger than @iter2.
473 gint compare (IAnjutaIterable *iter2);
476 * ianjuta_iterable_diff:
477 * @obj: Self
478 * @iter2: Second iter to differenciate.
479 * @err: Error propagation and reporting
481 * Compares the position of @iter2 with this @obj and returns difference
482 * in position of the two (@obj - @iter2).
484 * Returns: The position difference of @obj - @iter2
487 gint diff (IAnjutaIterable *iter2);
490 * SECTION:ianjuta-iterable-tree
491 * @title: IAnjutaIterableTree
492 * @short_description: Implemented by tree objects that can iterate
493 * @see_also:
494 * @stability: Unstable
495 * @include: libanjuta/interfaces/ianjuta-iterable-tree.h
498 interface IAnjutaIterableTree
501 /**
502 * ianjuta_iterable_tree_parent:
503 * @obj: Self
504 * @err: Error propagation and reporting
506 * Set iter position to parent of curernt iter. If there is no parent,
507 * returns FALSE (current iter position is not changed)
509 * Returns: TRUE if sucessful, otherwise FALSE.
511 gboolean parent ();
514 * ianjuta_iterable_tree_children:
515 * @obj: Self
516 * @err: Error propagation and reporting
518 * Iter position set to first child of current iter. If there is no
519 * children, return NULL (iter position is not changed).
521 * Returns: TRUE if sucessful, otherwise FALSE.
523 gboolean children ();
526 * ianjuta_iterable_tree_has_children:
527 * @obj: Self
528 * @err: Error propagation and reporting
530 * Returns true if current iter has children
532 * Returns: TRUE if there are children, otherwise FALSE.
534 gboolean has_children ();
537 * ianjuta_iterable_tree_foreach_post:
538 * @obj: Self
539 * @callback: Callback to call for each element.
540 * @user_data: User data to pass back to callback.
541 * @err: Error propagation and reporting
543 * Call callback for each element in post order.
545 void foreach_post (GFunc callback, gpointer user_data);
548 * ianjuta_iterable_tree_foreach_pre:
549 * @obj: Self
550 * @callback: Callback to call for each element.
551 * @user_data: User data to pass back to callback.
552 * @err: Error propagation and reporting
554 * Call callback for each element in pre order.
556 void foreach_pre (GFunc callback, gpointer user_data);
561 * SECTION:ianjuta-builder
562 * @title: IAnjutaBuilder
563 * @short_description: Implemented by plugins that can build
564 * @see_also:
565 * @stability: Unstable
566 * @include: libanjuta/interfaces/ianjuta-builder.h
569 interface IAnjutaBuilder
571 #include <libanjuta/anjuta-error.h>
573 /* Types */
574 enum Error
576 SUCCEED = 0,
577 FAILED,
578 CANCELED = 256,
579 ABORTED,
580 INTERRUPTED,
581 TERMINATED,
582 UNKNOWN_TARGET,
583 UNKNOWN_ERROR,
584 OTHER_ERROR
587 typedef gpointer Handle;
589 typedef void (*Callback) (GObject *sender, IAnjutaBuilderHandle command, GError* err, gpointer user_data);
592 * IANJUTA_BUILDER_ROOT_URI
594 * Build directory uri. It is the same than the project_root_uri for
595 * in source build.
597 #define ROOT_URI "build_root_uri"
599 /**
600 * ianjuta_builder_is_built:
601 * @obj: Self
602 * @uri: target uri
603 * @callback: callback called when command is finished
604 * @user_data: data passed to the callback
605 * @err: Error propagation and reporting.
607 * Check if the corresponding target is up to date or not. This
608 * command doesn't display anything. If this command cannot be
609 * implemented, it is possible to return always TRUE.
610 * When the command is finished, the callback function is called
611 * if defined.
613 * Returns: non null command handle if succeed
615 Handle is_built (const gchar *uri, Callback callback, gpointer user_data);
617 /**
618 * ianjuta_builder_build:
619 * @obj: Self
620 * @uri: target uri
621 * @callback: callback called when command is finished
622 * @user_data: data passed to the callback
623 * @err: Error propagation and reporting.
625 * Build the specified target.
626 * When the command if finished, the callback function is called
627 * if defined.
629 * Returns: non null command handle if succeed
631 Handle build (const gchar *uri, Callback callback, gpointer user_data);
634 * ianjuta_builder_cancel:
635 * @obj: Self
636 * @handle: handle of the command to cancel
637 * @err: Error propagation and reporting.
639 * Cancel specified command. The callback function will not
640 * be called.
643 void cancel (Handle handle);
647 * SECTION:ianjuta-environment
648 * @title: IAnjutaEnvironment
649 * @short_description: Implemented by plugins doing cross compilation
650 * @see_also:
651 * @stability: Unstable
652 * @include: libanjuta/interfaces/ianjuta-environment.h
655 interface IAnjutaEnvironment
658 * ianjuta_environment_override:
659 * @obj: Self
660 * @dirp: a pointer on the working directory
661 * @argvp: a pointer on a NULL terminated string array
662 * containing the command name in argv[0] and all
663 * its argument
664 * @envp: a pointer on a NULL terminated string array
665 * containing all additional environment variable
666 * used by the command
667 * @err: Error propagation and reporting.
669 * Override a command to work in another build environment
671 * Returns: FALSE if there is an error.
673 gboolean override (gchar **dir, gchar ***argv, gchar ***envp);
676 * ianjuta_environment_get_real_directory:
677 * @obj: Self
678 * @dir: A directory path in the environment
679 * @err: Error propagation and reporting.
681 * Convert a directory in the environment to a directory outside.
682 * It is useful when the environment use chroot. Take care that
683 * the input directory string is freed using g_free but and you need to
684 * free the output string when not needed.
686 * Returns: The directory path outside the environment
688 gchar* get_real_directory (gchar *dir);
692 * SECTION:ianjuta-buildable
693 * @title: IAnjutaBuildable
694 * @short_description: Implemented by plugins that can build
695 * @see_also:
696 * @stability: Unstable
697 * @include: libanjuta/interfaces/ianjuta-buildable.h
700 interface IAnjutaBuildable
702 enum Command
704 COMMAND_COMPILE,
705 COMMAND_BUILD,
706 COMMAND_BUILD_TARBALL,
707 COMMAND_INSTALL,
708 COMMAND_CONFIGURE,
709 COMMAND_GENERATE,
710 COMMAND_CLEAN,
711 COMMAND_EXECUTE,
712 COMMAND_IS_BUILT,
713 COMMAND_AUTORECONF,
714 COMMAND_DISTCLEAN,
715 N_COMMANDS
718 /**
719 * ianjuta_buildable_set_command:
720 * @obj: Self
721 * @command_id: Command to override.
722 * @command: Build command to override.
723 * @err: Error propagation and reporting.
725 * Overrides the default command for the given command.
727 void set_command (Command command_id, const gchar *command);
729 /**
730 * ianjuta_buildable_get_command:
731 * @obj: Self
732 * @command_id: Command to get override.
733 * @err: Error propagation and reporting.
735 * Retrieves the currently set command override.
737 * Returns: The overridden command. NULL if no override set.
739 const gchar* get_command (Command command_id);
741 /**
742 * ianjuta_buildable_reset_commands:
743 * @obj: Self
744 * @err: Error propagation and reporting.
746 * Resets the command overrides to defaults.
748 void reset_commands ();
750 /**
751 * ianjuta_buildable_build:
752 * @obj: Self
753 * @uri: fixme
754 * @err: Error propagation and reporting.
756 * fixme
758 void build (const gchar *uri);
761 * ianjuta_buildable_clean:
762 * @obj: Self
763 * @uri: fixme
764 * @err: Error propagation and reporting.
766 * fixme
768 void clean (const gchar *uri);
771 * ianjuta_buildable_install:
772 * @obj: Self
773 * @uri: fixme
774 * @err: Error propagation and reporting.
776 * fixme
778 void install (const gchar *uri);
781 * ianjuta_buildable_configure:
782 * @obj: Self
783 * @uri: fixme
784 * @err: Error propagation and reporting.
786 * fixme
788 void configure (const gchar *uri);
791 * ianjuta_buildable_generate:
792 * @obj: Self
793 * @uri: fixme
794 * @err: Error propagation and reporting.
796 * fixme
798 void generate (const gchar *uri);
801 * ianjuta_buildable_execute:
802 * @obj: Self
803 * @uri: fixme
804 * @err: Error propagation and reporting.
806 * fixme
808 void execute (const gchar *uri);
812 * SECTION:ianjuta-help
813 * @title: IAnjutaHelp
814 * @short_description: Implemented by plugins that can provide help support
815 * @see_also:
816 * @stability: Unstable
817 * @include: libanjuta/interfaces/ianjuta-help.h
820 interface IAnjutaHelp
824 * ianjuta_help_search:
825 * @obj: Self
826 * @query: fixme
827 * @err: Error propagation and reporting
829 * fixme
831 void search (const gchar *query);
835 * SECTION:ianjuta-loader
836 * @title: IAnjutaLoader
837 * @short_description: Interface to load file or stream
838 * @see_also:
839 * @stability: Unstable
840 * @include: libanjuta/interfaces/ianjuta-loader.h
842 * Loaders can deterime correct plugin to open a file or stream. They
843 * themselves can not load it, but will correctly redirect the request to
844 * an implementor of IAnjutaFile, IAnjutaFileSavable, IAnjutaStream or
845 * IAnjutaStreamSavable, depending on the mime-type, meta-type or any other
846 * requirements.
848 interface IAnjutaLoader
850 #include <libanjuta/anjuta-plugin.h>
852 * ianjuta_loader_find_plugins:
853 * @obj: Self
854 * @err: Error propagation and reporting.
856 * Returns all plugins supporting loader interface.
858 List<AnjutaPlugin*> find_plugins ();
861 * SECTION:ianjuta-file-loader
862 * @title: IAnjutaFileLoader
863 * @short_description: Loader to load files
864 * @see_also:
865 * @stability: Unstable
866 * @include: libanjuta/interfaces/ianjuta-file-loader.h
868 * Loaders can deterime correct plugin to open a file.
870 interface IAnjutaFileLoader
872 #include <gio/gio.h>
874 * ianjuta_file_loader_load:
875 * @obj: Self
876 * @file: File to load
877 * @readonly: Open in readonly mode.
878 * @err: Error propagation and reporting
880 * Determines a plugin which can open the given file, activates it
881 * opening the file and returns the interface of the plugin activated.
883 * Return value: Plugin interface used to load the file.
885 GObject* load (GFile* file, gboolean readonly);
888 * ianjuta_loader_peek_interface:
889 * @obj: Self
890 * @file: Meta file to peek
891 * @err: Error propagation and reporting
893 * Peeks the file and determines the interface which can load
894 * this file.
896 * Return value: Plugin interface name that can load the file.
898 gchar* peek_interface (GFile* file);
902 * SECTION:ianjuta-stream-loader
903 * @title: IAnjutaStreamLoader
904 * @short_description: Loader to load streams
905 * @see_also:
906 * @stability: Unstable
907 * @include: libanjuta/interfaces/ianjuta-stream-loader.h
909 * StreamLoaders can deterime correct plugin to open a stream.
911 interface IAnjutaStreamLoader
913 #include <stdio.h>
916 * ianjuta_stream_loader_load:
917 * @obj: Self
918 * @stream: Stream to load
919 * @readonly: Open in readonly mode.
920 * @err: Error propagation and reporting
922 * Determines a plugin which can open the given stream, activates it
923 * opening the stream and returns the interface of the plugin activated.
925 * Return value: Plugin interface used to load the stream.
927 GObject* load (FILE *stream, gboolean readonly);
930 * ianjuta_stream_loader_peek_interface:
931 * @obj: Self
932 * @stream: Stream to load
933 * @err: Error propagation and reporting
935 * Peeks the stream and determines the interface which can load
936 * this stream.
938 * Return value: Plugin interface name that can load the stream.
940 gchar* peek_interface (FILE *stream);
945 * SECTION:ianjuta-document
946 * @title: IAnjutaDocument
947 * @short_description: Interface for all kind of editable resources that
948 * will be managed by IAnjutaDocumentManager
949 * @see_also:
950 * @stability: Unstable
951 * @include: libanjuta/interfaces/ianjuta-document.h
954 interface IAnjutaDocument
957 * IAnjutaDocument::update_ui:
958 * @obj: Self
960 * This signal is emitted when the document assumes the UI must be updated
961 * because some internal state of the document has changed. For example, if
962 * current line position is changed, it needs to be reflected to the UI.
964 void ::update_ui ();
967 * ianjuta_document_get_filename:
968 * @obj: Self
969 * @err: Error propagation and reporting
971 * Allows obtaining of the filename the editor was loaded from.
973 * Return value: The name of the file. Not to be freed by caller.
975 const gchar* get_filename ();
978 * ianjuta_document_can_undo:
979 * @obj: Self
980 * @err: Error propagation and reporting
982 * Can the editor undo the last operation?
984 * Returns true if editor can undo, else FALSE
986 gboolean can_undo();
989 * ianjuta_document_can_redo:
990 * @obj: Self
991 * @err: Error propagation and reporting
993 * Can the editor redo the last operation?
995 * Returns true if editor can redo, else FALSE
997 gboolean can_redo ();
1000 * ianjuta_document_undo:
1001 * @obj: Self
1002 * @err: Error propagation and reporting
1004 * Undo last operation
1006 void undo ();
1009 * ianjuta_document_redo:
1010 * @obj: Self
1011 * @err: Error propagation and reporting
1013 * Redo last undo operation
1015 void redo ();
1018 * ianjuta_document_begin_undo_action:
1019 * @obj: Self
1020 * @err: Error propagation and reporting
1022 * Begins the mark of undoable action. Calls to this are stacked and
1023 * each must be ended with ianjuta_document_end_action().
1025 void begin_undo_action ();
1028 * ianjuta_document_end_undo_action:
1029 * @obj: Self
1030 * @err: Error propagation and reporting
1032 * Ends the mark of undoable action.
1034 void end_undo_action ();
1037 * ianjuta_document_grab_focus:
1038 * @obj: Self
1039 * @err: Error propagation and reporting
1041 * Grabs the focus.
1043 void grab_focus ();
1046 * ianjuta_document_cut:
1047 * @obj: Self
1048 * @err: Error propagation and reporting
1050 * Cut selection to clipboard.
1052 void cut ();
1055 * ianjuta_document_copy:
1056 * @obj: Self
1057 * @err: Error propagation and reporting
1059 * Copy selection to clipboard.
1061 void copy ();
1064 * ianjuta_document_paste:
1065 * @obj: Self
1066 * @err: Error propagation and reporting
1068 * Paste clipboard at current position.
1070 void paste ();
1073 * ianjuta_document_clear:
1074 * @obj: Self
1075 * @err: Error propagation and reporting
1077 * Clear selection
1079 void clear ();
1083 * SECTION:ianjuta-editor
1084 * @title: IAnjutaEditor
1085 * @short_description: Text editor interface
1086 * @see_also:
1087 * @stability: Unstable
1088 * @include: libanjuta/interfaces/ianjuta-editor.h
1091 interface IAnjutaEditor
1093 #include <gtk/gtkwidget.h>
1094 #include <libanjuta/interfaces/ianjuta-iterable.h>
1096 enum Error
1098 DOESNT_EXIST
1101 enum Attribute
1103 TEXT,
1104 KEYWORD,
1105 COMMENT,
1106 STRING
1110 * IAnjutaEditor::char_added:
1111 * @position: The iter position where @ch is added.
1112 * @ch: The character that has been added.
1113 * @obj: Self
1115 * This signal is emitted when any character is added inside the editor.
1116 * The newly added character is @ch which has been inserted at @position.
1118 void ::char_added (GObject *position, gchar ch);
1121 * IAnjutaEditor::changed:
1122 * @position: The iter position where change happend.
1123 * @added: TRUE if added, FALSE if deleted.
1124 * @length: Length of the text changed.
1125 * @lines: Number of lines added or removed.
1126 * @text: The text added or removed.
1127 * @obj: Self
1129 * This signal is emitted when any text change happens in editor.
1130 * The changes begin at @position. @text is not garanteed to be NULL
1131 * terminated. Use @length to read the text. @lines represent the
1132 * number of line breaks in the added or removed text.
1134 void ::changed (GObject *position, gboolean added, gint length, gint lines, const gchar *text);
1137 * ianjuta_editor_get_tabsize:
1138 * @obj: Self
1139 * @err: Error propagation and reporting
1141 * Returns the tabsize (in spaces) currently used by the editor.
1143 * Returns: tabsize in number of spaces
1145 gint get_tabsize ();
1148 * ianjuta_editor_set_tabsize:
1149 * @obj: Self
1150 * @tabsize: Tabsize in spaces
1151 * @err: Error propagation and reporting
1153 * Sets the tabsize of the editor.
1155 void set_tabsize (gint tabsize);
1158 * ianjuta_editor_get_use_spaces:
1159 * @obj: Self
1160 * @err: Error propagation and reporting
1162 * Returns if the editor uses spaces for filling up tab characters.
1164 * Returns: TRUE if yes, FALSE if no.
1166 gboolean get_use_spaces ();
1169 * ianjuta_editor_set_use_space:
1170 * @obj: Self
1171 * @use_spaces: TRUE to use spaces, FALSE to use tab char directly.
1172 * @err: Error propagation and reporting
1174 * Sets if the editor should use spaces for filling up tab characters.
1176 void set_use_spaces (gboolean use_spaces);
1179 * ianjuta_editor_set_auto_indent:
1180 * @obj: Self
1181 * @auto_indent: TRUE to enable auto-indent, FALSE to disable
1183 * Sets whether the editor should auto-indent itself. A plugin that does
1184 * custom auto-indent can set this to false and override the preferences
1185 * setting
1187 void set_auto_indent (gboolean auto_indent);
1190 * ianjuta_editor_erase_range:
1191 * @obj: Self
1192 * @position_start: Start position of chars to erase.
1193 * @position_end: End position of chars to erase.
1194 * @err: Error propagation and reporting
1196 * Erases the chars between positions pointed by @position_start and
1197 * @position_end. The character pointed by @position_start is included,
1198 * while pointed by @position_end is not include in the range. After
1199 * the erase operation, all active iters, except these two, are no
1200 * longer guranteed to be valid. At the end the operation, these two
1201 * iters point to the same position which is the position where erase
1202 * happend (usually the original @position_start position).
1204 void erase (IAnjutaIterable *position_start, IAnjutaIterable *position_end);
1207 * ianjuta_editor_erase_all:
1208 * @obj: Self
1209 * @err: Error propagation and reporting
1211 * Empties the whole editor buffer. There will be zero characters.
1212 * After the erase operation, none of the active iters are guranteed
1213 * to be valid.
1215 void erase_all ();
1218 * ianjuta_editor_insert:
1219 * @obj: Self
1220 * @position: Character position in editor where insert will take place.
1221 * @text: Text to append.
1222 * @length: Length of @text to use.
1223 * @err: Error propagation and reporting
1225 * Inserts @length characters from @text buffer at given @position of
1226 * editor buffer. If @length is -1, the whole @text is used.
1228 void insert (IAnjutaIterable *position, const gchar *text, gint length);
1231 * ianjuta_editor_append:
1232 * @obj: Self
1233 * @text: Text to append.
1234 * @length: Length of @text to use.
1235 * @err: Error propagation and reporting
1237 * Appends @length characters from @text buffer at the end of editor
1238 * buffer. If @length is -1, the whole @text is used. @length is in bytes.
1240 void append (const gchar *text, gint length);
1243 * ianjuta_editor_goto_line:
1244 * @obj: Self
1245 * @lineno: line number where carat will be moved.
1246 * @err: Error propagation and reporting
1248 * Carat is moved to the given @lineno line and text view is scrolled to
1249 * bring it in viewable area of the editor.
1251 void goto_line (gint lineno);
1254 * ianjuta_editor_goto_start:
1255 * @obj: Self
1256 * @err: Error propagation and reporting
1258 * Carat is moved to the begining of editor and text view is scrolled to
1259 * bring it in viewable area of the editor.
1261 void goto_start ();
1264 * ianjuta_editor_goto_end:
1265 * @obj: Self
1266 * @err: Error propagation and reporting
1268 * Carat is moved to the end of editor and text view is scrolled to
1269 * bring it in viewable area of the editor.
1271 void goto_end ();
1274 * ianjuta_editor_goto_position:
1275 * @obj: Self
1276 * @position: Character position where carat will be moved.
1277 * @err: Error propagation and reporting
1279 * Carat is moved to the given @position and text view is scrolled to
1280 * bring @position in viewable area of the editor.
1282 void goto_position (IAnjutaIterable *position);
1285 * ianjuta_editor_get_text:
1286 * @obj: Self
1287 * @begin: Begining iterator
1288 * @end: End iterator
1289 * @err: Error propagation and reporting
1291 * Gets text characters beginning from @begin (including char
1292 * pointed by @begin) and ending with @end (excluding character
1293 * pointed by @end). The characters returned are utf-8 encoded.
1294 * The iterators @begin and @end could be in either order. The returned
1295 * text, however, is in right order. If both @begin and @end points
1296 * to the same position, NULL is returned.
1298 * Returns: A buffer of utf-8 characters.
1299 * The returned buffer must be freed when no longer required.
1301 gchar* get_text (IAnjutaIterable *begin, IAnjutaIterable *end);
1304 * ianjuta_editor_get_text_all:
1305 * @obj: Self
1306 * @err: Error propagation and reporting
1308 * Gets all text characters in the editor.
1309 * The characters returned are utf-8 encoded.
1311 * Returns: A buffer of utf-8 characters containing all text from editor.
1312 * The returned buffer must be freed when no longer required.
1314 gchar* get_text_all ();
1317 * ianjuta_editor_line_from_position:
1318 * @obj: Self
1319 * @position: Position you want to know the line from
1320 * @err: Error propagation and reporting
1322 * Get the line number in which @position locates.
1323 * Returns: Line which corresponds to @position
1326 int get_line_from_position (IAnjutaIterable *position);
1329 * ianjuta_editor_get_lineno:
1330 * @obj: Self
1331 * @err: Error propagation and reporting
1333 * Obtains current line number on which carat is.
1335 * Return value: Line number.
1337 gint get_lineno ();
1340 * ianjuta_editor_get_length:
1341 * @obj: Self
1342 * @err: Error propagation and reporting
1344 * Get length of complete text in editor. This will be the total
1345 * number of characters in the file or buffer.
1347 * Return value: Text length.
1349 gint get_length ();
1352 * ianjuta_editor_get_current_word:
1353 * @obj: Self
1354 * @err: Error propagation and reporting
1356 * Obtains the word on which carat is currently on.
1358 * Return value: Current word.
1360 gchar* get_current_word ();
1363 * ianjuta_editor_get_current_column:
1364 * @obj: Self
1365 * @err: Error propagation and reporting
1367 * Obtains number of the current column in the editor.
1369 * Return value: Current column.
1371 gint get_column ();
1374 * ianjuta_editor_get_line_begin_position:
1375 * @obj: Self
1376 * @line: fixme
1377 * @err: Error propagation and reporting.
1379 * fixme
1381 * Returns: fixme
1383 IAnjutaIterable* get_line_begin_position (gint line);
1386 * ianjuta_editor_get_line_end_position:
1387 * @obj: Self
1388 * @line: fixme
1389 * @err: Error propagation and reporting.
1391 * fixme
1393 * Returns: fixme
1395 IAnjutaIterable *get_line_end_position (gint line);
1398 * ianjuta_editor_get_overwrite:
1399 * @obj: Self
1400 * @err: Error propagation and reporting
1402 * Obtains editor overwirte mode: TRUE = Override, FALSE = Insert.
1404 * Return value: editor mode.
1406 gboolean get_overwrite ();
1410 * ianjuta_editor_set_popup_menu:
1411 * @obj: Self
1412 * @menu: Popupmenu
1413 * @err: Error propagation and reporting
1415 * Set Editor popup menu. This is the menu shown in the editor when one
1416 * right-clicks on it.
1419 void set_popup_menu (GtkWidget *menu);
1422 * ianjuta_editor_get_offset:
1423 * @obj: Self
1424 * @err: Error propagation and reporting
1426 * Get current caret position in integer character offset. Deprecated.
1427 * Use ianjuta_editor_get_position() instead.
1429 * Returns: Current character position since the begining of file.
1431 gint get_offset ();
1434 * ianjuta_editor_get_position:
1435 * @obj: Self
1436 * @err: Error propagation and reporting
1438 * Get current caret position.
1440 * Returns: Iterator that points to the current position.
1442 IAnjutaIterable* get_position ();
1445 * ianjuta_editor_get_position_from_offset:
1446 * @obj: Self
1447 * @offset: Character offset position where the iter will be set
1448 * @err: Error propagation and reporting
1450 * Creates and returns an iter for editor cells. The iter is
1451 * placed at the unicode character position where the given offset
1452 * @offset happens to fall. The returned iter is cell (character)
1453 * iter and not byte iter, so all iter operations
1454 * on it are character (not byte) iteration, including all position
1455 * and index references in the iter.
1457 * The iter must be unreferrenced by the caller when done.
1458 * The iter navigates (next/previous) in step of unicode
1459 * characters (one unicode character == one cell).
1461 * Retrun value: a newly created iter of IAnjutaEditorCell placed at the
1462 * given @offset position.
1464 IAnjutaIterable* get_position_from_offset (gint offset);
1467 * ianjuta_editor_get_start_position:
1468 * @obj: Self
1469 * @err: Error propagation and reporting
1471 * Gets the iter positioned at the start of the editor buffer.
1473 * Retrun value: Cell iter set to the begining of the editor.
1475 IAnjutaIterable* get_start_position ();
1478 * ianjuta_editor_get_end_position:
1479 * @obj: Self
1480 * @err: Error propagation and reporting
1482 * Gets the iter positioned at the end of the editor buffer. The
1483 * returned iter is the end-iter which does not point to any valid
1484 * character in the buffer (it is pointed one step beyond the last
1485 * valid character).
1487 * Retrun value: Cell iter set to the end of the editor (end-iter).
1489 IAnjutaIterable* get_end_position ();
1492 * SECTION:ianjuta-editor-selection
1493 * @title: IAnjutaEditorSelection
1494 * @short_description: Text editor selection interface
1495 * @see_also:
1496 * @stability: Unstable
1497 * @include: libanjuta/interfaces/ianjuta-editor-selection.h
1500 interface IAnjutaEditorSelection
1502 #include <libanjuta/interfaces/ianjuta-editor-cell.h>
1504 * ianjuta_editor_selection_has_selection:
1505 * @obj: Self
1506 * @err: Error propagation and reporting
1508 * Returns TRUE if editor has any text selected. The selection
1509 * positions can be retrieved with ianjuta_editor_selection_get_start()
1510 * and ianjuta_editor_selection_get_end().
1512 * Returns: TRUE if there is text selected else FALSE.
1514 gboolean has_selection ();
1517 * ianjuta_editor_selection_get:
1518 * @obj: Self
1519 * @err: Error propagation and reporting
1521 * Gets curerntly selected text in editor.
1523 * Returns: A newly allocated buffer of currently selected characters.
1524 * NULL if there is no selection. The returned buffer must be freed after
1525 * use.
1527 gchar* get ();
1530 * ianjuta_editor_selection_set:
1531 * @obj: Self
1532 * @start: Begin of selection
1533 * @end: End of selection
1534 * @err: Error propagation and reporting
1536 * Select characters between start and end. Start and end don't have to
1537 * be ordered.
1539 void set (IAnjutaIterable* start, IAnjutaIterable* end);
1542 * ianjuta_editor_selection_get_start:
1543 * @obj: Self
1544 * @err: Error propagation and reporting
1546 * Gets start position of selection text. If there is no selection,
1547 * returns -1.
1549 * Return: Start of selection or NULL if there is no selection.
1551 IAnjutaIterable* get_start ();
1554 * ianjuta_editor_selection_get_end:
1555 * @obj: Self
1556 * @err: Error propagation and reporting
1558 * Get end position of selection. If there is no selection, returns
1559 * NULL.
1561 * Return: End of selection or NULL if there is no selection.
1563 IAnjutaIterable* get_end ();
1566 * ianjuta_editor_selection_select_block:
1567 * @obj: Self
1568 * @err: Error propagation and reporting
1570 * Selects current block of code. The definition of block of code
1571 * depends on highlight mode used (programming language). Some
1572 * highlight mode does not have block concept, in that case this
1573 * method does not do anything.
1575 void select_block ();
1578 * ianjuta_editor_selection_select_function:
1579 * @obj: Self
1580 * @err: Error propagation and reporting
1582 * Select current function block. The definition of function block
1583 * depends on highlight mode used (programming language). Some
1584 * highlight mode does not have function concept, in that case this
1585 * method does not do anything.
1587 void select_function ();
1590 * ianjuta_editor_selection_select_to_brace:
1591 * @obj: Self
1592 * @err: Error propagation and reporting
1594 * Select to brace. Some highlight mode does not have braces concept,
1595 * in that case, this method does not do anything.
1597 void select_to_brace ();
1600 * ianjuta_editor_edit_select_all:
1601 * @obj: Self
1602 * @err: Error propagation and reporting
1604 * Select whole buffer.
1606 void select_all ();
1609 * ianjuta_editor_selection_replace:
1610 * @obj: Self
1611 * @text: Replacement text.
1612 * @length: Length of the text to used in @text.
1613 * @err: Error propagation and reporting
1615 * Replaces currently selected text with the @text. Only @length amount
1616 * of characters are used from @text buffer to replace.
1618 void replace (const gchar *text, gint length);
1622 * SECTION:ianjuta-editor-search
1623 * @title: IAnjutaEditorSearch
1624 * @short_description: Text editor search interface
1625 * @see_also:
1626 * @stability: Unstable
1627 * @include: libanjuta/interfaces/ianjuta-editor-search.h
1630 interface IAnjutaEditorSearch
1632 #include <libanjuta/interfaces/ianjuta-editor-cell.h>
1635 * ianjuta_editor_search_forward:
1636 * @obj: Self
1637 * @search: String to search for
1638 * @start: Where to search from
1639 * @end: Where to stop searching
1640 * @result_start: Will be set to the start of the search_result (or NULL)
1641 * @result_end: Will be set to the end of the search_result (or NULL)
1642 * @err: Error propagation and reporting
1644 * Search forward from start to end
1647 gboolean forward (const gchar* search, gboolean case_sensitive, IAnjutaEditorCell* start, IAnjutaEditorCell* end, IAnjutaEditorCell** result_start, IAnjutaEditorCell** result_end);
1650 * ianjuta_editor_search_backward:
1651 * @obj: Self
1652 * @search: String to search for
1653 * @start: Where to search from
1654 * @end: Where to stop searching
1655 * @result_start: Will be set to the start of the search_result (or NULL)
1656 * @result_end: Will be set to the end of the search_result (or NULL)
1657 * @err: Error propagation and reporting
1659 * Search backward from end to start
1663 gboolean backward (const gchar* search, gboolean case_sensitive, IAnjutaEditorCell* start, IAnjutaEditorCell* end, IAnjutaEditorCell** result_start, IAnjutaEditorCell** result_end);
1668 * SECTION:ianjuta-editor-convert
1669 * @title: IAnjutaEditorConvert
1670 * @short_description: Text editor convert interface
1671 * @see_also:
1672 * @stability: Unstable
1673 * @include: libanjuta/interfaces/ianjuta-editor-convert.h
1676 interface IAnjutaEditorConvert
1679 * ianjuta_editor_convert_to_upper:
1680 * @obj: Self
1681 * @start_position: Start position.
1682 * @end_position: End position.
1683 * @err: Error propagation and reporting
1685 * change characters from start position to end position to uppercase.
1688 void to_upper (IAnjutaIterable *start_position, IAnjutaIterable *end_position);
1691 * ianjuta_editor_convert_to_lower:
1692 * @obj: Self
1693 * @start_position: Start position.
1694 * @end_position: End position.
1695 * @err: Error propagation and reporting
1697 * change characters from start position to end position to lowercase
1700 void to_lower (IAnjutaIterable *start_position, IAnjutaIterable *end_position);
1704 * SECTION:ianjuta-editor-line-mode
1705 * @title: IAnjutaEditorLineMode
1706 * @short_description: Text editor line mode
1707 * @see_also:
1708 * @stability: Unstable
1709 * @include: libanjuta/interfaces/ianjuta-editor-line-mode.h
1712 interface IAnjutaEditorLineMode
1714 enum Type
1718 CRLF
1722 * ianjuta_editor_line_mode_get:
1723 * @obj: Self
1724 * @err: Error propagation and reporting
1726 * Get current line ending mode. It is auto-detected from the
1727 * buffer contents.
1729 Type get ();
1732 * ianjuta_editor_line_mode_set:
1733 * @obj: Self
1734 * @mode: Line mode to set.
1735 * @err: Error propagation and reporting
1737 * Set the line ending mode to the given @mode. Existing line end
1738 * characters in the buffer are not touched. Only the newly added
1739 * texts will have @mode line end characters.
1741 void set (Type mode);
1744 * ianjuta_editor_line_mode_convert:
1745 * @obj: Self
1746 * @mode: Line mode to convert.
1747 * @err: Error propagation and reporting
1749 * Set the line ending mode to the given @mode and convert all line end
1750 * characters in the buffer to @mode line end characters.
1752 void convert (Type mode);
1755 * ianjuta_editor_line_mode_fix:
1756 * @obj: Self
1757 * @err: Error propagation and reporting
1759 * Convert EOL characters to majority of line mode. This is helpful
1760 * when the buffer contains mixed line modes and we want to fix it.
1762 void fix ();
1766 * SECTION:ianjuta-editor-assist
1767 * @title: IAnjutaEditorAssist
1768 * @short_description: Editor assistance framework
1769 * @see_also:
1770 * @stability: Unstable
1771 * @include: libanjuta/interfaces/ianjuta-editor-assist.h
1774 interface IAnjutaEditorAssist
1776 /* IAnjutaEdiotrAssist::assist_chosen:
1777 * @obj: self
1778 * @selection: The selection index
1780 * User's selection from the choices. It is the index of the choice
1781 * presented with ianjuta_editor_assist_suggest().
1783 void ::assist_chosen (gint selection);
1786 * ianjuta_editor_assist_suggest:
1787 * @obj: Self
1788 * @choices: list of choices.
1789 * @char_alignment: Character alignment.
1790 * @err: Error propagation and reporting
1792 * Suggest a list of choices to the user. The suggestions are viewed
1793 * at char_alignment which should be the beginning of the completed word.
1794 * If choices is NULL, and assist_end signal
1795 * will occur
1798 void suggest (List<const gchar*> choices, IAnjutaIterable *position, int char_alignment);
1800 /** ianjuta_editor_assist_hide_suggestions
1801 * @obj: Self
1802 * @err: Error propagation and reporting
1804 * Hide current suggestions but do not emit assist_end signal.
1805 * This is useful when temporary waiting for more context
1807 void hide_suggestions ();
1810 * ianjuta_editor_assist_tip:
1811 * @obj: Self
1812 * @tips: list of alternative tips.
1813 * @char_alignment: Character alignment.
1814 * @err: Error propagation and reporting
1816 * Show tips showing more information on current context. No user feedback
1817 * is required when tips are shown. @char_alignment indicates
1818 * the position before which is the known context and after which are
1819 * the suggestions. Usually the editor would use this to
1820 * align the choices displayed such that the carat is just at this
1821 * position when the choices are displayed.
1824 void show_tips (List<const gchar*> tips, IAnjutaIterable *position, gint char_alignment);
1827 * ianjuta_editor_assist_cancel_tip:
1828 * @obj: Self
1829 * @err: Error propagation and reporting
1831 * Cancels the last shown tooltip
1833 void cancel_tips ();
1836 * ianjuta_editor_assist_get_suggestions:
1837 * @obj: Self
1838 * @context: The context for the suggestions.
1839 * @err: Error propagation and reporting
1841 * Usually the editor might have some suggestions to make
1842 * for a context. For example in a simple word completion context.
1843 * If the editor has no suggestions to make, it returns NULL.
1845 * Returns: A list of suggestions for the given context or NULL
1846 * if there is nothing to suggest.
1848 * Returns: A list of dynamically allocated strings. The whole
1849 * list, including the the strings should be freed when done.
1851 List<const gchar*> get_suggestions (const gchar *context);
1855 * SECTION:ianjuta-editor-hover
1856 * @title: IAnjutaEditorHover
1857 * @short_description: Text editor hover interface
1858 * @see_also:
1859 * @stability: Unstable
1860 * @include: libanjuta/interfaces/ianjuta-editor-hover
1863 interface IAnjutaEditorHover
1865 #include <libanjuta/interfaces/ianjuta-iterable.h>
1867 void ::hover_over (GObject* position);
1868 void ::hover_leave (GObject* position);
1870 void display (IAnjutaIterable* position, const gchar *info);
1874 * SECTION:ianjuta-editor-language
1875 * @title: IAnjutaEditorLanguage
1876 * @short_description: Text editor language interface
1877 * @see_also:
1878 * @stability: Unstable
1879 * @include: libanjuta/interfaces/ianjuta-editor-language.h
1882 interface IAnjutaEditorLanguage
1884 void ::language_changed (const gchar *language);
1887 * ianjuta_editor_language_get_supported_languages:
1888 * @obj: Self
1889 * @err: Error propagation and reporting
1891 * Return a list of languages supported by the editor
1892 * Note: These list contains the names in the form
1893 * the editor implementation knows them
1897 const List<const gchar*> get_supported_languages ();
1900 * ianjuta_editor_language_name:
1901 * @obj: Self
1902 * @err: Error propagation and reporting
1904 * FIXME
1908 const gchar *get_language_name (const gchar* language);
1911 * ianjuta_editor_language_get_language:
1912 * @obj: Self
1913 * @err: Error propagation and reporting
1915 * Return the name of the currently used language
1919 const gchar *get_language ();
1922 * ianjuta_editor_language_set_language:
1923 * @obj: Self
1924 * @err: Error propagation and reporting
1925 * @lang: Language
1927 * Force the editor to use a given language
1931 void set_language (const gchar* language);
1935 * SECTION:ianjuta-editor-folds
1936 * @title: IAnjutaEditorFolds
1937 * @short_description: Text editor folds inteface
1938 * @see_also:
1939 * @stability: Unstable
1940 * @include: libanjuta/interfaces/ianjuta-editor-folds.h
1943 interface IAnjutaEditorFolds
1946 * ianjuta_editor_view_open_folds:
1947 * @obj: Self
1948 * @err: Error propagation and reporting
1950 * Open all folds
1953 void open_all ();
1956 * ianjuta_editor_view_close_folds:
1957 * @obj: Self
1958 * @err: Error propagation and reporting
1960 * Close all folds
1963 void close_all ();
1966 * ianjuta_editor_view_toggle_fold:
1967 * @obj: Self
1968 * @err: Error propagation and reporting
1970 * Open/Close current fold
1973 void toggle_current ();
1977 * SECTION:ianjuta-editor-view
1978 * @title: IAnjutaEditorView
1979 * @short_description: Text editor view interface
1980 * @see_also:
1981 * @stability: Unstable
1982 * @include: libanjuta/interfaces/ianjuta-editor-view.h
1984 * An editor view is a visual representation of the editor. An editor
1985 * can have multiple views. All views of an editor show the same editor
1986 * content (buffer). Consequently, any change done in one view is
1987 * updated in all other views.
1989 interface IAnjutaEditorView
1992 * ianjuta_editor_view_create:
1993 * @obj: Self
1994 * @err: Error propagation and reporting
1996 * Creates a new view for the editor. The newly created view gets
1997 * the user focus and scrolls to the same location as last view.
1999 void create ();
2002 * ianjuta_editor_view_remove_current:
2003 * @obj: Self
2004 * @err: Error propagation and reporting
2006 * Removes currently focused editor view. It does not remove the
2007 * last view of the editor. That is, if currently there is only
2008 * one view of the editor, this function does nothing.
2010 void remove_current ();
2013 * ianjuta_editor_view_get_count:
2014 * @obj: Self
2015 * @err: Error propagation and reporting
2017 * Total number of views currently present. It will never be less
2018 * than 1. Invalid return values are considered error condition.
2020 gint get_count ();
2024 * SECTION:ianjuta-editor-comment
2025 * @title: IAnjutaEditorComment
2026 * @short_description: Text editor comment interface
2027 * @see_also:
2028 * @stability: Unstable
2029 * @include: libanjuta/interfaces/ianjuta-editor-comment.h
2032 interface IAnjutaEditorComment
2035 * ianjuta_editor_comment_block:
2036 * @obj: Self
2037 * @err: Error propagation and reporting
2039 * Comment/Uncomment out selected block
2041 void block();
2044 * ianjuta_editor_comment_box:
2045 * @obj: Self
2046 * @err: Error propagation and reporting
2048 * Comment/Uncomment out selected block
2050 void box();
2053 * ianjuta_editor_comment_stream:
2054 * @obj: Self
2055 * @err: Error propagation and reporting
2057 * Comment/Uncomment out selected block
2059 void stream();
2063 * SECTION:ianjuta-editor-zoom
2064 * @title: IAnjutaEditorZoom
2065 * @short_description: Text editor zoom interface
2066 * @see_also:
2067 * @stability: Unstable
2068 * @include: libanjuta/interfaces/ianjuta-editor-zoom.h
2071 interface IAnjutaEditorZoom
2074 * ianjuta_editor_zoom_in:
2075 * @obj: Self
2076 * @err: Error propagation and reporting
2078 * Zoom in
2080 void in ();
2083 * ianjuta_editor_zoom_out:
2084 * @obj: Self
2085 * @err: Error propagation and reporting
2087 * Zoom out
2089 void out ();
2093 * SECTION:ianjuta-editor-goto
2094 * @title: IAnjutaEditorGoto
2095 * @short_description: Text editor navigation interface
2096 * @see_also:
2097 * @stability: Unstable
2098 * @include: libanjuta/interfaces/ianjuta-editor-goto.h
2101 interface IAnjutaEditorGoto
2104 * ianjuta_editor_goto_start_block()
2105 * @obj: Self
2106 * @err: Error propagation and reporting
2108 * Moves cursor to the start of the current block
2110 void start_block();
2113 * ianjuta_editor_goto_end_block()
2114 * @obj: Self
2115 * @err: Error propagation and reporting
2117 * Moves cursor to the end of the current block
2119 void end_block();
2122 * ianjuta_editor_goto_matching_brace()
2123 * @obj: Self
2124 * @err: Error propagation and reporting
2126 * Moves cursor to matching brace
2128 void matching_brace();
2134 * SECTION:ianjuta-editor-cell
2135 * @title: IAnjutaEditorCell
2136 * @short_description: Text editor character cell
2137 * @see_also:
2138 * @stability: Unstable
2139 * @include: libanjuta/interfaces/ianjuta-editor-cell.h
2141 * Represents a cell in editor. A cell corresponds to a unicode
2142 * character along with all associated styles (such as colors and font).
2143 * A cell may or may not have style. If style is supported in the
2144 * editor, it is assumed all cells will have styles and hence every
2145 * IAnjutaEditorCell interface instance will have additionally
2146 * IAnjutaEditorCellStyle implemented.
2148 interface IAnjutaEditorCell
2150 #include <libanjuta/interfaces/ianjuta-editor.h>
2153 * ianjuta_editor_cell_get_character:
2154 * @obj: Self
2155 * @err: Error propagation and reporting
2157 * Returns the unicode character in this cell. A NULL terminated
2158 * string is returned that is the multibyte unicode character.
2159 * NULL is returned if the cell does not have any character.
2161 * Retruns: a newly created string representing the cell's unicode
2162 * character.
2164 gchar *get_character ();
2167 * ianjuta_editor_cell_get_length:
2168 * @obj: self
2169 * @err: Error propagation and reporting.
2171 * Gets the length of the cell in bytes. That is, length of the
2172 * unicode character.
2174 * Returns: Length of the unicode character.
2176 gint get_length ();
2179 * ianjuta_editor_cell_get_char:
2180 * @obj: Self
2181 * @err: Error propagation and reporting
2183 * Returns the byte of the unicode character in this cell at given
2184 * index @char_index. @char_index can vary from 0 to length of the
2185 * unicode string minus 1. Out of range index is not allowed
2186 * (asserted) and return is undefined.
2188 * Since there is dynamic allocation of unicode character string
2189 * involved in ianjuta_editor_cell_get_character(), this function
2190 * is mainly useful for fast iteration (such as copying data).
2192 * Retruns: a byte character.
2194 gchar get_char (gint char_index);
2196 IAnjutaEditorAttribute get_attribute ();
2199 * SECTION:ianjuta-editor-cell-style
2200 * @title: IAnjutaEditorCellStyle
2201 * @short_description: Text editor cell style interface
2202 * @see_also:
2203 * @stability: Unstable
2204 * @include: libanjuta/interfaces/ianjuta-editor-cell-style.h
2207 interface IAnjutaEditorCellStyle
2209 gchar* get_font_description ();
2210 gchar* get_color();
2211 gchar* get_background_color();
2216 * SECTION:ianjuta-bookmark
2217 * @title: IAnjutaBookmark
2218 * @short_description: Bookmark interface
2219 * @see_also:
2220 * @stability: Unstable
2221 * @include: libanjuta/interfaces/ianjuta-bookmark.h
2224 interface IAnjutaBookmark
2227 * ianjuta_bookmark_toggle:
2228 * @obj: Self
2229 * @location: The location where bookmark is toggled.
2230 * @ensure_visible: If the location must be made visible.
2231 * @err: Error propagation and reporting
2233 * Toggle bookmark at given @location
2236 void toggle (gint location, gboolean ensure_visible);
2239 * ianjuta_bookmark_first:
2240 * @obj: Self
2241 * @err: Error propagation and reporting
2243 * Goto first bookmark
2246 void first ();
2249 * ianjuta_bookmark_last:
2250 * @obj: Self
2251 * @err: Error propagation and reporting
2253 * Goto last bookmark
2256 void last ();
2259 * ianjuta_bookmark_next:
2260 * @obj: Self
2261 * @err: Error propagation and reporting
2263 * Goto next bookmark
2266 void next ();
2269 * ianjuta_bookmark_previous:
2270 * @obj: Self
2271 * @err: Error propagation and reporting
2273 * Goto previous bookmark
2276 void previous ();
2279 * ianjuta_bookmark_clear_all:
2280 * @obj: Self
2281 * @err: Error propagation and reporting
2283 * Clear all bookmarks
2286 void clear_all ();
2290 * SECTION:ianjuta-editor-factory
2291 * @title: IAnjutaEditorFactory
2292 * @short_description: Text editor factory that creates IAnjutaEditor objects
2293 * @see_also:
2294 * @stability: Unstable
2295 * @include: libanjuta/interfaces/ianjuta-editor-factory.h
2298 interface IAnjutaEditorFactory
2300 #include "ianjuta-editor.h"
2301 #include <gio/gio.h>
2304 * ianjuta_editor_factory_new_editor:
2305 * @obj: Self
2306 * @file: file to open
2307 * @filename: filename to open
2308 * @err: Error propagation and reporting
2310 * Get a new GtkWidget* which implements IAnjutaEditor
2312 * Return value: An object implementing IAnjutaEditor
2314 IAnjutaEditor* new_editor (GFile* file, const gchar* filename);
2318 * SECTION:ianjuta-document-manager
2319 * @title: IAnjutaDocumentManager
2320 * @short_description: Interface for plugin that manages all the editors
2321 * @see_also:
2322 * @stability: Unstable
2323 * @include: libanjuta/interfaces/ianjuta-document-manager.h
2326 interface IAnjutaDocumentManager
2328 #include "ianjuta-document.h"
2329 #include "ianjuta-editor.h"
2330 #include <gio/gio.h>
2333 * IANJUTA_DOCUMENT_MANAGER_CURRENT_DOCUMENT
2335 * Anjuta shell value set by document manager to the current document
2337 #define CURRENT_DOCUMENT "document_manager_current_document"
2339 enum Error
2341 DOESNT_EXIST
2345 * ianjuta_document_manager_get_file:
2346 * @obj: Self
2347 * @filename: short filename
2348 * @err: Error propagation and reporting.
2350 * Given the short filename, finds the file of the filename, if the
2351 * editor that has it loaded is found. If there is no editor that has
2352 * this file opened, returns NULL.
2354 * Return value: the GFile for the given short filename
2356 GFile* get_file (const gchar *filename);
2359 * ianjuta_document_manager_find_document_with_file:
2360 * @obj: Self
2361 * @file: The file to find.
2362 * @err: Error propagation and reporting.
2364 * Finds the document that has the file loaded. Only
2365 * the editor that matches the file will be searched.
2367 * Return value: the document that corresponds to given file. NULL if
2368 * there is no editor loaded with this file.
2370 IAnjutaDocument* find_document_with_file (GFile* file);
2373 * ianjuta_document_manager_goto_file_line:
2374 * @obj: Self
2375 * @file: file to go to.
2376 * @lineno: the line number in the file to go to.
2377 * @err: Error propagation and reporting.
2379 * Loads the given file if not loaded yet, set its editor as current editor
2380 * and moves cursor to the given line in the editor.
2382 * Return value: the editor where the mark has been put. NULL if none.
2384 IAnjutaEditor* goto_file_line (GFile* file, gint lineno);
2386 /**
2387 * ianjuta_document_manager_goto_file_line_mark:
2388 * @obj: Self
2389 * @file: file to go to.
2390 * @lineno: the line number in the file to go to.
2391 * @mark: TRUE if the line should be marked with a marker.
2392 * @err: Error propagation and reporting
2394 * Loads the given file if not loaded yet, set its editor as current editor
2395 * and moves cursor to the given line in the editor. Optionally also marks
2396 * the line with line marker if @mark is given TRUE.
2398 * Return value: the editor where the mark has been put. NULL if none.
2400 IAnjutaEditor* goto_file_line_mark (GFile* file, gint lineno, gboolean mark);
2403 * ianjuta_document_manager_get_current_document:
2404 * @obj: Self
2405 * @err: Error propagation and reporting.
2407 * Gets the current document.
2409 * Return value: the currently active document. NULL if none is there.
2411 IAnjutaDocument* get_current_document ();
2413 /**
2414 * ianjuta_document_manager_set_current_document:
2415 * @obj: Self
2416 * @document: the document to set as current.
2417 * @err: Error propagation and reporting.
2419 * Sets the given document as current document.
2421 void set_current_document (IAnjutaDocument *document);
2423 /**
2424 * ianjuta_document_manager_set_message_area:
2425 * @obj: Self
2426 * @document: the document we change the message area.
2427 * @message_area: the widget to use as the message area.
2428 * @err: Error propagation and reporting.
2430 * Sets the message area for the given document.
2432 void set_message_area (IAnjutaDocument *document, GtkWidget *message_area);
2435 * ianjuta_document_manager_get_doc_widgets:
2436 * @obj: Self
2437 * @err: Error propagation and reporting.
2439 * Gets a list of widgets for open documents. Each widget is
2440 * a GTK_WIDGET(InjutaDocument*)
2442 * Return value: a list of widgets for all open documents
2443 * The returned list (but not the data in the list) must be
2444 * freed after use.
2446 List<GtkWidget*> get_doc_widgets ();
2449 * ianjuta_document_manager_add_buffer:
2450 * @obj: Self
2451 * @name: Name of the editor buffer.
2452 * @content: Initial content of the buffer.
2453 * @err: Error propagation and reporting.
2455 * Creates a new editor buffer of the given name and sets the given
2456 * content as its initial content.
2458 * Return value: the IAnjutaEditor instance that has been added.
2460 IAnjutaEditor* add_buffer (const gchar *name, const gchar* content);
2463 * ianjuta_document_manager_remove_document:
2464 * @obj: Self
2465 * @document: Document to close.
2466 * @save_before: If true, saves the document before closing.
2467 * @err: Error propagation and reporting.
2469 * Closes and removes the given document. If @save_before is TRUE, also
2470 * saves the document before closing.
2472 * Return value: TRUE if the document was removed, else FALSE.
2474 gboolean remove_document (IAnjutaDocument *document, gboolean save_before);
2477 * ianjuta_document_manager_add_document:
2478 * @obj: Self
2479 * @document: the document to add
2480 * @err: Error propagation and reporting.
2482 * Adds a document to the document manager. This will open a new
2483 * Notebook tab and show the document there
2486 void add_document (IAnjutaDocument* document);
2491 * SECTION:ianjuta-message-view
2492 * @title: IAnjutaMessageView
2493 * @short_description: A view where messages of different kind can be shown
2494 * @see_also:
2495 * @stability: Unstable
2496 * @include: libanjuta/interfaces/ianjuta-message-view.h
2499 interface IAnjutaMessageView
2501 enum Type
2503 TYPE_NORMAL,
2504 TYPE_INFO,
2505 TYPE_WARNING,
2506 TYPE_ERROR
2510 * IAnjutaMessageView::message_clicked:
2511 * @obj: Self
2512 * @message: fixme
2513 * @err: Error propagation and reporting.
2515 * fixme
2517 void ::message_clicked (const gchar *message);
2519 /**
2520 * IAnjutaMessageView::buffer_flushed:
2521 * @obj: Self
2522 * @line: fixme
2523 * @err: Error propagation and reporting.
2525 * fixme
2527 void ::buffer_flushed (const gchar *line);
2530 * ianjuta_message_view_buffer_append:
2531 * @obj: Self
2532 * @text: fixme
2533 * @err: Error propagation and reporting.
2535 * fixme
2537 void buffer_append (const gchar *text);
2540 * ianjuta_message_view_append:
2541 * @obj: Self
2542 * @type: fixme
2543 * @summary: fixme
2544 * @details: fixme
2545 * @err: Error propagation and reporting.
2547 * fixme
2549 void append (Type type, const gchar *summary, const gchar *details);
2552 * ianjuta_message_view_clear:
2553 * @obj: Self
2554 * @err: Error propagation and reporting.
2556 * fixme
2558 void clear ();
2561 * ianjuta_message_view_select_next:
2562 * @obj: Self
2563 * @err: Error propagation and reporting.
2565 * fixme
2567 void select_next ();
2570 * ianjuta_message_view_select_previous:
2571 * @obj: Self
2572 * @err: Error propagation and reporting.
2574 * fixme
2576 void select_previous ();
2579 * ianjuta_message_view_get_current_message:
2580 * @obj: Self
2581 * @err: Error propagation and reporting.
2583 * fixme
2585 const gchar* get_current_message ();
2588 * ianjuta_message_view_get_all_messages:
2589 * @obj: Self
2590 * @err: Error propagation and reporting.
2592 * fixme
2594 List<const gchar*> get_all_messages ();
2598 * SECTION:ianjuta-message-manager
2599 * @title: IAnjutaMessageManager
2600 * @short_description: The plugin that managers all message views
2601 * @see_also:
2602 * @stability: Unstable
2603 * @include: libanjuta/interfaces/ianjuta-message-manager.h
2606 interface IAnjutaMessageManager
2608 #include "ianjuta-message-view.h"
2610 enum Error
2612 DOESNT_EXIST
2615 * ianjuta_message_manager_add_view:
2616 * @obj: Self
2617 * @name: Name/Title of the new view
2618 * @icon: Path to an icon or ""
2619 * @err: Error propagation and reporting
2621 * Adds a new view to the message-manager
2623 * Return value: The new message-view
2625 IAnjutaMessageView* add_view (const gchar *name, const gchar *icon);
2628 * ianjuta_message_manager_remove_view:
2629 * @obj: Self
2630 * @view: The view to remove
2631 * @err: Error propagation and reporting
2633 * Remove view from the message-manager. The view
2634 * will become invalid.
2636 void remove_view (IAnjutaMessageView *view);
2639 * ianjuta_message_manager_get_current_view:
2640 * @obj: Self
2641 * @err: Error propagation and reporting
2643 * Get the view with is currently on top of
2644 * the notebook or NULL if the message-manager is empty.
2646 * Return value: Current view; #IAnjutaMessageView object.
2647 * NULL, if there is no views.
2649 IAnjutaMessageView* get_current_view ();
2652 * ianjuta_message_manager_get_view_by_name:
2653 * @obj: Self
2654 * @name: Name/Title of the view
2655 * @err: Error propagation and reporting
2657 * Get the view with the given name or NULL if
2658 * it does not exist.
2660 * Return value: The message-view or NULL
2662 IAnjutaMessageView* get_view_by_name (const gchar *name);
2665 * ianjuta_message_manager_get_all_views:
2666 * @obj: Self
2667 * @err: Error propagation and reporting
2669 * Get all message-views
2671 * Return value: A GList* of all views. You must not
2672 * manipulate the list.
2674 List<IAnjutaMessageView*> get_all_views ();
2677 * ianjuta_message_manager_set_current_view:
2678 * @obj: Self
2679 * @view: A message view
2680 * @err: Error propagation and reporting
2682 * Set view to be on top of the notebook.
2685 void set_current_view (IAnjutaMessageView *view);
2688 * ianjuta_message_manager_set_view_title:
2689 * @obj: Self
2690 * @view: A message view
2691 * @title: Sets the title of view.
2692 * @err: Error propagation and reporting
2694 * Sets the title of view.
2697 void set_view_title (IAnjutaMessageView *view, const gchar *title);
2701 * SECTION:ianjuta-file-manager
2702 * @title: IAnjutaFileManager
2703 * @short_description: File manager plugin
2704 * @see_also:
2705 * @stability: Unstable
2706 * @include: libanjuta/interfaces/ianjuta-file-manager.h
2709 interface IAnjutaFileManager
2711 #include <gio/gio.h>
2714 * IANJUTA_FILE_MANAGER_SELECTED_FILE
2716 * Anjuta shell value set by file manager to the selected file.
2718 #define SELECTED_FILE "file_manager_selected_file"
2721 * IAnjutaFileManager::section_changed:
2722 * @obj: Self
2723 * @err: Error propagation and reporting.
2725 * fixme
2727 void ::section_changed (GFile* file);
2730 * ianjuta_file_manager_set_root:
2731 * @obj: Self
2732 * @root_uri: fixme
2733 * @err: Error propagation and reporting.
2735 * fixme
2737 void set_root (const gchar *root_uri);
2740 * ianjuta_file_manager_get_selected:
2741 * @obj: Self
2742 * @err: Error propagation and reporting.
2744 * fixme
2746 GFile* get_selected ();
2749 * ianjuta_file_manager_set_selected:
2750 * @obj: Self
2751 * @file: File to select
2752 * @err: Error propagation and reporting.
2754 * fixme.
2756 void set_selected (GFile* file);
2760 * SECTION:ianjuta-terminal
2761 * @title: IAnjutaTerminal
2762 * @short_description: Interface for command line terminals
2763 * @see_also:
2764 * @stability: Unstable
2765 * @include: libanjuta/interfaces/ianjuta-terminal.h
2768 interface IAnjutaTerminal
2770 #include <sys/types.h>
2773 * IAnjutaDebugManager::child_exited:
2774 * @obj: Self
2775 * @pid: pid of terminated child
2776 * @status: status of terminated child as returned by waitpid
2778 * This signal is emitted when a child exit.
2780 void ::child_exited (gint pid, gint status);
2784 * ianjuta_terminal_execute_command:
2785 * @obj: Self
2786 * @directory: Working directory
2787 * @command: Command executed followed by arguments
2788 * @environment: List of additional environment variables
2789 * @err: Error propagation and reporting.
2791 * Run the command in a terminal, setting the working directory
2792 * and environment variables.
2794 * Returns: Process ID
2796 pid_t execute_command (const gchar* directory, const gchar *command, gchar **environment);
2800 * SECTION:ianjuta-project-manager
2801 * @title: IAnjutaProjectManager
2802 * @short_description: Interface for project managers
2803 * @see_also:
2804 * @stability: Unstable
2805 * @include: libanjuta/interfaces/ianjuta-project-manager.h
2808 interface IAnjutaProjectManager
2811 * IANJUTA_PROJECT_MANAGER_PROJECT_ROOT_URI
2813 * Anjuta shell value set by project manager to the project root uri.
2815 #define PROJECT_ROOT_URI "project_root_uri"
2818 * IANJUTA_PROJECT_MANAGER_CURRENT_URI
2820 * Anjuta shell value set by project manager to the current uri.
2822 #define CURRENT_URI "project_manager_current_uri"
2824 enum ElementType
2826 UNKNOWN,
2827 SOURCE,
2828 TARGET,
2829 GROUP
2832 enum TargetType
2834 TARGET_UNKNOWN,
2835 TARGET_SHAREDLIB,
2836 TARGET_STATICLIB,
2837 TARGET_EXECUTABLE
2840 enum Capabilities
2842 CAN_ADD_NONE = 0,
2843 CAN_ADD_GROUP = 1 << 0,
2844 CAN_ADD_TARGET = 1 << 1,
2845 CAN_ADD_SOURCE = 1 << 2
2848 // Signals
2851 * IAnjutaProjectManager::element_added:
2852 * @obj: Self
2853 * @element_uri: fixme
2854 * @err: Error propagation and reporting.
2856 * fixme
2858 void ::element_added (const gchar *element_uri);
2860 /**
2861 * IAnjutaProjectManager::element_removed:
2862 * @obj: Self
2863 * @element_uri: fixme
2864 * @err: Error propagation and reporting.
2866 * fixme
2868 void ::element_removed (const gchar *element_uri);
2871 * IAnjutaProjectManager::element_selected:
2872 * @obj: Self
2873 * @element_uri: fixme
2874 * @err: Error propagation and reporting.
2876 * fixme
2878 void ::element_selected (const gchar *element_uri);
2880 // Methods
2883 * ianjuta_project_manager_get_element_type:
2884 * @obj: Self
2885 * @element_uri: fixme
2886 * @err: Error propagation and reporting.
2888 * fixme
2890 * Returns: fixme
2892 ElementType get_element_type (const gchar *element_uri);
2895 * ianjuta_project_manager_get_elements:
2896 * @obj: Self
2897 * @element_type: fixme
2898 * @err: Error propagation and reporting.
2900 * fixme
2902 * Returns: fixme
2904 List<const gchar*> get_elements (ElementType element_type);
2907 * ianjuta_project_manager_get_target_type:
2908 * @obj: Self
2909 * @target_uri: fixme
2910 * @err: Error propagation and reporting.
2912 * fixme
2914 * Returns: fixme
2916 TargetType get_target_type (const gchar *target_uri);
2919 * ianjuta_project_manager_get_targets:
2920 * @obj: Self
2921 * @target_type: fixme
2922 * @err: Error propagation and reporting.
2924 * fixme
2926 * Returns: fixme
2928 List<const gchar*> get_targets (TargetType target_type);
2931 * ianjuta_project_manager_get_parent:
2932 * @obj: Self
2933 * @element_uri: fixme
2934 * @err: Error propagation and reporting.
2936 * fixme
2938 * Returns: fixme
2940 gchar* get_parent (const gchar *element_uri);
2943 * ianjuta_project_manager_get_children:
2944 * @obj: Self
2945 * @element_uri: fixme
2946 * @err: Error propagation and reporting.
2948 * fixme
2950 * Returns: fixme
2952 List<const gchar*> get_children (const gchar *element_uri);
2955 * ianjuta_project_manager_get_selected:
2956 * @obj: Self
2957 * @err: Error propagation and reporting.
2959 * fixme
2961 gchar* get_selected ();
2964 * ianjuta_project_manager_get_capabilities:
2965 * @obj: Self
2966 * @err: Error propagation and reporting.
2968 * Returns the capabilites of project whether it can add group, target
2969 * sources etc.
2971 * Returns: Supported capabilites.
2973 Capabilities get_capabilities ();
2976 * ianjuta_project_manager_add_source:
2977 * @obj: Self
2978 * @source_uri_to_add: fixme
2979 * @default_location_uri: fixme
2980 * @err: Error propagation and reporting.
2982 * Prompt the user to add a file to the project. If the user selects
2983 * multiple files only the first uri is returned.
2985 * Returns: element URIs. Must be freed when no longer required.
2987 gchar* add_source (const gchar *source_uri_to_add, const gchar *default_location_uri);
2990 * ianjuta_project_manager_add_sources:
2991 * @obj: Self
2992 * @source_uris_to_add: fixme
2993 * @default_location_uri: fixme
2994 * @err: Error propagation and reporting.
2996 * Prompt the user to add a file to the project. If the user selects
2997 * multiple files only the first uri is returned.
2999 * Returns: element URIs. Must be freed when no longer required.
3001 List<const gchar*> add_sources (List<const gchar*> source_uri_to_add, const gchar *default_location_uri);
3004 * ianjuta_project_manager_add_target:
3005 * @obj: Self
3006 * @target_name_to_add: fixme
3007 * @default_location_uri: fixme
3008 * @err: Error propagation and reporting.
3010 * fixme
3012 * Returns:
3014 gchar* add_target (const gchar *target_name_to_add, const gchar *default_location_uri);
3017 * ianjuta_project_manager_add_group:
3018 * @obj: Self
3019 * @group_name_to_add: fixme
3020 * @default_location_uri: fixme
3021 * @err: Error propagation and reporting.
3023 * fixme
3025 * Returns: fixme
3027 gchar* add_group (const gchar *group_name_to_add, const gchar *default_location_uri);
3030 * ianjuta_project_manager_is_open:
3031 * @obj: Self
3032 * @err: Error propagation and reporting.
3034 * fixme
3036 gboolean is_open ();
3039 * ianjuta_project_manager_get_packages
3040 * @obj: Self
3041 * @err: Error propagation and reporting.
3043 * Returns: the list of pkg-config packages that this projects
3044 * requires in it's configure.ac or NULL
3046 List<gchar*> get_packages();
3050 * SECTION:ianjuta-todo
3051 * @title: IAnjutaTodo
3052 * @short_description: Task manager interface
3053 * @see_also:
3054 * @stability: Unstable
3055 * @include: libanjuta/interfaces/ianjuta-todo.h
3058 interface IAnjutaTodo
3060 #include <gio/gio.h>
3062 * ianjuta_to_do_load:
3063 * @obj: Self
3064 * @file: fixme
3065 * @err: Error propagation and reporting.
3067 * fixme
3069 void load(GFile *file);
3073 * SECTION:ianjuta-wizard
3074 * @title: IAnjutaWizard
3075 * @short_description: Interface for wizards that can create new stuffs
3076 * @see_also:
3077 * @stability: Unstable
3078 * @include: libanjuta/interfaces/ianjuta-wizard.h
3081 interface IAnjutaWizard
3085 * ianjuta_wizard_activate:
3086 * @obj: Self
3087 * @err: Error propagation and reporting.
3089 * fixme
3091 void activate();
3095 * SECTION:ianjuta-debugger
3096 * @title: IAnjutaDebugger
3097 * @short_description: Debugger interface
3098 * @see_also:
3099 * @stability: Unstable
3100 * @include: libanjuta/interfaces/ianjuta-debugger.h
3103 interface IAnjutaDebugger
3105 #include "ianjuta-message-view.h"
3106 #include <libanjuta/anjuta-error.h>
3107 #include <sys/types.h>
3108 #include <gio/gio.h>
3110 /* Types */
3111 enum Error
3113 OK = 0,
3114 NOT_READY,
3115 NOT_RUNNING,
3116 NOT_STOPPED,
3117 NOT_LOADED,
3118 NOT_STARTED,
3119 NOT_CONNECTED,
3120 NOT_IMPLEMENTED,
3121 CANCEL,
3122 UNABLE_TO_CREATE_VARIABLE,
3123 UNABLE_TO_ACCESS_MEMORY,
3124 UNABLE_TO_OPEN_FILE,
3125 UNSUPPORTED_FILE_TYPE,
3126 UNSUPPORTED_VERSION,
3127 UNABLE_TO_FIND_DEBUGGER,
3128 ALREADY_DONE,
3129 PROGRAM_NOT_FOUND,
3130 UNKNOWN_ERROR,
3131 OTHER_ERROR
3134 enum Data
3136 INFORMATION,
3137 BREAKPOINT,
3138 FRAME,
3139 VARIABLE,
3140 REGISTER
3143 enum OutputType
3145 OUTPUT,
3146 WARNING_OUTPUT,
3147 ERROR_OUTPUT,
3148 INFO_OUTPUT
3151 enum State
3153 BUSY,
3154 STOPPED,
3155 STARTED,
3156 PROGRAM_LOADED,
3157 PROGRAM_STOPPED,
3158 PROGRAM_RUNNING
3161 struct Frame
3163 gint thread;
3164 guint level;
3165 gchar *args;
3166 gchar *file;
3167 guint line;
3168 gchar *function;
3169 gchar *library;
3170 gulong address;
3173 /* Call back functions */
3174 typedef void (*Callback) (const gpointer data, gpointer user_data, GError* err);
3175 typedef void (*GListCallback) (const GList* list, gpointer user_data, GError* err);
3176 typedef void (*GCharCallback) (const gchar *value, gpointer user_data, GError* err);
3177 typedef void (*OutputCallback) (OutputType type, const gchar *output, gpointer user_data);
3178 typedef void (*MemoryCallback) (gulong address, guint length, const gchar *data, gpointer user_data, GError *err);
3180 /* Signals */
3183 * IAnjutaDebugger::debugger_started:
3184 * @obj: Self
3186 * fixme
3188 void ::debugger_started ();
3191 * IAnjutaDebugger::debugger_stopped:
3192 * @obj: Self
3193 * @err: Error propagation and reporting.
3195 * fixme
3197 void ::debugger_stopped (GError *err);
3200 * IAnjutaDebugger::program_loaded:
3201 * @obj: Self
3203 * fixme
3205 void ::program_loaded ();
3208 * IAnjutaDebugger::program_running:
3209 * @obj: Self
3211 * fixme
3213 void ::program_running ();
3216 * IAnjutaDebugger::program_stopped:
3217 * @obj: Self
3219 * fixme
3221 void ::program_stopped ();
3224 * IAnjutaDebugger::program_exited:
3225 * @obj: Self
3227 * fixme
3229 void ::program_exited ();
3232 * IAnjutaDebugger::sharedlib_event:
3233 * @obj: Self
3235 * fixme
3237 void ::sharedlib_event ();
3240 * IAnjutaDebugger::program_moved:
3241 * @obj: Self
3242 * @pid: process id, 0 when unknown
3243 * @tid: thread id, 0 when unknown
3244 * @address: program counter address, 0 when unknown
3245 * @file: source file where is the program counter, NULL when unknown
3246 * @line: line number if file name above is not NULL
3248 * This signal is emitted when the debugger know the current program
3249 * location. Most of the time, after the program has stopped but it
3250 * could happen even if it is still running.
3252 void ::program_moved (gint pid, gint tid, gulong address, const gchar* file, guint line);
3255 * IAnjutaDebugger::frame_changed:
3256 * @obj: Self
3257 * @frame: fixme
3258 * @thread: thread
3260 * fixme
3262 void ::frame_changed (guint frame, gint thread);
3265 * IAnjutaDebugger::signal_received:
3266 * @obj: Self
3267 * @name: Signal name
3268 * @description: Signal description
3270 * fixme
3272 void ::signal_received (const gchar* name, const gchar* description);
3275 * IAnjutaDebugger::debugger_ready:
3276 * @obj: Self
3277 * @status: fixme
3279 * fixme
3281 void ::debugger_ready (State state);
3285 * ianjuta_debugger_get_state:
3286 * @obj: Self
3287 * @err: Error propagation and reporting.
3289 * fixme
3291 * Returns: fixme
3293 State get_state ();
3299 * ianjuta_debugger_load:
3300 * @obj: Self
3301 * @file: fixme
3302 * @mime_type: fixme
3303 * @source_search_directories: fixme
3304 * @terminal: fixme
3305 * @err: Error propagation and reporting.
3307 * fixme
3309 * Returns: TRUE if sucessful, other FALSE.
3311 gboolean load (const gchar *file, const gchar *mime_type, const List<const gchar*> source_search_directories);
3314 * ianjuta_debugger_attach:
3315 * @obj: Self
3316 * @pid: fixme
3317 * @source_search_directories: fixme
3318 * @err: Error propagation and reporting.
3320 * fixme
3322 * Returns: TRUE if sucessful, other FALSE.
3324 gboolean attach (pid_t pid, const List<const gchar*> source_search_directories);
3327 * ianjuta_debugger_set_working_directory:
3328 * @obj: Self
3329 * @dir: working program directory
3330 * @err: Error propagation and reporting.
3332 * Set program working directory.
3334 * Returns: TRUE if sucessful, other FALSE.
3336 gboolean set_working_directory (const gchar *dir);
3339 * ianjuta_debugger_set_environment:
3340 * @obj: Self
3341 * @env: List environment variable
3342 * @err: Error propagation and reporting
3344 * Set environment variable
3346 * Returns: TRUE if sucessfull, other FALSE.
3348 gboolean set_environment (gchar **env);
3351 * ianjuta_debugger_start:
3352 * @obj: Self
3353 * @args: command line argument of the program
3354 * @terminal: TRUE if the program need a terminal
3355 * @stop: TRUE if program is stopped at the beginning
3356 * @err: Error propagation and reporting.
3358 * Start a loaded program under debugger control.
3360 * Returns: TRUE if sucessful, other FALSE.
3362 gboolean start (const gchar *args, gboolean terminal, gboolean stop);
3365 * ianjuta_debugger_unload:
3366 * @obj: Self
3367 * @err: Error propagation and reporting.
3369 * fixme
3371 * Returns: fixme
3373 gboolean unload ();
3376 * ianjuta_debugger_quit:
3377 * @obj: Self
3378 * @err: Error propagation and reporting.
3380 * Quit the debugger, can wait until the debugger is ready.
3382 * Returns: TRUE if sucessful, other FALSE.
3384 gboolean quit ();
3387 * ianjuta_debugger_abort:
3388 * @obj: Self
3389 * @err: Error propagation and reporting.
3391 * Quit the debugger as fast as possible.
3393 * Returns: TRUE if sucessful, other FALSE.
3395 gboolean abort ();
3398 * ianjuta_debugger_run:
3399 * @obj: Self
3400 * @err: Error propagation and reporting.
3402 * fixme
3404 * Returns: fixme
3406 gboolean run ();
3409 * ianjuta_debugger_step_in:
3410 * @obj: Self
3411 * @err: Error propagation and reporting.
3413 * fixme
3415 * Returns: fixme
3417 gboolean step_in ();
3420 * ianjuta_debugger_step_over:
3421 * @obj: Self
3422 * @err: Error propagation and reporting.
3424 * fixme
3426 * Returns: fixme
3428 gboolean step_over ();
3431 * ianjuta_debugger_step_out:
3432 * @obj: Self
3433 * @err: Error propagation and reporting.
3435 * fixme
3437 * Returns: fixme
3439 gboolean step_out ();
3442 * ianjuta_debugger_run_to:
3443 * @obj: Self
3444 * @file: fixme
3445 * @line: fixme
3446 * @err: Error propagation and reporting.
3448 * fixme
3450 * Returns: fixme
3452 gboolean run_to (GFile* file, gint line);
3455 * ianjuta_debugger_exit:
3456 * @obj: Self
3457 * @err: Error propagation and reporting.
3459 * fixme
3461 * Returns: fixme
3463 gboolean exit ();
3466 * ianjuta_debugger_interrupt:
3467 * @obj: Self
3468 * @err: Error propagation and reporting.
3470 * fixme
3472 * Returns: fixme
3474 gboolean interrupt ();
3479 * ianjuta_debugger_inspect:
3480 * @obj: Self
3481 * @name: fixme
3482 * @callback: fixme
3483 * @user_data: fixme
3484 * @err: Error propagation and reporting.
3486 * fixme
3488 * Returns: fixme
3490 gboolean inspect (const gchar* name, Callback callback, gpointer user_data);
3493 * ianjuta_debugger_evaluate:
3494 * @obj: Self
3495 * @name: fixme
3496 * @value: fixme
3497 * @callback: fixme
3498 * @user_data: fixme
3499 * @err: Error propagation and reporting.
3501 * fixme
3503 * Returns: fixme
3505 gboolean evaluate (const gchar* name, const gchar* value, Callback callback, gpointer user_data);
3508 * ianjuta_debugger_print:
3509 * @obj: Self
3510 * @variable: fixme
3511 * @callback: fixme
3512 * @user_data: fixme
3513 * @err: Error propagation and reporting.
3515 * fixme
3517 * Returns: fixme
3519 gboolean print (const gchar *variable, Callback callback, gpointer user_data);
3522 * ianjuta_debugger_list_local:
3523 * @obj: Self
3524 * @callback: fixme
3525 * @user_data: fixme
3526 * @err: Error propagation and reporting.
3528 * fixme
3530 * Returns: fixme
3532 gboolean list_local (Callback callback, gpointer user_data);
3535 * ianjuta_debugger_list_argument:
3536 * @obj: Self
3537 * @callback: fixme
3538 * @user_data: fixme
3539 * @err: Error propagation and reporting.
3541 * fixme
3543 * Returns: fixme
3545 gboolean list_argument (Callback callback, gpointer user_data);
3548 * ianjuta_debugger_info_signal:
3549 * @obj: Self
3550 * @callback: fixme
3551 * @user_data: fixme
3552 * @err: Error propagation and reporting.
3554 * fixme
3556 * Returns: fixme
3558 gboolean info_signal (Callback callback, gpointer user_data);
3561 * ianjuta_debugger_info_sharedlib:
3562 * @obj: Self
3563 * @callback: fixme
3564 * @user_data: fixme
3565 * @err: Error propagation and reporting.
3567 * fixme
3569 * Returns: fixme
3571 gboolean info_sharedlib (Callback callback, gpointer user_data);
3574 * ianjuta_debugger_handle_signal:
3575 * @obj: Self
3576 * @name: fixme
3577 * @stop: fixme
3578 * @print: fixme
3579 * @ignore: fixme
3580 * @err: Error propagation and reporting.
3582 * fixme
3584 * Returns: fixme
3586 gboolean handle_signal (const gchar *name, gboolean stop, gboolean print, gboolean ignore);
3589 * ianjuta_debugger_info_frame:
3590 * @obj: Self
3591 * @frame: fixme
3592 * @callback: fixme
3593 * @user_data: fixme
3594 * @err: Error propagation and reporting.
3596 * fixme
3598 * Returns: fixme
3600 gboolean info_frame (guint frame, Callback callback, gpointer user_data);
3603 * ianjuta_debugger_info_args:
3604 * @obj: Self
3605 * @callback: fixme
3606 * @user_data: fixme
3607 * @err: Error propagation and reporting.
3609 * fixme
3611 * Returns: fixme
3613 gboolean info_args (Callback callback, gpointer user_data);
3616 * ianjuta_debugger_info_target:
3617 * @obj: Self
3618 * @funx: fixme
3619 * @user_data: fixme
3620 * @err: Error propagation and reporting.
3622 * fixme
3624 * Returns: fixme
3626 gboolean info_target (Callback callback, gpointer user_data);
3629 * ianjuta_debugger_info_program:
3630 * @obj: Self
3631 * @callback: fixme
3632 * @user_data: fixme
3633 * @err: Error propagation and reporting.
3635 * fixme
3637 * Returns: fixme
3639 gboolean info_program (Callback callback, gpointer user_data);
3642 * ianjuta_debugger_info_udot:
3643 * @obj: Self
3644 * @callback: fixme
3645 * @user_data: fixme
3646 * @err: Error propagation and reporting.
3648 * fixme
3650 * Returns: fixme
3652 gboolean info_udot (Callback callback, gpointer user_data);
3656 * ianjuta_debugger_info_variables:
3657 * @obj: Self
3658 * @callback: fixme
3659 * @user_data: fixme
3660 * @err: Error propagation and reporting.
3662 * fixme
3664 * Returns: fixme
3666 gboolean info_variables (Callback callback, gpointer user_data);
3669 * ianjuta_debugger_list_frame:
3670 * @obj: Self
3671 * @callback: fixme
3672 * @user_data: fixme
3673 * @err: Error propagation and reporting.
3675 * fixme
3677 * Returns: fixme
3679 gboolean list_frame (Callback callback, gpointer user_data);
3682 * ianjuta_debugger_set_frame:
3683 * @obj: Self
3684 * @frame: fixme
3685 * @err: Error propagation and reporting.
3687 * fixme
3689 * Returns: fixme
3691 gboolean set_frame (guint frame);
3694 * ianjuta_debugger_list_thread:
3695 * @obj: Self
3696 * @callback: fixme
3697 * @user_data: fixme
3698 * @err: Error propagation and reporting.
3700 * fixme
3702 * Returns: fixme
3704 gboolean list_thread (Callback callback, gpointer user_data);
3707 * ianjuta_debugger_set_thread:
3708 * @obj: Self
3709 * @frame: fixme
3710 * @err: Error propagation and reporting.
3712 * fixme
3714 * Returns: fixme
3716 gboolean set_thread (gint thread);
3719 * ianjuta_debugger_info_threads:
3720 * @obj: Self
3721 * @thread: fixme
3722 * @callback: fixme
3723 * @user_data: fixme
3724 * @err: Error propagation and reporting.
3726 * fixme
3728 * Returns: fixme
3730 gboolean info_thread (gint thread, Callback callback, gpointer user_data);
3733 * ianjuta_debugger_list_register:
3734 * @obj: Self
3735 * @callback: fixme
3736 * @user_data: fixme
3737 * @err: Error propagation and reporting.
3739 * fixme
3741 * Returns: fixme
3743 gboolean list_register (Callback callback, gpointer user_data);
3746 * ianjuta_debugger_send_command:
3747 * @obj: Self
3748 * @command: fixme
3749 * @err: Error propagation and reporting.
3751 * fixme
3753 * Returns: fixme
3755 gboolean send_command (const gchar *command);
3758 * ianjuta_debugger_callback:
3759 * @obj: Self
3760 * @callback: fixme
3761 * @user_data: fixme
3762 * @err: Error propagation and reporting.
3764 * fixme
3766 * Returns: fixme
3768 gboolean callback (Callback callback, gpointer user_data);
3771 * ianjuta_debugger_enable_log:
3772 * @obj: Self
3773 * @log: fixme
3774 * @err: Error propagation and reporting.
3776 * fixme
3778 * Returns: fixme
3780 void enable_log (IAnjutaMessageView *log);
3783 * ianjuta_debugger_disable_log:
3784 * @obj: Self
3785 * @err: Error propagation and reporting.
3787 * fixme
3789 * Returns: fixme
3791 void disable_log ();
3794 * SECTION:ianjuta-debugger-breakpoint
3795 * @title: IAnjutaDebuggerBreakpoint
3796 * @short_description: Breakpoint Debugger interface
3797 * @see_also:
3798 * @stability: Unstable
3799 * @include: libanjuta/interfaces/ianjuta-debugger-breakpoint.h
3802 interface IAnjutaDebuggerBreakpoint
3805 enum Type
3807 REMOVED = 1 << 0,
3808 UPDATED = 1 << 17,
3809 ON_LINE = 1 << 1,
3810 ON_ADDRESS = 1 << 2,
3811 ON_FUNCTION = 1 << 3,
3812 ON_READ = 1 << 4,
3813 ON_WRITE = 1 << 5,
3814 WITH_ENABLE = 1 << 16,
3815 WITH_IGNORE = 1 << 15,
3816 WITH_TIME = 1 << 11,
3817 WITH_CONDITION = 1 << 12,
3818 WITH_TEMPORARY = 1 << 13
3821 struct Item
3823 gint type;
3824 guint id;
3825 gchar *file;
3826 guint line;
3827 gchar *function;
3828 gulong address;
3829 gboolean enable;
3830 guint ignore;
3831 guint times;
3832 gchar *condition;
3833 gboolean temporary;
3836 enum Method
3838 SET_AT_ADDRESS = 1 << 0,
3839 SET_AT_FUNCTION = 1 << 1,
3840 ENABLE = 1 << 2,
3841 IGNORE = 1 << 3,
3842 CONDITION = 1 << 4
3846 * ianjuta_debugger_breakpoint_implement:
3847 * @obj: Self
3848 * @err: Error propagation and reporting.
3850 * Return all implemented methods.
3852 * Returns: A OR of IAnjutaDebuggerBreakpointMethod
3853 * corresponding to all implemented optional methods.
3855 gint implement ();
3858 * ianjuta_debugger_breakpoint_set_at_line:
3859 * @obj: Self
3860 * @file: File containing the breakpoint
3861 * @line: Line number where is the breakpoint
3862 * @callback: Callback to call when the breakpoint has been set
3863 * @user_data: User data that is passed back to the callback
3864 * @err: Error propagation and reporting.
3866 * Set a breakpoint at the specified line in the file.
3868 * Returns: TRUE if the request succeed and the callback is called. If
3869 * FALSE, the callback will not be called.
3871 gboolean set_at_line (const gchar* file, guint line, IAnjutaDebuggerCallback callback, gpointer user_data);
3875 * ianjuta_debugger_breakpoint_set_at_address:
3876 * @obj: Self
3877 * @address: Address of the breakpoint
3878 * @callback: Callback to call when the breakpoint has been set
3879 * @user_date: User data that is passed back to the callback
3880 * @err: Error propagation and reporting.
3882 * Set a breakpoint at the specified address.
3883 * This function is optional.
3885 * Returns: TRUE if the request succeed and the callback is called. If
3886 * FALSE, the callback will not be called.
3888 gboolean set_at_address (gulong address, IAnjutaDebuggerCallback callback, gpointer user_data);
3891 * ianjuta_debugger_breakpoint_set_at_function:
3892 * @obj: Self
3893 * @file: File containing the breakpoint
3894 * @function: Function name where the breakpoint is put
3895 * @callback: Callback to call when the breakpoint has been set
3896 * @user_data: User data that is passed back to the callback
3897 * @err: Error propagation and reporting.
3899 * Set a breakpoint at the beginning of the specified function.
3900 * This function is optional.
3902 * Returns: TRUE if the request succeed and the callback is called. If
3903 * FALSE, the callback will not be called.
3905 gboolean set_at_function (const gchar* file, const gchar* function, IAnjutaDebuggerCallback callback, gpointer user_data);
3908 * ianjuta_debugger_breakpoint_clear:
3909 * @obj: Self
3910 * @id: Breakpoint identification number
3911 * @callback: Callback to call when the breakpoint has been cleared
3912 * @user_data: User data that is passed back to the callback
3913 * @err: Error propagation and reporting.
3915 * Clear a breakpoint put by any set functions. The Id of the breakpoint
3916 * is given in the callback of the set functions.
3918 * Returns: TRUE if the request succeed and the callback is called. If
3919 * FALSE, the callback will not be called.
3921 gboolean clear (guint id, IAnjutaDebuggerCallback callback, gpointer user_data);
3924 * ianjuta_debugger_breakpoint_list:
3925 * @obj: Self
3926 * @callback: Callback to call with the list of breakpoints
3927 * @user_data: User data that is passed back to the callback
3928 * @err: Error propagation and reporting.
3930 * List all breakpoints set in the debugger. It is useful to
3931 * know how many time a breakpoint has been hit.
3933 * Returns: TRUE if the request succeed and the callback is called. If
3934 * FALSE, the callback will not be called.
3936 gboolean list (IAnjutaDebuggerCallback callback, gpointer user_data);
3939 * ianjuta_debugger_breakpoint_enable:
3940 * @obj: Self
3941 * @id: Breakpoint identification number
3942 * @enable: TRUE to enable the breakpoint, FALSE to disable it
3943 * @callback: Callback to call when the breakpoint has been changed
3944 * @user_data: User data that is passed back to the callback
3945 * @err: Error propagation and reporting.
3947 * Enable of disable a breakpoint. This function is optional.
3949 * Returns: TRUE if the request succeed and the callback is called. If
3950 * FALSE, the callback will not be called.
3952 gboolean enable (guint id, gboolean enable, IAnjutaDebuggerCallback callback, gpointer user_data);
3955 * ianjuta_debugger_breakpoint_ignore:
3956 * @obj: Self
3957 * @id: Breakpoint identification number
3958 * @ignore: Number of time a breakpoint must be ignored
3959 * @callback: Callback to call when the breakpoint has been changed
3960 * @user_data: User data that is passed back to the callback
3961 * @err: Error propagation and reporting.
3963 * This allow to ignore the breakpoint a number of time before stopping.
3964 * This function is optional.
3966 * Returns: TRUE if the request succeed and the callback is called. If
3967 * FALSE, the callback will not be called.
3969 gboolean ignore (guint id, guint ignore, IAnjutaDebuggerCallback callback, gpointer user_data);
3972 * ianjuta_debugger_breakpoint_condition:
3973 * @obj: Self
3974 * @id: Breakpoint identification number
3975 * @condition: fixme
3976 * @callback: Callback to call when the breakpoint has been changed
3977 * @user_data: User data that is passed back to the callback
3978 * @err: Error propagation and reporting.
3980 * Add a condition, evaluate in the program context, on the breakpoint,
3981 * the program will stop when it reachs the breakpoint only if the
3982 * condition is true. This function is optional.
3984 * Returns: TRUE if the request succeed and the callback is called. If
3985 * FALSE, the callback will not be called.
3987 gboolean condition (guint id, const gchar* condition, IAnjutaDebuggerCallback callback, gpointer user_data);
3991 * SECTION:ianjuta-debugger-variable
3992 * @title: IAnjutaDebuggerVariable
3993 * @short_description: Variables interface for debuggers
3994 * @see_also:
3995 * @stability: Unstable
3996 * @include: libanjuta/interfaces/ianjuta-debugger-variable.h
3998 * This interface is used to examine and change values of expression.
3999 * It is based on the MI2 variable object interface of gdb. A
4000 * variable needs to be created before being able to get or set its
4001 * value and list its children.
4003 interface IAnjutaDebuggerVariable
4005 struct Object
4007 gchar *name;
4008 gchar *expression;
4009 gchar *type;
4010 gchar *value;
4011 gboolean changed;
4012 gboolean exited;
4013 gboolean deleted;
4014 gint children;
4018 * ianjuta_debugger_variable_create:
4019 * @obj: Self
4020 * @expression: Variable expression
4021 * @callback: Callback to call when the variable has been created
4022 * @user_data: User data that is passed back to the callback
4023 * @err: Error propagation and reporting.
4025 * Create a new variable object in the current thread and frame.
4027 * Returns: TRUE if the request succeed and the callback is
4028 * called. If FALSE, the callback will not be called.
4030 gboolean create (const gchar *expression, IAnjutaDebuggerCallback callback, gpointer user_data);
4033 * ianjuta_debugger_variable_list_children:
4034 * @obj: Self
4035 * @name: Variable name
4036 * @callback: Callback to call when the children have been
4037 * created
4038 * @user_data: User data that is passed back to the callback
4039 * @err: Error propagation and reporting.
4041 * List and create objects for all children of a
4042 * variable object.
4044 * Returns: TRUE if the request succeed and the callback is
4045 * called. If FALSE, the callback will not be called.
4047 gboolean list_children (const gchar *name, IAnjutaDebuggerCallback callback, gpointer user_data);
4050 * ianjuta_debugger_variable_evaluate:
4051 * @obj: Self
4052 * @name: Variable name
4053 * @callback: Callback to call with the variable value
4054 * @user_data: User data that is passed back to the callback
4055 * @err: Error propagation and reporting.
4057 * Get the value of one variable or child object.
4059 * Returns: TRUE if the request succeed and the callback is
4060 * called. If FALSE, the callback will not be called.
4062 gboolean evaluate (const gchar *name, IAnjutaDebuggerCallback callback, gpointer user_data);
4065 * ianjuta_debugger_variable_assign:
4066 * @obj: Self
4067 * @name: Variable name
4068 * @value: Variable value
4069 * @err: Error propagation and reporting.
4071 * Set the value of one variable or child object.
4073 * Returns: TRUE if the request succeed and the callback is
4074 * called. If FALSE, the callback will not be called.
4076 gboolean assign (const gchar *name, const gchar *value);
4079 * ianjuta_debugger_variable_update:
4080 * @obj: Self
4081 * @callback: Callback to call with the list of all changed
4082 * variables
4083 * @user_data: User data that is passed back to the callback
4084 * @err: Error propagation and reporting.
4086 * List all changed variable objects since the last call.
4088 * Returns: TRUE if the request succeed and the callback is
4089 * called. If FALSE, the callback will not be called.
4091 gboolean update (IAnjutaDebuggerCallback callback, gpointer user_data);
4094 * ianjuta_debugger_variable_destroy:
4095 * @obj: Self
4096 * @name: Variable name
4097 * @err: Error propagation and reporting.
4099 * Delete a previously created variable or child object
4100 * including its own children.
4102 * Returns: TRUE if the request succeed and the callback is
4103 * called. If FALSE, the callback will not be called.
4105 gboolean destroy (const gchar *name);
4109 * SECTION:ianjuta-debugger-register
4110 * @title: IAnjutaDebuggerRegister
4111 * @short_description: Register interface for debuggers
4112 * @see_also:
4113 * @stability: Unstable
4114 * @include: libanjuta/interfaces/ianjuta-debugger-register.h
4116 * This interface is used to examine and change values of CPU registers.
4118 interface IAnjutaDebuggerRegister
4121 struct Data
4123 guint num;
4124 gchar *name;
4125 gchar *value;
4129 * ianjuta_debugger_register_list:
4130 * @obj: Self
4131 * @callback: Callback to call with the register list
4132 * @user_data: User data that is passed back to the callback
4133 * @err: Error propagation and reporting.
4135 * List all registers of the target. This function can be called without
4136 * a program loaded, the value field of register structure is not filled.
4138 * Returns: TRUE if the request succeed and the callback is
4139 * called. If FALSE, the callback will not be called.
4141 gboolean list (IAnjutaDebuggerCallback callback, gpointer user_data);
4144 * ianjuta_debugger_register_update:
4145 * @obj: Self
4146 * @callback: Callback call with the list of all modified registers
4147 * @user_data: User data that is passed back to the callback
4148 * @err: Error propagation and reporting.
4150 * Return all modified registers since the last call. Only the num and
4151 * value field are used.
4153 * Returns: TRUE if the request succeed and the callback is
4154 * called. If FALSE, the callback will not be called.
4156 gboolean update (IAnjutaDebuggerCallback callback, gpointer user_data);
4159 * ianjuta_debugger_register_write:
4160 * @obj: Self
4161 * @value: Modified register with a new value
4162 * @err: Error propagation and reporting.
4164 * Change the value of one register. Only the num and value field are used.
4166 * Returns: TRUE if the request succeed.
4168 gboolean write (Data *value);
4172 * SECTION:ianjuta-debugger-memory
4173 * @title: IAnjutaDebuggerMemory
4174 * @short_description: Memory interface for debuggers
4175 * @see_also:
4176 * @stability: Unstable
4177 * @include: libanjuta/interfaces/ianjuta-debugger-memory.h
4179 * This interface is used to examine the target memory.
4181 interface IAnjutaDebuggerMemory
4183 struct Block
4185 gulong address;
4186 guint length;
4187 gchar *data;
4191 * ianjuta_debugger_memory_inspect:
4192 * @obj: Self
4193 * @address: Start address of the memory block
4194 * @length: Length of memory block
4195 * @callback: Call back with a IAnjutaDebuggerMemoryBlock as argument
4196 * @user_data: User data that is passed back to the callback
4197 * @err: Error propagation and reporting.
4199 * Read a block of the target memory.
4201 * Returns: TRUE if the request succeed and the callback is
4202 * called. If FALSE, the callback will not be called.
4204 gboolean inspect (gulong address, guint length, IAnjutaDebuggerCallback callback, gpointer user_data);
4208 * SECTION:ianjuta-debugger-instruction
4209 * @title: IAnjutaDebuggerInstruction
4210 * @short_description: Debugger interface for machine instruction
4211 * @see_also:
4212 * @stability: Unstable
4213 * @include: libanjuta/interfaces/ianjuta-debugger-instruction.h
4215 * This interface is used to debuger as machine instruction level.
4217 interface IAnjutaDebuggerInstruction
4220 struct ALine
4222 gulong address;
4223 const gchar *label;
4224 const gchar *text;
4227 struct Disassembly
4229 guint size;
4230 ALine data[];
4234 * ianjuta_debugger_instruction_disassemble:
4235 * @obj: Self
4236 * @address: Start address of the memory block
4237 * @length: Length of memory block
4238 * @callback: Call back with a IAnjutaDebuggerInstructionDisassembly as argument
4239 * @user_data: User data that is passed back to the callback
4240 * @err: Error propagation and reporting.
4242 * Disassemble a part of the memory
4244 * Returns: TRUE if the request succeed and the callback is
4245 * called. If FALSE, the callback will not be called.
4247 gboolean disassemble (gulong address, guint length, IAnjutaDebuggerCallback callback, gpointer user_data);
4250 * ianjuta_debugger_instruction_step_in:
4251 * @obj: Self
4252 * @err: Error propagation and reporting.
4254 * Execute one assembler instruction in the program.
4256 * Returns: TRUE if the request succeed and the callback is called. If
4257 * FALSE, the callback will not be called.
4259 gboolean step_in ();
4262 * ianjuta_debugger_instruction_step_over:
4263 * @obj: Self
4264 * @err: Error propagation and reporting.
4266 * Execute one assembler instruction in the program, if the instruction
4267 * is a function call, continues until the function returns.
4269 * Returns: TRUE if the request succeed and the callback is called. If
4270 * FALSE, the callback will not be called.
4272 gboolean step_over ();
4275 * ianjuta_debugger_instruction_run_to_address:
4276 * @obj: Self
4277 * @address: Run to this addresss
4278 * @err: Error propagation and reporting.
4280 * Start the program until it reachs the address address
4282 * Returns: TRUE if the request succeed and the callback is called. If
4283 * FALSE, the callback will not be called.
4285 gboolean run_to_address (gulong address);
4291 * SECTION:ianjuta-debug-manager
4292 * @title: IAnjutaDebugManager
4293 * @short_description: Common graphical interface to all debugger
4294 * @see_also:
4295 * @stability: Unstable
4296 * @include: libanjuta/interfaces/ianjuta-debug-manager.h
4298 * This interface wrap the real debugger plugin and provide a
4299 * common graphical user interface.
4302 interface IAnjutaDebugManager
4304 #include "ianjuta-debugger.h"
4305 #include "ianjuta-debugger-breakpoint.h"
4306 #include <gio/gio.h>
4308 /* Signals */
4311 * IAnjutaDebugManager::debugger_started:
4312 * @obj: Self
4314 * This signal is emitted when the debugger is started.
4316 void ::debugger_started ();
4319 * IAnjutaDebugManager::debugger_stopped:
4320 * @obj: Self
4321 * @err: Error propagation and reporting.
4323 * This signal is emitted when the debugger is stopped.
4325 void ::debugger_stopped (GError *err);
4328 * IAnjutaDebugManager::program_loaded:
4329 * @obj: Self
4331 * This signal is emitted when a program is loaded most of the
4332 * time just before the first program_stopped signal.
4334 void ::program_loaded ();
4337 * IAnjutaDebugManager::program_unloaded:
4338 * @obj: Self
4340 * This signal is emitted when a program is unloaded. If the
4341 * debugger is stopped while a program is loaded, this signal
4342 * is emitted before the debugger_stopped signal.
4344 void ::program_unloaded ();
4347 * IAnjutaDebugManager::program_started:
4348 * @obj: Self
4350 * This signal is emitted when the program is started. If the
4351 * program starts and is stopped by the debugger, a program-stopped
4352 * signal will be emitted too. If the program starts is not stopped
4353 * by the debugger a program-running signal will be emitted.
4355 void ::program_started ();
4358 * IAnjutaDebugManager::program_exited:
4359 * @obj: Self
4361 * This signal is emitted when the program is unloaded. If the
4362 * debugger is stopped while a program is running or stopped, this
4363 * signal is emitted before the program_unloaded signal.
4365 void ::program_exited ();
4368 * IAnjutaDebugManager::program_stopped:
4369 * @obj: Self
4371 * This signal is emitted when the program is stopped.
4373 void ::program_stopped ();
4376 * IAnjutaDebugManager::program_running:
4377 * @obj: Self
4379 * This signal is emitted when the program is running.
4381 void ::program_running ();
4385 * IAnjutaDebugManager::sharedlib_event:
4386 * @obj: Self
4388 * This signal is emitted when a new shared library is loaded. It
4389 * is useful to try to set pending breakpoints those could be in
4390 * the newly loaded library.
4392 void ::sharedlib_event ();
4395 * IAnjutaDebugManager::program_moved:
4396 * @obj: Self
4397 * @pid: process id, 0 when unknown
4398 * @tid: thread id, 0 when unknown
4399 * @address: program counter address, 0 when unknown
4400 * @file: source file where is the program counter, NULL when unknown
4401 * @line: line number if file name above is not NULL
4403 * This signal is emitted when the debugger know the current program
4404 * location. Most of the time, after the program has stopped but it
4405 * could happen even if it is still running.
4407 void ::program_moved (gint pid, gint tid, gulong address, const gchar* file, guint line);
4410 * IAnjutaDebugManager::frame_changed:
4411 * @obj: Self
4412 * @frame: frame
4413 * @thread: thread
4415 * This signal is emitted when the current frame is changed. It is
4416 * equal to the top frame in the interrupted thread when the
4417 * program stops but can be changed afterward by the user.
4418 * Several commands use this current frame, by example the register
4419 * window display the register values for the current thread only.
4421 void ::frame_changed (guint frame, gint thread);
4424 * IAnjutaDebugManager::location_changed:
4425 * @obj: Self
4426 * @address: program counter address, 0 when unknown
4427 * @file: source file where is the program counter, NULL when unknown
4428 * @line: line number if file name above is not NULL
4430 * This signal is emitted when the current location is changed. It is
4431 * equal to the program location when the program stops but can be
4432 * changed afterward by the user.
4434 void ::location_changed (gulong address, GFile* file, guint line);
4437 * IAnjutaDebugManager::signal_received:
4438 * @obj: Self
4439 * @name: Signal name
4440 * @description: Signal description
4442 * This signal is emitted when the debugged program receives a
4443 * unix signal.
4445 void ::signal_received (const gchar* name, const gchar* description);
4448 * IAnjutaDebugManager::breakpoint_changed:
4449 * @obj: Self
4450 * @breakpoint: Breakpoint
4451 * @err: Error propagation and reporting.
4453 * This signal is emitted when a breakpoint is changed. It includes
4454 * new breakpoint and deleted breakpoint.
4456 void ::breakpoint_changed (IAnjutaDebuggerBreakpointItem *breakpoint);
4460 * SECTION:ianjuta-vcs
4461 * @title: IAnjutaVcs
4462 * @short_description: Version control system interface
4463 * @see_also:
4464 * @stability: Unstable
4465 * @include: libanjuta/interfaces/ianjuta-vcs.h
4468 interface IAnjutaVcs
4471 * ianjuta_vcs_add:
4472 * @filename: String with the filename
4473 * @obj: Self
4474 * @err: Error propagation and reporting
4476 * Add filename to the cvs repositry.
4478 void add(const gchar* filename);
4481 * ianjuta_cvs_remove:
4482 * @filename: String with the filename
4483 * @obj: Self
4484 * @err: Error propagation and reporting
4486 * Remove filename to the cvs repositry. Note that the file
4487 * is not removed physicly. This function will fail if the file
4488 * still exists on disc.
4490 void remove(const gchar* filename);
4493 * ianjuta_vcs_update:
4494 * @filename: String with the filename
4495 * @recurse: TRUE to recurse into subdirectories
4496 * @obj: Self
4497 * @err: Error propagation and reporting
4499 * Update filename with the cvs repositry.
4501 void update(const gchar* filename, gboolean recurse);
4504 * ianjuta_vcs_commit:
4505 * @filename: String with the filename
4506 * @log: The log message for the commit or ""
4507 * @recurse: TRUE to recurse into subdirectories
4508 * @obj: Self
4509 * @err: Error propagation and reporting
4511 * Commit changes in filename to the cvs repositry.
4513 void commit(const gchar* filename, const gchar* log, gboolean recurse);
4517 * SECTION:ianjuta-macro
4518 * @title: IAnjutaMacro
4519 * @short_description: Macro processor interface
4520 * @see_also:
4521 * @stability: Unstable
4522 * @include: libanjuta/interfaces/ianjuta-macro.h
4525 interface IAnjutaMacro
4528 * ianjuta_macro_insert:
4529 * @key: Key of the macro
4530 * @obj: Self
4531 * @err: Error propagation and reporting
4533 * Insert Macro to editor
4535 void insert(const gchar* key);
4539 * SECTION:ianjuta-symbol
4540 * @title: IAnjutaSymbol
4541 * @short_description: Source code symbol interface
4542 * @see_also: #IAnjutaSymbolManager
4543 * @stability: Unstable
4544 * @include: libanjuta/interfaces/ianjuta-symbol.h
4547 interface IAnjutaSymbol
4549 #include <gdk/gdkpixbuf.h>
4550 #include <gio/gio.h>
4552 enum Type
4554 TYPE_UNDEF = 1, // Unknown type
4555 TYPE_CLASS = 2, // Class declaration
4556 TYPE_ENUM = 4, // Enum declaration
4557 TYPE_ENUMERATOR = 8, // Enumerator value
4558 TYPE_FIELD = 16, // Field (Java only)
4559 TYPE_FUNCTION = 32, // Function definition
4560 TYPE_INTERFACE = 64, // Interface (Java only)
4561 TYPE_MEMBER = 128, // Member variable of class/struct
4562 TYPE_METHOD = 256, // Class method (Java only)
4563 TYPE_NAMESPACE = 512, // Namespace declaration
4564 TYPE_PACKAGE = 1024, // Package (Java only)
4565 TYPE_PROTOTYPE = 2048, // Function prototype
4566 TYPE_STRUCT = 4096, // Struct declaration
4567 TYPE_TYPEDEF = 8192, // Typedef
4568 TYPE_UNION = 16384, // Union
4569 TYPE_VARIABLE = 32768, // Variable
4570 TYPE_EXTERNVAR = 65536, // Extern or forward declaration
4571 TYPE_MACRO = 131072, // Macro (without arguments)
4572 TYPE_MACRO_WITH_ARG = 262144, // Parameterized macro
4573 TYPE_FILE = 524288, // File (Pseudo tag)
4574 TYPE_OTHER = 1048576, // Other (non C/C++/Java tag)
4575 TYPE_MAX = 2097151 // Maximum value, means all known values.
4578 /* Field masks -- used mainly to retrieve fields of a symbol */
4579 enum Field
4582 FIELD_SIMPLE = 1, // With this field you will have name, line of declaration,
4583 // is_file_scope and signature of the symbol
4584 FIELD_FILE_PATH = 2,
4585 FIELD_IMPLEMENTATION = 4,
4586 FIELD_ACCESS = 8,
4587 FIELD_KIND = 16,
4588 FIELD_TYPE = 32,
4589 FIELD_TYPE_NAME = 64,
4590 FIELD_LANGUAGE = 128,
4591 FIELD_FILE_IGNORE = 256,
4592 FIELD_FILE_INCLUDE = 512,
4593 FIELD_PROJECT_NAME = 1024,
4594 FIELD_WORKSPACE_NAME = 2048
4598 * ianjuta_symbol_get_name:
4599 * The name of the symbol
4601 const gchar *get_name ();
4604 * ianjuta_symbol_get_file:
4605 * The file of the symbol
4607 GFile *get_file();
4610 * ianjuta_symbol_get_line:
4611 * Line of the file in which the symbol is declared.
4613 gulong get_line ();
4616 * ianjuta_symbol_is_local:
4617 * Is the symbol a static (private) one?
4619 gboolean is_local ();
4622 * ianjuta_symbol_get_args:
4623 * If symbol is a function then this will return a string with the args.
4625 const gchar *get_args ();
4628 * ianjuta_symbol_get_sym_type:
4629 * You can obtain an IAnjutaSymbolType of the symbol.
4630 * To have a string representation see ianjuta_symbol_get_extra_info_string ().
4631 * You *need* a symbol with FIELD_TYPE enabled attribute. e.g. use ianjuta_symbol_manager_search
4632 * passing FIELD_TYPE as info_fields.
4634 Type get_sym_type ();
4636 /**
4637 * ianjuta_symbol_get_extra_info_string:
4638 * @sym_info: Just one FIELD_* per time. It is NOT possible to pass something like
4639 * FIELD_1 | FIELD_2 | ...
4641 const gchar *get_extra_info_string (Field sym_info);
4643 /**
4644 * Pixbuf icon representing the symbol.
4645 * You *need* a symbol with FIELD_ACCESS | FIELD_KIND enabled attribute. e.g. use
4646 * ianjuta_symbol_manager_search passing FIELD_ACCESS | FIELD_KIND as info_fields.
4648 const GdkPixbuf *get_icon ();
4653 * SECTION:ianjuta-symbol-manager
4654 * @title: IAnjutaSymbolManager
4655 * @short_description: Source code symbols manager inteface
4656 * @see_also: #IAnjutaSymbol
4657 * @stability: Unstable
4658 * @include: libanjuta/interfaces/ianjuta-symbol-manager.h
4661 interface IAnjutaSymbolManager
4663 #include "ianjuta-iterable.h"
4664 #include "ianjuta-symbol.h"
4667 * ianjuta_symbol_manager_search:
4668 * @obj: Self
4669 * @match_types: If passed IANJUTA_TYPE_MAX the function will not perfom any filter.
4670 * @include_types: Should the result contain or exclude the match_types? TRUE to include them,
4671 * FALSE to exclude. For example use may want all symbols but classes.
4672 * @match_name: fixme
4673 * @partial_name_match: if TRUE it will search for %match_name%, it FALSE for the exact
4674 * string match_name.
4675 * @global_symbols_search: if TRUE it will search only for public/extern functions.
4676 * If FALSE it will search also for static/private functions.
4677 * @global_tags_search: If TRUE it'll search only for system tags, using pkg-config to retrieve installed packages
4678 * infos. If FALSE only current project's symbols will be searched.
4679 * @results_limit: Limit results to an upper bound. -1 If you don't want to use this par.
4680 * @results_offset: Skip results_offset results. -1 If you don't want to use this par.
4681 * @results_limit Limit results to an upper bound. -1 If you don't want to use this par.
4682 * @results_offset Skip results_offset results. -1 If you don't want to use this par.
4683 * @err: Error propagation and reporting.
4685 * Database query. Returned iterable must be unrefed after use.
4687 * Returns: fixme
4689 IAnjutaIterable* search (IAnjutaSymbolType match_types, gboolean include_types, IAnjutaSymbolField info_fields, const gchar *match_name, gboolean partial_name_match, gboolean global_symbols_search, gboolean global_tags_search, gint results_limit, gint results_offset);
4692 * ianjuta_symbol_manager_get_members:
4693 * @obj: Self
4694 * @symbol_name: fixme
4695 * @global_search: fixme
4696 * @err: Error propagation and reporting.
4698 * Database query. Returned iterable must be unrefed after use.
4700 * Returns: fixme
4702 IAnjutaIterable* get_members (IAnjutaSymbol *symbol, IAnjutaSymbolField info_fields, gboolean global_search);
4705 * ianjuta_symbol_manager_get_parents:
4706 * @obj: Self
4707 * @symbol_name: fixme
4708 * @err: Error propagation and reporting.
4710 * fixme
4712 * Returns: fixme
4714 IAnjutaIterable* get_class_parents (IAnjutaSymbol *symbol, IAnjutaSymbolField info_fields);
4718 * SECTION:ianjuta-print
4719 * @title: IAnjutaPrint
4720 * @short_description: Print interface
4721 * @see_also:
4722 * @stability: Unstable
4723 * @include: libanjuta/interfaces/ianjuta-print.h
4726 interface IAnjutaPrint
4729 * ianjuta_print_print:
4730 * @obj: Self
4731 * @err: Error propagation and reporting.
4733 * Print the plugin (the file in case of the editor). In most cases this will show
4734 * a print dialog
4736 void print();
4739 * ianjuta_print_print:
4740 * @obj: Self
4741 * @err: Error propagation and reporting.
4743 * Show print preview dialog
4746 void print_preview();
4750 * SECTION:ianjuta-language-support
4751 * @title: IAnjutaLanguageSupport
4752 * @short_description: Programming language specific supports from plugins
4753 * @see_also:
4754 * @stability: Unstable
4755 * @include: libanjuta/interfaces/ianjuta-language-support.h
4758 interface IAnjutaLanguageSupport
4760 List<const gchar*> get_supported_languages ();
4761 gboolean supports(const gchar *language);
4765 * SECTION:ianjuta-preferences
4766 * @title: IAnjutaPreferences
4767 * @short_description: Preferences interface
4768 * @see_also:
4769 * @stability: Unstable
4770 * @include: libanjuta/interfaces/ianjuta-preferences
4773 interface IAnjutaPreferences
4775 #include <libanjuta/anjuta-preferences.h>
4777 * ianjuta_preferences_merge:
4778 * @obj: Self
4779 * @prefs: AnjutaPreferences to install to
4780 * @err: Error propagation and reporting.
4782 * When called, the plugin should install it's preferences
4784 void merge(AnjutaPreferences* prefs);
4787 * ianjuta_preferences_unmerge:
4788 * @obj: Self
4789 * @prefs: AnjutaPreferences to install to
4790 * @err: Error propagation and reporting.
4792 * When called, the plugin should uninstall it's preferences
4794 void unmerge(AnjutaPreferences* prefs);
4798 * SECTION:ianjuta-plugin-factory
4799 * @title: IAnjutaPluginFactory
4800 * @short_description: Create Anjuta plugin objects
4801 * @see_also:
4802 * @stability: Unstable
4803 * @include: libanjuta/interfaces/ianjuta-plugin-factory.h
4805 * This interface is used to create all Anjuta plugin objects. It is
4806 * already implemented inside Anjuta by an object able to load plugins written
4807 * in C. In order to load plugins in other languages (or in a different way),
4808 * a loader plugin implementing this interface must be written first, probably
4809 * in C.
4812 interface IAnjutaPluginFactory
4814 #include <libanjuta/anjuta-plugin.h>
4815 #include <libanjuta/anjuta-shell.h>
4816 #include <libanjuta/anjuta-plugin-handle.h>
4819 * IAnjutaPluginFactoryError:
4820 * @IANJUTA_PLUGIN_FACTORY_MISSING_LOCATION: Module file location is
4821 * missing in .plugin file
4822 * @IANJUTA_PLUGIN_FACTORY_MISSING_TYPE: Plugin type (just after
4823 * double colon following location) is missing in .plugin file
4824 * @IANJUTA_PLUGIN_FACTORY_MISSING_MODULE: Module file name not found,
4825 * plugin module is probably not installed
4826 * @IANJUTA_PLUGIN_FACTORY_UNLOADABLE_MODULE: Module file cannot be
4827 * loaded, not a shared library perhaps
4828 * @IANJUTA_PLUGIN_FACTORY_MISSING_FUNCTION: Module does not contain
4829 * registration function, library is not an anjuta plugin or
4830 * is not for the right version
4831 * @IANJUTA_PLUGIN_FACTORY_INVALID_TYPE: Module has not registered
4832 * plugin type, library is not an anjuta plugin or not for
4833 * the right version
4834 * @IANJUTA_PLUGIN_FACTORY_UNKNOWN_ERROR: Another error
4836 * These enumeration is used to specify errors.
4838 enum Error
4840 OK = 0,
4841 MISSING_LOCATION,
4842 MISSING_TYPE,
4843 MISSING_MODULE,
4844 INVALID_MODULE,
4845 MISSING_FUNCTION,
4846 INVALID_TYPE,
4847 UNKNOWN_ERROR,
4851 * ianjuta_plugin_factory_new_plugin:
4852 * @obj: Self
4853 * @handle: Plugin information
4854 * @shell: Anjuta shell
4855 * @err: Error propagation and reporting.
4857 * Create a new AnjutaPlugin object from the plugin information handle,
4858 * give it the AnjutaShell object as argument.
4860 * Return value: a new plugin object
4862 AnjutaPlugin* new_plugin (AnjutaPluginHandle* handle, AnjutaShell *shell);
4866 * SECTION:ianjuta-language
4867 * @title: IAnjutaLanguage
4868 * @short_description: Interface to manager multiple programming languages
4869 * @see_also:
4870 * @stability: Unstable
4871 * @include: libanjuta/interfaces/ianjuta-language.h
4875 interface IAnjutaLanguage
4877 #include <libanjuta/interfaces/ianjuta-editor-language.h>
4878 typedef gint Id;
4881 * ianjuta_language_from_mime_type:
4882 * @obj: Self
4883 * @mime_type: A mime type to get the language for
4885 * Returns: A language Id or 0 in case no language was found
4887 Id get_from_mime_type (const gchar* mime_type);
4890 * ianjuta_language_from_string:
4891 * @obj: Self
4892 * @string: A string representation of the language. Note that multiple
4893 * strings may describe the language like C++ and Cpp
4895 * Returns: A language Id or 0 in case no language was found
4897 Id get_from_string (const gchar* string);
4900 * ianjuta_language_get_name:
4901 * @obj: Self
4902 * @id: A valid language id
4904 * Returns: The main name of the language. When you call ianjuta_language_from_string()
4905 * before that method the string you get here might be different to the one you passed
4906 * because the language might have multiple string representations
4908 const gchar* get_name(Id id);
4911 * ianjuta_language_get_strings
4912 * @obj: Self
4913 * @id: A valid language id
4915 * Returns: A list of strings that represent this language that language
4917 List<const gchar*> get_strings(Id id);
4920 * ianjuta_language_get_from_editor:
4921 * @obj: Self
4922 * @editor: An object implementing IAnjutaEditorLanguage
4923 * @err: Error propagation
4925 * Conviniece method to get the id directly from the editor
4927 * Returns: A valid language id or 0
4930 IAnjutaLanguageId get_from_editor (IAnjutaEditorLanguage* editor);
4933 * ianjuta_language_get_name_from_editor:
4934 * @obj: Self
4935 * @editor: An object implementing IAnjutaEditorLanguage
4936 * @err: Error propagation
4938 * Conviniece method to get the name directly from the editor
4940 * Returns: A language name or NULL
4943 const gchar* get_name_from_editor (IAnjutaEditorLanguage* editor);