Updated Spanish translation
[anjuta-git-plugin.git] / libanjuta / interfaces / libanjuta.idl
blobebec31ffe5298d5b6c54462f7df2060b615422ff
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 /**
38 * ianjuta_file_open:
39 * @obj: Self
40 * @uri: URI to open.
41 * @err: Error propagation and reporting
43 * The implementor opens the given URI.
45 void open (const gchar *uri);
47 /**
48 * ianjuta_file_get_uri:
49 * @obj: Self
50 * @err: Error propagation and reporting
52 * Returns the URI that was opened with ianjuta_file_open().
54 * Return value: The last URI opened.
56 gchar* get_uri ();
58 /**
59 * SECTION:ianjuta-file-savable
60 * @title: IAnjutaFileSavable
61 * @short_description: Implemented by plugins that can save files.
62 * @see_also: #IAnjutaFile
63 * @stability: Unstable
64 * @include: libanjuta/interfaces/ianjuta-file-savable.h
66 * Plugins implementing #IAnjutaFile inteface that can also save files
67 * should also implement this interface.
69 interface IAnjutaFileSavable
71 /**
72 * IAnjutaFileSavable::save_point:
73 * @obj: Self
74 * @entered: TRUE if save point is entered, FALSE otherwise.
76 * This signal is emitted when the editor enters or leave the save
77 * point. Save point is the point where the contents were saved to
78 * non-volatile memory (e.g. disk). For example, performing undo/redo
79 * will enter or leave the save point in an editor.
81 void ::save_point (gboolean entered);
83 /**
84 * IAnjutaFileSavable::saved:
85 * @obj: Self
86 * @uri: URI where the content is saved.
88 * This signal is emitted when the content is saved.
90 void ::saved (const gchar *uri);
92 /**
93 * ianjuta_file_savable_save:
94 * @obj: Self
95 * @err: Error propagation and reporting
97 * Saves the content to the original URI from which it was loaded.
99 void save ();
102 * ianjuta_file_savable_save_as:
103 * @obj: Self
104 * @uri: URI to save the content.
105 * @err: Error propagation and reporting
107 * Saves the content to a different URI.
109 void save_as (const gchar *uri);
112 * ianjuta_file_savable_set_dirty:
113 * @obj: Self
114 * @dirty:
115 * @err: Error propagation and reporting
117 * if @dirty is TRUE, sets dirty for the content. Save point will be
118 * left and the content will be considered not saved. Otherwise,
119 * content will considered saved and save-point will be entered.
121 void set_dirty (gboolean dirty);
124 * ianjuta_file_savable_is_dirty:
125 * @obj: Self
126 * @err: Error propagation and reporting
128 * Returns the dirty status of the content.
130 * Return value: TRUE if dirty, FALSE otherwise.
132 gboolean is_dirty ();
137 * SECTION:ianjuta-stream
138 * @title: IAnjutaStream
139 * @short_description: Implemented by plugins that can open file streams
140 * @see_also:
141 * @stability: Unstable
142 * @include: libanjuta/interfaces/ianjuta-stream.h
145 interface IAnjutaStream
147 #include <stdio.h>
150 * ianjuta_stream_open:
151 * @obj: Self
152 * @stream: Stream to open from.
153 * @err: Error propagation and reporting
155 * The implementor opens the given stream.
157 void open (FILE* stream);
160 * SECTION:ianjuta-stream-savable
161 * @title: IAnjutaStreamSavable
162 * @short_description: Implemented by plugins that can save file streams
163 * @see_also:
164 * @stability: Unstable
165 * @include: libanjuta/interfaces/ianjuta-stream-savable.h
168 interface IAnjutaStreamSavable
171 * ianjuta_stream_save:
172 * @obj: Self
173 * @stream: Stream to save to.
174 * @err: Error propagation and reporting
176 * The implementor saves the content to the given stream.
178 void save (FILE* stream);
183 * SECTION:ianjuta-markable
184 * @title: IAnjutaMarkable
185 * @short_description: Implemented by editors (or views) with markers support
186 * @see_also:
187 * @stability: Unstable
188 * @include: libanjuta/interfaces/ianjuta-markable.h
191 interface IAnjutaMarkable
193 enum Error
195 INVALID_LOCATION
198 enum Marker
200 LINEMARKER,
201 BOOKMARK,
202 BREAKPOINT_DISABLED,
203 BREAKPOINT_ENABLED,
204 PROGRAM_COUNTER
207 void ::marker_clicked (gboolean double_click, gint location);
210 * ianjuta_markable_mark:
211 * @obj: Self
212 * @location: Location at which the marker to set.
213 * @marker: Type of marker to be used
214 * @err: Error propagation and reporting
216 * Marks the specified location with the given marker type. Location is
217 * implementation depenedent. For example, for an editor location means
218 * lines where markers are set.
220 * Return value: Handle of the location marked. Can be used later to obtain
221 * new location, if it has been moved due to addetions/deletions in the
222 * implementor object.
224 gint mark (gint location, Marker marker);
227 * ianjuta_markable_location_from_handle:
228 * @obj: Self
229 * @handle: Handle of location.
230 * @err: Error propagation and reporting
232 * Location where a marker is set could have moved by some operation in
233 * the implementation. To retrieve the correct location where the marker
234 * has moved, pass the handle retured by ianjuta_markable_mark() to this
235 * method.
237 * Return value: Current location where the marker was set.
239 gint location_from_handle (gint handle);
242 * ianjuta_markable_unmark:
243 * @obj: Self
244 * @location: Location where the marker is set.
245 * @marker: The marker to unset.
246 * @err: Error propagation and reporting
248 * Clears the @marker at given @location.
250 void unmark (gint location, Marker marker);
253 * ianjuta_markable_is_marker_set:
254 * @obj: Self
255 * @location: Location to check.
256 * @marker: Marker to check.
257 * @err: Error propagation and reporting
259 * Check if the @marker is set at the given @location.
261 * Returns: TRUE if the marker is set at the location, other false.
263 gboolean is_marker_set (gint location, Marker marker);
266 * ianjuta_markable_delete_all_markers:
267 * @obj: Self
268 * @marker: Marker to delete.
269 * @err: Error propagation and reporting
271 * Delete the @marker from all locations.
273 void delete_all_markers (Marker marker);
277 * SECTION:ianjuta-indicable
278 * @title: IAnjutaIndicable
279 * @short_description: Implemented by indicate that indicate a range
280 * @see_also:
281 * @stability: Unstable
282 * @include: libanjuta/interfaces/ianjuta-indicable.h
285 interface IAnjutaIndicable
287 #include <libanjuta/interfaces/ianjuta-iterable.h>
288 enum Indicator
290 NONE,
291 IMPORTANT,
292 WARNING,
293 CRITICAL
296 void set (IAnjutaIterable *begin_location, IAnjutaIterable *end_location, Indicator indicator);
297 void clear ();
301 * SECTION:ianjuta-iterable
302 * @title: IAnjutaIterable
303 * @short_description: Implemented by objects that can iterate
304 * @see_also:
305 * @stability: Unstable
306 * @include: libanjuta/interfaces/ianjuta-iterable.h
309 interface IAnjutaIterable
312 * ianjuta_iterable_first:
313 * @obj: Self
314 * @err: Error propagation and reporting
316 * Set iter to first element position. Returns FALSE if
317 * there is no element in the iterable (hence does not have first).
318 * The iter points to the first valid item.
320 * Returns: TRUE if sucessful, other FALSE.
322 gboolean first ();
325 * ianjuta_iterable_next:
326 * @obj: Self
327 * @err: Error propagation and reporting
329 * Set the iter position to next element position. Iter can go until one
330 * item past the last item and lands in end-iter. end-iter does not point
331 * to any valid item and signifies end of the list. Returns FALSE if iter
332 * was already at end-iter (iter can not go past it) and remains pointed
333 * to the end-iter.
335 * Returns: TRUE if sucessful, otherwise FALSE if already at end-iter.
337 gboolean next ();
340 * ianjuta_iterable_previous:
341 * @obj: Self
342 * @err: Error propagation and reporting
344 * Set the iter position to previous element position. Returns FALSE if
345 * there is no previous element and the iter remains pointed to the first
346 * element.
348 * Returns: TRUE if sucessful, other FALSE.
350 gboolean previous ();
353 * ianjuta_iterable_last:
354 * @obj: Self
355 * @err: Error propagation and reporting
357 * Set iter position to end-iter (one past last element) position.
358 * Returns FALSE if there is no element in the iterable (already
359 * at end-iter).
361 * Returns: TRUE if sucessful, other FALSE.
363 gboolean last ();
366 * ianjuta_iterable_foreach:
367 * @obj: Self
368 * @callback: Callback to call for each element.
369 * @user_data: user data that is passed back to the callback.
370 * @err: Error propagation and reporting
372 * Call callback for each element in the list. Call back is passed the
373 * same iter, but with different position set (from first to last). This
374 * method does not affect current position. i.e. current position is
375 * restored at the end of this method.
377 void foreach (GFunc callback, gpointer user_data);
380 * ianjuta_iterable_set_position:
381 * @obj: Self
382 * @position: New position for the iter.
383 * @err: Error propagation and reporting
385 * Sets the current position of the iter to @position. The given @position
386 * must be from 0 to length - 1 (#ianjuta_iter_get_length()) to point to
387 * a valid element. Passing @position < 0 will set it to end-iter. It
388 * returns TRUE for the above cases. FLASE will be returned, if
389 * out-of-range @position is passed (@position > length - 1) and iter is
390 * set to end-iter.
392 * Returns: TRUE if successfully set (i.e. @position is within the range or
393 * end-iter). otherwise returns FALSE (i.e. @position is out of data range).
395 gboolean set_position (gint position);
398 * ianjuta_iterable_get_position:
399 * @obj: Self
400 * @err: Error propagation and reporting
402 * Index of the current iter in the iterable. It will be
403 * from 0 to length - 1 (ianjuta_iter_get_length()) if iter is pointed
404 * at valid element. It will return -1 if iter is pointed at end-iter.
406 * Returns: integer index, or -1 for end-iter.
408 gint get_position ();
411 * ianjuta_iterable_get_length:
412 * @obj: Self
413 * @err: Error propagation and reporting
415 * Length of the iterable (number of elements indexable by it).
417 * Returns: total length of the list.
419 gint get_length ();
422 * ianjuta_iterable_clone:
423 * @obj: Self
424 * @err: Error propagation and reporting
426 * Clones the iterable. The returned iterable object must be unrefed
427 * when done.
429 * Returns: A new instance of this iterable pointing at the same location.
431 IAnjutaIterable *clone ();
434 * ianjuta_iterable_assign:
435 * @obj: Self
436 * @src_iter: Source iter from which to copy the assignment.
437 * @err: Error propagation and reporting
439 * Assigns the iter position from @src_iter.
442 void assign (IAnjutaIterable *src_iter);
445 * ianjuta_iterable_compare:
446 * @obj: Self
447 * @iter2: Second iter to compare.
448 * @err: Error propagation and reporting
450 * Compares the position of @iter2 with this @obj. Returns -1
451 * value if this @obj is smaller than @iter2. Returns +1 value
452 * if this @obj is larger than @iter2. And returns 0 if both are equal.
453 * If you want difference of the iter positions, use
454 * #ianjuta_iterable_diff(). This method is meant for fast comparision.
456 * Returns: 0 if equal, -1 if @obj is smaller than @iter2
457 * or +1 if @obj is larger than @iter2.
460 gint compare (IAnjutaIterable *iter2);
463 * ianjuta_iterable_diff:
464 * @obj: Self
465 * @iter2: Second iter to differenciate.
466 * @err: Error propagation and reporting
468 * Compares the position of @iter2 with this @obj and returns difference
469 * in position of the two (@obj - @iter2).
471 * Returns: The position difference of @obj - @iter2
474 gint diff (IAnjutaIterable *iter2);
477 * SECTION:ianjuta-iterable-tree
478 * @title: IAnjutaIterableTree
479 * @short_description: Implemented by tree objects that can iterate
480 * @see_also:
481 * @stability: Unstable
482 * @include: libanjuta/interfaces/ianjuta-iterable-tree.h
485 interface IAnjutaIterableTree
488 /**
489 * ianjuta_iterable_tree_parent:
490 * @obj: Self
491 * @err: Error propagation and reporting
493 * Set iter position to parent of curernt iter. If there is no parent,
494 * returns FALSE (current iter position is not changed)
496 * Returns: TRUE if sucessful, otherwise FALSE.
498 gboolean parent ();
501 * ianjuta_iterable_tree_children:
502 * @obj: Self
503 * @err: Error propagation and reporting
505 * Iter position set to first child of current iter. If there is no
506 * children, return NULL (iter position is not changed).
508 * Returns: TRUE if sucessful, otherwise FALSE.
510 gboolean children ();
513 * ianjuta_iterable_tree_has_children:
514 * @obj: Self
515 * @err: Error propagation and reporting
517 * Returns true if current iter has children
519 * Returns: TRUE if there are children, otherwise FALSE.
521 gboolean has_children ();
524 * ianjuta_iterable_tree_foreach_post:
525 * @obj: Self
526 * @callback: Callback to call for each element.
527 * @user_data: User data to pass back to callback.
528 * @err: Error propagation and reporting
530 * Call callback for each element in post order.
532 void foreach_post (GFunc callback, gpointer user_data);
535 * ianjuta_iterable_tree_foreach_pre:
536 * @obj: Self
537 * @callback: Callback to call for each element.
538 * @user_data: User data to pass back to callback.
539 * @err: Error propagation and reporting
541 * Call callback for each element in pre order.
543 void foreach_pre (GFunc callback, gpointer user_data);
548 * SECTION:ianjuta-buildable
549 * @title: IAnjutaBuildable
550 * @short_description: Implemented by plugins that can build
551 * @see_also:
552 * @stability: Unstable
553 * @include: libanjuta/interfaces/ianjuta-buildable.h
556 interface IAnjutaBuildable
558 enum Command
560 COMMAND_COMPILE,
561 COMMAND_BUILD,
562 COMMAND_BUILD_TARBALL,
563 COMMAND_INSTALL,
564 COMMAND_CONFIGURE,
565 COMMAND_GENERATE,
566 COMMAND_CLEAN,
567 COMMAND_EXECUTE,
568 N_COMMANDS
571 /**
572 * ianjuta_buildable_set_command:
573 * @obj: Self
574 * @command_id: Command to override.
575 * @command: Build command to override.
576 * @err: Error propagation and reporting.
578 * Overrides the default command for the given command.
580 void set_command (Command command_id, const gchar *command);
582 /**
583 * ianjuta_buildable_get_command:
584 * @obj: Self
585 * @command_id: Command to get override.
586 * @err: Error propagation and reporting.
588 * Retrieves the currently set command override.
590 * Returns: The overridden command. NULL if no override set.
592 const gchar* get_command (Command command_id);
594 /**
595 * ianjuta_buildable_reset_commands:
596 * @obj: Self
597 * @err: Error propagation and reporting.
599 * Resets the command overrides to defaults.
601 void reset_commands ();
603 /**
604 * ianjuta_buildable_build:
605 * @obj: Self
606 * @uri: fixme
607 * @err: Error propagation and reporting.
609 * fixme
611 void build (const gchar *uri);
614 * ianjuta_buildable_clean:
615 * @obj: Self
616 * @uri: fixme
617 * @err: Error propagation and reporting.
619 * fixme
621 void clean (const gchar *uri);
624 * ianjuta_buildable_install:
625 * @obj: Self
626 * @uri: fixme
627 * @err: Error propagation and reporting.
629 * fixme
631 void install (const gchar *uri);
634 * ianjuta_buildable_configure:
635 * @obj: Self
636 * @uri: fixme
637 * @err: Error propagation and reporting.
639 * fixme
641 void configure (const gchar *uri);
644 * ianjuta_buildable_generate:
645 * @obj: Self
646 * @uri: fixme
647 * @err: Error propagation and reporting.
649 * fixme
651 void generate (const gchar *uri);
654 * ianjuta_buildable_execute:
655 * @obj: Self
656 * @uri: fixme
657 * @err: Error propagation and reporting.
659 * fixme
661 void execute (const gchar *uri);
665 * SECTION:ianjuta-help
666 * @title: IAnjutaHelp
667 * @short_description: Implemented by plugins that can provide help support
668 * @see_also:
669 * @stability: Unstable
670 * @include: libanjuta/interfaces/ianjuta-help.h
673 interface IAnjutaHelp
677 * ianjuta_help_search:
678 * @obj: Self
679 * @query: fixme
680 * @err: Error propagation and reporting
682 * fixme
684 void search (const gchar *query);
688 * SECTION:ianjuta-loader
689 * @title: IAnjutaLoader
690 * @short_description: Interface to load file or stream
691 * @see_also:
692 * @stability: Unstable
693 * @include: libanjuta/interfaces/ianjuta-loader.h
695 * Loaders can deterime correct plugin to open a file or stream. They
696 * themselves can not load it, but will correctly redirect the request to
697 * an implementor of IAnjutaFile, IAnjutaFileSavable, IAnjutaStream or
698 * IAnjutaStreamSavable, depending on the mime-type, meta-type or any other
699 * requirements.
701 interface IAnjutaLoader
703 #include <libanjuta/anjuta-plugin.h>
705 * ianjuta_loader_find_plugins:
706 * @obj: Self
707 * @err: Error propagation and reporting.
709 * Returns all plugins supporting loader interface.
711 List<AnjutaPlugin*> find_plugins ();
714 * SECTION:ianjuta-file-loader
715 * @title: IAnjutaFileLoader
716 * @short_description: Loader to load files
717 * @see_also:
718 * @stability: Unstable
719 * @include: libanjuta/interfaces/ianjuta-file-loader.h
721 * Loaders can deterime correct plugin to open a file.
723 interface IAnjutaFileLoader
726 * ianjuta_file_loader_load:
727 * @obj: Self
728 * @uri: URI to load
729 * @readonly: Open in readonly mode.
730 * @err: Error propagation and reporting
732 * Determines a plugin which can open the given file, activates it
733 * opening the file and returns the interface of the plugin activated.
735 * Return value: Plugin interface used to load the file.
737 GObject* load (const gchar *uri, gboolean readonly);
740 * ianjuta_loader_peek_interface:
741 * @obj: Self
742 * @uri: Meta file to peek
743 * @err: Error propagation and reporting
745 * Peeks the file and determines the interface which can load
746 * this file.
748 * Return value: Plugin interface name that can load the file.
750 gchar* peek_interface (const gchar *uri);
754 * SECTION:ianjuta-stream-loader
755 * @title: IAnjutaStreamLoader
756 * @short_description: Loader to load streams
757 * @see_also:
758 * @stability: Unstable
759 * @include: libanjuta/interfaces/ianjuta-stream-loader.h
761 * StreamLoaders can deterime correct plugin to open a stream.
763 interface IAnjutaStreamLoader
765 #include <stdio.h>
768 * ianjuta_stream_loader_load:
769 * @obj: Self
770 * @stream: Stream to load
771 * @readonly: Open in readonly mode.
772 * @err: Error propagation and reporting
774 * Determines a plugin which can open the given stream, activates it
775 * opening the stream and returns the interface of the plugin activated.
777 * Return value: Plugin interface used to load the stream.
779 GObject* load (FILE *stream, gboolean readonly);
782 * ianjuta_stream_loader_peek_interface:
783 * @obj: Self
784 * @stream: Stream to load
785 * @err: Error propagation and reporting
787 * Peeks the stream and determines the interface which can load
788 * this stream.
790 * Return value: Plugin interface name that can load the stream.
792 gchar* peek_interface (FILE *stream);
797 * SECTION:ianjuta-document
798 * @title: IAnjutaDocument
799 * @short_description: Interface for all kind of editable resources that
800 * will be managed by IAnjutaDocumentManager
801 * @see_also:
802 * @stability: Unstable
803 * @include: libanjuta/interfaces/ianjuta-document.h
806 interface IAnjutaDocument
809 * IAnjutaDocument::update_ui:
810 * @obj: Self
812 * This signal is emitted when the document assumes the UI must be updated
813 * because some internal state of the document has changed. For example, if
814 * current line position is changed, it needs to be reflected to the UI.
816 void ::update_ui ();
819 * ianjuta_document_get_filename:
820 * @obj: Self
821 * @err: Error propagation and reporting
823 * Allows obtaining of the filename the editor was loaded from.
825 * Return value: The name of the file. Not to be freed by caller.
827 const gchar* get_filename ();
830 * ianjuta_document_can_undo:
831 * @obj: Self
832 * @err: Error propagation and reporting
834 * Can the editor undo the last operation?
836 * Returns true if editor can undo, else FALSE
838 gboolean can_undo();
841 * ianjuta_document_can_redo:
842 * @obj: Self
843 * @err: Error propagation and reporting
845 * Can the editor redo the last operation?
847 * Returns true if editor can redo, else FALSE
849 gboolean can_redo ();
852 * ianjuta_document_undo:
853 * @obj: Self
854 * @err: Error propagation and reporting
856 * Undo last operation
858 void undo ();
861 * ianjuta_document_redo:
862 * @obj: Self
863 * @err: Error propagation and reporting
865 * Redo last undo operation
867 void redo ();
870 * ianjuta_document_begin_undo_action:
871 * @obj: Self
872 * @err: Error propagation and reporting
874 * Begins the mark of undoable action. Calls to this are stacked and
875 * each must be ended with ianjuta_document_end_action().
877 void begin_undo_action ();
880 * ianjuta_document_end_undo_action:
881 * @obj: Self
882 * @err: Error propagation and reporting
884 * Ends the mark of undoable action.
886 void end_undo_action ();
889 * ianjuta_document_grab_focus:
890 * @obj: Self
891 * @err: Error propagation and reporting
893 * Grabs the focus.
895 void grab_focus ();
898 * ianjuta_document_cut:
899 * @obj: Self
900 * @err: Error propagation and reporting
902 * Cut selection to clipboard.
904 void cut ();
907 * ianjuta_document_copy:
908 * @obj: Self
909 * @err: Error propagation and reporting
911 * Copy selection to clipboard.
913 void copy ();
916 * ianjuta_document_paste:
917 * @obj: Self
918 * @err: Error propagation and reporting
920 * Paste clipboard at current position.
922 void paste ();
925 * ianjuta_document_clear:
926 * @obj: Self
927 * @err: Error propagation and reporting
929 * Clear selection
931 void clear ();
935 * SECTION:ianjuta-editor
936 * @title: IAnjutaEditor
937 * @short_description: Text editor interface
938 * @see_also:
939 * @stability: Unstable
940 * @include: libanjuta/interfaces/ianjuta-editor.h
943 interface IAnjutaEditor
945 #include <gtk/gtkwidget.h>
946 #include <libanjuta/interfaces/ianjuta-iterable.h>
948 enum Error
950 DOESNT_EXIST
953 enum Attribute
955 TEXT,
956 KEYWORD,
957 COMMENT,
958 STRING
962 * IAnjutaEditor::char_added:
963 * @position: The iter position where @ch is added.
964 * @ch: The character that has been added.
965 * @obj: Self
967 * This signal is emitted when any character is added inside the editor.
968 * The newly added character is @ch which has been inserted at @position.
970 void ::char_added (GObject *position, gchar ch);
973 * IAnjutaEditor::changed:
974 * @position: The iter position where change happend.
975 * @added: TRUE if added, FALSE if deleted.
976 * @length: Length of the text changed.
977 * @lines: Number of lines added or removed.
978 * @text: The text added or removed.
979 * @obj: Self
981 * This signal is emitted when any text change happens in editor.
982 * The changes begin at @position. @text is not garanteed to be NULL
983 * terminated. Use @length to read the text. @lines represent the
984 * number of line breaks in the added or removed text.
986 void ::changed (GObject *position, gboolean added, gint length, gint lines, const gchar *text);
989 * ianjuta_editor_get_tabsize:
990 * @obj: Self
991 * @err: Error propagation and reporting
993 * Returns the tabsize (in spaces) currently used by the editor.
995 * Returns: tabsize in number of spaces
997 gint get_tabsize ();
1000 * ianjuta_editor_set_tabsize:
1001 * @obj: Self
1002 * @tabsize: Tabsize in spaces
1003 * @err: Error propagation and reporting
1005 * Sets the tabsize of the editor.
1007 void set_tabsize (gint tabsize);
1010 * ianjuta_editor_get_use_spaces:
1011 * @obj: Self
1012 * @err: Error propagation and reporting
1014 * Returns if the editor uses spaces for filling up tab characters.
1016 * Returns: TRUE if yes, FALSE if no.
1018 gboolean get_use_spaces ();
1021 * ianjuta_editor_set_use_space:
1022 * @obj: Self
1023 * @use_spaces: TRUE to use spaces, FALSE to use tab char directly.
1024 * @err: Error propagation and reporting
1026 * Sets if the editor should use spaces for filling up tab characters.
1028 void set_use_spaces (gboolean use_spaces);
1031 * ianjuta_editor_set_auto_indent:
1032 * @obj: Self
1033 * @auto_indent: TRUE to enable auto-indent, FALSE to disable
1035 * Sets whether the editor should auto-indent itself. A plugin that does
1036 * custom auto-indent can set this to false and override the preferences
1037 * setting
1039 void set_auto_indent (gboolean auto_indent);
1042 * ianjuta_editor_erase_range:
1043 * @obj: Self
1044 * @position_start: Start position of chars to erase.
1045 * @position_end: End position of chars to erase.
1046 * @err: Error propagation and reporting
1048 * Erases the chars between positions pointed by @position_start and
1049 * @position_end. The character pointed by @position_start is included,
1050 * while pointed by @position_end is not include in the range. After
1051 * the erase operation, all active iters, except these two, are no
1052 * longer guranteed to be valid. At the end the operation, these two
1053 * iters point to the same position which is the position where erase
1054 * happend (usually the original @position_start position).
1056 void erase (IAnjutaIterable *position_start, IAnjutaIterable *position_end);
1059 * ianjuta_editor_erase_all:
1060 * @obj: Self
1061 * @err: Error propagation and reporting
1063 * Empties the whole editor buffer. There will be zero characters.
1064 * After the erase operation, none of the active iters are guranteed
1065 * to be valid.
1067 void erase_all ();
1070 * ianjuta_editor_insert:
1071 * @obj: Self
1072 * @position: Character position in editor where insert will take place.
1073 * @text: Text to append.
1074 * @length: Length of @text to use.
1075 * @err: Error propagation and reporting
1077 * Inserts @length characters from @text buffer at given @position of
1078 * editor buffer. If @length is -1, the whole @text is used.
1080 void insert (IAnjutaIterable *position, const gchar *text, gint length);
1083 * ianjuta_editor_append:
1084 * @obj: Self
1085 * @text: Text to append.
1086 * @length: Length of @text to use.
1087 * @err: Error propagation and reporting
1089 * Appends @length characters from @text buffer at the end of editor
1090 * buffer. If @length is -1, the whole @text is used. @length is in bytes.
1092 void append (const gchar *text, gint length);
1095 * ianjuta_editor_goto_line:
1096 * @obj: Self
1097 * @lineno: line number where carat will be moved.
1098 * @err: Error propagation and reporting
1100 * Carat is moved to the given @lineno line and text view is scrolled to
1101 * bring it in viewable area of the editor.
1103 void goto_line (gint lineno);
1106 * ianjuta_editor_goto_start:
1107 * @obj: Self
1108 * @err: Error propagation and reporting
1110 * Carat is moved to the begining of editor and text view is scrolled to
1111 * bring it in viewable area of the editor.
1113 void goto_start ();
1116 * ianjuta_editor_goto_end:
1117 * @obj: Self
1118 * @err: Error propagation and reporting
1120 * Carat is moved to the end of editor and text view is scrolled to
1121 * bring it in viewable area of the editor.
1123 void goto_end ();
1126 * ianjuta_editor_goto_position:
1127 * @obj: Self
1128 * @position: Character position where carat will be moved.
1129 * @err: Error propagation and reporting
1131 * Carat is moved to the given @position and text view is scrolled to
1132 * bring @position in viewable area of the editor.
1134 void goto_position (IAnjutaIterable *position);
1137 * ianjuta_editor_get_text:
1138 * @obj: Self
1139 * @begin: Begining iterator
1140 * @end: End iterator
1141 * @err: Error propagation and reporting
1143 * Gets text characters beginning from @begin (including char
1144 * pointed by @begin) and ending with @end (excluding character
1145 * pointed by @end). The characters returned are utf-8 encoded.
1146 * The iterators @begin and @end could be in either order. The returned
1147 * text, however, is in right order. If both @begin and @end points
1148 * to the same position, NULL is returned.
1150 * Returns: A buffer of utf-8 characters.
1151 * The returned buffer must be freed when no longer required.
1153 gchar* get_text (IAnjutaIterable *begin, IAnjutaIterable *end);
1156 * ianjuta_editor_get_text_all:
1157 * @obj: Self
1158 * @err: Error propagation and reporting
1160 * Gets all text characters in the editor.
1161 * The characters returned are utf-8 encoded.
1163 * Returns: A buffer of utf-8 characters containing all text from editor.
1164 * The returned buffer must be freed when no longer required.
1166 gchar* get_text_all ();
1169 * ianjuta_editor_line_from_position:
1170 * @obj: Self
1171 * @position: Position you want to know the line from
1172 * @err: Error propagation and reporting
1174 * Get the line number in which @position locates.
1175 * Returns: Line which corresponds to @position
1178 int get_line_from_position (IAnjutaIterable *position);
1181 * ianjuta_editor_get_lineno:
1182 * @obj: Self
1183 * @err: Error propagation and reporting
1185 * Obtains current line number on which carat is.
1187 * Return value: Line number.
1189 gint get_lineno ();
1192 * ianjuta_editor_get_length:
1193 * @obj: Self
1194 * @err: Error propagation and reporting
1196 * Get length of complete text in editor. This will be the total
1197 * number of characters in the file or buffer.
1199 * Return value: Text length.
1201 gint get_length ();
1204 * ianjuta_editor_get_current_word:
1205 * @obj: Self
1206 * @err: Error propagation and reporting
1208 * Obtains the word on which carat is currently on.
1210 * Return value: Current word.
1212 gchar* get_current_word ();
1215 * ianjuta_editor_get_current_column:
1216 * @obj: Self
1217 * @err: Error propagation and reporting
1219 * Obtains number of the current column in the editor.
1221 * Return value: Current column.
1223 gint get_column ();
1226 * ianjuta_editor_get_line_begin_position:
1227 * @obj: Self
1228 * @line: fixme
1229 * @err: Error propagation and reporting.
1231 * fixme
1233 * Returns: fixme
1235 IAnjutaIterable* get_line_begin_position (gint line);
1238 * ianjuta_editor_get_line_end_position:
1239 * @obj: Self
1240 * @line: fixme
1241 * @err: Error propagation and reporting.
1243 * fixme
1245 * Returns: fixme
1247 IAnjutaIterable *get_line_end_position (gint line);
1250 * ianjuta_editor_get_overwrite:
1251 * @obj: Self
1252 * @err: Error propagation and reporting
1254 * Obtains editor overwirte mode: TRUE = Override, FALSE = Insert.
1256 * Return value: editor mode.
1258 gboolean get_overwrite ();
1262 * ianjuta_editor_set_popup_menu:
1263 * @obj: Self
1264 * @menu: Popupmenu
1265 * @err: Error propagation and reporting
1267 * Set Editor popup menu. This is the menu shown in the editor when one
1268 * right-clicks on it.
1271 void set_popup_menu (GtkWidget *menu);
1274 * ianjuta_editor_get_offset:
1275 * @obj: Self
1276 * @err: Error propagation and reporting
1278 * Get current caret position in integer character offset. Deprecated.
1279 * Use ianjuta_editor_get_position() instead.
1281 * Returns: Current character position since the begining of file.
1283 gint get_offset ();
1286 * ianjuta_editor_get_position:
1287 * @obj: Self
1288 * @err: Error propagation and reporting
1290 * Get current caret position.
1292 * Returns: Iterator that points to the current position.
1294 IAnjutaIterable* get_position ();
1297 * ianjuta_editor_get_position_from_offset:
1298 * @obj: Self
1299 * @offset: Character offset position where the iter will be set
1300 * @err: Error propagation and reporting
1302 * Creates and returns an iter for editor cells. The iter is
1303 * placed at the unicode character position where the given offset
1304 * @offset happens to fall. The returned iter is cell (character)
1305 * iter and not byte iter, so all iter operations
1306 * on it are character (not byte) iteration, including all position
1307 * and index references in the iter.
1309 * The iter must be unreferrenced by the caller when done.
1310 * The iter navigates (next/previous) in step of unicode
1311 * characters (one unicode character == one cell).
1313 * Retrun value: a newly created iter of IAnjutaEditorCell placed at the
1314 * given @offset position.
1316 IAnjutaIterable* get_position_from_offset (gint offset);
1319 * ianjuta_editor_get_start_position:
1320 * @obj: Self
1321 * @err: Error propagation and reporting
1323 * Gets the iter positioned at the start of the editor buffer.
1325 * Retrun value: Cell iter set to the begining of the editor.
1327 IAnjutaIterable* get_start_position ();
1330 * ianjuta_editor_get_end_position:
1331 * @obj: Self
1332 * @err: Error propagation and reporting
1334 * Gets the iter positioned at the end of the editor buffer. The
1335 * returned iter is the end-iter which does not point to any valid
1336 * character in the buffer (it is pointed one step beyond the last
1337 * valid character).
1339 * Retrun value: Cell iter set to the end of the editor (end-iter).
1341 IAnjutaIterable* get_end_position ();
1344 * SECTION:ianjuta-editor-selection
1345 * @title: IAnjutaEditorSelection
1346 * @short_description: Text editor selection interface
1347 * @see_also:
1348 * @stability: Unstable
1349 * @include: libanjuta/interfaces/ianjuta-editor-selection.h
1352 interface IAnjutaEditorSelection
1354 #include <libanjuta/interfaces/ianjuta-editor-cell.h>
1356 * ianjuta_editor_selection_has_selection:
1357 * @obj: Self
1358 * @err: Error propagation and reporting
1360 * Returns TRUE if editor has any text selected. The selection
1361 * positions can be retrieved with ianjuta_editor_selection_get_start()
1362 * and ianjuta_editor_selection_get_end().
1364 * Returns: TRUE if there is text selected else FALSE.
1366 gboolean has_selection ();
1369 * ianjuta_editor_selection_get:
1370 * @obj: Self
1371 * @err: Error propagation and reporting
1373 * Gets curerntly selected text in editor.
1375 * Returns: A newly allocated buffer of currently selected characters.
1376 * NULL if there is no selection. The returned buffer must be freed after
1377 * use.
1379 gchar* get ();
1382 * ianjuta_editor_selection_set:
1383 * @obj: Self
1384 * @start: Begin of selection
1385 * @end: End of selection
1386 * @err: Error propagation and reporting
1388 * Select characters between start and end. Start and end don't have to
1389 * be ordered.
1391 void set (IAnjutaIterable* start, IAnjutaIterable* end);
1394 * ianjuta_editor_selection_get_start:
1395 * @obj: Self
1396 * @err: Error propagation and reporting
1398 * Gets start position of selection text. If there is no selection,
1399 * returns -1.
1401 * Return: Start of selection or NULL if there is no selection.
1403 IAnjutaIterable* get_start ();
1406 * ianjuta_editor_selection_get_end:
1407 * @obj: Self
1408 * @err: Error propagation and reporting
1410 * Get end position of selection. If there is no selection, returns
1411 * NULL.
1413 * Return: End of selection or NULL if there is no selection.
1415 IAnjutaIterable* get_end ();
1418 * ianjuta_editor_selection_select_block:
1419 * @obj: Self
1420 * @err: Error propagation and reporting
1422 * Selects current block of code. The definition of block of code
1423 * depends on highlight mode used (programming language). Some
1424 * highlight mode does not have block concept, in that case this
1425 * method does not do anything.
1427 void select_block ();
1430 * ianjuta_editor_selection_select_function:
1431 * @obj: Self
1432 * @err: Error propagation and reporting
1434 * Select current function block. The definition of function block
1435 * depends on highlight mode used (programming language). Some
1436 * highlight mode does not have function concept, in that case this
1437 * method does not do anything.
1439 void select_function ();
1442 * ianjuta_editor_selection_select_to_brace:
1443 * @obj: Self
1444 * @err: Error propagation and reporting
1446 * Select to brace. Some highlight mode does not have braces concept,
1447 * in that case, this method does not do anything.
1449 void select_to_brace ();
1452 * ianjuta_editor_edit_select_all:
1453 * @obj: Self
1454 * @err: Error propagation and reporting
1456 * Select whole buffer.
1458 void select_all ();
1461 * ianjuta_editor_selection_replace:
1462 * @obj: Self
1463 * @text: Replacement text.
1464 * @length: Length of the text to used in @text.
1465 * @err: Error propagation and reporting
1467 * Replaces currently selected text with the @text. Only @length amount
1468 * of characters are used from @text buffer to replace.
1470 void replace (const gchar *text, gint length);
1474 * SECTION:ianjuta-editor-search
1475 * @title: IAnjutaEditorSearch
1476 * @short_description: Text editor search interface
1477 * @see_also:
1478 * @stability: Unstable
1479 * @include: libanjuta/interfaces/ianjuta-editor-search.h
1482 interface IAnjutaEditorSearch
1484 #include <libanjuta/interfaces/ianjuta-editor-cell.h>
1487 * ianjuta_editor_search_forward:
1488 * @obj: Self
1489 * @search: String to search for
1490 * @start: Where to search from
1491 * @end: Where to stop searching
1492 * @result_start: Will be set to the start of the search_result (or NULL)
1493 * @result_end: Will be set to the end of the search_result (or NULL)
1494 * @err: Error propagation and reporting
1496 * Search forward from start to end
1499 gboolean forward (const gchar* search, gboolean case_sensitive, IAnjutaEditorCell* start, IAnjutaEditorCell* end, IAnjutaEditorCell** result_start, IAnjutaEditorCell** result_end);
1502 * ianjuta_editor_search_backward:
1503 * @obj: Self
1504 * @search: String to search for
1505 * @start: Where to search from
1506 * @end: Where to stop searching
1507 * @result_start: Will be set to the start of the search_result (or NULL)
1508 * @result_end: Will be set to the end of the search_result (or NULL)
1509 * @err: Error propagation and reporting
1511 * Search backward from end to start
1515 gboolean backward (const gchar* search, gboolean case_sensitive, IAnjutaEditorCell* start, IAnjutaEditorCell* end, IAnjutaEditorCell** result_start, IAnjutaEditorCell** result_end);
1520 * SECTION:ianjuta-editor-convert
1521 * @title: IAnjutaEditorConvert
1522 * @short_description: Text editor convert interface
1523 * @see_also:
1524 * @stability: Unstable
1525 * @include: libanjuta/interfaces/ianjuta-editor-convert.h
1528 interface IAnjutaEditorConvert
1531 * ianjuta_editor_convert_to_upper:
1532 * @obj: Self
1533 * @start_position: Start position.
1534 * @end_position: End position.
1535 * @err: Error propagation and reporting
1537 * change characters from start position to end position to uppercase.
1540 void to_upper (IAnjutaIterable *start_position, IAnjutaIterable *end_position);
1543 * ianjuta_editor_convert_to_lower:
1544 * @obj: Self
1545 * @start_position: Start position.
1546 * @end_position: End position.
1547 * @err: Error propagation and reporting
1549 * change characters from start position to end position to lowercase
1552 void to_lower (IAnjutaIterable *start_position, IAnjutaIterable *end_position);
1556 * SECTION:ianjuta-editor-line-mode
1557 * @title: IAnjutaEditorLineMode
1558 * @short_description: Text editor line mode
1559 * @see_also:
1560 * @stability: Unstable
1561 * @include: libanjuta/interfaces/ianjuta-editor-line-mode.h
1564 interface IAnjutaEditorLineMode
1566 enum Type
1570 CRLF
1574 * ianjuta_editor_line_mode_get:
1575 * @obj: Self
1576 * @err: Error propagation and reporting
1578 * Get current line ending mode. It is auto-detected from the
1579 * buffer contents.
1581 Type get ();
1584 * ianjuta_editor_line_mode_set:
1585 * @obj: Self
1586 * @mode: Line mode to set.
1587 * @err: Error propagation and reporting
1589 * Set the line ending mode to the given @mode. Existing line end
1590 * characters in the buffer are not touched. Only the newly added
1591 * texts will have @mode line end characters.
1593 void set (Type mode);
1596 * ianjuta_editor_line_mode_convert:
1597 * @obj: Self
1598 * @mode: Line mode to convert.
1599 * @err: Error propagation and reporting
1601 * Set the line ending mode to the given @mode and convert all line end
1602 * characters in the buffer to @mode line end characters.
1604 void convert (Type mode);
1607 * ianjuta_editor_line_mode_fix:
1608 * @obj: Self
1609 * @err: Error propagation and reporting
1611 * Convert EOL characters to majority of line mode. This is helpful
1612 * when the buffer contains mixed line modes and we want to fix it.
1614 void fix ();
1618 * SECTION:ianjuta-editor-assist
1619 * @title: IAnjutaEditorAssist
1620 * @short_description: Editor assistance framework
1621 * @see_also:
1622 * @stability: Unstable
1623 * @include: libanjuta/interfaces/ianjuta-editor-assist.h
1626 interface IAnjutaEditorAssist
1628 /* IAnjutaEdiotrAssist::assist_chosen:
1629 * @obj: self
1630 * @selection: The selection index
1632 * User's selection from the choices. It is the index of the choice
1633 * presented with ianjuta_editor_assist_suggest().
1635 void ::assist_chosen (gint selection);
1638 * ianjuta_editor_assist_suggest:
1639 * @obj: Self
1640 * @choices: list of choices.
1641 * @char_alignment: Character alignment.
1642 * @err: Error propagation and reporting
1644 * Suggest a list of choices to the user. The suggestions are viewed
1645 * at char_alignment which should be the beginning of the completed word.
1646 * If choices is NULL, and assist_end signal
1647 * will occur
1650 void suggest (List<const gchar*> choices, IAnjutaIterable *position, int char_alignment);
1652 /** ianjuta_editor_assist_hide_suggestions
1653 * @obj: Self
1654 * @err: Error propagation and reporting
1656 * Hide current suggestions but do not emit assist_end signal.
1657 * This is useful when temporary waiting for more context
1659 void hide_suggestions ();
1662 * ianjuta_editor_assist_tip:
1663 * @obj: Self
1664 * @tips: list of alternative tips.
1665 * @char_alignment: Character alignment.
1666 * @err: Error propagation and reporting
1668 * Show tips showing more information on current context. No user feedback
1669 * is required when tips are shown. @char_alignment indicates
1670 * the position before which is the known context and after which are
1671 * the suggestions. Usually the editor would use this to
1672 * align the choices displayed such that the carat is just at this
1673 * position when the choices are displayed.
1676 void show_tips (List<const gchar*> tips, IAnjutaIterable *position, gint char_alignment);
1679 * ianjuta_editor_assist_cancel_tip:
1680 * @obj: Self
1681 * @err: Error propagation and reporting
1683 * Cancels the last shown tooltip
1685 void cancel_tips ();
1688 * ianjuta_editor_assist_get_suggestions:
1689 * @obj: Self
1690 * @context: The context for the suggestions.
1691 * @err: Error propagation and reporting
1693 * Usually the editor might have some suggestions to make
1694 * for a context. For example in a simple word completion context.
1695 * If the editor has no suggestions to make, it returns NULL.
1697 * Returns: A list of suggestions for the given context or NULL
1698 * if there is nothing to suggest.
1700 * Returns: A list of dynamically allocated strings. The whole
1701 * list, including the the strings should be freed when done.
1703 List<const gchar*> get_suggestions (const gchar *context);
1707 * SECTION:ianjuta-editor-hover
1708 * @title: IAnjutaEditorHover
1709 * @short_description: Text editor hover interface
1710 * @see_also:
1711 * @stability: Unstable
1712 * @include: libanjuta/interfaces/ianjuta-editor-hover
1715 interface IAnjutaEditorHover
1717 #include <libanjuta/interfaces/ianjuta-iterable.h>
1719 void ::hover_over (GObject* position);
1720 void ::hover_leave (GObject* position);
1722 void display (IAnjutaIterable* position, const gchar *info);
1726 * SECTION:ianjuta-editor-language
1727 * @title: IAnjutaEditorLanguage
1728 * @short_description: Text editor language interface
1729 * @see_also:
1730 * @stability: Unstable
1731 * @include: libanjuta/interfaces/ianjuta-editor-language.h
1734 interface IAnjutaEditorLanguage
1736 void ::language_changed (const gchar *language);
1739 * ianjuta_editor_language_get_supported_languages:
1740 * @obj: Self
1741 * @err: Error propagation and reporting
1743 * Return a list of languages supported by the editor
1744 * Note: These list contains the names in the form
1745 * the editor implementation knows them
1749 const List<const gchar*> get_supported_languages ();
1752 * ianjuta_editor_language_name:
1753 * @obj: Self
1754 * @err: Error propagation and reporting
1756 * FIXME
1760 const gchar *get_language_name (const gchar* language);
1763 * ianjuta_editor_language_get_language:
1764 * @obj: Self
1765 * @err: Error propagation and reporting
1767 * Return the name of the currently used language
1771 const gchar *get_language ();
1774 * ianjuta_editor_language_set_language:
1775 * @obj: Self
1776 * @err: Error propagation and reporting
1777 * @lang: Language
1779 * Force the editor to use a given language
1783 void set_language (const gchar* language);
1787 * SECTION:ianjuta-editor-folds
1788 * @title: IAnjutaEditorFolds
1789 * @short_description: Text editor folds inteface
1790 * @see_also:
1791 * @stability: Unstable
1792 * @include: libanjuta/interfaces/ianjuta-editor-folds.h
1795 interface IAnjutaEditorFolds
1798 * ianjuta_editor_view_open_folds:
1799 * @obj: Self
1800 * @err: Error propagation and reporting
1802 * Open all folds
1805 void open_all ();
1808 * ianjuta_editor_view_close_folds:
1809 * @obj: Self
1810 * @err: Error propagation and reporting
1812 * Close all folds
1815 void close_all ();
1818 * ianjuta_editor_view_toggle_fold:
1819 * @obj: Self
1820 * @err: Error propagation and reporting
1822 * Open/Close current fold
1825 void toggle_current ();
1829 * SECTION:ianjuta-editor-view
1830 * @title: IAnjutaEditorView
1831 * @short_description: Text editor view interface
1832 * @see_also:
1833 * @stability: Unstable
1834 * @include: libanjuta/interfaces/ianjuta-editor-view.h
1836 * An editor view is a visual representation of the editor. An editor
1837 * can have multiple views. All views of an editor show the same editor
1838 * content (buffer). Consequently, any change done in one view is
1839 * updated in all other views.
1841 interface IAnjutaEditorView
1844 * ianjuta_editor_view_create:
1845 * @obj: Self
1846 * @err: Error propagation and reporting
1848 * Creates a new view for the editor. The newly created view gets
1849 * the user focus and scrolls to the same location as last view.
1851 void create ();
1854 * ianjuta_editor_view_remove_current:
1855 * @obj: Self
1856 * @err: Error propagation and reporting
1858 * Removes currently focused editor view. It does not remove the
1859 * last view of the editor. That is, if currently there is only
1860 * one view of the editor, this function does nothing.
1862 void remove_current ();
1865 * ianjuta_editor_view_get_count:
1866 * @obj: Self
1867 * @err: Error propagation and reporting
1869 * Total number of views currently present. It will never be less
1870 * than 1. Invalid return values are considered error condition.
1872 gint get_count ();
1876 * SECTION:ianjuta-editor-comment
1877 * @title: IAnjutaEditorComment
1878 * @short_description: Text editor comment interface
1879 * @see_also:
1880 * @stability: Unstable
1881 * @include: libanjuta/interfaces/ianjuta-editor-comment.h
1884 interface IAnjutaEditorComment
1887 * ianjuta_editor_comment_block:
1888 * @obj: Self
1889 * @err: Error propagation and reporting
1891 * Comment/Uncomment out selected block
1893 void block();
1896 * ianjuta_editor_comment_box:
1897 * @obj: Self
1898 * @err: Error propagation and reporting
1900 * Comment/Uncomment out selected block
1902 void box();
1905 * ianjuta_editor_comment_stream:
1906 * @obj: Self
1907 * @err: Error propagation and reporting
1909 * Comment/Uncomment out selected block
1911 void stream();
1915 * SECTION:ianjuta-editor-zoom
1916 * @title: IAnjutaEditorZoom
1917 * @short_description: Text editor zoom interface
1918 * @see_also:
1919 * @stability: Unstable
1920 * @include: libanjuta/interfaces/ianjuta-editor-zoom.h
1923 interface IAnjutaEditorZoom
1926 * ianjuta_editor_zoom_in:
1927 * @obj: Self
1928 * @err: Error propagation and reporting
1930 * Zoom in
1932 void in ();
1935 * ianjuta_editor_zoom_out:
1936 * @obj: Self
1937 * @err: Error propagation and reporting
1939 * Zoom out
1941 void out ();
1945 * SECTION:ianjuta-editor-goto
1946 * @title: IAnjutaEditorGoto
1947 * @short_description: Text editor navigation interface
1948 * @see_also:
1949 * @stability: Unstable
1950 * @include: libanjuta/interfaces/ianjuta-editor-goto.h
1953 interface IAnjutaEditorGoto
1956 * ianjuta_editor_goto_start_block()
1957 * @obj: Self
1958 * @err: Error propagation and reporting
1960 * Moves cursor to the start of the current block
1962 void start_block();
1965 * ianjuta_editor_goto_end_block()
1966 * @obj: Self
1967 * @err: Error propagation and reporting
1969 * Moves cursor to the end of the current block
1971 void end_block();
1974 * ianjuta_editor_goto_matching_brace()
1975 * @obj: Self
1976 * @err: Error propagation and reporting
1978 * Moves cursor to matching brace
1980 void matching_brace();
1986 * SECTION:ianjuta-editor-cell
1987 * @title: IAnjutaEditorCell
1988 * @short_description: Text editor character cell
1989 * @see_also:
1990 * @stability: Unstable
1991 * @include: libanjuta/interfaces/ianjuta-editor-cell.h
1993 * Represents a cell in editor. A cell corresponds to a unicode
1994 * character along with all associated styles (such as colors and font).
1995 * A cell may or may not have style. If style is supported in the
1996 * editor, it is assumed all cells will have styles and hence every
1997 * IAnjutaEditorCell interface instance will have additionally
1998 * IAnjutaEditorCellStyle implemented.
2000 interface IAnjutaEditorCell
2002 #include <libanjuta/interfaces/ianjuta-editor.h>
2005 * ianjuta_editor_cell_get_character:
2006 * @obj: Self
2007 * @err: Error propagation and reporting
2009 * Returns the unicode character in this cell. A NULL terminated
2010 * string is returned that is the multibyte unicode character.
2011 * NULL is returned if the cell does not have any character.
2013 * Retruns: a newly created string representing the cell's unicode
2014 * character.
2016 gchar *get_character ();
2019 * ianjuta_editor_cell_get_length:
2020 * @obj: self
2021 * @err: Error propagation and reporting.
2023 * Gets the length of the cell in bytes. That is, length of the
2024 * unicode character.
2026 * Returns: Length of the unicode character.
2028 gint get_length ();
2031 * ianjuta_editor_cell_get_char:
2032 * @obj: Self
2033 * @err: Error propagation and reporting
2035 * Returns the byte of the unicode character in this cell at given
2036 * index @char_index. @char_index can vary from 0 to length of the
2037 * unicode string minus 1. Out of range index is not allowed
2038 * (asserted) and return is undefined.
2040 * Since there is dynamic allocation of unicode character string
2041 * involved in ianjuta_editor_cell_get_character(), this function
2042 * is mainly useful for fast iteration (such as copying data).
2044 * Retruns: a byte character.
2046 gchar get_char (gint char_index);
2048 IAnjutaEditorAttribute get_attribute ();
2051 * SECTION:ianjuta-editor-cell-style
2052 * @title: IAnjutaEditorCellStyle
2053 * @short_description: Text editor cell style interface
2054 * @see_also:
2055 * @stability: Unstable
2056 * @include: libanjuta/interfaces/ianjuta-editor-cell-style.h
2059 interface IAnjutaEditorCellStyle
2061 gchar* get_font_description ();
2062 gchar* get_color();
2063 gchar* get_background_color();
2068 * SECTION:ianjuta-bookmark
2069 * @title: IAnjutaBookmark
2070 * @short_description: Bookmark interface
2071 * @see_also:
2072 * @stability: Unstable
2073 * @include: libanjuta/interfaces/ianjuta-bookmark.h
2076 interface IAnjutaBookmark
2079 * ianjuta_bookmark_toggle:
2080 * @obj: Self
2081 * @location: The location where bookmark is toggled.
2082 * @ensure_visible: If the location must be made visible.
2083 * @err: Error propagation and reporting
2085 * Toggle bookmark at given @location
2088 void toggle (gint location, gboolean ensure_visible);
2091 * ianjuta_bookmark_first:
2092 * @obj: Self
2093 * @err: Error propagation and reporting
2095 * Goto first bookmark
2098 void first ();
2101 * ianjuta_bookmark_last:
2102 * @obj: Self
2103 * @err: Error propagation and reporting
2105 * Goto last bookmark
2108 void last ();
2111 * ianjuta_bookmark_next:
2112 * @obj: Self
2113 * @err: Error propagation and reporting
2115 * Goto next bookmark
2118 void next ();
2121 * ianjuta_bookmark_previous:
2122 * @obj: Self
2123 * @err: Error propagation and reporting
2125 * Goto previous bookmark
2128 void previous ();
2131 * ianjuta_bookmark_clear_all:
2132 * @obj: Self
2133 * @err: Error propagation and reporting
2135 * Clear all bookmarks
2138 void clear_all ();
2142 * SECTION:ianjuta-editor-factory
2143 * @title: IAnjutaEditorFactory
2144 * @short_description: Text editor factory that creates IAnjutaEditor objects
2145 * @see_also:
2146 * @stability: Unstable
2147 * @include: libanjuta/interfaces/ianjuta-editor-factory.h
2150 interface IAnjutaEditorFactory
2152 #include "ianjuta-editor.h"
2155 * ianjuta_editor_factory_new_editor:
2156 * @obj: Self
2157 * @uri: Uri to open
2158 * @filename: filename to open
2159 * @err: Error propagation and reporting
2161 * Get a new GtkWidget* which implements IAnjutaEditor
2163 * Return value: An object implementing IAnjutaEditor
2165 IAnjutaEditor* new_editor (const gchar* uri, const gchar* filename);
2169 * SECTION:ianjuta-document-manager
2170 * @title: IAnjutaDocumentManager
2171 * @short_description: Interface for plugin that manages all the editors
2172 * @see_also:
2173 * @stability: Unstable
2174 * @include: libanjuta/interfaces/ianjuta-document-manager.h
2177 interface IAnjutaDocumentManager
2179 #include "ianjuta-document.h"
2180 #include "ianjuta-editor.h"
2182 enum Error
2184 DOESNT_EXIST
2188 * ianjuta_document_manager_get_uri:
2189 * @obj: Self
2190 * @file: short filename
2191 * @err: Error propagation and reporting.
2193 * Given the short filename, finds the URI of the file, if the
2194 * editor that has it loaded is found. If there is no editor that has
2195 * this file opened, returns NULL.
2197 * Return value: the URI of the file, if an editor is found for it.
2199 gchar* get_uri (const gchar *file);
2202 * ianjuta_document_manager_find_document_with_uri:
2203 * @obj: Self
2204 * @uri: the file uri.
2205 * @err: Error propagation and reporting.
2207 * Finds the document that has the file with URI @uri loaded. Only
2208 * the editor that matches the URI will be searched.
2210 * Return value: the document that corresponds to given URI. NULL if
2211 * there is no editor loaded with this URI.
2213 IAnjutaDocument* find_document_with_uri (const gchar *uri);
2216 * ianjuta_document_manager_goto_uri_line:
2217 * @obj: Self
2218 * @uri: URI of the file to go to.
2219 * @lineno: the line number in the file to go to.
2220 * @err: Error propagation and reporting.
2222 * Loads the given file if not loaded yet, set its editor as current editor
2223 * and moves cursor to the given line in the editor.
2225 * Return value: the editor where the mark has been put. NULL if none.
2227 IAnjutaEditor* goto_uri_line (const gchar *uri, gint lineno);
2229 /**
2230 * ianjuta_document_manager_goto_uri_line_mark:
2231 * @obj: Self
2232 * @uri: URI of the file to go to.
2233 * @lineno: the line number in the file to go to.
2234 * @mark: TRUE if the line should be marked with a marker.
2235 * @err: Error propagation and reporting
2237 * Loads the given file if not loaded yet, set its editor as current editor
2238 * and moves cursor to the given line in the editor. Optionally also marks
2239 * the line with line marker if @mark is given TRUE.
2241 * Return value: the editor where the mark has been put. NULL if none.
2243 IAnjutaEditor* goto_uri_line_mark (const gchar *uri, gint lineno, gboolean mark);
2246 * ianjuta_document_manager_get_current_document:
2247 * @obj: Self
2248 * @err: Error propagation and reporting.
2250 * Gets the current document.
2252 * Return value: the currently active document. NULL if none is there.
2254 IAnjutaDocument* get_current_document ();
2256 /**
2257 * ianjuta_document_manager_set_current_document:
2258 * @obj: Self
2259 * @document: the document to set as current.
2260 * @err: Error propagation and reporting.
2262 * Sets the given document as current document.
2264 void set_current_document (IAnjutaDocument *document);
2267 * ianjuta_document_manager_get_doc_widgets:
2268 * @obj: Self
2269 * @err: Error propagation and reporting.
2271 * Gets a list of widgets for open documents. Each widget is
2272 * a GTK_WIDGET(InjutaDocument*)
2274 * Return value: a list of widgets for all open documents
2275 * The returned list (but not the data in the list) must be
2276 * freed after use.
2278 List<GtkWidget*> get_doc_widgets ();
2281 * ianjuta_document_manager_add_buffer:
2282 * @obj: Self
2283 * @name: Name of the editor buffer.
2284 * @content: Initial content of the buffer.
2285 * @err: Error propagation and reporting.
2287 * Creates a new editor buffer of the given name and sets the given
2288 * content as its initial content.
2290 * Return value: the IAnjutaEditor instance that has been added.
2292 IAnjutaEditor* add_buffer (const gchar *name, const gchar* content);
2295 * ianjuta_document_manager_remove_document:
2296 * @obj: Self
2297 * @document: Document to close.
2298 * @save_before: If true, saves the document before closing.
2299 * @err: Error propagation and reporting.
2301 * Closes and removes the given document. If @save_before is TRUE, also
2302 * saves the document before closing.
2304 * Return value: TRUE if the document was removed, else FALSE.
2306 gboolean remove_document (IAnjutaDocument *document, gboolean save_before);
2309 * ianjuta_document_manager_add_document:
2310 * @obj: Self
2311 * @document: the document to add
2312 * @err: Error propagation and reporting.
2314 * Adds a document to the document manager. This will open a new
2315 * Notebook tab and show the document there
2318 void add_document (IAnjutaDocument* document);
2323 * SECTION:ianjuta-message-view
2324 * @title: IAnjutaMessageView
2325 * @short_description: A view where messages of different kind can be shown
2326 * @see_also:
2327 * @stability: Unstable
2328 * @include: libanjuta/interfaces/ianjuta-message-view.h
2331 interface IAnjutaMessageView
2333 enum Type
2335 TYPE_NORMAL,
2336 TYPE_INFO,
2337 TYPE_WARNING,
2338 TYPE_ERROR
2342 * IAnjutaMessageView::message_clicked:
2343 * @obj: Self
2344 * @message: fixme
2345 * @err: Error propagation and reporting.
2347 * fixme
2349 void ::message_clicked (const gchar *message);
2351 /**
2352 * IAnjutaMessageView::buffer_flushed:
2353 * @obj: Self
2354 * @line: fixme
2355 * @err: Error propagation and reporting.
2357 * fixme
2359 void ::buffer_flushed (const gchar *line);
2362 * ianjuta_message_view_buffer_append:
2363 * @obj: Self
2364 * @text: fixme
2365 * @err: Error propagation and reporting.
2367 * fixme
2369 void buffer_append (const gchar *text);
2372 * ianjuta_message_view_append:
2373 * @obj: Self
2374 * @type: fixme
2375 * @summary: fixme
2376 * @details: fixme
2377 * @err: Error propagation and reporting.
2379 * fixme
2381 void append (Type type, const gchar *summary, const gchar *details);
2384 * ianjuta_message_view_clear:
2385 * @obj: Self
2386 * @err: Error propagation and reporting.
2388 * fixme
2390 void clear ();
2393 * ianjuta_message_view_select_next:
2394 * @obj: Self
2395 * @err: Error propagation and reporting.
2397 * fixme
2399 void select_next ();
2402 * ianjuta_message_view_select_previous:
2403 * @obj: Self
2404 * @err: Error propagation and reporting.
2406 * fixme
2408 void select_previous ();
2411 * ianjuta_message_view_get_current_message:
2412 * @obj: Self
2413 * @err: Error propagation and reporting.
2415 * fixme
2417 const gchar* get_current_message ();
2420 * ianjuta_message_view_get_all_messages:
2421 * @obj: Self
2422 * @err: Error propagation and reporting.
2424 * fixme
2426 List<const gchar*> get_all_messages ();
2430 * SECTION:ianjuta-message-manager
2431 * @title: IAnjutaMessageManager
2432 * @short_description: The plugin that managers all message views
2433 * @see_also:
2434 * @stability: Unstable
2435 * @include: libanjuta/interfaces/ianjuta-message-manager.h
2438 interface IAnjutaMessageManager
2440 #include "ianjuta-message-view.h"
2442 enum Error
2444 DOESNT_EXIST
2447 * ianjuta_message_manager_add_view:
2448 * @obj: Self
2449 * @name: Name/Title of the new view
2450 * @icon: Path to an icon or ""
2451 * @err: Error propagation and reporting
2453 * Adds a new view to the message-manager
2455 * Return value: The new message-view
2457 IAnjutaMessageView* add_view (const gchar *name, const gchar *icon);
2460 * ianjuta_message_manager_remove_view:
2461 * @obj: Self
2462 * @view: The view to remove
2463 * @err: Error propagation and reporting
2465 * Remove view from the message-manager. The view
2466 * will become invalid.
2468 void remove_view (IAnjutaMessageView *view);
2471 * ianjuta_message_manager_get_current_view:
2472 * @obj: Self
2473 * @err: Error propagation and reporting
2475 * Get the view with is currently on top of
2476 * the notebook or NULL if the message-manager is empty.
2478 * Return value: Current view; #IAnjutaMessageView object.
2479 * NULL, if there is no views.
2481 IAnjutaMessageView* get_current_view ();
2484 * ianjuta_message_manager_get_view_by_name:
2485 * @obj: Self
2486 * @name: Name/Title of the view
2487 * @err: Error propagation and reporting
2489 * Get the view with the given name or NULL if
2490 * it does not exist.
2492 * Return value: The message-view or NULL
2494 IAnjutaMessageView* get_view_by_name (const gchar *name);
2497 * ianjuta_message_manager_get_all_views:
2498 * @obj: Self
2499 * @err: Error propagation and reporting
2501 * Get all message-views
2503 * Return value: A GList* of all views. You must not
2504 * manipulate the list.
2506 List<IAnjutaMessageView*> get_all_views ();
2509 * ianjuta_message_manager_set_current_view:
2510 * @obj: Self
2511 * @view: A message view
2512 * @err: Error propagation and reporting
2514 * Set view to be on top of the notebook.
2517 void set_current_view (IAnjutaMessageView *view);
2520 * ianjuta_message_manager_set_view_title:
2521 * @obj: Self
2522 * @view: A message view
2523 * @title: Sets the title of view.
2524 * @err: Error propagation and reporting
2526 * Sets the title of view.
2529 void set_view_title (IAnjutaMessageView *view, const gchar *title);
2533 * SECTION:ianjuta-file-manager
2534 * @title: IAnjutaFileManager
2535 * @short_description: File manager plugin
2536 * @see_also:
2537 * @stability: Unstable
2538 * @include: libanjuta/interfaces/ianjuta-file-manager.h
2541 interface IAnjutaFileManager
2545 * IAnjutaFileManager::section_changed:
2546 * @obj: Self
2547 * @err: Error propagation and reporting.
2549 * fixme
2551 void ::section_changed (const gchar *uri);
2554 * ianjuta_file_manager_set_root:
2555 * @obj: Self
2556 * @root_uri: fixme
2557 * @err: Error propagation and reporting.
2559 * fixme
2561 void set_root (const gchar *root_uri);
2564 * ianjuta_file_manager_get_selected:
2565 * @obj: Self
2566 * @err: Error propagation and reporting.
2568 * fixme
2570 gchar* get_selected ();
2573 * ianjuta_file_manager_set_selected:
2574 * @obj: Self
2575 * @uri: fixme
2576 * @err: Error propagation and reporting.
2578 * fixme.
2580 void set_selected (const gchar *uri);
2584 * SECTION:ianjuta-terminal
2585 * @title: IAnjutaTerminal
2586 * @short_description: Interface for command line terminals
2587 * @see_also:
2588 * @stability: Unstable
2589 * @include: libanjuta/interfaces/ianjuta-terminal.h
2592 interface IAnjutaTerminal
2594 #include <sys/types.h>
2597 * IAnjutaDebugManager::child_exited:
2598 * @obj: Self
2599 * @pid: pid of terminated child
2600 * @status: status of terminated child as returned by waitpid
2602 * This signal is emitted when a child exit.
2604 void ::child_exited (gint pid, gint status);
2608 * ianjuta_terminal_execute_command:
2609 * @obj: Self
2610 * @directory: Working directory
2611 * @command: Command executed followed by arguments
2612 * @environment: List of additional environment variables
2613 * @err: Error propagation and reporting.
2615 * Run the command in a terminal, setting the working directory
2616 * and environment variables.
2618 * Returns: Process ID
2620 pid_t execute_command (const gchar* directory, const gchar *command, gchar **environment);
2624 * SECTION:ianjuta-project-manager
2625 * @title: IAnjutaProjectManager
2626 * @short_description: Interface for project managers
2627 * @see_also:
2628 * @stability: Unstable
2629 * @include: libanjuta/interfaces/ianjuta-project-manager.h
2632 interface IAnjutaProjectManager
2634 enum ElementType
2636 UNKNOWN,
2637 SOURCE,
2638 TARGET,
2639 GROUP
2642 enum TargetType
2644 TARGET_UNKNOWN,
2645 TARGET_SHAREDLIB,
2646 TARGET_STATICLIB,
2647 TARGET_EXECUTABLE
2650 enum Capabilities
2652 CAN_ADD_NONE = 0,
2653 CAN_ADD_GROUP = 1 << 0,
2654 CAN_ADD_TARGET = 1 << 1,
2655 CAN_ADD_SOURCE = 1 << 2
2658 // Signals
2661 * IAnjutaProjectManager::element_added:
2662 * @obj: Self
2663 * @element_uri: fixme
2664 * @err: Error propagation and reporting.
2666 * fixme
2668 void ::element_added (const gchar *element_uri);
2670 /**
2671 * IAnjutaProjectManager::element_removed:
2672 * @obj: Self
2673 * @element_uri: fixme
2674 * @err: Error propagation and reporting.
2676 * fixme
2678 void ::element_removed (const gchar *element_uri);
2681 * IAnjutaProjectManager::element_selected:
2682 * @obj: Self
2683 * @element_uri: fixme
2684 * @err: Error propagation and reporting.
2686 * fixme
2688 void ::element_selected (const gchar *element_uri);
2690 // Methods
2693 * ianjuta_project_manager_get_element_type:
2694 * @obj: Self
2695 * @element_uri: fixme
2696 * @err: Error propagation and reporting.
2698 * fixme
2700 * Returns: fixme
2702 ElementType get_element_type (const gchar *element_uri);
2705 * ianjuta_project_manager_get_elements:
2706 * @obj: Self
2707 * @element_type: fixme
2708 * @err: Error propagation and reporting.
2710 * fixme
2712 * Returns: fixme
2714 List<const gchar*> get_elements (ElementType element_type);
2717 * ianjuta_project_manager_get_target_type:
2718 * @obj: Self
2719 * @target_uri: fixme
2720 * @err: Error propagation and reporting.
2722 * fixme
2724 * Returns: fixme
2726 TargetType get_target_type (const gchar *target_uri);
2729 * ianjuta_project_manager_get_targets:
2730 * @obj: Self
2731 * @target_type: fixme
2732 * @err: Error propagation and reporting.
2734 * fixme
2736 * Returns: fixme
2738 List<const gchar*> get_targets (TargetType target_type);
2741 * ianjuta_project_manager_get_parent:
2742 * @obj: Self
2743 * @element_uri: fixme
2744 * @err: Error propagation and reporting.
2746 * fixme
2748 * Returns: fixme
2750 gchar* get_parent (const gchar *element_uri);
2753 * ianjuta_project_manager_get_children:
2754 * @obj: Self
2755 * @element_uri: fixme
2756 * @err: Error propagation and reporting.
2758 * fixme
2760 * Returns: fixme
2762 List<const gchar*> get_children (const gchar *element_uri);
2765 * ianjuta_project_manager_get_selected:
2766 * @obj: Self
2767 * @err: Error propagation and reporting.
2769 * fixme
2771 gchar* get_selected ();
2774 * ianjuta_project_manager_get_capabilities:
2775 * @obj: Self
2776 * @err: Error propagation and reporting.
2778 * Returns the capabilites of project whether it can add group, target
2779 * sources etc.
2781 * Returns: Supported capabilites.
2783 Capabilities get_capabilities ();
2786 * ianjuta_project_manager_add_source:
2787 * @obj: Self
2788 * @source_uri_to_add: fixme
2789 * @default_location_uri: fixme
2790 * @err: Error propagation and reporting.
2792 * Prompt the user to add a file to the project. If the user selects
2793 * multiple files only the first uri is returned.
2795 * Returns: element URIs. Must be freed when no longer required.
2797 gchar* add_source (const gchar *source_uri_to_add, const gchar *default_location_uri);
2800 * ianjuta_project_manager_add_sources:
2801 * @obj: Self
2802 * @source_uris_to_add: fixme
2803 * @default_location_uri: fixme
2804 * @err: Error propagation and reporting.
2806 * Prompt the user to add a file to the project. If the user selects
2807 * multiple files only the first uri is returned.
2809 * Returns: element URIs. Must be freed when no longer required.
2811 List<const gchar*> add_sources (List<const gchar*> source_uri_to_add, const gchar *default_location_uri);
2814 * ianjuta_project_manager_add_target:
2815 * @obj: Self
2816 * @target_name_to_add: fixme
2817 * @default_location_uri: fixme
2818 * @err: Error propagation and reporting.
2820 * fixme
2822 * Returns:
2824 gchar* add_target (const gchar *target_name_to_add, const gchar *default_location_uri);
2827 * ianjuta_project_manager_add_group:
2828 * @obj: Self
2829 * @group_name_to_add: fixme
2830 * @default_location_uri: fixme
2831 * @err: Error propagation and reporting.
2833 * fixme
2835 * Returns: fixme
2837 gchar* add_group (const gchar *group_name_to_add, const gchar *default_location_uri);
2840 * ianjuta_project_manager_is_open:
2841 * @obj: Self
2842 * @err: Error propagation and reporting.
2844 * fixme
2846 gboolean is_open ();
2849 * ianjuta_project_manager_get_packages
2850 * @obj: Self
2851 * @err: Error propagation and reporting.
2853 * Returns: the list of pkg-config packages that this projects
2854 * requires in it's configure.ac or NULL
2856 List<gchar*> get_packages();
2860 * SECTION:ianjuta-todo
2861 * @title: IAnjutaTodo
2862 * @short_description: Task manager interface
2863 * @see_also:
2864 * @stability: Unstable
2865 * @include: libanjuta/interfaces/ianjuta-todo.h
2868 interface IAnjutaTodo
2872 * ianjuta_to_do_load:
2873 * @obj: Self
2874 * @uri: fixme
2875 * @err: Error propagation and reporting.
2877 * fixme
2879 void load(const gchar *uri);
2883 * SECTION:ianjuta-wizard
2884 * @title: IAnjutaWizard
2885 * @short_description: Interface for wizards that can create new stuffs
2886 * @see_also:
2887 * @stability: Unstable
2888 * @include: libanjuta/interfaces/ianjuta-wizard.h
2891 interface IAnjutaWizard
2895 * ianjuta_wizard_activate:
2896 * @obj: Self
2897 * @err: Error propagation and reporting.
2899 * fixme
2901 void activate();
2905 * SECTION:ianjuta-debugger
2906 * @title: IAnjutaDebugger
2907 * @short_description: Debugger interface
2908 * @see_also:
2909 * @stability: Unstable
2910 * @include: libanjuta/interfaces/ianjuta-debugger.h
2913 interface IAnjutaDebugger
2915 #include "ianjuta-message-view.h"
2916 #include <libanjuta/anjuta-error.h>
2917 #include <sys/types.h>
2919 /* Types */
2920 enum Error
2922 OK = 0,
2923 NOT_READY,
2924 NOT_RUNNING,
2925 NOT_STOPPED,
2926 NOT_LOADED,
2927 NOT_STARTED,
2928 NOT_CONNECTED,
2929 NOT_IMPLEMENTED,
2930 CANCEL,
2931 UNABLE_TO_CREATE_VARIABLE,
2932 UNABLE_TO_ACCESS_MEMORY,
2933 UNABLE_TO_OPEN_FILE,
2934 UNSUPPORTED_FILE_TYPE,
2935 UNSUPPORTED_VERSION,
2936 UNABLE_TO_FIND_DEBUGGER,
2937 ALREADY_DONE,
2938 PROGRAM_NOT_FOUND,
2939 UNKNOWN_ERROR,
2940 OTHER_ERROR
2943 enum Data
2945 INFORMATION,
2946 BREAKPOINT,
2947 FRAME,
2948 VARIABLE,
2949 REGISTER
2952 enum OutputType
2954 OUTPUT,
2955 WARNING_OUTPUT,
2956 ERROR_OUTPUT,
2957 INFO_OUTPUT
2960 enum State
2962 BUSY,
2963 STOPPED,
2964 STARTED,
2965 PROGRAM_LOADED,
2966 PROGRAM_STOPPED,
2967 PROGRAM_RUNNING
2970 struct Frame
2972 gint thread;
2973 guint level;
2974 gchar *args;
2975 gchar *file;
2976 guint line;
2977 gchar *function;
2978 gchar *library;
2979 gulong address;
2982 /* Call back functions */
2983 typedef void (*Callback) (const gpointer data, gpointer user_data, GError* err);
2984 typedef void (*GListCallback) (const GList* list, gpointer user_data, GError* err);
2985 typedef void (*GCharCallback) (const gchar *value, gpointer user_data, GError* err);
2986 typedef void (*OutputCallback) (OutputType type, const gchar *output, gpointer user_data);
2987 typedef void (*MemoryCallback) (gulong address, guint length, const gchar *data, gpointer user_data, GError *err);
2989 /* Signals */
2992 * IAnjutaDebugger::debugger_started:
2993 * @obj: Self
2995 * fixme
2997 void ::debugger_started ();
3000 * IAnjutaDebugger::debugger_stopped:
3001 * @obj: Self
3002 * @err: Error propagation and reporting.
3004 * fixme
3006 void ::debugger_stopped (GError *err);
3009 * IAnjutaDebugger::program_loaded:
3010 * @obj: Self
3012 * fixme
3014 void ::program_loaded ();
3017 * IAnjutaDebugger::program_running:
3018 * @obj: Self
3020 * fixme
3022 void ::program_running ();
3025 * IAnjutaDebugger::program_stopped:
3026 * @obj: Self
3028 * fixme
3030 void ::program_stopped ();
3033 * IAnjutaDebugger::program_exited:
3034 * @obj: Self
3036 * fixme
3038 void ::program_exited ();
3041 * IAnjutaDebugger::sharedlib_event:
3042 * @obj: Self
3044 * fixme
3046 void ::sharedlib_event ();
3049 * IAnjutaDebugger::program_moved:
3050 * @obj: Self
3051 * @pid: process id, 0 when unknown
3052 * @tid: thread id, 0 when unknown
3053 * @address: program counter address, 0 when unknown
3054 * @file: source file where is the program counter, NULL when unknown
3055 * @line: line number if file name above is not NULL
3057 * This signal is emitted when the debugger know the current program
3058 * location. Most of the time, after the program has stopped but it
3059 * could happen even if it is still running.
3061 void ::program_moved (gint pid, gint tid, gulong address, const gchar* file, guint line);
3064 * IAnjutaDebugger::frame_changed:
3065 * @obj: Self
3066 * @frame: fixme
3067 * @thread: thread
3069 * fixme
3071 void ::frame_changed (guint frame, gint thread);
3074 * IAnjutaDebugger::signal_received:
3075 * @obj: Self
3076 * @name: Signal name
3077 * @description: Signal description
3079 * fixme
3081 void ::signal_received (const gchar* name, const gchar* description);
3084 * IAnjutaDebugger::debugger_ready:
3085 * @obj: Self
3086 * @status: fixme
3088 * fixme
3090 void ::debugger_ready (State state);
3094 * ianjuta_debugger_get_state:
3095 * @obj: Self
3096 * @err: Error propagation and reporting.
3098 * fixme
3100 * Returns: fixme
3102 State get_state ();
3108 * ianjuta_debugger_load:
3109 * @obj: Self
3110 * @file: fixme
3111 * @mime_type: fixme
3112 * @source_search_directories: fixme
3113 * @terminal: fixme
3114 * @err: Error propagation and reporting.
3116 * fixme
3118 * Returns: TRUE if sucessful, other FALSE.
3120 gboolean load (const gchar *file, const gchar *mime_type, const List<const gchar*> source_search_directories);
3123 * ianjuta_debugger_attach:
3124 * @obj: Self
3125 * @pid: fixme
3126 * @source_search_directories: fixme
3127 * @err: Error propagation and reporting.
3129 * fixme
3131 * Returns: TRUE if sucessful, other FALSE.
3133 gboolean attach (pid_t pid, const List<const gchar*> source_search_directories);
3136 * ianjuta_debugger_set_working_directory:
3137 * @obj: Self
3138 * @dir: working program directory
3139 * @err: Error propagation and reporting.
3141 * Set program working directory.
3143 * Returns: TRUE if sucessful, other FALSE.
3145 gboolean set_working_directory (const gchar *dir);
3148 * ianjuta_debugger_set_environment:
3149 * @obj: Self
3150 * @env: List environment variable
3151 * @err: Error propagation and reporting
3153 * Set environment variable
3155 * Returns: TRUE if sucessfull, other FALSE.
3157 gboolean set_environment (gchar **env);
3160 * ianjuta_debugger_start:
3161 * @obj: Self
3162 * @args: command line argument of the program
3163 * @terminal: TRUE if the program need a terminal
3164 * @stop: TRUE if program is stopped at the beginning
3165 * @err: Error propagation and reporting.
3167 * Start a loaded program under debugger control.
3169 * Returns: TRUE if sucessful, other FALSE.
3171 gboolean start (const gchar *args, gboolean terminal, gboolean stop);
3174 * ianjuta_debugger_unload:
3175 * @obj: Self
3176 * @err: Error propagation and reporting.
3178 * fixme
3180 * Returns: fixme
3182 gboolean unload ();
3185 * ianjuta_debugger_quit:
3186 * @obj: Self
3187 * @err: Error propagation and reporting.
3189 * Quit the debugger, can wait until the debugger is ready.
3191 * Returns: TRUE if sucessful, other FALSE.
3193 gboolean quit ();
3196 * ianjuta_debugger_abort:
3197 * @obj: Self
3198 * @err: Error propagation and reporting.
3200 * Quit the debugger as fast as possible.
3202 * Returns: TRUE if sucessful, other FALSE.
3204 gboolean abort ();
3207 * ianjuta_debugger_run:
3208 * @obj: Self
3209 * @err: Error propagation and reporting.
3211 * fixme
3213 * Returns: fixme
3215 gboolean run ();
3218 * ianjuta_debugger_step_in:
3219 * @obj: Self
3220 * @err: Error propagation and reporting.
3222 * fixme
3224 * Returns: fixme
3226 gboolean step_in ();
3229 * ianjuta_debugger_step_over:
3230 * @obj: Self
3231 * @err: Error propagation and reporting.
3233 * fixme
3235 * Returns: fixme
3237 gboolean step_over ();
3240 * ianjuta_debugger_step_out:
3241 * @obj: Self
3242 * @err: Error propagation and reporting.
3244 * fixme
3246 * Returns: fixme
3248 gboolean step_out ();
3251 * ianjuta_debugger_run_to:
3252 * @obj: Self
3253 * @uri: fixme
3254 * @line: fixme
3255 * @err: Error propagation and reporting.
3257 * fixme
3259 * Returns: fixme
3261 gboolean run_to (const gchar *uri, gint line);
3264 * ianjuta_debugger_exit:
3265 * @obj: Self
3266 * @err: Error propagation and reporting.
3268 * fixme
3270 * Returns: fixme
3272 gboolean exit ();
3275 * ianjuta_debugger_interrupt:
3276 * @obj: Self
3277 * @err: Error propagation and reporting.
3279 * fixme
3281 * Returns: fixme
3283 gboolean interrupt ();
3288 * ianjuta_debugger_inspect:
3289 * @obj: Self
3290 * @name: fixme
3291 * @callback: fixme
3292 * @user_data: fixme
3293 * @err: Error propagation and reporting.
3295 * fixme
3297 * Returns: fixme
3299 gboolean inspect (const gchar* name, Callback callback, gpointer user_data);
3302 * ianjuta_debugger_evaluate:
3303 * @obj: Self
3304 * @name: fixme
3305 * @value: fixme
3306 * @callback: fixme
3307 * @user_data: fixme
3308 * @err: Error propagation and reporting.
3310 * fixme
3312 * Returns: fixme
3314 gboolean evaluate (const gchar* name, const gchar* value, Callback callback, gpointer user_data);
3317 * ianjuta_debugger_print:
3318 * @obj: Self
3319 * @variable: fixme
3320 * @callback: fixme
3321 * @user_data: fixme
3322 * @err: Error propagation and reporting.
3324 * fixme
3326 * Returns: fixme
3328 gboolean print (const gchar *variable, Callback callback, gpointer user_data);
3331 * ianjuta_debugger_list_local:
3332 * @obj: Self
3333 * @callback: fixme
3334 * @user_data: fixme
3335 * @err: Error propagation and reporting.
3337 * fixme
3339 * Returns: fixme
3341 gboolean list_local (Callback callback, gpointer user_data);
3344 * ianjuta_debugger_list_argument:
3345 * @obj: Self
3346 * @callback: fixme
3347 * @user_data: fixme
3348 * @err: Error propagation and reporting.
3350 * fixme
3352 * Returns: fixme
3354 gboolean list_argument (Callback callback, gpointer user_data);
3357 * ianjuta_debugger_info_signal:
3358 * @obj: Self
3359 * @callback: fixme
3360 * @user_data: fixme
3361 * @err: Error propagation and reporting.
3363 * fixme
3365 * Returns: fixme
3367 gboolean info_signal (Callback callback, gpointer user_data);
3370 * ianjuta_debugger_info_sharedlib:
3371 * @obj: Self
3372 * @callback: fixme
3373 * @user_data: fixme
3374 * @err: Error propagation and reporting.
3376 * fixme
3378 * Returns: fixme
3380 gboolean info_sharedlib (Callback callback, gpointer user_data);
3383 * ianjuta_debugger_handle_signal:
3384 * @obj: Self
3385 * @name: fixme
3386 * @stop: fixme
3387 * @print: fixme
3388 * @ignore: fixme
3389 * @err: Error propagation and reporting.
3391 * fixme
3393 * Returns: fixme
3395 gboolean handle_signal (const gchar *name, gboolean stop, gboolean print, gboolean ignore);
3398 * ianjuta_debugger_info_frame:
3399 * @obj: Self
3400 * @frame: fixme
3401 * @callback: fixme
3402 * @user_data: fixme
3403 * @err: Error propagation and reporting.
3405 * fixme
3407 * Returns: fixme
3409 gboolean info_frame (guint frame, Callback callback, gpointer user_data);
3412 * ianjuta_debugger_info_args:
3413 * @obj: Self
3414 * @callback: fixme
3415 * @user_data: fixme
3416 * @err: Error propagation and reporting.
3418 * fixme
3420 * Returns: fixme
3422 gboolean info_args (Callback callback, gpointer user_data);
3425 * ianjuta_debugger_info_target:
3426 * @obj: Self
3427 * @funx: fixme
3428 * @user_data: fixme
3429 * @err: Error propagation and reporting.
3431 * fixme
3433 * Returns: fixme
3435 gboolean info_target (Callback callback, gpointer user_data);
3438 * ianjuta_debugger_info_program:
3439 * @obj: Self
3440 * @callback: fixme
3441 * @user_data: fixme
3442 * @err: Error propagation and reporting.
3444 * fixme
3446 * Returns: fixme
3448 gboolean info_program (Callback callback, gpointer user_data);
3451 * ianjuta_debugger_info_udot:
3452 * @obj: Self
3453 * @callback: fixme
3454 * @user_data: fixme
3455 * @err: Error propagation and reporting.
3457 * fixme
3459 * Returns: fixme
3461 gboolean info_udot (Callback callback, gpointer user_data);
3465 * ianjuta_debugger_info_variables:
3466 * @obj: Self
3467 * @callback: fixme
3468 * @user_data: fixme
3469 * @err: Error propagation and reporting.
3471 * fixme
3473 * Returns: fixme
3475 gboolean info_variables (Callback callback, gpointer user_data);
3478 * ianjuta_debugger_list_frame:
3479 * @obj: Self
3480 * @callback: fixme
3481 * @user_data: fixme
3482 * @err: Error propagation and reporting.
3484 * fixme
3486 * Returns: fixme
3488 gboolean list_frame (Callback callback, gpointer user_data);
3491 * ianjuta_debugger_set_frame:
3492 * @obj: Self
3493 * @frame: fixme
3494 * @err: Error propagation and reporting.
3496 * fixme
3498 * Returns: fixme
3500 gboolean set_frame (guint frame);
3503 * ianjuta_debugger_list_thread:
3504 * @obj: Self
3505 * @callback: fixme
3506 * @user_data: fixme
3507 * @err: Error propagation and reporting.
3509 * fixme
3511 * Returns: fixme
3513 gboolean list_thread (Callback callback, gpointer user_data);
3516 * ianjuta_debugger_set_thread:
3517 * @obj: Self
3518 * @frame: fixme
3519 * @err: Error propagation and reporting.
3521 * fixme
3523 * Returns: fixme
3525 gboolean set_thread (gint thread);
3528 * ianjuta_debugger_info_threads:
3529 * @obj: Self
3530 * @thread: fixme
3531 * @callback: fixme
3532 * @user_data: fixme
3533 * @err: Error propagation and reporting.
3535 * fixme
3537 * Returns: fixme
3539 gboolean info_thread (gint thread, Callback callback, gpointer user_data);
3542 * ianjuta_debugger_list_register:
3543 * @obj: Self
3544 * @callback: fixme
3545 * @user_data: fixme
3546 * @err: Error propagation and reporting.
3548 * fixme
3550 * Returns: fixme
3552 gboolean list_register (Callback callback, gpointer user_data);
3555 * ianjuta_debugger_send_command:
3556 * @obj: Self
3557 * @command: fixme
3558 * @err: Error propagation and reporting.
3560 * fixme
3562 * Returns: fixme
3564 gboolean send_command (const gchar *command);
3567 * ianjuta_debugger_callback:
3568 * @obj: Self
3569 * @callback: fixme
3570 * @user_data: fixme
3571 * @err: Error propagation and reporting.
3573 * fixme
3575 * Returns: fixme
3577 gboolean callback (Callback callback, gpointer user_data);
3580 * ianjuta_debugger_enable_log:
3581 * @obj: Self
3582 * @log: fixme
3583 * @err: Error propagation and reporting.
3585 * fixme
3587 * Returns: fixme
3589 void enable_log (IAnjutaMessageView *log);
3592 * ianjuta_debugger_disable_log:
3593 * @obj: Self
3594 * @err: Error propagation and reporting.
3596 * fixme
3598 * Returns: fixme
3600 void disable_log ();
3603 * SECTION:ianjuta-debugger-breakpoint
3604 * @title: IAnjutaDebuggerBreakpoint
3605 * @short_description: Breakpoint Debugger interface
3606 * @see_also:
3607 * @stability: Unstable
3608 * @include: libanjuta/interfaces/ianjuta-debugger-breakpoint.h
3611 interface IAnjutaDebuggerBreakpoint
3614 enum Type
3616 REMOVED = 1 << 0,
3617 UPDATED = 1 << 17,
3618 ON_LINE = 1 << 1,
3619 ON_ADDRESS = 1 << 2,
3620 ON_FUNCTION = 1 << 3,
3621 ON_READ = 1 << 4,
3622 ON_WRITE = 1 << 5,
3623 WITH_ENABLE = 1 << 16,
3624 WITH_IGNORE = 1 << 15,
3625 WITH_TIME = 1 << 11,
3626 WITH_CONDITION = 1 << 12,
3627 WITH_TEMPORARY = 1 << 13
3630 struct Item
3632 gint type;
3633 guint id;
3634 gchar *file;
3635 guint line;
3636 gchar *function;
3637 gulong address;
3638 gboolean enable;
3639 guint ignore;
3640 guint times;
3641 gchar *condition;
3642 gboolean temporary;
3645 enum Method
3647 SET_AT_ADDRESS = 1 << 0,
3648 SET_AT_FUNCTION = 1 << 1,
3649 ENABLE = 1 << 2,
3650 IGNORE = 1 << 3,
3651 CONDITION = 1 << 4
3655 * ianjuta_debugger_breakpoint_implement:
3656 * @obj: Self
3657 * @err: Error propagation and reporting.
3659 * Return all implemented methods.
3661 * Returns: A OR of IAnjutaDebuggerBreakpointMethod
3662 * corresponding to all implemented optional methods.
3664 gint implement ();
3667 * ianjuta_debugger_breakpoint_set_at_line:
3668 * @obj: Self
3669 * @file: File containing the breakpoint
3670 * @line: Line number where is the breakpoint
3671 * @callback: Callback to call when the breakpoint has been set
3672 * @user_data: User data that is passed back to the callback
3673 * @err: Error propagation and reporting.
3675 * Set a breakpoint at the specified line in the file.
3677 * Returns: TRUE if the request succeed and the callback is called. If
3678 * FALSE, the callback will not be called.
3680 gboolean set_at_line (const gchar* file, guint line, IAnjutaDebuggerCallback callback, gpointer user_data);
3684 * ianjuta_debugger_breakpoint_set_at_address:
3685 * @obj: Self
3686 * @address: Address of the breakpoint
3687 * @callback: Callback to call when the breakpoint has been set
3688 * @user_date: User data that is passed back to the callback
3689 * @err: Error propagation and reporting.
3691 * Set a breakpoint at the specified address.
3692 * This function is optional.
3694 * Returns: TRUE if the request succeed and the callback is called. If
3695 * FALSE, the callback will not be called.
3697 gboolean set_at_address (gulong address, IAnjutaDebuggerCallback callback, gpointer user_data);
3700 * ianjuta_debugger_breakpoint_set_at_function:
3701 * @obj: Self
3702 * @file: File containing the breakpoint
3703 * @function: Function name where the breakpoint is put
3704 * @callback: Callback to call when the breakpoint has been set
3705 * @user_data: User data that is passed back to the callback
3706 * @err: Error propagation and reporting.
3708 * Set a breakpoint at the beginning of the specified function.
3709 * This function is optional.
3711 * Returns: TRUE if the request succeed and the callback is called. If
3712 * FALSE, the callback will not be called.
3714 gboolean set_at_function (const gchar* file, const gchar* function, IAnjutaDebuggerCallback callback, gpointer user_data);
3717 * ianjuta_debugger_breakpoint_clear:
3718 * @obj: Self
3719 * @id: Breakpoint identification number
3720 * @callback: Callback to call when the breakpoint has been cleared
3721 * @user_data: User data that is passed back to the callback
3722 * @err: Error propagation and reporting.
3724 * Clear a breakpoint put by any set functions. The Id of the breakpoint
3725 * is given in the callback of the set functions.
3727 * Returns: TRUE if the request succeed and the callback is called. If
3728 * FALSE, the callback will not be called.
3730 gboolean clear (guint id, IAnjutaDebuggerCallback callback, gpointer user_data);
3733 * ianjuta_debugger_breakpoint_list:
3734 * @obj: Self
3735 * @callback: Callback to call with the list of breakpoints
3736 * @user_data: User data that is passed back to the callback
3737 * @err: Error propagation and reporting.
3739 * List all breakpoints set in the debugger. It is useful to
3740 * know how many time a breakpoint has been hit.
3742 * Returns: TRUE if the request succeed and the callback is called. If
3743 * FALSE, the callback will not be called.
3745 gboolean list (IAnjutaDebuggerCallback callback, gpointer user_data);
3748 * ianjuta_debugger_breakpoint_enable:
3749 * @obj: Self
3750 * @id: Breakpoint identification number
3751 * @enable: TRUE to enable the breakpoint, FALSE to disable it
3752 * @callback: Callback to call when the breakpoint has been changed
3753 * @user_data: User data that is passed back to the callback
3754 * @err: Error propagation and reporting.
3756 * Enable of disable a breakpoint. This function is optional.
3758 * Returns: TRUE if the request succeed and the callback is called. If
3759 * FALSE, the callback will not be called.
3761 gboolean enable (guint id, gboolean enable, IAnjutaDebuggerCallback callback, gpointer user_data);
3764 * ianjuta_debugger_breakpoint_ignore:
3765 * @obj: Self
3766 * @id: Breakpoint identification number
3767 * @ignore: Number of time a breakpoint must be ignored
3768 * @callback: Callback to call when the breakpoint has been changed
3769 * @user_data: User data that is passed back to the callback
3770 * @err: Error propagation and reporting.
3772 * This allow to ignore the breakpoint a number of time before stopping.
3773 * This function is optional.
3775 * Returns: TRUE if the request succeed and the callback is called. If
3776 * FALSE, the callback will not be called.
3778 gboolean ignore (guint id, guint ignore, IAnjutaDebuggerCallback callback, gpointer user_data);
3781 * ianjuta_debugger_breakpoint_condition:
3782 * @obj: Self
3783 * @id: Breakpoint identification number
3784 * @condition: fixme
3785 * @callback: Callback to call when the breakpoint has been changed
3786 * @user_data: User data that is passed back to the callback
3787 * @err: Error propagation and reporting.
3789 * Add a condition, evaluate in the program context, on the breakpoint,
3790 * the program will stop when it reachs the breakpoint only if the
3791 * condition is true. This function is optional.
3793 * Returns: TRUE if the request succeed and the callback is called. If
3794 * FALSE, the callback will not be called.
3796 gboolean condition (guint id, const gchar* condition, IAnjutaDebuggerCallback callback, gpointer user_data);
3800 * SECTION:ianjuta-debugger-variable
3801 * @title: IAnjutaDebuggerVariable
3802 * @short_description: Variables interface for debuggers
3803 * @see_also:
3804 * @stability: Unstable
3805 * @include: libanjuta/interfaces/ianjuta-debugger-variable.h
3807 * This interface is used to examine and change values of expression.
3808 * It is based on the MI2 variable object interface of gdb. A
3809 * variable needs to be created before being able to get or set its
3810 * value and list its children.
3812 interface IAnjutaDebuggerVariable
3814 struct Object
3816 gchar *name;
3817 gchar *expression;
3818 gchar *type;
3819 gchar *value;
3820 gboolean changed;
3821 gboolean exited;
3822 gboolean deleted;
3823 gint children;
3827 * ianjuta_debugger_variable_create:
3828 * @obj: Self
3829 * @expression: Variable expression
3830 * @callback: Callback to call when the variable has been created
3831 * @user_data: User data that is passed back to the callback
3832 * @err: Error propagation and reporting.
3834 * Create a new variable object in the current thread and frame.
3836 * Returns: TRUE if the request succeed and the callback is
3837 * called. If FALSE, the callback will not be called.
3839 gboolean create (const gchar *expression, IAnjutaDebuggerCallback callback, gpointer user_data);
3842 * ianjuta_debugger_variable_list_children:
3843 * @obj: Self
3844 * @name: Variable name
3845 * @callback: Callback to call when the children have been
3846 * created
3847 * @user_data: User data that is passed back to the callback
3848 * @err: Error propagation and reporting.
3850 * List and create objects for all children of a
3851 * variable object.
3853 * Returns: TRUE if the request succeed and the callback is
3854 * called. If FALSE, the callback will not be called.
3856 gboolean list_children (const gchar *name, IAnjutaDebuggerCallback callback, gpointer user_data);
3859 * ianjuta_debugger_variable_evaluate:
3860 * @obj: Self
3861 * @name: Variable name
3862 * @callback: Callback to call with the variable value
3863 * @user_data: User data that is passed back to the callback
3864 * @err: Error propagation and reporting.
3866 * Get the value of one variable or child object.
3868 * Returns: TRUE if the request succeed and the callback is
3869 * called. If FALSE, the callback will not be called.
3871 gboolean evaluate (const gchar *name, IAnjutaDebuggerCallback callback, gpointer user_data);
3874 * ianjuta_debugger_variable_assign:
3875 * @obj: Self
3876 * @name: Variable name
3877 * @value: Variable value
3878 * @err: Error propagation and reporting.
3880 * Set the value of one variable or child object.
3882 * Returns: TRUE if the request succeed and the callback is
3883 * called. If FALSE, the callback will not be called.
3885 gboolean assign (const gchar *name, const gchar *value);
3888 * ianjuta_debugger_variable_update:
3889 * @obj: Self
3890 * @callback: Callback to call with the list of all changed
3891 * variables
3892 * @user_data: User data that is passed back to the callback
3893 * @err: Error propagation and reporting.
3895 * List all changed variable objects since the last call.
3897 * Returns: TRUE if the request succeed and the callback is
3898 * called. If FALSE, the callback will not be called.
3900 gboolean update (IAnjutaDebuggerCallback callback, gpointer user_data);
3903 * ianjuta_debugger_variable_destroy:
3904 * @obj: Self
3905 * @name: Variable name
3906 * @err: Error propagation and reporting.
3908 * Delete a previously created variable or child object
3909 * including its own children.
3911 * Returns: TRUE if the request succeed and the callback is
3912 * called. If FALSE, the callback will not be called.
3914 gboolean destroy (const gchar *name);
3918 * SECTION:ianjuta-debugger-register
3919 * @title: IAnjutaDebuggerRegister
3920 * @short_description: Register interface for debuggers
3921 * @see_also:
3922 * @stability: Unstable
3923 * @include: libanjuta/interfaces/ianjuta-debugger-register.h
3925 * This interface is used to examine and change values of CPU registers.
3927 interface IAnjutaDebuggerRegister
3930 struct Data
3932 guint num;
3933 gchar *name;
3934 gchar *value;
3938 * ianjuta_debugger_register_list:
3939 * @obj: Self
3940 * @callback: Callback to call with the register list
3941 * @user_data: User data that is passed back to the callback
3942 * @err: Error propagation and reporting.
3944 * List all registers of the target. This function can be called without
3945 * a program loaded, the value field of register structure is not filled.
3947 * Returns: TRUE if the request succeed and the callback is
3948 * called. If FALSE, the callback will not be called.
3950 gboolean list (IAnjutaDebuggerCallback callback, gpointer user_data);
3953 * ianjuta_debugger_register_update:
3954 * @obj: Self
3955 * @callback: Callback call with the list of all modified registers
3956 * @user_data: User data that is passed back to the callback
3957 * @err: Error propagation and reporting.
3959 * Return all modified registers since the last call. Only the num and
3960 * value field are used.
3962 * Returns: TRUE if the request succeed and the callback is
3963 * called. If FALSE, the callback will not be called.
3965 gboolean update (IAnjutaDebuggerCallback callback, gpointer user_data);
3968 * ianjuta_debugger_register_write:
3969 * @obj: Self
3970 * @value: Modified register with a new value
3971 * @err: Error propagation and reporting.
3973 * Change the value of one register. Only the num and value field are used.
3975 * Returns: TRUE if the request succeed.
3977 gboolean write (Data *value);
3981 * SECTION:ianjuta-debugger-memory
3982 * @title: IAnjutaDebuggerMemory
3983 * @short_description: Memory interface for debuggers
3984 * @see_also:
3985 * @stability: Unstable
3986 * @include: libanjuta/interfaces/ianjuta-debugger-memory.h
3988 * This interface is used to examine the target memory.
3990 interface IAnjutaDebuggerMemory
3992 struct Block
3994 gulong address;
3995 guint length;
3996 gchar *data;
4000 * ianjuta_debugger_memory_inspect:
4001 * @obj: Self
4002 * @address: Start address of the memory block
4003 * @length: Length of memory block
4004 * @callback: Call back with a IAnjutaDebuggerMemoryBlock as argument
4005 * @user_data: User data that is passed back to the callback
4006 * @err: Error propagation and reporting.
4008 * Read a block of the target memory.
4010 * Returns: TRUE if the request succeed and the callback is
4011 * called. If FALSE, the callback will not be called.
4013 gboolean inspect (gulong address, guint length, IAnjutaDebuggerCallback callback, gpointer user_data);
4017 * SECTION:ianjuta-debugger-instruction
4018 * @title: IAnjutaDebuggerInstruction
4019 * @short_description: Debugger interface for machine instruction
4020 * @see_also:
4021 * @stability: Unstable
4022 * @include: libanjuta/interfaces/ianjuta-debugger-instruction.h
4024 * This interface is used to debuger as machine instruction level.
4026 interface IAnjutaDebuggerInstruction
4029 struct ALine
4031 gulong address;
4032 const gchar *label;
4033 const gchar *text;
4036 struct Disassembly
4038 guint size;
4039 ALine data[];
4043 * ianjuta_debugger_instruction_disassemble:
4044 * @obj: Self
4045 * @address: Start address of the memory block
4046 * @length: Length of memory block
4047 * @callback: Call back with a IAnjutaDebuggerInstructionDisassembly as argument
4048 * @user_data: User data that is passed back to the callback
4049 * @err: Error propagation and reporting.
4051 * Disassemble a part of the memory
4053 * Returns: TRUE if the request succeed and the callback is
4054 * called. If FALSE, the callback will not be called.
4056 gboolean disassemble (gulong address, guint length, IAnjutaDebuggerCallback callback, gpointer user_data);
4059 * ianjuta_debugger_instruction_step_in:
4060 * @obj: Self
4061 * @err: Error propagation and reporting.
4063 * Execute one assembler instruction in the program.
4065 * Returns: TRUE if the request succeed and the callback is called. If
4066 * FALSE, the callback will not be called.
4068 gboolean step_in ();
4071 * ianjuta_debugger_instruction_step_over:
4072 * @obj: Self
4073 * @err: Error propagation and reporting.
4075 * Execute one assembler instruction in the program, if the instruction
4076 * is a function call, continues until the function returns.
4078 * Returns: TRUE if the request succeed and the callback is called. If
4079 * FALSE, the callback will not be called.
4081 gboolean step_over ();
4084 * ianjuta_debugger_instruction_run_to_address:
4085 * @obj: Self
4086 * @address: Run to this addresss
4087 * @err: Error propagation and reporting.
4089 * Start the program until it reachs the address address
4091 * Returns: TRUE if the request succeed and the callback is called. If
4092 * FALSE, the callback will not be called.
4094 gboolean run_to_address (gulong address);
4100 * SECTION:ianjuta-debug-manager
4101 * @title: IAnjutaDebugManager
4102 * @short_description: Common graphical interface to all debugger
4103 * @see_also:
4104 * @stability: Unstable
4105 * @include: libanjuta/interfaces/ianjuta-debug-manager.h
4107 * This interface wrap the real debugger plugin and provide a
4108 * common graphical user interface.
4111 interface IAnjutaDebugManager
4113 #include "ianjuta-debugger.h"
4114 #include "ianjuta-debugger-breakpoint.h"
4116 /* Signals */
4119 * IAnjutaDebugManager::debugger_started:
4120 * @obj: Self
4122 * This signal is emitted when the debugger is started.
4124 void ::debugger_started ();
4127 * IAnjutaDebugManager::debugger_stopped:
4128 * @obj: Self
4129 * @err: Error propagation and reporting.
4131 * This signal is emitted when the debugger is stopped.
4133 void ::debugger_stopped (GError *err);
4136 * IAnjutaDebugManager::program_loaded:
4137 * @obj: Self
4139 * This signal is emitted when a program is loaded most of the
4140 * time just before the first program_stopped signal.
4142 void ::program_loaded ();
4145 * IAnjutaDebugManager::program_unloaded:
4146 * @obj: Self
4148 * This signal is emitted when a program is unloaded. If the
4149 * debugger is stopped while a program is loaded, this signal
4150 * is emitted before the debugger_stopped signal.
4152 void ::program_unloaded ();
4155 * IAnjutaDebugManager::program_started:
4156 * @obj: Self
4158 * This signal is emitted when the program is started. If the
4159 * program starts and is stopped by the debugger, a program-stopped
4160 * signal will be emitted too. If the program starts is not stopped
4161 * by the debugger a program-running signal will be emitted.
4163 void ::program_started ();
4166 * IAnjutaDebugManager::program_exited:
4167 * @obj: Self
4169 * This signal is emitted when the program is unloaded. If the
4170 * debugger is stopped while a program is running or stopped, this
4171 * signal is emitted before the program_unloaded signal.
4173 void ::program_exited ();
4176 * IAnjutaDebugManager::program_stopped:
4177 * @obj: Self
4179 * This signal is emitted when the program is stopped.
4181 void ::program_stopped ();
4184 * IAnjutaDebugManager::program_running:
4185 * @obj: Self
4187 * This signal is emitted when the program is running.
4189 void ::program_running ();
4193 * IAnjutaDebugManager::sharedlib_event:
4194 * @obj: Self
4196 * This signal is emitted when a new shared library is loaded. It
4197 * is useful to try to set pending breakpoints those could be in
4198 * the newly loaded library.
4200 void ::sharedlib_event ();
4203 * IAnjutaDebugManager::program_moved:
4204 * @obj: Self
4205 * @pid: process id, 0 when unknown
4206 * @tid: thread id, 0 when unknown
4207 * @address: program counter address, 0 when unknown
4208 * @file: source file where is the program counter, NULL when unknown
4209 * @line: line number if file name above is not NULL
4211 * This signal is emitted when the debugger know the current program
4212 * location. Most of the time, after the program has stopped but it
4213 * could happen even if it is still running.
4215 void ::program_moved (gint pid, gint tid, gulong address, const gchar* file, guint line);
4218 * IAnjutaDebugManager::frame_changed:
4219 * @obj: Self
4220 * @frame: frame
4221 * @thread: thread
4223 * This signal is emitted when the current frame is changed. It is
4224 * equal to the top frame in the interrupted thread when the
4225 * program stops but can be changed afterward by the user.
4226 * Several commands use this current frame, by example the register
4227 * window display the register values for the current thread only.
4229 void ::frame_changed (guint frame, gint thread);
4232 * IAnjutaDebugManager::location_changed:
4233 * @obj: Self
4234 * @address: program counter address, 0 when unknown
4235 * @uri: source file where is the program counter, NULL when unknown
4236 * @line: line number if file name above is not NULL
4238 * This signal is emitted when the current location is changed. It is
4239 * equal to the program location when the program stops but can be
4240 * changed afterward by the user.
4242 void ::location_changed (gulong address, const gchar* uri, guint line);
4245 * IAnjutaDebugManager::signal_received:
4246 * @obj: Self
4247 * @name: Signal name
4248 * @description: Signal description
4250 * This signal is emitted when the debugged program receives a
4251 * unix signal.
4253 void ::signal_received (const gchar* name, const gchar* description);
4256 * IAnjutaDebugManager::breakpoint_changed:
4257 * @obj: Self
4258 * @breakpoint: Breakpoint
4259 * @err: Error propagation and reporting.
4261 * This signal is emitted when a breakpoint is changed. It includes
4262 * new breakpoint and deleted breakpoint.
4264 void ::breakpoint_changed (IAnjutaDebuggerBreakpointItem *breakpoint);
4268 * SECTION:ianjuta-vcs
4269 * @title: IAnjutaVcs
4270 * @short_description: Version control system interface
4271 * @see_also:
4272 * @stability: Unstable
4273 * @include: libanjuta/interfaces/ianjuta-vcs.h
4276 interface IAnjutaVcs
4279 * ianjuta_vcs_add:
4280 * @filename: String with the filename
4281 * @obj: Self
4282 * @err: Error propagation and reporting
4284 * Add filename to the cvs repositry.
4286 void add(const gchar* filename);
4289 * ianjuta_cvs_remove:
4290 * @filename: String with the filename
4291 * @obj: Self
4292 * @err: Error propagation and reporting
4294 * Remove filename to the cvs repositry. Note that the file
4295 * is not removed physicly. This function will fail if the file
4296 * still exists on disc.
4298 void remove(const gchar* filename);
4301 * ianjuta_vcs_update:
4302 * @filename: String with the filename
4303 * @recurse: TRUE to recurse into subdirectories
4304 * @obj: Self
4305 * @err: Error propagation and reporting
4307 * Update filename with the cvs repositry.
4309 void update(const gchar* filename, gboolean recurse);
4312 * ianjuta_vcs_commit:
4313 * @filename: String with the filename
4314 * @log: The log message for the commit or ""
4315 * @recurse: TRUE to recurse into subdirectories
4316 * @obj: Self
4317 * @err: Error propagation and reporting
4319 * Commit changes in filename to the cvs repositry.
4321 void commit(const gchar* filename, const gchar* log, gboolean recurse);
4325 * SECTION:ianjuta-macro
4326 * @title: IAnjutaMacro
4327 * @short_description: Macro processor interface
4328 * @see_also:
4329 * @stability: Unstable
4330 * @include: libanjuta/interfaces/ianjuta-macro.h
4333 interface IAnjutaMacro
4336 * ianjuta_macro_insert:
4337 * @key: Key of the macro
4338 * @obj: Self
4339 * @err: Error propagation and reporting
4341 * Insert Macro to editor
4343 void insert(const gchar* key);
4347 * SECTION:ianjuta-symbol
4348 * @title: IAnjutaSymbol
4349 * @short_description: Source code symbol interface
4350 * @see_also: #IAnjutaSymbolManager
4351 * @stability: Unstable
4352 * @include: libanjuta/interfaces/ianjuta-symbol.h
4355 interface IAnjutaSymbol
4357 #include <gdk/gdkpixbuf.h>
4359 enum Type
4361 TYPE_UNDEF = 0, // Unknown type
4362 TYPE_CLASS = 1, // Class declaration
4363 TYPE_ENUM = 2, // Enum declaration
4364 TYPE_ENUMERATOR = 4, // Enumerator value
4365 TYPE_FIELD = 8, // Field (Java only)
4366 TYPE_FUNCTION = 16, // Function definition
4367 TYPE_INTERFACE = 32, // Interface (Java only)
4368 TYPE_MEMBER = 64, // Member variable of class/struct
4369 TYPE_METHOD = 128, // Class method (Java only)
4370 TYPE_NAMESPACE = 256, // Namespace declaration
4371 TYPE_PACKAGE = 512, // Package (Java only)
4372 TYPE_PROTOTYPE = 1024, // Function prototype
4373 TYPE_STRUCT = 2048, // Struct declaration
4374 TYPE_TYPEDEF = 4096, // Typedef
4375 TYPE_UNION = 8192, // Union
4376 TYPE_VARIABLE = 16384, // Variable
4377 TYPE_EXTERNVAR = 32768, // Extern or forward declaration
4378 TYPE_MACRO = 65536, // Macro (without arguments)
4379 TYPE_MACRO_WITH_ARG = 131072, // Parameterized macro
4380 TYPE_FILE = 262144, // File (Pseudo tag)
4381 TYPE_OTHER = 524288, // Other (non C/C++/Java tag)
4382 TYPE_MAX = 1048575 // Maximum value
4385 /* Field masks -- used mainly to retrieve fields of a symbol */
4386 enum Field
4389 FIELD_SIMPLE = 0, // With this field you will have name, line of declaration,
4390 // is_file_scope and signature of the symbol
4391 FIELD_FILE_PATH = 1,
4392 FIELD_IMPLEMENTATION = 2,
4393 FIELD_ACCESS = 4,
4394 FIELD_KIND = 8,
4395 FIELD_TYPE = 16,
4396 FIELD_TYPE_NAME = 32,
4397 FIELD_LANGUAGE = 64,
4398 FIELD_FILE_IGNORE = 128,
4399 FIELD_FILE_INCLUDE = 256,
4400 FIELD_PROJECT_NAME = 512,
4401 FIELD_WORKSPACE_NAME = 1024
4405 * ianjuta_symbol_get_name:
4406 * The name of the symbol
4408 const gchar *get_name ();
4411 * ianjuta_symbol_get_uri:
4412 * The uri of the symbol
4414 const gchar *get_uri();
4417 * ianjuta_symbol_get_line:
4418 * Line of the file in which the symbol is declared.
4420 gulong get_line ();
4423 * ianjuta_symbol_is_local:
4424 * Is the symbol a static (private) one?
4426 gboolean is_local ();
4429 * ianjuta_symbol_get_args:
4430 * If symbol is a function then this will return a string with the args.
4432 const gchar *get_args ();
4435 * ianjuta_symbol_get_sym_type:
4436 * You can obtain an IAnjutaSymbolType of the symbol.
4437 * To have a string representation see ianjuta_symbol_get_extra_info_string ().
4438 * You *need* a symbol with FIELD_TYPE enabled attribute. e.g. use ianjuta_symbol_manager_search
4439 * passing FIELD_TYPE as info_fields.
4441 Type get_sym_type ();
4443 /**
4444 * ianjuta_symbol_get_extra_info_string:
4445 * @sym_info: Just one FIELD_* per time. It is NOT possible to pass something like
4446 * FIELD_1 | FIELD_2 | ...
4448 const gchar *get_extra_info_string (Field sym_info);
4450 /**
4451 * Pixbuf icon representing the symbol.
4452 * You *need* a symbol with FIELD_ACCESS | FIELD_KIND enabled attribute. e.g. use
4453 * ianjuta_symbol_manager_search passing FIELD_ACCESS | FIELD_KIND as info_fields.
4455 const GdkPixbuf *get_icon ();
4460 * SECTION:ianjuta-symbol-manager
4461 * @title: IAnjutaSymbolManager
4462 * @short_description: Source code symbols manager inteface
4463 * @see_also: #IAnjutaSymbol
4464 * @stability: Unstable
4465 * @include: libanjuta/interfaces/ianjuta-symbol-manager.h
4468 interface IAnjutaSymbolManager
4470 #include "ianjuta-iterable.h"
4471 #include "ianjuta-symbol.h"
4474 * ianjuta_symbol_manager_search:
4475 * @obj: Self
4476 * @match_types: If passed IANJUTA_TYPE_UNDEF the function will not perfom any filter.
4477 * @include_types: Should the result contain or exclude the match_types? TRUE to include them,
4478 * FALSE to exclude. For example use may want all symbols but classes.
4479 * @match_name: fixme
4480 * @partial_name_match: if TRUE it will search for %match_name%, it FALSE for the exact
4481 * string match_name.
4482 * @global_search: if TRUE it will search only for public/extern functions.
4483 * If FALSE it will search also for static/private functions.
4484 * @results_limit Limit results to an upper bound. -1 If you don't want to use this par.
4485 * @results_offset Skip results_offset results. -1 If you don't want to use this par.
4486 * @err: Error propagation and reporting.
4488 * Database query. Returned iterable must be unrefed after use.
4490 * Returns: fixme
4492 IAnjutaIterable* search (IAnjutaSymbolType match_types, gboolean include_types, IAnjutaSymbolField info_fields, const gchar *match_name, gboolean partial_name_match, gboolean global_search, gint results_limit, gint results_offset);
4495 * ianjuta_symbol_manager_get_members:
4496 * @obj: Self
4497 * @symbol_name: fixme
4498 * @global_search: fixme
4499 * @err: Error propagation and reporting.
4501 * Database query. Returned iterable must be unrefed after use.
4503 * Returns: fixme
4505 IAnjutaIterable* get_members (IAnjutaSymbol *symbol, IAnjutaSymbolField info_fields, gboolean global_search);
4508 * ianjuta_symbol_manager_get_parents:
4509 * @obj: Self
4510 * @symbol_name: fixme
4511 * @err: Error propagation and reporting.
4513 * fixme
4515 * Returns: fixme
4517 IAnjutaIterable* get_class_parents (IAnjutaSymbol *symbol, IAnjutaSymbolField info_fields);
4521 * SECTION:ianjuta-print
4522 * @title: IAnjutaPrint
4523 * @short_description: Print interface
4524 * @see_also:
4525 * @stability: Unstable
4526 * @include: libanjuta/interfaces/ianjuta-print.h
4529 interface IAnjutaPrint
4532 * ianjuta_print_print:
4533 * @obj: Self
4534 * @err: Error propagation and reporting.
4536 * Print the plugin (the file in case of the editor). In most cases this will show
4537 * a print dialog
4539 void print();
4542 * ianjuta_print_print:
4543 * @obj: Self
4544 * @err: Error propagation and reporting.
4546 * Show print preview dialog
4549 void print_preview();
4553 * SECTION:ianjuta-language-support
4554 * @title: IAnjutaLanguageSupport
4555 * @short_description: Programming language specific supports from plugins
4556 * @see_also:
4557 * @stability: Unstable
4558 * @include: libanjuta/interfaces/ianjuta-language-support.h
4561 interface IAnjutaLanguageSupport
4563 List<const gchar*> get_supported_languages ();
4564 gboolean supports(const gchar *language);
4568 * SECTION:ianjuta-preferences
4569 * @title: IAnjutaPreferences
4570 * @short_description: Preferences interface
4571 * @see_also:
4572 * @stability: Unstable
4573 * @include: libanjuta/interfaces/ianjuta-preferences
4576 interface IAnjutaPreferences
4578 #include <libanjuta/anjuta-preferences.h>
4580 * ianjuta_preferences_merge:
4581 * @obj: Self
4582 * @prefs: AnjutaPreferences to install to
4583 * @err: Error propagation and reporting.
4585 * When called, the plugin should install it's preferences
4587 void merge(AnjutaPreferences* prefs);
4590 * ianjuta_preferences_unmerge:
4591 * @obj: Self
4592 * @prefs: AnjutaPreferences to install to
4593 * @err: Error propagation and reporting.
4595 * When called, the plugin should uninstall it's preferences
4597 void unmerge(AnjutaPreferences* prefs);
4601 * SECTION:ianjuta-plugin-factory
4602 * @title: IAnjutaPluginFactory
4603 * @short_description: Create Anjuta plugin objects
4604 * @see_also:
4605 * @stability: Unstable
4606 * @include: libanjuta/interfaces/ianjuta-plugin-factory.h
4608 * This interface is used to create all Anjuta plugin objects. It is
4609 * already implemented inside Anjuta by an object able to load plugins written
4610 * in C. In order to load plugins in other languages (or in a different way),
4611 * a loader plugin implementing this interface must be written first, probably
4612 * in C.
4615 interface IAnjutaPluginFactory
4617 #include <libanjuta/anjuta-plugin.h>
4618 #include <libanjuta/anjuta-shell.h>
4619 #include <libanjuta/anjuta-plugin-handle.h>
4622 * IAnjutaPluginFactoryError:
4623 * @IANJUTA_PLUGIN_FACTORY_MISSING_LOCATION: Module file location is
4624 * missing in .plugin file
4625 * @IANJUTA_PLUGIN_FACTORY_MISSING_TYPE: Plugin type (just after
4626 * double colon following location) is missing in .plugin file
4627 * @IANJUTA_PLUGIN_FACTORY_MISSING_MODULE: Module file name not found,
4628 * plugin module is probably not installed
4629 * @IANJUTA_PLUGIN_FACTORY_UNLOADABLE_MODULE: Module file cannot be
4630 * loaded, not a shared library perhaps
4631 * @IANJUTA_PLUGIN_FACTORY_MISSING_FUNCTION: Module does not contain
4632 * registration function, library is not an anjuta plugin or
4633 * is not for the right version
4634 * @IANJUTA_PLUGIN_FACTORY_INVALID_TYPE: Module has not registered
4635 * plugin type, library is not an anjuta plugin or not for
4636 * the right version
4637 * @IANJUTA_PLUGIN_FACTORY_UNKNOWN_ERROR: Another error
4639 * These enumeration is used to specify errors.
4641 enum Error
4643 OK = 0,
4644 MISSING_LOCATION,
4645 MISSING_TYPE,
4646 MISSING_MODULE,
4647 INVALID_MODULE,
4648 MISSING_FUNCTION,
4649 INVALID_TYPE,
4650 UNKNOWN_ERROR,
4654 * ianjuta_plugin_factory_new_plugin:
4655 * @obj: Self
4656 * @handle: Plugin information
4657 * @shell: Anjuta shell
4658 * @err: Error propagation and reporting.
4660 * Create a new AnjutaPlugin object from the plugin information handle,
4661 * give it the AnjutaShell object as argument.
4663 * Return value: a new plugin object
4665 AnjutaPlugin* new_plugin (AnjutaPluginHandle* handle, AnjutaShell *shell);
4669 * SECTION:ianjuta-language
4670 * @title: IAnjutaLanguage
4671 * @short_description: Interface to manager multiple programming languages
4672 * @see_also:
4673 * @stability: Unstable
4674 * @include: libanjuta/interfaces/ianjuta-language.h
4678 interface IAnjutaLanguage
4680 #include <libanjuta/interfaces/ianjuta-editor-language.h>
4681 typedef gint Id;
4684 * ianjuta_language_from_mime_type:
4685 * @obj: Self
4686 * @mime_type: A mime type to get the language for
4688 * Returns: A language Id or 0 in case no language was found
4690 Id get_from_mime_type (const gchar* mime_type);
4693 * ianjuta_language_from_string:
4694 * @obj: Self
4695 * @string: A string representation of the language. Note that multiple
4696 * strings may describe the language like C++ and Cpp
4698 * Returns: A language Id or 0 in case no language was found
4700 Id get_from_string (const gchar* string);
4703 * ianjuta_language_get_name:
4704 * @obj: Self
4705 * @id: A valid language id
4707 * Returns: The main name of the language. When you call ianjuta_language_from_string()
4708 * before that method the string you get here might be different to the one you passed
4709 * because the language might have multiple string representations
4711 const gchar* get_name(Id id);
4714 * ianjuta_language_get_strings
4715 * @obj: Self
4716 * @id: A valid language id
4718 * Returns: A list of strings that represent this language that language
4720 List<const gchar*> get_strings(Id id);
4723 * ianjuta_language_get_from_editor:
4724 * @obj: Self
4725 * @editor: An object implementing IAnjutaEditorLanguage
4726 * @err: Error propagation
4728 * Conviniece method to get the id directly from the editor
4730 * Returns: A valid language id or 0
4733 IAnjutaLanguageId get_from_editor (IAnjutaEditorLanguage* editor);
4736 * ianjuta_language_get_name_from_editor:
4737 * @obj: Self
4738 * @editor: An object implementing IAnjutaEditorLanguage
4739 * @err: Error propagation
4741 * Conviniece method to get the name directly from the editor
4743 * Returns: A language name or NULL
4746 const gchar* get_name_from_editor (IAnjutaEditorLanguage* editor);