/* cssed (c) Iago Rubio 2003, 2005 - A tiny CSS editor. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * - SPECIAL EXCEPTION - * * Linking cssed statically or dynamically with other modules is making a * combined work based on cssed. Thus, the terms and conditions of the GNU * General Public License cover the whole combination. * * As a special exception, the copyright holders of cssed give you * permission to link cssed with independent modules that communicate with * cssed solely through this file's plugable interface, regardless of the * license terms of these independent modules, and to copy and distribute the * resulting combined work under terms of your choice, provided that * every copy of the combined work is accompanied by a complete copy of * the source code of cssed (the version of cssed used to produce the * combined work), being distributed under the terms of the GNU General * Public License plus this exception. An independent module is a module * which is not derived from or based on cssed. * * Note that people who make modified versions of cssed are NOT obligated * to grant this special exception for their modified versions; it is * their choice whether to do so. The GNU General Public License gives * permission to release a modified version without this exception; this * exception also makes it possible to release a modified version which * carries forward this exception. */ /** @file plugin.h * @brief Header file for cssed plugin interface. * Those functions are the plugable interface to extend cssed. */ /** @struct _CssedPluginPriv. * @brief This object is opaque and should be ignored. */ typedef struct _CssedPluginPriv CssedPluginPriv; /** @typedef CssedPlugin * @brief A data type for ::_CssedPlugin structures. */ typedef struct _CssedPlugin CssedPlugin; /** Returns the character position at the start of a line. * It returns the character position as an integer, in the first character of * the line number passed. * @param plugin - The plugin object. * @param line - The line number to get the character position. * @return an integer with the character position. * @deprecated This function is deprecated, use ::cssed_plugin_get_position_from_line instead. */ gint cssed_plugin_get_position_at_line ( CssedPlugin* plugin, gint line ); /** @struct _CssedPlugin. * @brief This object represents a plugin. * One ::CssedPlugin object's pointer must be returned with the function * ::CssedPlugin *init_plugin() exported by the module . *

* You can create this object static or reserve memory for it and then return * it in the init_plugin() function . *

* @ref hello_world "[view example]" */ struct _CssedPlugin { /** The plugin's name. One name to show to users in the plugin's list. */ gchar *name; /** Plugin short description. One short description to show to users in the plugin's list.*/ gchar *description; /** Plugin load function. It will be called by cssed to initialize the plugin, put all your UI construction and initialization code here. */ gboolean (*load_plugin) (CssedPlugin*); /** Plugin clean function. It will be called by cssed before unloading the plugin, put all your UI destruction and free all memory here. */ void (*clean_plugin) (CssedPlugin*); /** Use this field to store plugin's needed data. You can use this field to pass any data needed by your implementation. */ gpointer user_data; /** Private data. This field is opaque and should be ignored */ CssedPluginPriv* priv; }; /** To be used as a widget callback. * This function lets you unload the plugin from a signal, using it as the signal's callback. * @param widget - The widget that caused the signal. * @param plugin - A pointer to the plugin object. */ void cssed_plugin_unload_callback( GtkWidget* widget, gpointer plugin ); /** Adds a menu item to the plugin's menu. * This function lets you add an item to the plugin's menu, you must set the callbacks. * yourself. * @param plugin - A pointer to the plugin object. * @param menu_item - The menu item widget to add. */ gboolean cssed_add_menu_item_to_plugins_menu( CssedPlugin* plugin, GtkWidget* menu_item); /** Adds a menu item to the toolbar. * This function lets you add an item to the plugin's menu, you must set the callbacks. * yourself. * @param plugin - A pointer to the plugin object. * @param widget - The widget to add. * @param tooltip_text - The text shown to the user in a tool tip box. * @param tooltip_private_text - A biggest description to show to users. */ gboolean cssed_plugin_add_widget_to_toolbar( CssedPlugin* plugin, GtkWidget* widget, const char *tooltip_text, const char *tooltip_private_text ); /** Adds a widget to the application's footer panel. * This function lets you add an item to the footer's panel, you must set the callbacks. * yourself. * @param plugin - A pointer to the plugin object. * @param widget - The menu item widget to add. * @param label_text - A text to be shown in the notebook's tab label. */ gboolean cssed_plugin_add_page_with_widget_to_footer( CssedPlugin* plugin, GtkWidget* widget, gchar* label_text ); /** Removes a widget from the application's footer panel. * This function lets you remove a widget from the footer's panel * @param plugin - A pointer to the plugin object. * @param widget - The widget to be removed. */ gboolean cssed_plugin_remove_page_with_widget_in_footer( CssedPlugin* plugin, GtkWidget* widget ); /** Adds a widget to the sidebar. * This function lets you add a widget to the sidebar, you must set the callbacks. * yourself. * @param plugin - A pointer to the plugin object. * @param widget - The widget to add. * @param label_text - A text to be shown in the notebook's tab label. */ gboolean cssed_plugin_add_page_with_widget_to_sidebar( CssedPlugin* plugin, GtkWidget* widget, gchar* label_text ); /** Removes a widget from the application's side bar. * This function lets you remove a widget from the side bar. * @param plugin - A pointer to the plugin object. * @param widget - The widget to be removed. */ gboolean cssed_plugin_remove_page_with_widget_in_sidebar( CssedPlugin* plugin, GtkWidget* widget ); /** Selects the page containing a widget. * This function selects the page containing the widget passed in the sidebar notebook. * @param plugin - A pointer to the plugin object. * @param widget - The widget to be selected. */ gboolean cssed_plugin_select_page_with_widget_in_sidebar( CssedPlugin* plugin, GtkWidget* widget ); /** Selects the page containing a widget. * This function selects the page containing the widget passed in the footer notebook. * @param plugin - A pointer to the plugin object. * @param widget - The widget to be selected. */ gboolean cssed_plugin_select_page_with_widget_in_footer( CssedPlugin* plugin, GtkWidget* widget ); /** Shows an error message dialog. * It prompts a dialog to show an error to user, It may use * printf style format on the message argument and a variable * argument list matching this format. See the documentation * on printf in your system. * @param title - Brief error message. * @param message - Explained error message. */ void cssed_plugin_error_message ( gchar* title, gchar* message, ...); /** Shows a confirmation dialog. * It prompts a confirmation dialog asking the user to make a choice. It may use * printf style format on the message argument and a variable * argument list matching this format. See the documentation * on printf in your system. * @param title - Brief message. * @param message - Explained message. * @return a boolean with the user's choice. TRUE if accepts the option * explained in the message FALSE otherwise. */ gboolean cssed_plugin_confirm_dialog ( gchar* title, gchar* message, ... ); /** Opens a file. * This function opens the file passed as "filename" in cssed. * @param plugin - The plugin object. * @param filename - Full path to the file to be opened. */ void cssed_plugin_open_file( CssedPlugin* plugin, gchar* filename ); /** Shows a file selector dialog. * It prompts a dialog to let the user choose a file to be opened. * @param plugin - The plugin object. */ void cssed_plugin_open_file_with_fileselector( CssedPlugin* plugin ); /** Adds the text passed to the document. * It adds the text passed to the document at the anchor position. The whole * operation will be flagged as a single undo action. * @param plugin - The plugin object. * @param text - The text to add to the document. */ void cssed_plugin_add_text_to_document( CssedPlugin* plugin, gchar* text ); /** Gets a null terminated string with the current document's text. * You must free the returned valued if not NULL, with g_free. * @param plugin - The plugin object. * @return - A pointer to the text. * @warning You must free the returned value with g_free when no longer needed. */ gchar* cssed_plugin_get_text( CssedPlugin* plugin ); /** Selects a text range. * The selection is done from character position "start", to character * position "end". * @param plugin - The plugin object. * @param start - An integer containing the start of selection. * @param end - An integer containing the end of selection. * @deprecated This function is deprecated and should not be used in newly written code, use ::cssed_plugin_set_selection_range instead. */ void cssed_plugin_select_text_range( CssedPlugin* plugin, gint start, gint end ); /** Gets a null terminated string with selected text. * You must free the returned valued if not NULL, with g_free. * @param plugin - The plugin object. * @return - A pointer to the text or NULL if nothing is selected. * @warning You must free the returned value with g_free when no longer needed. */ gchar* cssed_plugin_get_selected_text( CssedPlugin* plugin ); /** Deletes the text selected. * If there's no selection this function has no effect. * @param plugin - The plugin object. */ void cssed_plugin_clear_selected_text( CssedPlugin* plugin ); /** Undoes one previous action. * It undoes the last text or character insertion in the document. * @param plugin - The plugin object. */ void cssed_plugin_undo_document_action ( CssedPlugin* plugin ); /** Redoes one previous action. * It redoes the last action. * @param plugin - The plugin object. */ void cssed_plugin_redo_document_action ( CssedPlugin* plugin ); /** Gets if a document have actions in the redo queue. * This function informs if the current document have actions in the redo queue. * @param plugin - The plugin object. * @return A boolean indicating if there are actions in the redo queue. * @since 0.2 (cssed-0.3.1) */ gboolean cssed_plugin_document_can_redo ( CssedPlugin* plugin ); /** Gets if a document have actions in the undo queue. * This function informs if the current document have actions in the undo queue. * @param plugin - The plugin object. * @return A boolean indicating if there are actions in the undo queue. * @since 0.2 (cssed-0.3.1) */ gboolean cssed_plugin_document_can_undo ( CssedPlugin* plugin ); /** Backwards searches and selects some text. * It searches and selects the text passed second parameter going from caret position * to the document's start. * @param plugin - The plugin object. * @param text_to_search - The text to search for. * @since 0.2 (cssed-0.3.1) */ void cssed_plugin_search_prev( CssedPlugin* plugin, gchar* text_to_search ); /** Searches and selects some text. * It searchs and selects the text passed as second parameter, searching from caret position * to the document's end. * @param plugin - The plugin object. * @param text_to_search - The text to search for. */ void cssed_plugin_search_next( CssedPlugin* plugin, gchar* text_to_search ); //////////////////////////////////////////////////////////////////////////////////////////// /** Goes to next bookmark if any. * Moves the caret to the next bookmark in current document. Or shows a message if no * bookmarks exists. * @param plugin - The plugin object. */ void cssed_plugin_bookmark_next ( CssedPlugin* plugin ); /** Goes to previous bookmark if any. * Moves the caret to the provious bookmark in current document. Or shows a message if no * bookmarks exists. * @param plugin - The plugin object. */ void cssed_plugin_bookmark_prev ( CssedPlugin* plugin ); /** Set or unset a bookmark. * It sets or unset a bookmark at a given line. It's recommended not to deal directly * with bookmarks but to use markers instead. Bookmarks should be managed by the * user and to change them - but in really speciallized cases - may be bothering. * @param plugin - The plugin object. * @param set - TRUE to set the bookmar, FALSE to unset it. * @param line - The 0 based index of the line where the bookmark is set. */ void cssed_plugin_set_bookmark_at_line ( CssedPlugin* plugin, gboolean set, gint line ); /** Queries if a bookmark is set on a given line. * It queries the bookmark state at a given line. It's recommended not to deal directly * with bookmarks but to use markers instead. Bookmarks should be managed by the * user and to change them - but in really speciallized cases - may be bothering. * @param plugin - The plugin object. * @param line - The 0 based index of the line to query. * @return a boolean idicating if the bookmar is set. */ gboolean cssed_plugin_is_bookmark_set_at_line ( CssedPlugin* plugin, gint line ); // for marker 1 arrow (validator arrow) /** Goes to next marker if any. * Moves the caret to the next marker in current document. Or shows a message if no * marker exists. * @param plugin - The plugin object. */ gboolean cssed_plugin_marker_next ( CssedPlugin* plugin ); /** Goes to previous marker if any. * Moves the caret to the provious marker in current document. Or shows a message if no * marker exists. * @param plugin - The plugin object. */ gboolean cssed_plugin_marker_prev ( CssedPlugin* plugin ); /** Set or unset a marker. * It sets or unset a marker at a given line. * @param plugin - The plugin object. * @param set - TRUE to set the bookmar, FALSE to unset it. * @param line - The 0 based index of the line where the bookmark is set. */ void cssed_plugin_set_marker_at_line ( CssedPlugin* plugin, gboolean set, gint line ); /** Queries if a marker is set on a given line. * It queries the marker state at a given line. * @param plugin - The plugin object. * @param line - The 0 based index of the line to query. * @return a boolean idicating if the bookmar is set. */ gboolean cssed_plugin_is_marker_set_at_line ( CssedPlugin* plugin, gint line ); /** Send text to cssed's output. * It sends text to cssed's output window, the text will be taken as pango markup * so if you're sending an external command output to it, you should escape the text * to be valid pango markup. It aceepts printf style format. * @param plugin - The plugin object. * @param markup - The pango markup to show in the output window. */ void cssed_plugin_output_write ( CssedPlugin* plugin, gchar *markup, ... ); /** Clears cssed's output. * It deletes all text on cssed's output window,. * @param plugin - The plugin object. */ void cssed_plugin_output_clear ( CssedPlugin* plugin ); /** Returns the line number. * It returns the line number - 0 based index - at a given character position. * @param plugin - The plugin object. * @param pos - The character position. * @return an integer with the line's number. */ gint cssed_plugin_get_line_from_position ( CssedPlugin* plugin, gint pos ); /** Returns character position. * It returns the character position - 0 based index - at a given line number. * @param plugin - The plugin object. * @param line - The 0 based index of the line to query. * @return an integer with the character position */ gint cssed_plugin_get_position_from_line ( CssedPlugin* plugin, gint line ); /** Returns character position at the caret. * It returns the character position - 0 based index - at the text insertion point. * @param plugin - The plugin object. * @return an integer with the caret position */ gint cssed_plugin_get_current_position ( CssedPlugin* plugin ); /** Sets the current position . * It moves the text insertion point to any given position. * @param plugin - The plugin object. * @param pos - The position where to move the caret. */ void cssed_plugin_set_current_position ( CssedPlugin* plugin, gint pos ); /** Sets the current line. * It moves the text insertion point to the given line. * @param plugin - The plugin object. * @param line - The line where to move the caret. */ void cssed_plugin_set_current_line ( CssedPlugin* plugin , gint line ); /** Returns the current line number. * It returns the line number where the caret is. * @param plugin - The plugin object. * @return an integer with the caret line. */ gint cssed_plugin_get_current_line ( CssedPlugin* plugin ); /** Returns the character position at the end of the line. * It returns the character position at the end of the line where * the character shich position is passed as argument is. * @param plugin - The plugin object. * @param pos - The position from where to search the end of line. * @return an integer with the character position at the end of the line. */ gint cssed_plugin_get_line_end_from_position ( CssedPlugin* plugin, gint pos); /** Cuts the selected text to the clipboard. * It copies the selected text to the clipboard, and delete the selection. * The word "clipboard" will have a different meanings depending on the platform * you're using. * @param plugin - The plugin object. */ void cssed_plugin_cut ( CssedPlugin* plugin ); /** Copy the selected text to the clipboard. * It copies the selected text to the clipboard. * The word "clipboard" will have a different meanings depending on the platform * you're using. * @param plugin - The plugin object. */ void cssed_plugin_copy ( CssedPlugin* plugin ); /** Paste the clipboard contents. * It writes the text on the clipboard at text insertion point, deleting any selection. * The word "clipboard" will have a different meanings depending on the platform * you're using. * @param plugin - The plugin object. */ void cssed_plugin_paste ( CssedPlugin* plugin ); /** Returns the selection's end. * It returns the end of the selected text. If there are no text selected * this function returns de same value as ::cssed_plugin_get_selection_start * @param plugin - The plugin object. * @return an integer with the character position at selection's end. */ gint cssed_plugin_get_selection_end ( CssedPlugin* plugin ); /** Returns the selection's start. * It returns the start of the selected text. If there are no text selected * this function returns de same value as ::cssed_plugin_get_selection_end * @param plugin - The plugin object. * @return an integer with the character position at selection's start. */ gint cssed_plugin_get_selection_start ( CssedPlugin* plugin ); /** Sets the selection's start. * It sets the start of the selected text. you need to call ::cssed_plugin_set_selection_end * to select a range of text. * @param plugin - The plugin object. * @param start - The selection's start. */ void cssed_plugin_set_selection_start ( CssedPlugin* plugin, gint start); /** Sets the selection's end. * It sets the end of the selected text. It'll select the text from current * selection's start or caret position if a call to ::cssed_plugin_set_selection_start * was not made. * @param plugin - The plugin object. * @param end - The selection's end. */ void cssed_plugin_set_selection_end ( CssedPlugin* plugin, gint end ); /** Selects a range of text. * It selects a range of text from start to end. Is as to call ::cssed_plugin_set_selection_start * ::cssed_plugin_set_selection_end in one single call. * @param plugin - The plugin object. * @param start - The selection's end. * @param end - The selection's end. */ void cssed_plugin_set_selection_range ( CssedPlugin* plugin, gint start, gint end ); /** Replaces the selected text. * It replaces the selected text on current document, with the text passed as argument. * @param plugin - The plugin object. * @param text - The replacement text. */ void cssed_plugin_replace_sel ( CssedPlugin* plugin, gchar *text ); /** Deletes the selected text. * It deletes the selected text on current document. * @param plugin - The plugin object. */ void cssed_plugin_clear_sel ( CssedPlugin* plugin ); /** It gets the document's text length. * It gets the length of current document, without the leading NULL character. You should allocate * cssed_plugin_get_length + 1 bytes to store all document's text. * @param plugin - The plugin object. */ gint cssed_plugin_get_length ( CssedPlugin* plugin ); /** It shows a user list. * It shows a pop window with the elements passed as argument shown as a list * to let the user to choose among one of them. * @param plugin - The plugin object. * @param list - An string containing the space separated elements of the list. */ void cssed_plugin_show_user_list ( CssedPlugin* plugin, gchar* list ); /** It shows an auto-completion list. * It shows a pop window with the elements passed as argument shown as a list * to let the user to choose among one of them. As the user types, the list is * scrolled to show the best match if any. * @param plugin - The plugin object. * @param len - the length of the text entered by the user - to auto complete it. * @param list - An string containing the space separated elements of the list. */ void cssed_plugin_show_autocompletion_list (CssedPlugin* plugin, gint len, gchar* list); /** It hides any user list or auto-completion list being shown. * It hides any user list as well as any auto-completion list being shown. It does nothing * if no user list nor auto-completion lists are running. * @param plugin - The plugin object. */ void cssed_plugin_autocompletion_cancel (CssedPlugin* plugin); /** It tells you if there's any list being shown. * It returns a boolean indicating if there's any user or auto-completionm list active. * @param plugin - The plugin object. * @return A boolean idicating if there's a list active. */ gboolean cssed_plugin_is_autocompletion_active (CssedPlugin* plugin); /** It selects an item on a list if active. * It selects the an item matching with the text passed as parameter * if it exists. * @param plugin - The plugin object. * @param select - The text to be selected on the list. */ void cssed_plugin_autocompletion_select (CssedPlugin* plugin, gchar* select); /** Shows a call tip. * Shows an small windown with information as function signatures. * @param plugin - The plugin object. * @param start - The character position where to show the call tip. * @param definition - The text to be shown. */ void cssed_plugin_show_calltip ( CssedPlugin* plugin, gint start, gchar* definition ); /** Cancels a call tip. * If a call tip is being show it hides it.. * @param plugin - The plugin object. */ void cssed_plugin_cancel_calltip ( CssedPlugin* plugin ); /** Informs wheter a calltip is currently active. * Returns a boolean indicating if there's a calltip activo or not * @param plugin - The plugin object. */ gboolean cssed_plugin_calltipactive ( CssedPlugin* plugin ); /** Returns the start point of a calltip. * Returns an integer indicating the position where a calltip have been shown * @param plugin - The plugin object. */ gint cssed_plugin_calltiposstart ( CssedPlugin* plugin ); // void cssed_plugin_document_grab_focus ( CssedPlugin* plugin ); // line related gchar* cssed_plugin_get_text_line (CssedPlugin* plugin, gint line); gint cssed_plugin_get_line_length (CssedPlugin* plugin, gint line); gint cssed_plugin_get_line_count (CssedPlugin* plugin); // folding void cssed_plugin_toggle_fold_at_line (CssedPlugin* plugin, gint line); gboolean cssed_plugin_get_line_is_visible (CssedPlugin* plugin, gint line); void cssed_plugin_ensure_line_is_visible (CssedPlugin* plugin, gint line); gint cssed_plugin_get_fold_level (CssedPlugin* plugin, gint line); gint cssed_plugin_get_fold_depth (CssedPlugin* plugin, gint line); void cssed_plugin_set_folding_margin_visible (CssedPlugin* plugin, gboolean set); gboolean cssed_plugin_get_folding_margin_visible (CssedPlugin* plugin); gboolean cssed_plugin_get_folding_enabled (CssedPlugin* plugin); void cssed_plugin_fold_all (CssedPlugin* plugin); void cssed_plugin_unfold_all (CssedPlugin* plugin); // validator arrow marker void cssed_plugin_set_arrow_marker_at_line (CssedPlugin* plugin, gint line); void cssed_plugin_clear_arrow_marker (CssedPlugin* plugin); // zooming void cssed_plugin_zoom_in (CssedPlugin* plugin); void cssed_plugin_zoom_out (CssedPlugin* plugin); void cssed_plugin_zoom_off (CssedPlugin* plugin); // gboolean cssed_plugin_get_modified (CssedPlugin* plugin); gboolean cssed_plugin_is_file_opened (CssedPlugin* plugin, gchar* filename); gboolean cssed_plugin_save_document (CssedPlugin* plugin); gboolean cssed_plugin_save_document_as (CssedPlugin* plugin, gchar* filename); gint cssed_plugin_get_document_index (CssedPlugin* plugin); void cssed_plugin_set_document_by_index (CssedPlugin* plugin, gint index); gint cssed_plugin_get_num_docs (CssedPlugin* plugin); gboolean cssed_plugin_new_document (CssedPlugin* plugin); gchar* cssed_plugin_document_get_filename (CssedPlugin* plugin); gint cssed_plugin_get_style_at (CssedPlugin* plugin, gint pos); gchar* cssed_plugin_prompt_for_file_to_open (CssedPlugin* plugin, gchar* dialog_title, gchar* basedir); gchar* cssed_plugin_prompt_for_file_to_save (CssedPlugin* plugin, gchar* dialog_title, gchar* basedir); gchar* cssed_plugin_prompt_for_directory_to_open (CssedPlugin* plugin, gchar* dialog_title, gchar* basedir); gchar* cssed_plugin_prompt_for_directory_to_create (CssedPlugin* plugin, gchar* dialog_title, gchar* basedir); /////////////////////////////////////////////////////////////////////////////////////////// /** Inserts a css dialog. * It inserts a css dialog defining a CSS property's value to be used by auto completion * and quick insertion. * @param plugin - The plugin object. * @param key - A key defining this value, it must be surrounded by parens - as example (border). * @param klass - A ::CssedDialogClass defining the dialog. */ void cssed_plugin_css_dialog_insert (CssedPlugin* plugin, gchar* key, gpointer klass); /** Removes a css dialog. * It removes a css dialog defining a CSS property's value to be used by auto completion * and quick insertion. * @param plugin - The plugin object. * @param key - The key used to define this value. */ void cssed_plugin_css_dialog_remove_by_keyword( CssedPlugin* plugin, gchar* key ); /** Returns a ::CssDialogClass defining a css dialog. * It returns a ::CssDialogClass defining a CSS proerty's value to be used by * auto completion. * @param plugin - The plugin object. * @param key - The key used to define this value. * @return A pointer to the ::CssDialogClass you must cast it with (CssedDialogClass*) */ gpointer cssed_plugin_css_dialog_lookup_by_keyword( CssedPlugin* plugin, gchar* key ); /** Returns a boolean indicating if the given keyword is being used. * The keyword is the trigger for most auto completion features. * @param plugin - The plugin object. * @param key - The keyword. * @return - A pointer to the ::CssDialogClass, or NULL if the key is not found. */ gboolean cssed_plugin_css_dialog_keyword_in_use( CssedPlugin* plugin, gchar* key ); /** Returns a pointer to the main ::CssedWindow. * You must not free or modify this pointer. You must cast it to ::CssedWindow pointer - use (::CssedWindow*) or * CSSED_WINDOW() at your convenience. You should not free nor modify this pointer and use it only as * parameter on function that require it. * @param plugin - The plugin object. * @return - The main cssed window object. */ gpointer cssed_plugin_get_window( CssedPlugin* plugin ); /* ******************************************************************* */ gint cssed_plugin_get_filetype_id (CssedPlugin* plugin); void cssed_plugin_set_filetype_by_id (CssedPlugin* plugin, gint id); gint cssed_plugin_get_eol_mode (CssedPlugin* plugin); void cssed_plugin_set_eol_mode (CssedPlugin* plugin, gint eol_mode); void cssed_plugin_convert_eols (CssedPlugin* plugin, gint eolmode); gint cssed_plugin_get_codepage (CssedPlugin* plugin); void cssed_plugin_set_codepage (CssedPlugin* plugin, gint codepage); /* ******************************************************************* */ gboolean cssed_plugin_get_line_endings_visible (CssedPlugin* plugin); void cssed_plugin_set_line_endings_visible (CssedPlugin* plugin, gboolean visible); gboolean cssed_plugin_get_lines_wrapped (CssedPlugin* plugin); void cssed_plugin_set_lines_wrapped (CssedPlugin* plugin, gboolean wrapped); gboolean cssed_plugin_get_white_spaces_visible (CssedPlugin* plugin); void cssed_plugin_set_white_spaces_visible (CssedPlugin* plugin, gboolean visible); GtkWidget* cssed_plugin_get_pop_menu (CssedPlugin* plugin); /** Sends a message to the underlying scintilla editor control. * With this function you've got direct access to the scintilla editor control. * You may visit scintilla.org for more information on this function. * @param plugin - The plugin object. * @param iMessage - The message identifier object. * @param wParam - message parameter. * @param lParam - message parameter. * @return - The return value depends on the message sent. */ gpointer cssed_plugin_send_scintilla_message (CssedPlugin* plugin, guint iMessage, gulong wParam, glong lParam);