<!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"/> <title>The Gnome Chemistry Utils: document.h Source File</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">The Gnome Chemistry Utils  <span id="projectnumber">0.14.2</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.1.2 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</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 List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_6719ab1f1f7655efc2fa43f7eb574fd1.html">libs</a></li><li class="navelem"><a class="el" href="dir_69c622b84a81aca1ad0f892f4a5e46bf.html">gcp</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">gcp/document.h</div> </div> </div><!--header--> <div class="contents"> <a href="gcp_2document_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// -*- C++ -*-</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> </div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/*</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * GChemPaint library</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * document.h</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> *</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Copyright (C) 2001-2012 Jean Bréfort <jean.brefort@normalesup.org></span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> *</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * This program is free software; you can redistribute it and/or</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * modify it under the terms of the GNU General Public License as</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * published by the Free Software Foundation; either version 3 of the</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * License, or (at your option) any later version.</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * This program is distributed in the hope that it will be useful,</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * GNU General Public License for more details.</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> *</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * You should have received a copy of the GNU General Public License</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * along with this program; if not, write to the Free Software</span></div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * USA</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> */</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifndef GCHEMPAINT_DOCUMENT_H</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span><span class="preprocessor">#define GCHEMPAINT_DOCUMENT_H</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="operation_8h.html">operation.h</a>"</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="gcu_2document_8h.html">gcu/document.h</a>></span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="macros_8h.html">gcu/macros.h</a>></span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="printable_8h.html">gcugtk/printable.h</a>></span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="gcu_2residue_8h.html">gcu/residue.h</a>></span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="printable_8h.html">gcugtk/printable.h</a>></span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <list></span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <map></span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <set></span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <string></span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <libxml/tree.h></span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <gtk/gtk.h></span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span>OpenBabel</div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">class </span>OBMol;</div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>gcp {</div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">extern</span> <a class="code" href="namespacegcu.html#af13348b065987fa4ca74ca0fb1ffa48e">gcu::SignalId</a> <a class="code" href="namespacegcp.html#a6aec64973a543952f6fd39584fced5dc">OnChangedSignal</a>;</div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">extern</span> <a class="code" href="namespacegcu.html#af13348b065987fa4ca74ca0fb1ffa48e">gcu::SignalId</a> <a class="code" href="namespacegcp.html#aeadb69093ddf977dc8d67b9ac378748f">OnDeleteSignal</a>;</div> <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">extern</span> <a class="code" href="namespacegcu.html#af13348b065987fa4ca74ca0fb1ffa48e">gcu::SignalId</a> <a class="code" href="namespacegcp.html#ac2c53584843f67b9638b96506b43466a">OnThemeChangedSignal</a>;</div> <div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">class </span>View;</div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">class </span>Application;</div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">class </span>Window;</div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">class </span>Theme;</div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">class </span>Residue;</div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">class </span>Atom;</div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">class </span>Bond;</div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">class </span>Fragment;</div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">class </span>Molecule;</div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html"> 78</a></span> <span class="keyword">class </span><a class="code" href="classgcp_1_1Document.html">Document</a>: <span class="keyword">public</span> <a class="code" href="classgcu_1_1Document.html">gcu::Document</a>, <span class="keyword">public</span> <a class="code" href="classgcugtk_1_1Printable.html">gcugtk::Printable</a></div> <div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">//Constructor and destructor</span></div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classgcp_1_1Document.html#a34da9b14fba0f92314840fe98f49a72a">Document</a> (<a class="code" href="classgcp_1_1Application.html" title="GChemPaint application base class.">Application</a> *App, <span class="keywordtype">bool</span> StandAlone, <a class="code" href="classgcp_1_1Window.html">Window</a> *window = NULL);</div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">virtual</span> <a class="code" href="classgcp_1_1Document.html#af66bc605b92d8453dbcc6fec4146f7ef">~Document</a> ();</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">//Interface</span></div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a326cf0638035d5deff1dead3e296ae47">Clear</a> ();</div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  GtkWidget* <a class="code" href="classgcp_1_1Document.html#ab99e4f3eee89712b7fd3ae0c48199fdb">GetWidget</a> ();</div> <div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a83f8a6c661bcbc046fae0dbf6e2fe5ea"> 109</a></span>  <a class="code" href="classgcp_1_1View.html">View</a>* <a class="code" href="classgcp_1_1Document.html#a83f8a6c661bcbc046fae0dbf6e2fe5ea">GetView</a> () {<span class="keywordflow">return</span> m_pView;}</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a4ae715665016f6b99470a5ec9ba5312a">Save</a> () <span class="keyword">const</span>;</div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgcp_1_1Document.html#a442540290608fdc05cb59283821eedfc">Load</a> (xmlNodePtr node);</div> <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> gchar* <a class="code" href="classgcp_1_1Document.html#a137dc8e08ba935bc9fc34faa2820cb1f">GetTitle</a> () <span class="keyword">const</span>;</div> <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a40c59b1eea00be7668ced06755c36704">SetTitle</a> (<span class="keyword">const</span> gchar* title);</div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a1541863c84fb45873f69c54e0739b924">SetLabel</a> (<span class="keyword">const</span> gchar* label);</div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> gchar* <a class="code" href="classgcp_1_1Document.html#a4c34c17f59bd4b241387323cef33b6ef">GetLabel</a> () <span class="keyword">const</span>;</div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#afd3f7ca8dc562b698f7fd1502a370705">SetFileName</a> (std::string <span class="keyword">const</span> &filename, <span class="keyword">const</span> gchar *mime_type);</div> <div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a17dc970c0f9e485b8a941f6641962c7a"> 151</a></span>  <span class="keyword">const</span> gchar* <a class="code" href="classgcp_1_1Document.html#a17dc970c0f9e485b8a941f6641962c7a">GetFileName</a> ()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_filename;}</div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a745f17cca6fd2f3dbeea434a62e91c85">DoPrint</a> (GtkPrintOperation *print, GtkPrintContext *context, <span class="keywordtype">int</span> page) <span class="keyword">const</span>;</div> <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a4464af1f8c34d7d209799850b891745d">AddObject</a> (Object* pObject);</div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a1ae929b46fb40f4ec244249fba3265a2">AddAtom</a> (<a class="code" href="classgcp_1_1Atom.html">Atom</a>* pAtom);</div> <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a81850f1a522efbe7c160d1b41e30feaf">AddFragment</a> (<a class="code" href="classgcp_1_1Fragment.html" title="Atoms groups.">Fragment</a>* pFragment);</div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a3123c2fd57ebf47a367e905f461e3caf">AddBond</a> (<a class="code" href="classgcp_1_1Bond.html">Bond</a>* pBond);</div> <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#ae8d86d1a1d6666db578bec998bd578d7">ParseXMLTree</a> (xmlDocPtr xml);</div> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#ae14bf8471965e48f0df809a819add3cc">LoadObjects</a> (xmlNodePtr node);</div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  xmlDocPtr <a class="code" href="classgcp_1_1Document.html#a36ead850654d9db4258bf6261e1ebbcd">BuildXMLTree</a> () <span class="keyword">const</span>;</div> <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#aef709fb7cd3096767b4fd2e3b9137d70">Update</a> ();</div> <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#aa6042b56472265fc886482a7fd47b459">Remove</a> (Object* <span class="keywordtype">object</span>);</div> <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#aa6042b56472265fc886482a7fd47b459">Remove</a> (<span class="keyword">const</span> <span class="keywordtype">char</span>* Id);</div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a54e53dd730ee6725af02f7d7fa5794a8">OnProperties</a> ();</div> <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#af25b5f14a189dc2ea93eaabb301b166e">OnUndo</a> ();</div> <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a8514a2dfaf2031eb792f0a4f4e46276b">OnRedo</a> ();</div> <div class="line"><a name="l00233"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a67265dd560661ca2c0b65be76d729feb"> 233</a></span>  <span class="keyword">const</span> GDate* <a class="code" href="classgcp_1_1Document.html#a67265dd560661ca2c0b65be76d729feb">GetCreationDate</a> () {<span class="keywordflow">return</span> &CreationDate;}</div> <div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a7c56003f2a8588460081daa68f3b1845"> 237</a></span>  <span class="keyword">const</span> GDate* <a class="code" href="classgcp_1_1Document.html#a7c56003f2a8588460081daa68f3b1845">GetRevisionDate</a> () {<span class="keywordflow">return</span> &RevisionDate;}</div> <div class="line"><a name="l00241"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a5fd8f7cac697f8a33dcb7cdc3ada2fce"> 241</a></span>  <span class="keyword">const</span> gchar* <a class="code" href="classgcp_1_1Document.html#a5fd8f7cac697f8a33dcb7cdc3ada2fce">GetAuthor</a> () {<span class="keywordflow">return</span> m_author;}</div> <div class="line"><a name="l00245"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#aa229330a63c9bc7fe3c7fcb9284563d3"> 245</a></span>  <span class="keyword">const</span> gchar* <a class="code" href="classgcp_1_1Document.html#aa229330a63c9bc7fe3c7fcb9284563d3">GetMail</a> () {<span class="keywordflow">return</span> m_mail;}</div> <div class="line"><a name="l00249"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a2a27464b9bde5b5c374690b9e0fffb10"> 249</a></span>  <span class="keyword">const</span> gchar* <a class="code" href="classgcp_1_1Document.html#a2a27464b9bde5b5c374690b9e0fffb10">GetComment</a> () {<span class="keywordflow">return</span> m_comment;}</div> <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#aab2c7de37df346a7e41aea9cf0d9f0ea">SetAuthor</a> (<span class="keyword">const</span> gchar* author);</div> <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a932a4a46b7f59a8b69456b3852f0da64">SetMail</a> (<span class="keyword">const</span> gchar* mail);</div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a0203af0040a1ebac903b1464ff1cfdb2">SetComment</a> (<span class="keyword">const</span> gchar* comment);</div> <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a3e187824de53381b3de8abf1294aa2e0">FinishOperation</a> ();</div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a75659c5fa7da47a375aff647b59448a6">AbortOperation</a> ();</div> <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#aee03e15c4e95e7fdfdaec12f955bbbe3">PopOperation</a> ();</div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#af030ebcfb9e5af38fa0ff66caa988de3">PushOperation</a> (<a class="code" href="classgcp_1_1Operation.html">Operation</a>* operation, <span class="keywordtype">bool</span> undo = <span class="keyword">true</span>);</div> <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a3dc29d27b82e74691991137c61ca496d">SetActive</a> ();</div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="classgcp_1_1Operation.html">Operation</a>* <a class="code" href="classgcp_1_1Document.html#a9929825e838d4b3e16a033e9393b4fa6">GetNewOperation</a> (<a class="code" href="namespacegcp.html#aa8e6482c44ad2980e2054f056212c34f">OperationType</a> type);</div> <div class="line"><a name="l00303"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a3bb90039fdda6f11e7b15161050c0a50"> 303</a></span>  <a class="code" href="classgcp_1_1Operation.html">Operation</a>* <a class="code" href="classgcp_1_1Document.html#a3bb90039fdda6f11e7b15161050c0a50">GetCurrentOperation</a> () {<span class="keywordflow">return</span> m_pCurOp;}</div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a1543c4162cbefb7484e486708159ce9f">PasteData</a> (xmlNodePtr node);</div> <div class="line"><a name="l00314"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a884e8bd5ca1f02565889f65238754053"> 314</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classgcp_1_1Document.html#a884e8bd5ca1f02565889f65238754053">CanUndo</a> () {<span class="keywordflow">return</span> m_UndoList.size() > 0;}</div> <div class="line"><a name="l00320"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a744f11807e47c3d0c6e7af52f680c5ef"> 320</a></span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a744f11807e47c3d0c6e7af52f680c5ef">SetEditable</a> (<span class="keywordtype">bool</span> editable) {m_bWriteable = editable; m_bUndoRedo = <span class="keyword">true</span>;}</div> <div class="line"><a name="l00324"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a5852f0e971282650716ff1bfa030a222"> 324</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classgcp_1_1Document.html#a5852f0e971282650716ff1bfa030a222">GetEditable</a> () {<span class="keywordflow">return</span> m_bWriteable;}</div> <div class="line"><a name="l00328"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#ab8e7950fa1372a7c5763b182166d3b52"> 328</a></span>  <a class="code" href="classgcp_1_1Application.html" title="GChemPaint application base class.">gcp::Application</a>* <a class="code" href="classgcp_1_1Document.html#ab8e7950fa1372a7c5763b182166d3b52">GetApplication</a> () {<span class="keywordflow">return</span> m_pApp;}</div> <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a2aea9a15fe49061843e5bf8a8bbc024d">ExportImage</a> (std::string <span class="keyword">const</span> &filename, <span class="keyword">const</span> <span class="keywordtype">char</span>* type, <span class="keywordtype">int</span> resolution = -1);</div> <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#ad28f85cfc53830db5754b230a87c2c4b">SetReadOnly</a> (<span class="keywordtype">bool</span> ro);</div> <div class="line"><a name="l00348"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a9791f96004163e0e72d781cc56834b23"> 348</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classgcp_1_1Document.html#a9791f96004163e0e72d781cc56834b23">GetReadOnly</a> () {<span class="keywordflow">return</span> m_bReadOnly;}</div> <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classgcp_1_1Document.html#a6e6fafd96ac50858e8b0e0ad322b168a">GetYAlign</a> ();</div> <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="classgcu_1_1Window.html">gcu::Window</a> *<a class="code" href="classgcp_1_1Document.html#a1f68a705eae0ab33940a6da29c5b095f">GetWindow</a> ();</div> <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  GtkWindow *<a class="code" href="classgcp_1_1Document.html#a35abc65f51c5c1805d25bd138504fd64">GetGtkWindow</a> ();</div> <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a5b4cf6cfcf1c5f00aca74d49d4ba10d2">SetTheme</a> (<a class="code" href="classgcp_1_1Theme.html" title="themes class.">Theme</a> *theme);</div> <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordtype">bool</span> <a class="code" href="classgcp_1_1Document.html#a12f0ce8e7082914af941c0f3f54dde7f">OnSignal</a> (<a class="code" href="namespacegcu.html#af13348b065987fa4ca74ca0fb1ffa48e">gcu::SignalId</a> Signal, <a class="code" href="classgcu_1_1Object.html">gcu::Object</a> *Child);</div> <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#adfe420492ebbe9fa9908508aebdca467">SetDirty</a> (<span class="keywordtype">bool</span> isDirty = <span class="keyword">true</span>);</div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a386832efd5b642c2fc09e7530839f598">OnThemeNamesChanged</a> ();</div> <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordtype">double</span> <a class="code" href="classgcp_1_1Document.html#ab4d7c9e628dff3ce1be677e2af492588">GetMedianBondLength</a> ();</div> <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordtype">bool</span> <a class="code" href="classgcp_1_1Document.html#a102304483ed40e4accae364a3c5e6388">SetProperty</a> (<span class="keywordtype">unsigned</span> property, <span class="keywordtype">char</span> <span class="keyword">const</span> *value);</div> <div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div> <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  std::string <a class="code" href="classgcp_1_1Document.html#aad10cde67a5420896814d1dc57650e27">GetProperty</a> (<span class="keywordtype">unsigned</span> property) <span class="keyword">const</span>;</div> <div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div> <div class="line"><a name="l00423"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#aa8ee190534aa69895ddd9addbaa5c4e6"> 423</a></span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#aa8ee190534aa69895ddd9addbaa5c4e6">SetLoading</a> (<span class="keywordtype">bool</span> loading) {m_bIsLoading = loading;}</div> <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordtype">void</span> <a class="code" href="classgcp_1_1Document.html#a9c9fd0f4df9a66ddc90e79e82a44687f">SaveResidue</a> (<a class="code" href="classgcp_1_1Residue.html" title="a GChemPaint specific Residue class.">Residue</a> <span class="keyword">const</span> *r, xmlNodePtr node);</div> <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="classgcu_1_1Residue.html">gcu::Residue</a> <span class="keyword">const</span> *<a class="code" href="classgcp_1_1Document.html#ac84673f37ae0a11f0feb022191551d37">GetResidue</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *symbol, <span class="keywordtype">bool</span> *ambiguous = NULL);</div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="classgcu_1_1Residue.html">gcu::Residue</a> *<a class="code" href="classgcp_1_1Document.html#af3f96fde5168fe5795be3e92958d1a9a">CreateResidue</a> (<span class="keywordtype">char</span> <span class="keyword">const</span> *name, <span class="keywordtype">char</span> <span class="keyword">const</span> *symbol, <a class="code" href="classgcu_1_1Molecule.html">gcu::Molecule</a> *molecule);</div> <div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div> <div class="line"><a name="l00458"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#ade0eb7a653ea6fa489d4989bb4474d37"> 458</a></span>  std::set <std::string> &<a class="code" href="classgcp_1_1Document.html#ade0eb7a653ea6fa489d4989bb4474d37">GetNewObjects</a> () {<span class="keywordflow">return</span> m_NewObjects;}</div> <div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div> <div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordtype">void</span> RemoveAtom (<a class="code" href="classgcp_1_1Atom.html">Atom</a>* pAtom);</div> <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordtype">void</span> RemoveBond (<a class="code" href="classgcp_1_1Bond.html">Bond</a>* pBond);</div> <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordtype">void</span> RemoveFragment (<a class="code" href="classgcp_1_1Fragment.html" title="Atoms groups.">Fragment</a>* pFragment);</div> <div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div> <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">//Implementation</span></div> <div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="classgcp_1_1View.html">View</a> * m_pView;</div> <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  gchar* m_filename;</div> <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  gchar *m_title;</div> <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  gchar *m_label;</div> <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  gchar *m_comment, *m_author, *m_mail;</div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordtype">bool</span> m_bIsLoading, m_bUndoRedo, m_bReadOnly;</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  std::string m_FileType;</div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordtype">bool</span> m_bWriteable;</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  GDate CreationDate, RevisionDate;</div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  std::list<Operation*> m_UndoList, m_RedoList;</div> <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classgcp_1_1Operation.html">Operation</a>* m_pCurOp;</div> <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="classgcp_1_1Application.html" title="GChemPaint application base class.">Application</a>* m_pApp;</div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="classgcp_1_1Window.html">Window</a> *m_Window;</div> <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> m_OpID; <span class="comment">// last operation ID</span></div> <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordtype">unsigned</span> m_LastStackSize; <span class="comment">// undo list size when last saved</span></div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  std::set<Residue const *> m_SavedResidues;</div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  std::map<std::string, gcu::SymbolResidue> m_Residues;</div> <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  std::set <std::string> m_NewObjects;</div> <div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div> <div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="comment">/* Theme is not really a read only property, but we provide a special Set</span></div> <div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment">method */</span></div> <div class="line"><a name="l00491"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#ac4c6c6d72501e5085e404f64d9d3696e"> 491</a></span> <a class="code" href="macros_8h.html#ae59df402113b58e8e28a7898e09a19a2">GCU_RO_PROP</a> (<a class="code" href="classgcp_1_1Theme.html" title="themes class.">Theme</a>*, <a class="code" href="classgcp_1_1Theme.html" title="themes class.">Theme</a>)</div> <div class="line"><a name="l00503"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a0de58146857221a158e1c8b3aefb4074"> 503</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (<span class="keywordtype">double</span>, BondLength)</div> <div class="line"><a name="l00518"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#aa737349d2e5a9ac6df13c713f1df82bd"> 518</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (<span class="keywordtype">double</span>, BondAngle)</div> <div class="line"><a name="l00530"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a6e264280aec2d48afce27bff6e666b06"> 530</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (<span class="keywordtype">double</span>, ArrowLength)</div> <div class="line"><a name="l00542"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a5081e930f9025924ff7460de94965eeb"> 542</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (gchar*, TextFontFamily)</div> <div class="line"><a name="l00554"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a509cae300fb1a425d7c409bdb0ffe617"> 554</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (PangoStyle, TextFontStyle)</div> <div class="line"><a name="l00566"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a07b47e2e5fcccc66e1bba53f71c4cd7f"> 566</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (PangoWeight, TextFontWeight)</div> <div class="line"><a name="l00578"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#aa7c54e8cb2a868df09e8b1ff882031a1"> 578</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (PangoVariant, TextFontVariant)</div> <div class="line"><a name="l00590"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#abb53d3b2c39159355f196ad7127864bf"> 590</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (PangoStretch, TextFontStretch)</div> <div class="line"><a name="l00602"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#abbb83b1c2834c79ba85f6a00ca9f234b"> 602</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (gint, TextFontSize)</div> <div class="line"><a name="l00606"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a7dd7f5f9c621d1abf6c0c6b3d9a795d8"> 606</a></span> <a class="code" href="macros_8h.html#ae59df402113b58e8e28a7898e09a19a2">GCU_RO_PROP</a> (PangoAttrList*, PangoAttrList)</div> <div class="line"><a name="l00618"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a693b037d50b2c8f31ad4dd2e61fcbb50"> 618</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (<span class="keywordtype">bool</span>, AllowClipboard)</div> <div class="line"><a name="l00627"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#aabcabf8da1b3489f32b6b8bbc143fd94"> 627</a></span> <a class="code" href="macros_8h.html#ae59df402113b58e8e28a7898e09a19a2">GCU_RO_PROP</a> (<span class="keywordtype">unsigned</span>, SoftwareVersion)</div> <div class="line"><a name="l00639"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#ae45a1e66f2d9b967e7af23721f1f1c56"> 639</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (std::<span class="keywordtype">string</span>, BracketsFontFamily)</div> <div class="line"><a name="l00651"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a858328cac693814eae89fdf263259761"> 651</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (<span class="keywordtype">int</span>, BracketsFontSize)</div> <div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div> <div class="line"><a name="l00665"></a><span class="lineno"><a class="code" href="classgcp_1_1Document.html#a6eb03aa3f077f9315f4cac330dbc478e"> 665</a></span> <a class="code" href="macros_8h.html#a2e6e8322502a538f4583d41206cea297">GCU_PROP</a> (<span class="keywordtype">bool</span>, UseAtomColors)</div> <div class="line"><a name="l00666"></a><span class="lineno"> 666</span> };</div> <div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div> <div class="line"><a name="l00668"></a><span class="lineno"> 668</span> } <span class="comment">// namespace gcp</span></div> <div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div> <div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="preprocessor">#endif // GCHEMPAINT_DOCUMENT_H</span></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Mar 14 2013 17:34:28 for The Gnome Chemistry Utils by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1.2 </small></address> </body> </html>