Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
warp.c
Log Message:
In focus list, show iconified window names in brackets (as suggested by Fletch).
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/warp.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -3 -r1.42 -r1.43
--- warp.c 9 Apr 2004 12:59:56 -0000 1.42
+++ warp.c 18 Apr 2004 19:26:32 -0000 1.43
@@ -38,16 +38,22 @@
#include "E.h"
+typedef struct
+{
+ EWin *ewin;
+ Window win;
+ char *txt;
+} WarplistItem;
+
static void WarpFocusShowTitle(EWin * ewin);
static void WarpFocusHideTitle(void);
static int warpFocusIndex = 0;
static char warpFocusTitleShowing = 0;
static Window warpFocusTitleWindow = 0;
-static int warptitles_num = 0;
-static Window *warptitles = NULL;
-static EWin **warptitles_ewin = NULL;
static unsigned int warpFocusKey = 0;
+static int warplist_num = 0;
+static WarplistItem *warplist;
int
WarpFocusHandleEvent(XEvent * ev)
@@ -172,6 +178,7 @@
char pq;
int i, x, y, w, h, num, ww, hh;
static int mw, mh;
+ char s[1024];
tc = FindItem("WARPFOCUS", 0, LIST_FINDBY_NAME, LIST_TYPE_TCLASS);
if (!tc)
@@ -200,17 +207,18 @@
{
for (i = 0; i < num; i++)
{
- warptitles_num++;
- warptitles =
- Erealloc(warptitles, (sizeof(Window) * warptitles_num));
- warptitles_ewin =
- Erealloc(warptitles_ewin,
- (sizeof(EWin *) * warptitles_num));
- warptitles[warptitles_num - 1] =
+ warplist_num++;
+ warplist = Erealloc(warplist,
+ warplist_num * sizeof(WarplistItem));
+ warplist[warplist_num - 1].win =
ECreateWindow(warpFocusTitleWindow, 0, 0, 1, 1, 0);
- EMapWindow(disp, warptitles[warptitles_num - 1]);
- warptitles_ewin[warptitles_num - 1] = lst[i];
- TextSize(tc, 0, 0, 0, EwinGetTitle(lst[i]), &ww, &hh, 17);
+ EMapWindow(disp, warplist[warplist_num - 1].win);
+ warplist[warplist_num - 1].ewin = lst[i];
+ Esnprintf(s, sizeof(s), (lst[i]->iconified) ? "[%s]" : "%s",
+ EwinGetTitle(lst[i]));
+ warplist[warplist_num - 1].txt = strdup(s);
+ TextSize(tc, 0, 0, 0, warplist[warplist_num - 1].txt, &ww,
+ &hh, 17);
if (ww > w)
w = ww;
if (hh > h)
@@ -222,18 +230,19 @@
h += (ic->padding.top + ic->padding.bottom);
GetPointerScreenGeometry(&x, &y, &ww, &hh);
x += (ww - w) / 2;
- y += (hh - h * warptitles_num) / 2;
+ y += (hh - h * warplist_num) / 2;
mw = w;
mh = h;
EMoveResizeWindow(disp, warpFocusTitleWindow, x, y, w,
- (h * warptitles_num));
- for (i = 0; i < warptitles_num; i++)
+ (h * warplist_num));
+ for (i = 0; i < warplist_num; i++)
{
- EMoveResizeWindow(disp, warptitles[i], 0, (h * i), mw, mh);
- if (ewin == warptitles_ewin[i])
- IclassApply(ic, warptitles[i], mw, mh, 0, 0, STATE_CLICKED, 0);
+ EMoveResizeWindow(disp, warplist[i].win, 0, (h * i), mw, mh);
+ if (ewin == warplist[i].ewin)
+ IclassApply(ic, warplist[i].win, mw, mh, 0, 0, STATE_CLICKED,
+ 0);
else
- IclassApply(ic, warptitles[i], mw, mh, 0, 0, STATE_NORMAL, 0);
+ IclassApply(ic, warplist[i].win, mw, mh, 0, 0, STATE_NORMAL, 0);
}
PropagateShapes(warpFocusTitleWindow);
EMapWindow(disp, warpFocusTitleWindow);
@@ -246,19 +255,20 @@
GrabModeAsync, CurrentTime);
}
- for (i = 0; i < warptitles_num; i++)
+ for (i = 0; i < warplist_num; i++)
{
- if (!FindItem((char *)warptitles_ewin[i], 0, LIST_FINDBY_POINTER,
+ if (!FindItem((char *)warplist[i].ewin, 0, LIST_FINDBY_POINTER,
LIST_TYPE_EWIN))
- warptitles_ewin[i] = NULL;
- if (warptitles_ewin[i])
+ warplist[i].ewin = NULL;
+ if (warplist[i].ewin)
{
- int state =
- (ewin == warptitles_ewin[i]) ? STATE_CLICKED : STATE_NORMAL;
+ int state;
+
+ state = (ewin == warplist[i].ewin) ? STATE_CLICKED : STATE_NORMAL;
- IclassApply(ic, warptitles[i], mw, mh, 0, 0, state, 0);
- TclassApply(ic, warptitles[i], mw, mh, 0, 0, state, 0,
- tc, EwinGetTitle(warptitles_ewin[i]));
+ IclassApply(ic, warplist[i].win, mw, mh, 0, 0, state, 0);
+ TclassApply(ic, warplist[i].win, mw, mh, 0, 0, state, 0,
+ tc, warplist[i].txt);
}
}
@@ -276,16 +286,16 @@
if (warpFocusTitleWindow)
{
EUnmapWindow(disp, warpFocusTitleWindow);
- for (i = 0; i < warptitles_num; i++)
- EDestroyWindow(disp, warptitles[i]);
+ for (i = 0; i < warplist_num; i++)
+ {
+ EDestroyWindow(disp, warplist[i].win);
+ Efree(warplist[i].txt);
+ }
}
- if (warptitles)
- Efree(warptitles);
- if (warptitles_ewin)
- Efree(warptitles_ewin);
- warptitles = NULL;
- warptitles_ewin = NULL;
- warptitles_num = 0;
+ if (warplist)
+ Efree(warplist);
+ warplist = NULL;
+ warplist_num = 0;
warpFocusTitleShowing = 0;
}
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs