summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorNick Hadaway <raker@gentoo.org>2003-07-11 02:37:21 +0000
committerNick Hadaway <raker@gentoo.org>2003-07-11 02:37:21 +0000
commit50a523acadb5a602816dfce39ed5ffa350af9c40 (patch)
treedfc012f83b9c8832655d3fe8ce6ecef361bd0ad2 /x11-wm
parentMarked 2.7.1 as x86 (diff)
downloadgentoo-2-50a523acadb5a602816dfce39ed5ffa350af9c40.tar.gz
gentoo-2-50a523acadb5a602816dfce39ed5ffa350af9c40.tar.bz2
gentoo-2-50a523acadb5a602816dfce39ed5ffa350af9c40.zip
filter bad flags, add menu transparency and a keyboard scolling patch
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/windowmaker/ChangeLog8
-rw-r--r--x11-wm/windowmaker/Manifest8
-rw-r--r--x11-wm/windowmaker/files/digest-windowmaker-0.80.2-r32
-rw-r--r--x11-wm/windowmaker/files/trance.patch.WM-0.80.2.diff334
-rw-r--r--x11-wm/windowmaker/files/wlist.patch90
-rw-r--r--x11-wm/windowmaker/windowmaker-0.80.2-r3.ebuild154
6 files changed, 593 insertions, 3 deletions
diff --git a/x11-wm/windowmaker/ChangeLog b/x11-wm/windowmaker/ChangeLog
index 62488caa9a31..956d3f5fd319 100644
--- a/x11-wm/windowmaker/ChangeLog
+++ b/x11-wm/windowmaker/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for x11-wm/windowmaker
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/windowmaker/ChangeLog,v 1.5 2003/06/20 02:49:21 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/windowmaker/ChangeLog,v 1.6 2003/07/11 02:37:17 raker Exp $
+
+*windowmaker-0.80.2-r3 (10 Jul 2003)
+
+ 10 Jul 2003; Nick Hadaway <raker@gentoo.org> windowmaker-0.80.2-r3.ebuild,
+ file/wlist.patch, files/trance.patch.WM-0.80.2.diff:
+ Scroll with arrow keys and a menu transparency patch. :)
19 Jun 2003; Joshua Kinard <kumba@gentoo.org> windowmaker-0.80.2-r2.ebuild:
Added ~mips to KEYWORDS.
diff --git a/x11-wm/windowmaker/Manifest b/x11-wm/windowmaker/Manifest
index 0fed24789d8f..37c0ee87b2a0 100644
--- a/x11-wm/windowmaker/Manifest
+++ b/x11-wm/windowmaker/Manifest
@@ -1,6 +1,10 @@
-MD5 c404478059d550ed8308e0f65d8626fd ChangeLog 4688
-MD5 e3776a252435548fd68f8ee6ef7e0c6c windowmaker-0.80.2-r1.ebuild 3470
MD5 43204b50424e186225c3328cddc33bea windowmaker-0.80.2-r2.ebuild 3497
+MD5 e3776a252435548fd68f8ee6ef7e0c6c windowmaker-0.80.2-r1.ebuild 3470
+MD5 d8eee7fa89cc0f81e5fe5f69d018e4d3 windowmaker-0.80.2-r3.ebuild 3754
+MD5 3bc2534665e2a67fb7371a161b5a4b25 ChangeLog 4918
+MD5 a42a33a349ca84fb6e2cc5fdbd627b99 files/trance.patch.WM-0.80.2.diff 9738
+MD5 a062e261bd5aaca39bc17be01f07f1b6 files/wlist.patch 2776
MD5 b5304655d4ff5441989ab94a1bdc9506 files/digest-windowmaker-0.80.2-r1 144
MD5 b5304655d4ff5441989ab94a1bdc9506 files/digest-windowmaker-0.80.2-r2 144
+MD5 b5304655d4ff5441989ab94a1bdc9506 files/digest-windowmaker-0.80.2-r3 144
MD5 9a5c9f1b2b44a678526f0fd71b2cf51d files/windowmaker-0.80.2-r1-gentoo.patch 4331
diff --git a/x11-wm/windowmaker/files/digest-windowmaker-0.80.2-r3 b/x11-wm/windowmaker/files/digest-windowmaker-0.80.2-r3
new file mode 100644
index 000000000000..4ef83da7e63a
--- /dev/null
+++ b/x11-wm/windowmaker/files/digest-windowmaker-0.80.2-r3
@@ -0,0 +1,2 @@
+MD5 e4b71ee2b35a4e16b371ab9595e7335f WindowMaker-0.80.2.tar.gz 2532831
+MD5 07c7700daaaf232bc490f5abaabef085 WindowMaker-extra-0.1.tar.gz 238018
diff --git a/x11-wm/windowmaker/files/trance.patch.WM-0.80.2.diff b/x11-wm/windowmaker/files/trance.patch.WM-0.80.2.diff
new file mode 100644
index 000000000000..c5ef62f76cee
--- /dev/null
+++ b/x11-wm/windowmaker/files/trance.patch.WM-0.80.2.diff
@@ -0,0 +1,334 @@
+--- WindowMaker-0.80.2/WPrefs.app/Appearance.c Tue Jan 8 08:44:38 2002
++++ WindowMaker-0.80.2-trance/WPrefs.app/Appearance.c Tue Feb 4 20:45:34 2003
+@@ -82,6 +82,11 @@
+ WMFrame *taliF;
+ WMButton *taliB[3];
+
++ WMFrame *tranceF;
++ WMButton *tranceB;
++ WMSlider *tranceSl;
++ WMLabel *tranceL;
++
+ /* root bg */
+ WMFrame *bgF;
+
+@@ -1683,6 +1688,23 @@
+ }
+ }
+
++static void
++tranceCallback(WMWidget *self, void *data)
++{
++ _Panel *panel = (_Panel*)data;
++ char buffer[5];
++ int i;
++
++ i = WMGetSliderValue(panel->tranceSl);
++ i = 10*(10-i);
++
++ if (i == 0) {
++ WMSetLabelText(panel->tranceL, "OFF");
++ } else {
++ sprintf(buffer, "%i%%", i);
++ WMSetLabelText(panel->tranceL, buffer);
++ }
++}
+
+ static void
+ createPanel(Panel *p)
+@@ -1974,7 +1996,7 @@
+
+
+ panel->taliF = WMCreateFrame(panel->optF);
+- WMResizeWidget(panel->taliF, 110, 80);
++ WMResizeWidget(panel->taliF, 105, 80);
+ WMMoveWidget(panel->taliF, 15, 100);
+ WMSetFrameTitle(panel->taliF, _("Title Alignment"));
+
+@@ -1992,7 +2014,7 @@
+ WMSetButtonText(panel->taliB[i], _("Right"));
+ break;
+ }
+- WMResizeWidget(panel->taliB[i], 90, 18);
++ WMResizeWidget(panel->taliB[i], 85, 18);
+ WMMoveWidget(panel->taliB[i], 10, 15 + 20*i);
+ }
+ WMGroupButtons(panel->taliB[0], panel->taliB[1]);
+@@ -2000,6 +2022,38 @@
+
+ WMMapSubwidgets(panel->taliF);
+
++
++
++ panel->tranceF = WMCreateFrame(panel->optF);
++ WMResizeWidget(panel->tranceF, 105,80);
++ WMMoveWidget(panel->tranceF, 125, 100);
++ WMSetFrameTitle(panel->tranceF,_("Transparency"));
++
++ WMSetBalloonTextForView(_("<yermom> i love windowmaker\n"
++ "<tarzeau> get some fresh sand-wich-es\n"
++ "<flip-> heh\n"
++ "<flip-> transparency\n"
++ "<flip-> moo\n"
++ "<flip-> :P\n"), WMWidgetView(panel->tranceF));
++
++ panel->tranceB = WMCreateSwitchButton(panel->tranceF);
++ WMSetButtonText(panel->tranceB, _("Menu"));
++ WMResizeWidget(panel->tranceB,85,18);
++ WMMoveWidget(panel->tranceB, 10, 15);
++
++ panel->tranceSl = WMCreateSlider(panel->tranceF);
++ WMResizeWidget(panel->tranceSl, 70, 18);
++ WMMoveWidget(panel->tranceSl, 17, 15 + 20*2);
++ WMSetSliderMinValue(panel->tranceSl, 0);
++ WMSetSliderMaxValue(panel->tranceSl, 10);
++ WMSetSliderAction(panel->tranceSl, tranceCallback, panel);
++
++ panel->tranceL = WMCreateLabel(panel->tranceF);
++ WMResizeWidget(panel->tranceL, 27, 18);
++ WMMoveWidget(panel->tranceL, 40, 35);
++
++ WMMapSubwidgets(panel->tranceF);
++
+ WMMapSubwidgets(panel->optF);
+
+ /**/
+@@ -2058,6 +2112,7 @@
+ static void
+ showData(_Panel *panel)
+ {
++ int x;
+ int i;
+ char *str;
+
+@@ -2103,6 +2158,13 @@
+
+ WMSetButtonSelected(panel->mstyB[panel->menuStyle], True);
+ WMSetButtonSelected(panel->taliB[panel->titleAlignment], True);
++
++
++ WMSetButtonSelected(panel->tranceB, GetBoolForKey("MenuTrance"));
++
++ x = GetIntegerForKey("TranceAmount");
++ WMSetSliderValue(panel->tranceSl, x);
++ tranceCallback(NULL, panel);
+ }
+
+
+@@ -2154,6 +2216,9 @@
+ SetStringForKey("center", "TitleJustify");
+ break;
+ }
++
++ SetBoolForKey(WMGetButtonSelected(panel->tranceB), "MenuTrance");
++ SetIntegerForKey(WMGetSliderValue(panel->tranceSl), "TranceAmount");
+ }
+
+
+--- WindowMaker-0.80.2/src/WindowMaker.h Thu Feb 21 06:28:48 2002
++++ WindowMaker-0.80.2-trance/src/WindowMaker.h Tue Feb 4 19:13:20 2003
+@@ -337,6 +337,8 @@
+ char opaque_move; /* update window position during */
+ /* move */
+
++ char menu_trance; /* whether menu should be translucent */
++ int trance_amount; /* percentage of translucency */
+ char wrap_menus; /* wrap menus at edge of screen */
+ char scrollable_menus; /* let them be scrolled */
+ char align_menus; /* align menu with their parents */
+--- WindowMaker-0.80.2/src/defaults.c Tue Jan 8 08:45:07 2002
++++ WindowMaker-0.80.2-trance/src/defaults.c Tue Feb 4 19:13:07 2003
+@@ -494,6 +494,12 @@
+ {"UseSaveUnders", "NO", NULL,
+ &wPreferences.use_saveunders, getBool, NULL
+ },
++ {"MenuTrance", "NO", NULL,
++ &wPreferences.menu_trance, getBool, NULL
++ },
++ {"TranceAmount", "30", NULL,
++ &wPreferences.trance_amount, getInt, NULL
++ },
+ {"OpaqueMove", "NO", NULL,
+ &wPreferences.opaque_move, getBool, NULL
+ },
+--- WindowMaker-0.80.2/src/menu.c Thu Feb 21 06:28:48 2002
++++ WindowMaker-0.80.2-trance/src/menu.c Tue Feb 4 18:50:02 2003
+@@ -85,6 +85,7 @@
+ static void menuCloseClick(WCoreWindow *sender, void *data, XEvent *event);
+
+ static void updateTexture(WMenu *menu);
++static void clipDimensionsToScreen(WMenu *menu, int *x, int *y, int *width, int *height);
+
+ #ifndef LITE
+ static int saveMenuRecurs(WMPropList *menus, WScreen *scr, WMenu *menu);
+@@ -480,16 +481,129 @@
+ menu->menu->width-1, i*menu->entry_height,
+ &light);
+ }
+- }
+- if (!RConvertImage(scr->rcontext, img, &pix)) {
+- wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode));
+- }
++ }
++ if (!RConvertImage(scr->rcontext, img, &pix)) {
++ wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode));
++ }
+ RReleaseImage(img);
+
+ return pix;
+ }
+
+
++ static void
++clipDimensionsToScreen(WMenu *menu, int *x, int *y, int *width, int *height)
++{
++ int sw, sh;
++ int fx, fy;
++
++ sw = menu->menu->screen_ptr->scr_width;
++ sh = menu->menu->screen_ptr->scr_height;
++
++ fx = *x + *width;
++ fy = *y + *height;
++
++ /* CLAMP everything */
++ if (*x > sw) { *x = sw; } else if (*x < 0) { *x = 0; }
++ if (*y > sh) { *y = sh; } else if (*y < 0) { *y = 0; }
++ if (fx > sw) { fx = sw; } else if (fx < 0) { fx = 0; }
++ if (fy > sh) { fy = sh; } else if (fy < 0) { fy = 0; }
++
++ /* Make sure that height and width are positive */
++ if (fx < *x) { *width = 0; } else { *width = fx - *x; }
++ if (fy < *y) { *height = 0; } else { *height = fy - *y; }
++}
++
++static Pixmap
++tranceMenu(WMenu *menu)
++{
++ WScreen *scr = menu->menu->screen_ptr;
++
++ XImage *back, *front;
++ RImage *trance, *menu_image, *msnormal;
++ Pixmap original, result;
++
++ int mw, mh, dx, dy; /* these correspond to the menu proper */
++ int gx, gy, gw, gh; /* these correspond to what we grab from the root window */
++ int tamount;
++ unsigned long red_mask, green_mask, blue_mask;
++
++ unsigned int w, h, bar;
++ int foo;
++ Window baz;
++
++ mw = gw = menu->menu->width;
++ mh = gh = menu->menu->height;
++ dx = gx = menu->frame_x + 1;
++ dy = gy = menu->frame_y + menu->frame->top_width + 1;
++
++ tamount = wPreferences.trance_amount;
++ clipDimensionsToScreen(menu, &gx, &gy, &gw, &gh);
++ back = XGetImage(dpy, scr->root_win, gx, gy, gw, gh,
++ AllPlanes, ZPixmap);
++ if (!back) {
++ wwarning(_("error capturing \"back\" image"),RMessageForError(RErrorCode));
++ return None;
++ } else {
++ red_mask = back->red_mask;
++ green_mask = back->green_mask;
++ blue_mask = back->blue_mask;
++
++ trance = RCreateImageFromXImage(scr->rcontext, back, NULL);
++ XDestroyImage(back);
++ if (!trance) {
++ wwarning(_("error rendering \"trance\" image"),
++ RMessageForError(RErrorCode));
++ return None;
++ } else {
++ /************************************************************/
++ original = renderTexture(menu);
++
++ XGetGeometry(dpy, original, &baz, &foo,
++ &foo, &w, &h, &bar, &bar);
++ front = XGetImage(dpy, original, 0, 0, w, h,
++ AllPlanes, ZPixmap);
++ if (!front) {
++ wwarning(_("error capturing \"front\" image"),
++ RMessageForError(RErrorCode));
++ return None;
++ }
++ front->red_mask = red_mask;
++ front->green_mask = green_mask;
++ front->blue_mask = blue_mask;
++
++ menu_image=RCreateImageFromXImage(scr->rcontext,front,NULL);
++
++ XDestroyImage(front);
++ /************************************************************/
++ if (original) {
++ FREE_PIXMAP(original);
++ }
++ if (!menu_image) {
++ wwarning(_("error rendering \"menu_image\""),
++ RMessageForError(RErrorCode));
++ return None;
++ } else {
++ if (wPreferences.menu_style == MS_NORMAL) {
++ msnormal = RMakeTiledImage(menu_image, mw, mh);
++ RCombineAreaWithOpaqueness(trance, msnormal,0,0,gw,gh,
++ gx - dx,gy - dy,256*tamount/10);
++ RReleaseImage(menu_image);
++ RReleaseImage(msnormal);
++ } else {
++ RCombineAreaWithOpaqueness(trance, menu_image,0,0,gw,gh,
++ gx - dx,gy - dy,256*tamount/10);
++ RReleaseImage(menu_image);
++ }
++ RConvertImage(scr->rcontext, trance,
++ &result);
++ }
++ RReleaseImage(trance);
++ }
++ }
++ return result;
++}
++
+ static void
+ updateTexture(WMenu *menu)
+ {
+@@ -500,7 +614,11 @@
+ if (!menu->flags.brother) {
+ FREE_PIXMAP(menu->menu_texture_data);
+
+- menu->menu_texture_data = renderTexture(menu);
++ if (wPreferences.menu_trance) {
++ menu->menu_texture_data = tranceMenu(menu);
++ } else {
++ menu->menu_texture_data = renderTexture(menu);
++ }
+
+ XSetWindowBackgroundPixmap(dpy, menu->menu->window,
+ menu->menu_texture_data);
+@@ -1154,6 +1272,11 @@
+ XMoveWindow(dpy, menu->frame->core->window, x, y);
+ menu->frame_x = x;
+ menu->frame_y = y;
++ /* FIXME: needs an if */
++ if (wPreferences.menu_trance) {
++ updateTexture(menu);
++ }
++ /* */
+ XMapWindow(dpy, menu->frame->core->window);
+ wRaiseFrame(menu->frame->core);
+ menu->flags.mapped = 1;
+@@ -1178,6 +1301,11 @@
+ menu->frame_y = menu->frame->screen_ptr->app_menu_y;
+ XMoveWindow(dpy, menu->frame->core->window, menu->frame_x, menu->frame_y);
+ }
++ /* FIXME: needs an if */
++ if (wPreferences.menu_trance) {
++ updateTexture(menu);
++ }
++ /* */
+ XMapWindow(dpy, menu->frame->core->window);
+ wRaiseFrame(menu->frame->core);
+ menu->flags.mapped = 1;
diff --git a/x11-wm/windowmaker/files/wlist.patch b/x11-wm/windowmaker/files/wlist.patch
new file mode 100644
index 000000000000..4e24e6f0d211
--- /dev/null
+++ b/x11-wm/windowmaker/files/wlist.patch
@@ -0,0 +1,90 @@
+--- wlist.c.orig Sat Apr 20 20:17:16 2002
++++ wlist.c Sun Apr 21 14:12:06 2002
+@@ -4,6 +4,8 @@
+
+ #include "WINGsP.h"
+
++#include <X11/keysym.h>
++
+ char *WMListDidScrollNotification = "WMListDidScrollNotification";
+ char *WMListSelectionDidChangeNotification = "WMListSelectionDidChangeNotification";
+
+@@ -42,6 +44,7 @@
+ unsigned int redrawPending:1;
+ unsigned int buttonPressed:1;
+ unsigned int buttonWasPressed:1;
++ unsigned int focused:1;
+ } flags;
+ } List;
+
+@@ -115,10 +118,10 @@
+ lPtr->view->delegate = &_ListViewDelegate;
+
+ WMCreateEventHandler(lPtr->view, ExposureMask|StructureNotifyMask
+- |ClientMessageMask, handleEvents, lPtr);
++ |FocusChangeMask|ClientMessageMask, handleEvents, lPtr);
+
+ WMCreateEventHandler(lPtr->view, ButtonPressMask|ButtonReleaseMask
+- |EnterWindowMask|LeaveWindowMask|ButtonMotionMask,
++ |EnterWindowMask|LeaveWindowMask|ButtonMotionMask|KeyPressMask,
+ handleActionEvents, lPtr);
+
+ lPtr->itemHeight = WMFontHeight(scrPtr->normalFont) + 1;
+@@ -1011,6 +1014,11 @@
+ int topItem = lPtr->topItem;
+ static int lastClicked = -1, prevItem = -1;
+
++ /* for arrow keys handling */
++ char buffer[64];
++ KeySym ksym;
++ int count, row;
++
+ CHECK_CLASS(data, WC_List);
+
+ switch (event->type) {
+@@ -1063,6 +1071,10 @@
+ case ButtonPress:
+ if (event->xbutton.x <= WMWidgetWidth(lPtr->vScroller))
+ break;
++ /* need focus for keyboard events */
++ if (!lPtr->flags.focused);
++ WMSetFocusToWidget(lPtr);
++
+ if (event->xbutton.button == WINGsConfiguration.mouseWheelDown ||
+ event->xbutton.button == WINGsConfiguration.mouseWheelUp) {
+ int amount = 0;
+@@ -1169,6 +1181,34 @@
+ prevItem = tmp;
+ }
+ break;
++ case KeyPress:
++ /* handle arrow keys, space and return */
++ count = XLookupString(&event->xkey, buffer, 63, &ksym, NULL);
++ buffer[count] = '\0';
++ switch(ksym) {
++ case XK_Up:
++ row = WMGetListSelectedItemRow(lPtr);
++ WMSelectListItem(lPtr, row - 1);
++ if (row <= topItem)
++ scrollByAmount(lPtr, -1);
++ break;
++ case XK_Down:
++ row = WMGetListSelectedItemRow(lPtr);
++ WMSelectListItem(lPtr, row + 1);
++ if (row - topItem >= lPtr->fullFitLines)
++ scrollByAmount(lPtr, 1);
++ break;
++ case XK_space:
++ if (lPtr->action)
++ (*lPtr->action)(lPtr, lPtr->clientData);
++ break;
++ case XK_Return:
++ if (lPtr->doubleAction)
++ (*lPtr->doubleAction)(lPtr, lPtr->clientData);
++ break;
++ }
++ break;
++
+ }
+ if (lPtr->topItem != topItem)
+ WMPostNotificationName(WMListDidScrollNotification, lPtr, NULL);
diff --git a/x11-wm/windowmaker/windowmaker-0.80.2-r3.ebuild b/x11-wm/windowmaker/windowmaker-0.80.2-r3.ebuild
new file mode 100644
index 000000000000..1a563cbf3500
--- /dev/null
+++ b/x11-wm/windowmaker/windowmaker-0.80.2-r3.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/windowmaker/windowmaker-0.80.2-r3.ebuild,v 1.1 2003/07/11 02:37:20 raker Exp $
+
+inherit eutils flag-o-matic
+filter-flags "-mfpmath=sse,387 -mfpmath=sse -mfpmath=387"
+
+IUSE="gif nls png kde oss jpeg gnome"
+
+MY_P=${P/windowm/WindowM}
+S=${WORKDIR}/${MY_P}
+
+DESCRIPTION="The fast and light GNUstep window manager"
+SRC_URI="ftp://ftp.windowmaker.org/pub/source/release/${MY_P}.tar.gz
+ ftp://ftp.windowmaker.org/pub/source/release/WindowMaker-extra-0.1.tar.gz"
+HOMEPAGE="http://www.windowmaker.org/"
+
+DEPEND="virtual/x11
+ media-libs/hermes
+ >=media-libs/tiff-3.5.5
+ gif? ( >=media-libs/giflib-4.1.0-r3
+ >=media-libs/libungif-4.1.0 )
+ png? ( >=media-libs/libpng-1.2.1 )
+ jpeg? ( >=media-libs/jpeg-6b-r2 )"
+
+RDEPEND="nls? ( >=sys-devel/gettext-0.10.39 )"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~x86 ~ppc ~sparc ~alpha ~mips"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ epatch ${FILESDIR}/${PN}-0.80.2-r1-gentoo.patch
+
+ # scroll with the arrow keys
+ cd ${S}/WINGs
+ epatch ${FILESDIR}/wlist.patch
+
+ # transparency/translucency
+ cd ${S}
+ epatch ${FILESDIR}/trance.patch.WM-0.80.2.diff
+}
+
+src_compile() {
+
+ local myconf
+
+ use gnome \
+ && myconf="${myconf} --enable-gnome" \
+ || myconf="${myconf} --disable-gnome"
+
+ use kde \
+ && myconf="${myconf} --enable-kde" \
+ && export KDEDIR=/usr/kde/2 \
+ || myconf="${myconf} --disable-kde"
+
+ if [ "$WITH_MODELOCK" ] ; then
+ myconf="${myconf} --enable-modelock"
+ else
+ myconf="${myconf} --disable-modelock"
+ fi
+
+ use nls \
+ && export LINGUAS="`ls po/*.po | sed 's:po/\(.*\)\.po$:\1:'`" \
+ || myconf="${myconf} --disable-nls --disable-locale"
+
+ use gif \
+ || myconf="${myconf} --disable-gif"
+
+ use jpeg \
+ || myconf="${myconf} --disable-jpeg"
+
+ use png \
+ || myconf="${myconf} --disable-png"
+
+
+ use esd || use alsa || use oss \
+ && myconf="${myconf} --enable-sound" \
+ || myconf="${myconf} --disable-sound"
+
+ econf \
+ --sysconfdir=/etc/X11 \
+ --with-x \
+ --enable-newstyle \
+ --enable-superfluous \
+ --enable-usermenu \
+ --with-appspath=/usr/lib/GNUstep/Apps \
+ --with-pixmapdir=/usr/share/pixmaps \
+ ${myconf} || die
+
+ cd ${S}/po
+ cp Makefile Makefile.orig
+ sed 's:zh_TW.*::' \
+ Makefile.orig > Makefile
+
+ cd ${S}/WPrefs.app/po
+ cp Makefile Makefile.orig
+ sed 's:zh_TW.*::' \
+ Makefile.orig > Makefile
+
+ cd ${S}
+ for file in ${S}/WindowMaker/*menu*; do
+ if [ -r $file ]; then
+ sed -e 's/\/usr\/local\/GNUstep/\/usr\/lib\/GNUstep/g;
+ s/\/usr\/local\/share\/WindowMaker/\/usr\/share\/WindowMaker/g;' < $file > $file.tmp;
+ mv $file.tmp $file;
+ fi;
+ done;
+
+ cd ${S}
+ #0.80.1-r2 did not work with make -j4 (drobbins, 15 Jul 2002)
+ #with future Portage, this should become "emake -j1"
+ make || die
+
+ # WindowMaker Extra
+ cd ../WindowMaker-extra-0.1
+ econf || die
+
+ make || die
+}
+
+src_install() {
+
+ einstall \
+ sysconfdir=${D}/etc/X11 \
+ wprefsdir=${D}/usr/lib/GNUstep/Apps/WPrefs.app \
+ wpdatadir=${D}/usr/lib/GNUstep/Apps/WPrefs.app \
+ wpexecbindir=${D}/usr/lib/GNUstep/Apps/WPrefs.app || die
+
+ cp -f WindowMaker/plmenu ${D}/etc/X11/WindowMaker/WMRootMenu
+
+ dodoc AUTHORS BUGFORUM BUGS ChangeLog COPYING* INSTALL* FAQ* \
+ MIRRORS README* NEWS TODO
+
+ # WindowMaker Extra
+ cd ../WindowMaker-extra-0.1
+ einstall || die
+
+ newdoc README README.extra
+
+ echo "#!/bin/bash" > wmaker
+ echo "/usr/bin/wmaker" >> wmaker
+
+ exeinto /etc/X11/Sessions/
+ doexe wmaker
+}
+
+pkg_postinst() {
+ einfo "/usr/share/GNUstep/ has moved to /usr/lib/GNUstep/"
+ einfo "this means the WPrefs app has moved. If you have"
+ einfo "entries for this in your menus, please correct them"
+}