1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module atk.DocumentT; 26 27 public import atk.c.functions; 28 public import atk.c.types; 29 public import glib.Str; 30 public import gobject.Signals; 31 public import gtkc.atktypes; 32 public import std.algorithm; 33 34 35 /** 36 * The AtkDocument interface should be supported by any object whose 37 * content is a representation or view of a document. The AtkDocument 38 * interface should appear on the toplevel container for the document 39 * content; however AtkDocument instances may be nested (i.e. an 40 * AtkDocument may be a descendant of another AtkDocument) in those 41 * cases where one document contains "embedded content" which can 42 * reasonably be considered a document in its own right. 43 */ 44 public template DocumentT(TStruct) 45 { 46 /** Get the main Gtk struct */ 47 public AtkDocument* getDocumentStruct(bool transferOwnership = false) 48 { 49 if (transferOwnership) 50 ownedRef = false; 51 return cast(AtkDocument*)getStruct(); 52 } 53 54 55 /** 56 * 57 * Params: 58 * attributeName = a character string representing the name of the attribute 59 * whose value is being queried. 60 * Returns: a string value associated with the named 61 * attribute for this document, or NULL if a value for 62 * #attribute_name has not been specified for this document. 63 * 64 * Since: 1.12 65 */ 66 public string getAttributeValue(string attributeName) 67 { 68 return Str.toString(atk_document_get_attribute_value(getDocumentStruct(), Str.toStringz(attributeName))); 69 } 70 71 /** 72 * Gets an AtkAttributeSet which describes document-wide 73 * attributes as name-value pairs. 74 * 75 * Returns: An AtkAttributeSet containing the explicitly 76 * set name-value-pair attributes associated with this document 77 * as a whole. 78 * 79 * Since: 1.12 80 */ 81 public override AtkAttributeSet* getAttributes() 82 { 83 return atk_document_get_attributes(getDocumentStruct()); 84 } 85 86 /** 87 * Returns: current page number inside @document. -1 if not 88 * implemented, not know by the implementor or irrelevant. 89 * 90 * Since: 2.12 91 */ 92 public int getCurrentPageNumber() 93 { 94 return atk_document_get_current_page_number(getDocumentStruct()); 95 } 96 97 /** 98 * Gets a %gpointer that points to an instance of the DOM. It is 99 * up to the caller to check atk_document_get_type to determine 100 * how to cast this pointer. 101 * 102 * Deprecated: Since 2.12. @document is already a representation of 103 * the document. Use it directly, or one of its children, as an 104 * instance of the DOM. 105 * 106 * Returns: a %gpointer that points to an instance of the DOM. 107 */ 108 public void* getDocument() 109 { 110 return atk_document_get_document(getDocumentStruct()); 111 } 112 113 /** 114 * Gets a string indicating the document type. 115 * 116 * Deprecated: Since 2.12. Please use atk_document_get_attributes() to 117 * ask for the document type if it applies. 118 * 119 * Returns: a string indicating the document type 120 */ 121 public string getDocumentType() 122 { 123 return Str.toString(atk_document_get_document_type(getDocumentStruct())); 124 } 125 126 /** 127 * Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale 128 * of the content of this document instance. Individual 129 * text substrings or images within this document may have 130 * a different locale, see atk_text_get_attributes and 131 * atk_image_get_image_locale. 132 * 133 * Deprecated: Please use atk_object_get_object_locale() instead. 134 * 135 * Returns: a UTF-8 string indicating the POSIX-style LC_MESSAGES 136 * locale of the document content as a whole, or NULL if 137 * the document content does not specify a locale. 138 */ 139 public string getLocale() 140 { 141 return Str.toString(atk_document_get_locale(getDocumentStruct())); 142 } 143 144 /** 145 * Returns: total page count of @document. -1 if not implemented, not 146 * know by the implementor or irrelevant. 147 * 148 * Since: 2.12 149 */ 150 public int getPageCount() 151 { 152 return atk_document_get_page_count(getDocumentStruct()); 153 } 154 155 /** 156 * 157 * Params: 158 * attributeName = a character string representing the name of the attribute 159 * whose value is being set. 160 * attributeValue = a string value to be associated with #attribute_name. 161 * Returns: TRUE if #value is successfully associated with #attribute_name 162 * for this document, FALSE otherwise (e.g. if the document does not 163 * allow the attribute to be modified). 164 * 165 * Since: 1.12 166 */ 167 public bool setAttributeValue(string attributeName, string attributeValue) 168 { 169 return atk_document_set_attribute_value(getDocumentStruct(), Str.toStringz(attributeName), Str.toStringz(attributeValue)) != 0; 170 } 171 172 /** 173 * The 'load-complete' signal is emitted when a pending load of 174 * a static document has completed. This signal is to be 175 * expected by ATK clients if and when AtkDocument implementors 176 * expose ATK_STATE_BUSY. If the state of an AtkObject which 177 * implements AtkDocument does not include ATK_STATE_BUSY, it 178 * should be safe for clients to assume that the AtkDocument's 179 * static contents are fully loaded into the container. 180 * (Dynamic document contents should be exposed via other 181 * signals.) 182 */ 183 gulong addOnLoadComplete(void delegate(DocumentIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 184 { 185 return Signals.connect(this, "load-complete", dlg, connectFlags ^ ConnectFlags.SWAPPED); 186 } 187 188 /** 189 * The 'load-stopped' signal is emitted when a pending load of 190 * document contents is cancelled, paused, or otherwise 191 * interrupted by the user or application logic. It should not 192 * however be emitted while waiting for a resource (for instance 193 * while blocking on a file or network read) unless a 194 * user-significant timeout has occurred. 195 */ 196 gulong addOnLoadStopped(void delegate(DocumentIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 197 { 198 return Signals.connect(this, "load-stopped", dlg, connectFlags ^ ConnectFlags.SWAPPED); 199 } 200 201 /** 202 * The 'page-changed' signal is emitted when the current page of 203 * a document changes, e.g. pressing page up/down in a document 204 * viewer. 205 * 206 * Params: 207 * pageNumber = the new page number. If this value is unknown 208 * or not applicable, -1 should be provided. 209 * 210 * Since: 2.12 211 */ 212 gulong addOnPageChanged(void delegate(int, DocumentIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 213 { 214 return Signals.connect(this, "page-changed", dlg, connectFlags ^ ConnectFlags.SWAPPED); 215 } 216 217 /** 218 * The 'reload' signal is emitted when the contents of a 219 * document is refreshed from its source. Once 'reload' has 220 * been emitted, a matching 'load-complete' or 'load-stopped' 221 * signal should follow, which clients may await before 222 * interrogating ATK for the latest document content. 223 */ 224 gulong addOnReload(void delegate(DocumentIF) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0) 225 { 226 return Signals.connect(this, "reload", dlg, connectFlags ^ ConnectFlags.SWAPPED); 227 } 228 }