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.HyperlinkImplT; 26 27 public import atk.Hyperlink; 28 public import gobject.ObjectG; 29 public import gtkc.atk; 30 public import gtkc.atktypes; 31 32 33 /** 34 * AtkHyperlinkImpl allows AtkObjects to refer to their associated 35 * AtkHyperlink instance, if one exists. AtkHyperlinkImpl differs 36 * from AtkHyperlink in that AtkHyperlinkImpl is an interface, whereas 37 * AtkHyperlink is a object type. The AtkHyperlinkImpl interface 38 * allows a client to query an AtkObject for the availability of an 39 * associated AtkHyperlink instance, and obtain that instance. It is 40 * thus particularly useful in cases where embedded content or inline 41 * content within a text object is present, since the embedding text 42 * object implements AtkHypertext and the inline/embedded objects are 43 * exposed as children which implement AtkHyperlinkImpl, in addition 44 * to their being obtainable via AtkHypertext:getLink followed by 45 * AtkHyperlink:getObject. 46 * 47 * The AtkHyperlinkImpl interface should be supported by objects 48 * exposed within the hierarchy as children of an AtkHypertext 49 * container which correspond to "links" or embedded content within 50 * the text. HTML anchors are not, for instance, normally exposed 51 * this way, but embedded images and components which appear inline in 52 * the content of a text object are. The AtkHyperlinkIface interface 53 * allows a means of determining which children are hyperlinks in this 54 * sense of the word, and for obtaining their corresponding 55 * AtkHyperlink object, from which the embedding range, URI, etc. can 56 * be obtained. 57 * 58 * To some extent this interface exists because, for historical 59 * reasons, AtkHyperlink was defined as an object type, not an 60 * interface. Thus, in order to interact with AtkObjects via 61 * AtkHyperlink semantics, a new interface was required. 62 */ 63 public template HyperlinkImplT(TStruct) 64 { 65 /** Get the main Gtk struct */ 66 public AtkHyperlinkImpl* getHyperlinkImplStruct(bool transferOwnership = false) 67 { 68 if (transferOwnership) 69 ownedRef = false; 70 return cast(AtkHyperlinkImpl*)getStruct(); 71 } 72 73 74 /** 75 * Gets the hyperlink associated with this object. 76 * 77 * Returns: an AtkHyperlink object which points to this 78 * implementing AtkObject. 79 * 80 * Since: 1.12 81 */ 82 public Hyperlink getHyperlink() 83 { 84 auto p = atk_hyperlink_impl_get_hyperlink(getHyperlinkImplStruct()); 85 86 if(p is null) 87 { 88 return null; 89 } 90 91 return ObjectG.getDObject!(Hyperlink)(cast(AtkHyperlink*) p, true); 92 } 93 }