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 gdk.Selection; 26 27 private import gdk.Display; 28 private import gdk.Window; 29 private import gdk.c.functions; 30 public import gdk.c.types; 31 private import glib.Str; 32 private import gobject.ObjectG; 33 public import gtkc.gdktypes; 34 35 36 /** */ 37 public struct Selection 38 { 39 40 /** 41 * Retrieves the contents of a selection in a given 42 * form. 43 * 44 * Params: 45 * requestor = a #GdkWindow. 46 * selection = an atom identifying the selection to get the 47 * contents of. 48 * target = the form in which to retrieve the selection. 49 * time = the timestamp to use when retrieving the 50 * selection. The selection owner may refuse the 51 * request if it did not own the selection at 52 * the time indicated by the timestamp. 53 */ 54 public static void convert(Window requestor, GdkAtom selection, GdkAtom target, uint time) 55 { 56 gdk_selection_convert((requestor is null) ? null : requestor.getWindowStruct(), selection, target, time); 57 } 58 59 /** 60 * Determines the owner of the given selection. 61 * 62 * Params: 63 * selection = an atom indentifying a selection. 64 * 65 * Returns: if there is a selection owner 66 * for this window, and it is a window known to the current process, 67 * the #GdkWindow that owns the selection, otherwise %NULL. Note 68 * that the return value may be owned by a different process if a 69 * foreign window was previously created for that window, but a new 70 * foreign window will never be created by this call. 71 */ 72 public static Window ownerGet(GdkAtom selection) 73 { 74 auto p = gdk_selection_owner_get(selection); 75 76 if(p is null) 77 { 78 return null; 79 } 80 81 return ObjectG.getDObject!(Window)(cast(GdkWindow*) p); 82 } 83 84 /** 85 * Determine the owner of the given selection. 86 * 87 * Note that the return value may be owned by a different 88 * process if a foreign window was previously created for that 89 * window, but a new foreign window will never be created by this call. 90 * 91 * Params: 92 * display = a #GdkDisplay 93 * selection = an atom indentifying a selection 94 * 95 * Returns: if there is a selection owner 96 * for this window, and it is a window known to the current 97 * process, the #GdkWindow that owns the selection, otherwise 98 * %NULL. 99 * 100 * Since: 2.2 101 */ 102 public static Window ownerGetForDisplay(Display display, GdkAtom selection) 103 { 104 auto p = gdk_selection_owner_get_for_display((display is null) ? null : display.getDisplayStruct(), selection); 105 106 if(p is null) 107 { 108 return null; 109 } 110 111 return ObjectG.getDObject!(Window)(cast(GdkWindow*) p); 112 } 113 114 /** 115 * Sets the owner of the given selection. 116 * 117 * Params: 118 * owner = a #GdkWindow or %NULL to indicate that the 119 * the owner for the given should be unset. 120 * selection = an atom identifying a selection. 121 * time = timestamp to use when setting the selection. 122 * If this is older than the timestamp given last 123 * time the owner was set for the given selection, the 124 * request will be ignored. 125 * sendEvent = if %TRUE, and the new owner is different 126 * from the current owner, the current owner 127 * will be sent a SelectionClear event. 128 * 129 * Returns: %TRUE if the selection owner was successfully 130 * changed to @owner, otherwise %FALSE. 131 */ 132 public static bool ownerSet(Window owner, GdkAtom selection, uint time, bool sendEvent) 133 { 134 return gdk_selection_owner_set((owner is null) ? null : owner.getWindowStruct(), selection, time, sendEvent) != 0; 135 } 136 137 /** 138 * Sets the #GdkWindow @owner as the current owner of the selection @selection. 139 * 140 * Params: 141 * display = the #GdkDisplay 142 * owner = a #GdkWindow or %NULL to indicate that the owner for 143 * the given should be unset 144 * selection = an atom identifying a selection 145 * time = timestamp to use when setting the selection 146 * If this is older than the timestamp given last time the owner was 147 * set for the given selection, the request will be ignored 148 * sendEvent = if %TRUE, and the new owner is different from the current 149 * owner, the current owner will be sent a SelectionClear event 150 * 151 * Returns: %TRUE if the selection owner was successfully changed to owner, 152 * otherwise %FALSE. 153 * 154 * Since: 2.2 155 */ 156 public static bool ownerSetForDisplay(Display display, Window owner, GdkAtom selection, uint time, bool sendEvent) 157 { 158 return gdk_selection_owner_set_for_display((display is null) ? null : display.getDisplayStruct(), (owner is null) ? null : owner.getWindowStruct(), selection, time, sendEvent) != 0; 159 } 160 161 /** 162 * Retrieves selection data that was stored by the selection 163 * data in response to a call to gdk_selection_convert(). This function 164 * will not be used by applications, who should use the #GtkClipboard 165 * API instead. 166 * 167 * Params: 168 * requestor = the window on which the data is stored 169 * data = location to store a pointer to the retrieved data. 170 * If the retrieval failed, %NULL we be stored here, otherwise, it 171 * will be non-%NULL and the returned data should be freed with g_free() 172 * when you are finished using it. The length of the 173 * allocated memory is one more than the length 174 * of the returned data, and the final byte will always 175 * be zero, to ensure nul-termination of strings 176 * propType = location to store the type of the property 177 * propFormat = location to store the format of the property 178 * 179 * Returns: the length of the retrieved data. 180 */ 181 public static int propertyGet(Window requestor, out char* data, GdkAtom* propType, int* propFormat) 182 { 183 return gdk_selection_property_get((requestor is null) ? null : requestor.getWindowStruct(), &data, propType, propFormat); 184 } 185 186 /** 187 * Sends a response to SelectionRequest event. 188 * 189 * Params: 190 * requestor = window to which to deliver response. 191 * selection = selection that was requested. 192 * target = target that was selected. 193 * property = property in which the selection owner stored the 194 * data, or %GDK_NONE to indicate that the request 195 * was rejected. 196 * time = timestamp. 197 */ 198 public static void sendNotify(Window requestor, GdkAtom selection, GdkAtom target, GdkAtom property, uint time) 199 { 200 gdk_selection_send_notify((requestor is null) ? null : requestor.getWindowStruct(), selection, target, property, time); 201 } 202 203 /** 204 * Send a response to SelectionRequest event. 205 * 206 * Params: 207 * display = the #GdkDisplay where @requestor is realized 208 * requestor = window to which to deliver response 209 * selection = selection that was requested 210 * target = target that was selected 211 * property = property in which the selection owner stored the data, 212 * or %GDK_NONE to indicate that the request was rejected 213 * time = timestamp 214 * 215 * Since: 2.2 216 */ 217 public static void sendNotifyForDisplay(Display display, Window requestor, GdkAtom selection, GdkAtom target, GdkAtom property, uint time) 218 { 219 gdk_selection_send_notify_for_display((display is null) ? null : display.getDisplayStruct(), (requestor is null) ? null : requestor.getWindowStruct(), selection, target, property, time); 220 } 221 }