Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > 0c00422fba9a46710101d04f3f3175e7 > files > 127

geany-devel-1.24.1-3.mga5.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>Geany: pluginsignals.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Geany
   &#160;<span id="projectnumber">1.24.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">pluginsignals.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Plugin Signals.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a6213005b64effff87bc3d04ded8fe9e1"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a6213005b64effff87bc3d04ded8fe9e1">build_start</a> )(GObject *obj, gpointer user_data)</td></tr>
<tr class="memdesc:a6213005b64effff87bc3d04ded8fe9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent before build is started.  <a href="#a6213005b64effff87bc3d04ded8fe9e1">More...</a><br /></td></tr>
<tr class="separator:a6213005b64effff87bc3d04ded8fe9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3e7ad907bda667327868c87af386494"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#ac3e7ad907bda667327868c87af386494">document_activate</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:ac3e7ad907bda667327868c87af386494"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when switching notebook pages.  <a href="#ac3e7ad907bda667327868c87af386494">More...</a><br /></td></tr>
<tr class="separator:ac3e7ad907bda667327868c87af386494"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc3b5e2569181e22839c3aaf6386f281"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#abc3b5e2569181e22839c3aaf6386f281">document_before_save</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:abc3b5e2569181e22839c3aaf6386f281"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent before a document is saved.  <a href="#abc3b5e2569181e22839c3aaf6386f281">More...</a><br /></td></tr>
<tr class="separator:abc3b5e2569181e22839c3aaf6386f281"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a324a8e8ecd6c40e55029e2784ff04ac8"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a324a8e8ecd6c40e55029e2784ff04ac8">document_close</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:a324a8e8ecd6c40e55029e2784ff04ac8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent before closing a document.  <a href="#a324a8e8ecd6c40e55029e2784ff04ac8">More...</a><br /></td></tr>
<tr class="separator:a324a8e8ecd6c40e55029e2784ff04ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50ddd3696cb23c30b224780ef3ace891"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a50ddd3696cb23c30b224780ef3ace891">document_filetype_set</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, <a class="el" href="structGeanyFiletype.html">GeanyFiletype</a> *filetype_old, gpointer user_data)</td></tr>
<tr class="memdesc:a50ddd3696cb23c30b224780ef3ace891"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent after the filetype of a document has been changed.  <a href="#a50ddd3696cb23c30b224780ef3ace891">More...</a><br /></td></tr>
<tr class="separator:a50ddd3696cb23c30b224780ef3ace891"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade8f8c5cef19212707729c68d018d5e3"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#ade8f8c5cef19212707729c68d018d5e3">document_new</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:ade8f8c5cef19212707729c68d018d5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when a new document is created.  <a href="#ade8f8c5cef19212707729c68d018d5e3">More...</a><br /></td></tr>
<tr class="separator:ade8f8c5cef19212707729c68d018d5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac95623e4e1fae27d235889a32525810"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#aac95623e4e1fae27d235889a32525810">document_open</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:aac95623e4e1fae27d235889a32525810"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when a new document is opened.  <a href="#aac95623e4e1fae27d235889a32525810">More...</a><br /></td></tr>
<tr class="separator:aac95623e4e1fae27d235889a32525810"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3910576540b7ea72664a82db2cffd89b"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a3910576540b7ea72664a82db2cffd89b">document_reload</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:a3910576540b7ea72664a82db2cffd89b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when an existing document is reloaded.  <a href="#a3910576540b7ea72664a82db2cffd89b">More...</a><br /></td></tr>
<tr class="separator:a3910576540b7ea72664a82db2cffd89b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90c060d0744c907382d3fa8607bd460c"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a90c060d0744c907382d3fa8607bd460c">document_save</a> )(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:a90c060d0744c907382d3fa8607bd460c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when a new document is saved.  <a href="#a90c060d0744c907382d3fa8607bd460c">More...</a><br /></td></tr>
<tr class="separator:a90c060d0744c907382d3fa8607bd460c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af601d8beb39bf8082ddd1c09c74ce892"><td class="memItemLeft" align="right" valign="top">signal gboolean(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#af601d8beb39bf8082ddd1c09c74ce892">editor_notify</a> )(GObject *obj, <a class="el" href="structGeanyEditor.html">GeanyEditor</a> *editor, SCNotification *nt, gpointer user_data)</td></tr>
<tr class="memdesc:af601d8beb39bf8082ddd1c09c74ce892"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent whenever something in the editor widget changes.  <a href="#af601d8beb39bf8082ddd1c09c74ce892">More...</a><br /></td></tr>
<tr class="separator:af601d8beb39bf8082ddd1c09c74ce892"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e81ea2fd5fc0258fb860e029b9b33bb"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a8e81ea2fd5fc0258fb860e029b9b33bb">geany_startup_complete</a> )(GObject *obj, gpointer user_data)</td></tr>
<tr class="memdesc:a8e81ea2fd5fc0258fb860e029b9b33bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent once Geany has finished all initialization and startup tasks and the GUI has been realized.  <a href="#a8e81ea2fd5fc0258fb860e029b9b33bb">More...</a><br /></td></tr>
<tr class="separator:a8e81ea2fd5fc0258fb860e029b9b33bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab60c2925cedd700059facd3401a57205"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#ab60c2925cedd700059facd3401a57205">project_close</a> )(GObject *obj, gpointer user_data)</td></tr>
<tr class="memdesc:ab60c2925cedd700059facd3401a57205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent after a project is closed.  <a href="#ab60c2925cedd700059facd3401a57205">More...</a><br /></td></tr>
<tr class="separator:ab60c2925cedd700059facd3401a57205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82402fe91492ac75d21791b477454c89"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a82402fe91492ac75d21791b477454c89">project_dialog_close</a> )(GObject *obj, GtkWidget *notebook, gpointer user_data)</td></tr>
<tr class="memdesc:a82402fe91492ac75d21791b477454c89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent before project dialog is closed.  <a href="#a82402fe91492ac75d21791b477454c89">More...</a><br /></td></tr>
<tr class="separator:a82402fe91492ac75d21791b477454c89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fc43dab40ed7d9cc12145722ede7514"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a5fc43dab40ed7d9cc12145722ede7514">project_dialog_confirmed</a> )(GObject *obj, GtkWidget *notebook, gpointer user_data)</td></tr>
<tr class="memdesc:a5fc43dab40ed7d9cc12145722ede7514"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when the settings dialog is confirmed by the user.  <a href="#a5fc43dab40ed7d9cc12145722ede7514">More...</a><br /></td></tr>
<tr class="separator:a5fc43dab40ed7d9cc12145722ede7514"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa1316ec7f947022c7a9b23f6230155b"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#aaa1316ec7f947022c7a9b23f6230155b">project_dialog_open</a> )(GObject *obj, GtkWidget *notebook, gpointer user_data)</td></tr>
<tr class="memdesc:aaa1316ec7f947022c7a9b23f6230155b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent after a project dialog is opened but before it is displayed.  <a href="#aaa1316ec7f947022c7a9b23f6230155b">More...</a><br /></td></tr>
<tr class="separator:aaa1316ec7f947022c7a9b23f6230155b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5b5420e0c10b71ccc5efa7b8759c445"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#aa5b5420e0c10b71ccc5efa7b8759c445">project_open</a> )(GObject *obj, GKeyFile *config, gpointer user_data)</td></tr>
<tr class="memdesc:aa5b5420e0c10b71ccc5efa7b8759c445"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent after a project is opened but before session files are loaded.  <a href="#aa5b5420e0c10b71ccc5efa7b8759c445">More...</a><br /></td></tr>
<tr class="separator:aa5b5420e0c10b71ccc5efa7b8759c445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cc4b33eb0c48d703412f88d758281d1"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a9cc4b33eb0c48d703412f88d758281d1">project_save</a> )(GObject *obj, GKeyFile *config, gpointer user_data)</td></tr>
<tr class="memdesc:a9cc4b33eb0c48d703412f88d758281d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent when a project is saved(happens when the project is created, the properties dialog is closed or Geany is exited).  <a href="#a9cc4b33eb0c48d703412f88d758281d1">More...</a><br /></td></tr>
<tr class="separator:a9cc4b33eb0c48d703412f88d758281d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b2a0d355b0cc9b72af3dc1432cea9f7"><td class="memItemLeft" align="right" valign="top">signal void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pluginsignals_8c.html#a6b2a0d355b0cc9b72af3dc1432cea9f7">update_editor_menu</a> )(GObject *obj, const gchar *word, gint pos, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td></tr>
<tr class="memdesc:a6b2a0d355b0cc9b72af3dc1432cea9f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sent before the popup menu of the editing widget is shown.  <a href="#a6b2a0d355b0cc9b72af3dc1432cea9f7">More...</a><br /></td></tr>
<tr class="separator:a6b2a0d355b0cc9b72af3dc1432cea9f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Plugin Signals. </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<pre class="fragment">To use plugin signals in Geany, you have two options:

-# Create a PluginCallback array with the @ref plugin_callbacks symbol. List the signals
   you want to listen to and create the appropiate signal callbacks for each signal.
   The callback array is read @a after plugin_init() has been called.
-# Use plugin_signal_connect(), which can be called at any time and can also connect
   to non-Geany signals (such as GTK widget signals).

This page lists the signal prototypes, but you connect to them using the
string name (which by convention uses @c - hyphens instead of @c _ underscores).

E.g. @c "document-open" for @ref document_open.

The following code demonstrates how to use signals in Geany plugins. The code can be inserted
in your plugin code at any desired position.
</pre><div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> on_document_open(GObject *obj, <a class="code" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</div>
<div class="line">{</div>
<div class="line">    printf(<span class="stringliteral">&quot;Example: %s was opened\n&quot;</span>, <a class="code" href="document_8h.html#a304fac5fd2ae01d52c0a46a68abbd7dc">DOC_FILENAME</a>(doc));</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><a class="code" href="structPluginCallback.html">PluginCallback</a> <a class="code" href="pluginsymbols_8c.html#a753d2b26ab82f3a842f79de59b4fbc0d">plugin_callbacks</a>[] =</div>
<div class="line">{</div>
<div class="line">    { <span class="stringliteral">&quot;document-open&quot;</span>, (GCallback) &amp;on_document_open, FALSE, NULL },</div>
<div class="line">    { NULL, NULL, FALSE, NULL }</div>
<div class="line">};</div>
</div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>The <a class="el" href="structPluginCallback.html" title="Callback array entry type used with the plugin_callbacks symbol. ">PluginCallback</a> array has to be ended with a final <code>NULL</code> entry. </dd></dl>
</div><h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a6213005b64effff87bc3d04ded8fe9e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* build_start)(GObject *obj, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent before build is started. </p>
<p>A plugin could use this signal e.g. to save all unsaved documents before the build starts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac3e7ad907bda667327868c87af386494"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_activate)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when switching notebook pages. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the current document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abc3b5e2569181e22839c3aaf6386f281"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_before_save)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent before a document is saved. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the document to be saved. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a324a8e8ecd6c40e55029e2784ff04ac8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_close)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent before closing a document. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the document about to be closed. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a50ddd3696cb23c30b224780ef3ace891"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_filetype_set)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, <a class="el" href="structGeanyFiletype.html">GeanyFiletype</a> *filetype_old, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent after the filetype of a document has been changed. </p>
<p>The previous filetype object is passed but it can be NULL (e.g. at startup). The new filetype can be read with:</p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;GeanyFiletype *ft = doc-&gt;file_type;</div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the saved document. </td></tr>
    <tr><td class="paramname">filetype_old</td><td>the previous filetype of the document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ade8f8c5cef19212707729c68d018d5e3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_new)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when a new document is created. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the new document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aac95623e4e1fae27d235889a32525810"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_open)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when a new document is opened. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the opened document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3910576540b7ea72664a82db2cffd89b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_reload)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when an existing document is reloaded. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the re-opened document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section since"><dt>Since</dt><dd>0.21 </dd></dl>

</div>
</div>
<a class="anchor" id="a90c060d0744c907382d3fa8607bd460c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* document_save)(GObject *obj, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when a new document is saved. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">doc</td><td>the saved document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af601d8beb39bf8082ddd1c09c74ce892"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal gboolean(* editor_notify)(GObject *obj, <a class="el" href="structGeanyEditor.html">GeanyEditor</a> *editor, SCNotification *nt, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent whenever something in the editor widget changes. </p>
<p>E.g. Character added, fold level changes, clicks to the line number margin. A detailed description of possible notifications and the SCNotification can be found at <a href="http://www.scintilla.org/ScintillaDoc.html#Notifications">http://www.scintilla.org/ScintillaDoc.html#Notifications</a>.</p>
<p>If you connect to this signal, you must check <code>nt-&gt;nmhdr.code</code> for the notification type to prevent handling unwanted notifications. This is important because for instance SCN_UPDATEUI is sent very often whereas you probably don't want to handle this notification.</p>
<p>By default, the signal is sent before Geany's default handler is processing the event. Your callback function should return FALSE to allow Geany processing the event as well. If you want to prevent this for some reason, return TRUE. Please use this with care as it can break basic functionality of Geany.</p>
<p>The signal can be sent after Geany's default handler has been run when you set <a class="el" href="structPluginCallback.html#ab17c7d9d621dc0bfce11731de6c157e5" title="Set to TRUE to connect your handler with g_signal_connect_after(). ">PluginCallback::after</a> field to TRUE.</p>
<p>An example callback implemention of this signal can be found in the Demo plugin.</p>
<dl class="section warning"><dt>Warning</dt><dd>This signal has much power and should be used carefully. You should especially care about the return value; make sure to return TRUE only if it is necessary and in the correct situations.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">editor</td><td>The current <a class="el" href="structGeanyEditor.html" title="Editor-owned fields for each document. ">GeanyEditor</a>. </td></tr>
    <tr><td class="paramname">nt</td><td>A pointer to the SCNotification struct which holds additional information for the event. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> to stop other handlers from being invoked for the event. <code>FALSE</code> to propagate the event further.</dd></dl>
<dl class="section since"><dt>Since</dt><dd>0.16 </dd></dl>

</div>
</div>
<a class="anchor" id="a8e81ea2fd5fc0258fb860e029b9b33bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* geany_startup_complete)(GObject *obj, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent once Geany has finished all initialization and startup tasks and the GUI has been realized. </p>
<p>This signal is the very last step in the startup process and is sent once the GTK main event loop has been entered.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab60c2925cedd700059facd3401a57205"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* project_close)(GObject *obj, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent after a project is closed. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a82402fe91492ac75d21791b477454c89"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* project_dialog_close)(GObject *obj, GtkWidget *notebook, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent before project dialog is closed. </p>
<p>By using this signal, plugins can remove tabs previously added in project-dialog-open signal handler. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">notebook</td><td>a GtkNotebook instance that can be used by plugins to remove settings tabs previously added in the project-dialog-open signal handler. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5fc43dab40ed7d9cc12145722ede7514"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* project_dialog_confirmed)(GObject *obj, GtkWidget *notebook, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when the settings dialog is confirmed by the user. </p>
<p>Plugins can use this signal to read the settings widgets previously added by using the <code>project-dialog-open</code> signal. </p><dl class="section warning"><dt>Warning</dt><dd>The dialog will still be running afterwards if the user chose 'Apply'. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">notebook</td><td>a GtkNotebook instance that can be used by plugins to read their settings widgets. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aaa1316ec7f947022c7a9b23f6230155b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* project_dialog_open)(GObject *obj, GtkWidget *notebook, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent after a project dialog is opened but before it is displayed. </p>
<p>Plugins can append their own project settings tabs by using this signal. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">notebook</td><td>a GtkNotebook instance that can be used by plugins to append their settings tabs. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa5b5420e0c10b71ccc5efa7b8759c445"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* project_open)(GObject *obj, GKeyFile *config, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent after a project is opened but before session files are loaded. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">config</td><td>an exising GKeyFile object which can be used to read and write data. It must not be closed or freed. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9cc4b33eb0c48d703412f88d758281d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* project_save)(GObject *obj, GKeyFile *config, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent when a project is saved(happens when the project is created, the properties dialog is closed or Geany is exited). </p>
<p>This signal is emitted shortly before Geany will write the contents of the GKeyFile to the disc. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">config</td><td>an exising GKeyFile object which can be used to read and write data. It must not be closed or freed. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6b2a0d355b0cc9b72af3dc1432cea9f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">signal void(* update_editor_menu)(GObject *obj, const gchar *word, gint pos, <a class="el" href="structGeanyDocument.html">GeanyDocument</a> *doc, gpointer user_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sent before the popup menu of the editing widget is shown. </p>
<p>This can be used to modify or extend the popup menu.</p>
<dl class="section note"><dt>Note</dt><dd>You can add menu items from <code><a class="el" href="pluginsymbols_8c.html#aa962b949eadd24aeaf003b1b290c6612" title="Called after loading the plugin. ">plugin_init()</a></code> using <code>geany-&gt;main_widgets-&gt;editor_menu</code>, remembering to destroy them in <code><a class="el" href="pluginsymbols_8c.html#a597c40a2085ba1713107b6ff9a5e165a" title="Called before unloading the plugin. ">plugin_cleanup()</a></code>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a GeanyObject instance, should be ignored. </td></tr>
    <tr><td class="paramname">word</td><td>the current word (in UTF-8 encoding) below the cursor position where the popup menu will be opened. </td></tr>
    <tr><td class="paramname">click_pos</td><td>the cursor position where the popup will be opened. </td></tr>
    <tr><td class="paramname">doc</td><td>the current document. </td></tr>
    <tr><td class="paramname">user_data</td><td>user data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Oct 17 2014 05:13:17 for Geany by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>