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 change21 // find conversion definition on APILookup.txt22 // implement new conversion functionalities on the wrap.utils pakage23 24 /*
25 * Conversion parameters:
26 * inFile =
27 * outPack = glib
28 * outFile = SequenceIter
29 * strct = GSequenceIter
30 * realStrct=
31 * ctorStrct=
32 * clss = SequenceIter
33 * interf =
34 * class Code: No
35 * interface Code: No
36 * template for:
37 * extend =
38 * implements:
39 * prefixes:
40 * - g_sequence_iter_
41 * omit structs:
42 * omit prefixes:
43 * omit code:
44 * omit signals:
45 * imports:
46 * - glib.Sequence
47 * structWrap:
48 * - GSequence* -> Sequence
49 * - GSequenceIter* -> SequenceIter
50 * module aliases:
51 * local aliases:
52 * overrides:
53 */54 55 moduleglib.SequenceIter;
56 57 publicimportgtkc.glibtypes;
58 59 privateimportgtkc.glib;
60 privateimportglib.ConstructionException;
61 62 63 privateimportglib.Sequence;
64 65 66 67 68 /**
69 * Description
70 * The GSequence data structure has the API of a list, but is
71 * implemented internally with a balanced binary tree. This means that
72 * it is possible to maintain a sorted list of n elements in time O(n
73 * log n). The data contained in each element can be either integer
74 * values, by using of the Type Conversion Macros,
75 * or simply pointers to any type of data.
76 * A GSequence is accessed through iterators,
77 * represented by a GSequenceIter. An iterator represents a position
78 * between two elements of the sequence. For example, the
79 * begin iterator represents the gap immediately
80 * before the first element of the sequence, and the
81 * end iterator represents the gap immediately
82 * after the last element. In an empty sequence, the begin and end
83 * iterators are the same.
84 * Some methods on GSequence operate on ranges of items. For example
85 * g_sequence_foreach_range() will call a user-specified function on
86 * each element with the given range. The range is delimited by the
87 * gaps represented by the passed-in iterators, so if you pass in the
88 * begin and end iterators, the range in question is the entire
89 * sequence.
90 * The function g_sequence_get() is used with an iterator to access the
91 * element immediately following the gap that the iterator represents.
92 * The iterator is said to point to that element.
93 * Iterators are stable across most operations on a GSequence. For
94 * example an iterator pointing to some element of a sequence will
95 * continue to point to that element even after the sequence is sorted.
96 * Even moving an element to another sequence using for example
97 * g_sequence_move_range() will not invalidate the iterators pointing
98 * to it. The only operation that will invalidate an iterator is when
99 * the element it points to is removed from any sequence.
100 */101 publicclassSequenceIter102 {
103 104 /** the main Gtk struct */105 protectedGSequenceIter* gSequenceIter;
106 107 108 publicGSequenceIter* getSequenceIterStruct()
109 {
110 returngSequenceIter;
111 }
112 113 114 /** the main Gtk struct as a void* */115 protectedvoid* getStruct()
116 {
117 returncast(void*)gSequenceIter;
118 }
119 120 /**
121 * Sets our main struct and passes it to the parent class
122 */123 publicthis (GSequenceIter* gSequenceIter)
124 {
125 this.gSequenceIter = gSequenceIter;
126 }
127 128 /**
129 */130 131 /**
132 * Returns whether iter is the begin iterator
133 * Since 2.14
134 * Returns: whether iter is the begin iterator
135 */136 publicintisBegin()
137 {
138 // gboolean g_sequence_iter_is_begin (GSequenceIter *iter);139 returng_sequence_iter_is_begin(gSequenceIter);
140 }
141 142 /**
143 * Returns whether iter is the end iterator
144 * Since 2.14
145 * Returns: Whether iter is the end iterator.
146 */147 publicintisEnd()
148 {
149 // gboolean g_sequence_iter_is_end (GSequenceIter *iter);150 returng_sequence_iter_is_end(gSequenceIter);
151 }
152 153 /**
154 * Returns an iterator pointing to the next position after iter. If
155 * iter is the end iterator, the end iterator is returned.
156 * Since 2.14
157 * Returns: a GSequenceIter pointing to the next position after iter.
158 */159 publicSequenceIternext()
160 {
161 // GSequenceIter * g_sequence_iter_next (GSequenceIter *iter);162 autop = g_sequence_iter_next(gSequenceIter);
163 164 if(pisnull)
165 {
166 returnnull;
167 }
168 169 returnnewSequenceIter(cast(GSequenceIter*) p);
170 }
171 172 /**
173 * Returns an iterator pointing to the previous position before iter. If
174 * iter is the begin iterator, the begin iterator is returned.
175 * Since 2.14
176 * Returns: a GSequenceIter pointing to the previous position before iter.
177 */178 publicSequenceIterprev()
179 {
180 // GSequenceIter * g_sequence_iter_prev (GSequenceIter *iter);181 autop = g_sequence_iter_prev(gSequenceIter);
182 183 if(pisnull)
184 {
185 returnnull;
186 }
187 188 returnnewSequenceIter(cast(GSequenceIter*) p);
189 }
190 191 /**
192 * Returns the position of iter
193 * Since 2.14
194 * Returns: the position of iter
195 */196 publicintgetPosition()
197 {
198 // gint g_sequence_iter_get_position (GSequenceIter *iter);199 returng_sequence_iter_get_position(gSequenceIter);
200 }
201 202 /**
203 * Returns the GSequenceIter which is delta positions away from iter.
204 * If iter is closer than -delta positions to the beginning of the sequence,
205 * the begin iterator is returned. If iter is closer than delta positions
206 * to the end of the sequence, the end iterator is returned.
207 * Since 2.14
208 * Params:
209 * delta = A positive or negative number indicating how many positions away
210 * from iter the returned GSequenceIter will be.
211 * Returns: a GSequenceIter which is delta positions away from iter.
212 */213 publicSequenceItermove(intdelta)
214 {
215 // GSequenceIter * g_sequence_iter_move (GSequenceIter *iter, gint delta);216 autop = g_sequence_iter_move(gSequenceIter, delta);
217 218 if(pisnull)
219 {
220 returnnull;
221 }
222 223 returnnewSequenceIter(cast(GSequenceIter*) p);
224 }
225 226 /**
227 * Returns the GSequence that iter points into.
228 * Since 2.14
229 * Returns: the GSequence that iter points into.
230 */231 publicSequencegetSequence()
232 {
233 // GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter);234 autop = g_sequence_iter_get_sequence(gSequenceIter);
235 236 if(pisnull)
237 {
238 returnnull;
239 }
240 241 returnnewSequence(cast(GSequence*) p);
242 }
243 244 /**
245 * Returns a negative number if a comes before b, 0 if they are equal,
246 * and a positive number if a comes after b.
247 * The a and b iterators must point into the same sequence.
248 * Since 2.14
249 * Params:
250 * a = a GSequenceIter
251 * b = a GSequenceIter
252 * Returns: A negative number if a comes before b, 0 if they are equal, and a positive number if a comes after b.
253 */254 publicintcompare(SequenceIterb)
255 {
256 // gint g_sequence_iter_compare (GSequenceIter *a, GSequenceIter *b);257 returng_sequence_iter_compare(gSequenceIter, (bisnull) ? null : b.getSequenceIterStruct());
258 }
259 }