Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkSourceRegion: GtkSourceView 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GtkSourceView 3 Reference Manual">
<link rel="up" href="ch09.html" title="Other">
<link rel="prev" href="GtkSourceMap.html" title="GtkSourceMap">
<link rel="next" href="GtkSourceSpaceDrawer.html" title="GtkSourceSpaceDrawer">
<meta name="generator" content="GTK-Doc V1.28.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GtkSourceRegion.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GtkSourceRegion.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GtkSourceRegion.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch09.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GtkSourceMap.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GtkSourceSpaceDrawer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GtkSourceRegion"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GtkSourceRegion.top_of_page"></a>GtkSourceRegion</span></h2>
<p>GtkSourceRegion — Region utility</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GtkSourceRegion.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="returnvalue">GtkSourceRegion</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-new" title="gtk_source_region_new ()">gtk_source_region_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GtkTextBuffer</span> *
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-get-buffer" title="gtk_source_region_get_buffer ()">gtk_source_region_get_buffer</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-add-subregion" title="gtk_source_region_add_subregion ()">gtk_source_region_add_subregion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-add-region" title="gtk_source_region_add_region ()">gtk_source_region_add_region</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-subtract-subregion" title="gtk_source_region_subtract_subregion ()">gtk_source_region_subtract_subregion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-subtract-region" title="gtk_source_region_subtract_region ()">gtk_source_region_subtract_region</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="returnvalue">GtkSourceRegion</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-intersect-subregion" title="gtk_source_region_intersect_subregion ()">gtk_source_region_intersect_subregion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="returnvalue">GtkSourceRegion</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-intersect-region" title="gtk_source_region_intersect_region ()">gtk_source_region_intersect_region</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-is-empty" title="gtk_source_region_is_empty ()">gtk_source_region_is_empty</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-get-bounds" title="gtk_source_region_get_bounds ()">gtk_source_region_get_bounds</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-get-start-region-iter" title="gtk_source_region_get_start_region_iter ()">gtk_source_region_get_start_region_iter</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-iter-is-end" title="gtk_source_region_iter_is_end ()">gtk_source_region_iter_is_end</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-iter-next" title="gtk_source_region_iter_next ()">gtk_source_region_iter_next</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-iter-get-subregion" title="gtk_source_region_iter_get_subregion ()">gtk_source_region_iter_get_subregion</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GtkSourceRegion.html#gtk-source-region-to-string" title="gtk_source_region_to_string ()">gtk_source_region_to_string</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody><tr>
<td class="property_type">
<span class="type">GtkTextBuffer</span> *</td>
<td class="property_name"><a class="link" href="GtkSourceRegion.html#GtkSourceRegion--buffer" title="The “buffer” property">buffer</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GtkSourceRegion.html#GtkSourceRegion-struct" title="GtkSourceRegion">GtkSourceRegion</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter">GtkSourceRegionIter</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GtkSourceRegion
</pre>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtksourceview/gtksource.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.description"></a><h2>Description</h2>
<p>A <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> permits to store a group of subregions of a
<span class="type">GtkTextBuffer</span>. <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> stores the subregions with pairs of
<span class="type">GtkTextMark</span>'s, so the region is still valid after insertions and deletions
in the <span class="type">GtkTextBuffer</span>.</p>
<p>The <span class="type">GtkTextMark</span> for the start of a subregion has a left gravity, while the
<span class="type">GtkTextMark</span> for the end of a subregion has a right gravity.</p>
<p>The typical use-case of <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> is to scan a <span class="type">GtkTextBuffer</span> chunk by
chunk, not the whole buffer at once to not block the user interface. The
<a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> represents in that case the remaining region to scan. You
can listen to the <span class="type">“insert-text”</span> and
<span class="type">“delete-range”</span> signals to update the <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>
accordingly.</p>
<p>To iterate through the subregions, you need to use a <a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a>,
for example:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">GtkSourceRegion</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">region</span><span class="symbol">;</span>
<span class="usertype">GtkSourceRegionIter</span><span class="normal"> region_iter</span><span class="symbol">;</span>

<span class="function"><a href="GtkSourceRegion.html#gtk-source-region-get-start-region-iter">gtk_source_region_get_start_region_iter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">region</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">region_iter</span><span class="symbol">);</span>

<span class="keyword">while</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="GtkSourceRegion.html#gtk-source-region-iter-is-end">gtk_source_region_iter_is_end</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">region_iter</span><span class="symbol">))</span>
<span class="cbracket">{</span>
<span class="normal">        </span><span class="usertype">GtkTextIter</span><span class="normal"> subregion_start</span><span class="symbol">;</span>
<span class="normal">        </span><span class="usertype">GtkTextIter</span><span class="normal"> subregion_end</span><span class="symbol">;</span>

<span class="normal">        </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="GtkSourceRegion.html#gtk-source-region-iter-get-subregion">gtk_source_region_iter_get_subregion</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">region_iter</span><span class="symbol">,</span>
<span class="normal">                                                   </span><span class="symbol">&amp;</span><span class="normal">subregion_start</span><span class="symbol">,</span>
<span class="normal">                                                   </span><span class="symbol">&amp;</span><span class="normal">subregion_end</span><span class="symbol">))</span>
<span class="normal">        </span><span class="cbracket">{</span>
<span class="normal">                </span><span class="keyword">break</span><span class="symbol">;</span>
<span class="normal">        </span><span class="cbracket">}</span>

<span class="normal">        </span><span class="comment">// Do something useful with the subregion.</span>

<span class="normal">        </span><span class="function"><a href="GtkSourceRegion.html#gtk-source-region-iter-next">gtk_source_region_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">region_iter</span><span class="symbol">);</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gtk-source-region-new"></a><h3>gtk_source_region_new ()</h3>
<pre class="programlisting"><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="returnvalue">GtkSourceRegion</span></a> *
gtk_source_region_new (<em class="parameter"><code><span class="type">GtkTextBuffer</span> *buffer</code></em>);</pre>
<div class="refsect3">
<a name="gtk-source-region-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>a <span class="type">GtkTextBuffer</span>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-new.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> object for <em class="parameter"><code>buffer</code></em>
.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-get-buffer"></a><h3>gtk_source_region_get_buffer ()</h3>
<pre class="programlisting"><span class="returnvalue">GtkTextBuffer</span> *
gtk_source_region_get_buffer (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>);</pre>
<div class="refsect3">
<a name="gtk-source-region-get-buffer.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-get-buffer.returns"></a><h4>Returns</h4>
<p>the <span class="type">GtkTextBuffer</span>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-add-subregion"></a><h3>gtk_source_region_add_subregion ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_source_region_add_subregion (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                                 <em class="parameter"><code>const <span class="type">GtkTextIter</span> *_start</code></em>,
                                 <em class="parameter"><code>const <span class="type">GtkTextIter</span> *_end</code></em>);</pre>
<p>Adds the subregion delimited by <em class="parameter"><code>_start</code></em>
 and <em class="parameter"><code>_end</code></em>
 to <em class="parameter"><code>region</code></em>
.</p>
<div class="refsect3">
<a name="gtk-source-region-add-subregion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>_start</p></td>
<td class="parameter_description"><p>the start of the subregion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>_end</p></td>
<td class="parameter_description"><p>the end of the subregion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-add-region"></a><h3>gtk_source_region_add_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_source_region_add_region (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                              <em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region_to_add</code></em>);</pre>
<p>Adds <em class="parameter"><code>region_to_add</code></em>
 to <em class="parameter"><code>region</code></em>
. <em class="parameter"><code>region_to_add</code></em>
 is not modified.</p>
<div class="refsect3">
<a name="gtk-source-region-add-region.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>region_to_add</p></td>
<td class="parameter_description"><p>the <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> to add to <em class="parameter"><code>region</code></em>
, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-subtract-subregion"></a><h3>gtk_source_region_subtract_subregion ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_source_region_subtract_subregion (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                                      <em class="parameter"><code>const <span class="type">GtkTextIter</span> *_start</code></em>,
                                      <em class="parameter"><code>const <span class="type">GtkTextIter</span> *_end</code></em>);</pre>
<p>Subtracts the subregion delimited by <em class="parameter"><code>_start</code></em>
 and <em class="parameter"><code>_end</code></em>
 from <em class="parameter"><code>region</code></em>
.</p>
<div class="refsect3">
<a name="gtk-source-region-subtract-subregion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>_start</p></td>
<td class="parameter_description"><p>the start of the subregion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>_end</p></td>
<td class="parameter_description"><p>the end of the subregion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-subtract-region"></a><h3>gtk_source_region_subtract_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_source_region_subtract_region (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                                   <em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region_to_subtract</code></em>);</pre>
<p>Subtracts <em class="parameter"><code>region_to_subtract</code></em>
 from <em class="parameter"><code>region</code></em>
. <em class="parameter"><code>region_to_subtract</code></em>
 is not
modified.</p>
<div class="refsect3">
<a name="gtk-source-region-subtract-region.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>region_to_subtract</p></td>
<td class="parameter_description"><p>the <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> to subtract from
<em class="parameter"><code>region</code></em>
, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-intersect-subregion"></a><h3>gtk_source_region_intersect_subregion ()</h3>
<pre class="programlisting"><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="returnvalue">GtkSourceRegion</span></a> *
gtk_source_region_intersect_subregion (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                                       <em class="parameter"><code>const <span class="type">GtkTextIter</span> *_start</code></em>,
                                       <em class="parameter"><code>const <span class="type">GtkTextIter</span> *_end</code></em>);</pre>
<p>Returns the intersection between <em class="parameter"><code>region</code></em>
 and the subregion delimited by
<em class="parameter"><code>_start</code></em>
 and <em class="parameter"><code>_end</code></em>
. <em class="parameter"><code>region</code></em>
 is not modified.</p>
<div class="refsect3">
<a name="gtk-source-region-intersect-subregion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>_start</p></td>
<td class="parameter_description"><p>the start of the subregion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>_end</p></td>
<td class="parameter_description"><p>the end of the subregion.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-intersect-subregion.returns"></a><h4>Returns</h4>
<p>the intersection as a new
<a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-intersect-region"></a><h3>gtk_source_region_intersect_region ()</h3>
<pre class="programlisting"><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="returnvalue">GtkSourceRegion</span></a> *
gtk_source_region_intersect_region (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region1</code></em>,
                                    <em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region2</code></em>);</pre>
<p>Returns the intersection between <em class="parameter"><code>region1</code></em>
 and <em class="parameter"><code>region2</code></em>
. <em class="parameter"><code>region1</code></em>
 and
<em class="parameter"><code>region2</code></em>
 are not modified.</p>
<div class="refsect3">
<a name="gtk-source-region-intersect-region.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region1</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>region2</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-intersect-region.returns"></a><h4>Returns</h4>
<p>the intersection as a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>
object. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-is-empty"></a><h3>gtk_source_region_is_empty ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_source_region_is_empty (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>);</pre>
<p>Returns whether the <em class="parameter"><code>region</code></em>
 is empty. A <code class="literal">NULL</code> <em class="parameter"><code>region</code></em>
 is considered empty.</p>
<div class="refsect3">
<a name="gtk-source-region-is-empty.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-is-empty.returns"></a><h4>Returns</h4>
<p> whether the <em class="parameter"><code>region</code></em>
is empty.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-get-bounds"></a><h3>gtk_source_region_get_bounds ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_source_region_get_bounds (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                              <em class="parameter"><code><span class="type">GtkTextIter</span> *start</code></em>,
                              <em class="parameter"><code><span class="type">GtkTextIter</span> *end</code></em>);</pre>
<p>Gets the <em class="parameter"><code>start</code></em>
 and <em class="parameter"><code>end</code></em>
 bounds of the <em class="parameter"><code>region</code></em>
.</p>
<div class="refsect3">
<a name="gtk-source-region-get-bounds.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start</p></td>
<td class="parameter_description"><p>iterator to initialize with the start of <em class="parameter"><code>region</code></em>
,
or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>end</p></td>
<td class="parameter_description"><p>iterator to initialize with the end of <em class="parameter"><code>region</code></em>
,
or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-get-bounds.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>start</code></em>
and <em class="parameter"><code>end</code></em>
have been set successfully (if non-<code class="literal">NULL</code>),
or <code class="literal">FALSE</code> if the <em class="parameter"><code>region</code></em>
is empty.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-get-start-region-iter"></a><h3>gtk_source_region_get_start_region_iter ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_source_region_get_start_region_iter
                               (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>,
                                <em class="parameter"><code><a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a> *iter</code></em>);</pre>
<p>Initializes a <a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a> to the first subregion of <em class="parameter"><code>region</code></em>
. If
<em class="parameter"><code>region</code></em>
 is empty, <em class="parameter"><code>iter</code></em>
 will be initialized to the end iterator.</p>
<div class="refsect3">
<a name="gtk-source-region-get-start-region-iter.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>iter</p></td>
<td class="parameter_description"><p>iterator to initialize to the first subregion. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-iter-is-end"></a><h3>gtk_source_region_iter_is_end ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_source_region_iter_is_end (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a> *iter</code></em>);</pre>
<div class="refsect3">
<a name="gtk-source-region-iter-is-end.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>iter</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-iter-is-end.returns"></a><h4>Returns</h4>
<p> whether <em class="parameter"><code>iter</code></em>
is the end iterator.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-iter-next"></a><h3>gtk_source_region_iter_next ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_source_region_iter_next (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a> *iter</code></em>);</pre>
<p>Moves <em class="parameter"><code>iter</code></em>
 to the next subregion.</p>
<div class="refsect3">
<a name="gtk-source-region-iter-next.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>iter</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-iter-next.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>iter</code></em>
moved and is dereferenceable, or <code class="literal">FALSE</code> if <em class="parameter"><code>iter</code></em>
has
been set to the end iterator.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-iter-get-subregion"></a><h3>gtk_source_region_iter_get_subregion ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_source_region_iter_get_subregion (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a> *iter</code></em>,
                                      <em class="parameter"><code><span class="type">GtkTextIter</span> *start</code></em>,
                                      <em class="parameter"><code><span class="type">GtkTextIter</span> *end</code></em>);</pre>
<p>Gets the subregion at this iterator.</p>
<div class="refsect3">
<a name="gtk-source-region-iter-get-subregion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>iter</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>start</p></td>
<td class="parameter_description"><p>iterator to initialize with the subregion start, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>end</p></td>
<td class="parameter_description"><p>iterator to initialize with the subregion end, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-iter-get-subregion.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>start</code></em>
and <em class="parameter"><code>end</code></em>
have been set successfully (if non-<code class="literal">NULL</code>),
or <code class="literal">FALSE</code> if <em class="parameter"><code>iter</code></em>
is the end iterator or if the region is empty.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-source-region-to-string"></a><h3>gtk_source_region_to_string ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> *
gtk_source_region_to_string (<em class="parameter"><code><a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> *region</code></em>);</pre>
<p>Gets a string represention of <em class="parameter"><code>region</code></em>
, for debugging purposes.</p>
<p>The returned string contains the character offsets of the subregions. It
doesn't include a newline character at the end of the string.</p>
<div class="refsect3">
<a name="gtk-source-region-to-string.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-source-region-to-string.returns"></a><h4>Returns</h4>
<p>a string represention of <em class="parameter"><code>region</code></em>
. Free
with <code class="function">g_free()</code> when no longer needed. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkSourceRegion-struct"></a><h3>GtkSourceRegion</h3>
<pre class="programlisting">typedef struct _GtkSourceRegion GtkSourceRegion;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GtkSourceRegionIter"></a><h3>struct GtkSourceRegionIter</h3>
<pre class="programlisting">struct GtkSourceRegionIter {
};
</pre>
<p><a class="link" href="GtkSourceRegion.html#GtkSourceRegionIter" title="struct GtkSourceRegionIter"><span class="type">GtkSourceRegionIter</span></a> is an opaque datatype; ignore all its fields.
Initialize the iter with <a class="link" href="GtkSourceRegion.html#gtk-source-region-get-start-region-iter" title="gtk_source_region_get_start_region_iter ()"><code class="function">gtk_source_region_get_start_region_iter()</code></a>.</p>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GtkSourceRegion--buffer"></a><h3>The <code class="literal">“buffer”</code> property</h3>
<pre class="programlisting">  “buffer”                   <span class="type">GtkTextBuffer</span> *</pre>
<p>The <span class="type">GtkTextBuffer</span>. The <a class="link" href="GtkSourceRegion.html" title="GtkSourceRegion"><span class="type">GtkSourceRegion</span></a> has a weak reference to the
buffer.</p>
<p>Flags: Read / Write / Construct Only</p>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
</div>
<div class="refsect1">
<a name="GtkSourceRegion.see-also"></a><h2>See Also</h2>
<p><span class="type">GtkTextBuffer</span></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28.1</div>
</body>
</html>