Lines Matching defs:ie
44 static void splitEntry(IconEntry *ie, int grav1, int grav2, int w, int h);
46 static IconEntry *prevIconEntry(IconEntry *ie, IconRegion *ir);
47 static void mergeEntries(IconEntry *old, IconEntry *ie);
50 splitEntry(IconEntry *ie, int grav1, int grav2, int w, int h)
57 if (w != ie->w)
58 splitEntry(ie, grav2, grav1, w, ie->h);
59 if (h != ie->h) {
63 entry->next = ie->next;
64 ie->next = entry;
65 entry->x = ie->x;
66 entry->h = (ie->h - h);
67 entry->w = ie->w;
68 ie->h = h;
70 entry->y = ie->y;
71 ie->y = entry->y + entry->h;
74 entry->y = ie->y + ie->h;
79 if (h != ie->h)
80 splitEntry(ie, grav2, grav1, ie->w, h);
81 if (w != ie->w) {
85 entry->next = ie->next;
86 ie->next = entry;
87 entry->y = ie->y;
88 entry->w = (ie->w - w);
89 entry->h = ie->h;
90 ie->w = w;
92 entry->x = ie->x;
93 ie->x = entry->x + entry->w;
96 entry->x = ie->x + ie->w;
112 IconEntry *ie;
115 ie = NULL;
119 for (ie = ir->entries; ie; ie = ie->next) {
120 if (ie->used)
122 if (ie->w >= w && ie->h >= h)
125 if (ie)
128 if (ie) {
129 splitEntry(ie, ir->grav1, ir->grav2, w, h);
130 ie->used = 1;
131 ie->twm_win = tmp_win;
132 *final_x = ie->x + (ie->w - iconWidth(tmp_win)) / 2;
133 *final_y = ie->y + (ie->h - iconHeight(tmp_win)) / 2;
146 IconEntry *ie;
149 for (ie = ir->entries; ie; ie = ie->next)
150 if (ie->twm_win == tmp_win) {
153 return ie;
206 prevIconEntry(IconEntry *ie, IconRegion *ir)
210 if (ie == ir->entries)
212 for (ip = ir->entries; ip->next != ie; ip = ip->next);
217 * old is being freed; and is adjacent to ie. Merge
221 mergeEntries(IconEntry *old, IconEntry *ie)
223 if (old->y == ie->y) {
224 ie->w = old->w + ie->w;
225 if (old->x < ie->x)
226 ie->x = old->x;
229 ie->h = old->h + ie->h;
230 if (old->y < ie->y)
231 ie->y = old->y;
238 IconEntry *ie, *ip, *in;
241 ie = FindIconEntry(tmp_win, &ir);
242 if (ie) {
243 ie->twm_win = NULL;
244 ie->used = 0;
245 ip = prevIconEntry(ie, ir);
246 in = ie->next;
249 ((ip->x == ie->x && ip->w == ie->w) ||
250 (ip->y == ie->y && ip->h == ie->h))) {
251 ip->next = ie->next;
252 mergeEntries(ie, ip);
253 free(ie);
254 ie = ip;
258 ((in->x == ie->x && in->w == ie->w) ||
259 (in->y == ie->y && in->h == ie->h))) {
260 ie->next = in->next;
261 mergeEntries(in, ie);
263 in = ie->next;