1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 12:28:22 +01:00

Remove wShowGNUstepPanel() etc

The only place where this function is called is from a double click
in the first icon of the dock, and only if there's no program already
associated with it.

This is a bit superfluous and most people have defined the first
icon to call WPrefs instead and end up never seeing that panel.
And since the last commit ("Change behaviour of the GNUstep dockapp"),
this is now also the default behaviour of Window Maker.

Furthermore, the panel itself is not accurate. Window Maker is not part
of the GNUstep project.
This commit is contained in:
Carlos R. Mafra
2012-02-19 01:29:18 +00:00
parent 2075881f2d
commit 799134f59b
3 changed files with 1 additions and 174 deletions

View File

@@ -1631,169 +1631,3 @@ int wShowCrashingDialogPanel(int whatSig)
return action; return action;
} }
/*****************************************************************************
* About GNUstep Panel
*****************************************************************************/
static void
drawGNUstepLogo(Display * dpy, Drawable d, int width, int height,
unsigned long blackPixel, unsigned long whitePixel)
{
GC gc;
XGCValues gcv;
XRectangle rects[3];
gcv.foreground = blackPixel;
gc = XCreateGC(dpy, d, GCForeground, &gcv);
XFillArc(dpy, d, gc, width / 45, height / 45,
width - 2 * width / 45, height - 2 * height / 45, 0, 360 * 64);
rects[0].x = 0;
rects[0].y = 37 * height / 45;
rects[0].width = width / 3;
rects[0].height = height - rects[0].y;
rects[1].x = rects[0].width;
rects[1].y = height / 2;
rects[1].width = width - 2 * width / 3;
rects[1].height = height - rects[1].y;
rects[2].x = 2 * width / 3;
rects[2].y = height - 37 * height / 45;
rects[2].width = width / 3;
rects[2].height = height - rects[2].y;
XSetClipRectangles(dpy, gc, 0, 0, rects, 3, Unsorted);
XFillRectangle(dpy, d, gc, 0, 0, width, height);
XSetForeground(dpy, gc, whitePixel);
XFillArc(dpy, d, gc, width / 45, height / 45,
width - 2 * width / 45, height - 2 * height / 45, 0, 360 * 64);
XFreeGC(dpy, gc);
}
typedef struct {
WScreen *scr;
WWindow *wwin;
WMWindow *win;
WMLabel *gstepL;
WMLabel *textL;
} GNUstepPanel;
static GNUstepPanel *gnustepPanel = NULL;
static void destroyGNUstepPanel(WCoreWindow * foo, void *data, XEvent * event)
{
WMUnmapWidget(gnustepPanel->win);
WMDestroyWidget(gnustepPanel->win);
wUnmanageWindow(gnustepPanel->wwin, False, False);
wfree(gnustepPanel);
gnustepPanel = NULL;
}
void wShowGNUstepPanel(WScreen * scr)
{
GNUstepPanel *panel;
Window parent;
WWindow *wwin;
WMPixmap *pixmap;
WMColor *color;
if (gnustepPanel) {
if (gnustepPanel->scr == scr) {
wRaiseFrame(gnustepPanel->wwin->frame->core);
wSetFocusTo(scr, gnustepPanel->wwin);
}
return;
}
panel = wmalloc(sizeof(GNUstepPanel));
panel->scr = scr;
panel->win = WMCreateWindow(scr->wmscreen, "About GNUstep");
WMResizeWidget(panel->win, 325, 205);
pixmap = WMCreatePixmap(scr->wmscreen, 130, 130, WMScreenDepth(scr->wmscreen), True);
color = WMCreateNamedColor(scr->wmscreen, "gray50", True);
drawGNUstepLogo(dpy, WMGetPixmapXID(pixmap), 130, 130, WMColorPixel(color), scr->white_pixel);
WMReleaseColor(color);
XSetForeground(dpy, scr->mono_gc, 0);
XFillRectangle(dpy, WMGetPixmapMaskXID(pixmap), scr->mono_gc, 0, 0, 130, 130);
drawGNUstepLogo(dpy, WMGetPixmapMaskXID(pixmap), 130, 130, 1, 1);
panel->gstepL = WMCreateLabel(panel->win);
WMResizeWidget(panel->gstepL, 285, 64);
WMMoveWidget(panel->gstepL, 20, 0);
WMSetLabelTextAlignment(panel->gstepL, WARight);
WMSetLabelText(panel->gstepL, "GNUstep");
{
WMFont *font = WMBoldSystemFontOfSize(scr->wmscreen, 24);
WMSetLabelFont(panel->gstepL, font);
WMReleaseFont(font);
}
panel->textL = WMCreateLabel(panel->win);
WMResizeWidget(panel->textL, 305, 140);
WMMoveWidget(panel->textL, 10, 50);
WMSetLabelTextAlignment(panel->textL, WARight);
WMSetLabelImagePosition(panel->textL, WIPOverlaps);
WMSetLabelText(panel->textL,
_("Window Maker is part of the GNUstep project.\n"
"The GNUstep project aims to create a free\n"
"implementation of the OpenStep(tm) specification\n"
"which is a object-oriented framework for\n"
"creating advanced graphical, multi-platform\n"
"applications. Additionally, a development and\n"
"user desktop environment will be created on top\n"
"of the framework. For more information about\n"
"GNUstep, please visit: www.gnustep.org"));
WMSetLabelImage(panel->textL, pixmap);
WMReleasePixmap(pixmap);
WMRealizeWidget(panel->win);
WMMapSubwidgets(panel->win);
parent = XCreateSimpleWindow(dpy, scr->root_win, 0, 0, 325, 200, 0, 0, 0);
XReparentWindow(dpy, WMWidgetXID(panel->win), parent, 0, 0);
{
WMPoint center = getCenter(scr, 325, 200);
wwin = wManageInternalWindow(scr, parent, None, _("About GNUstep"), center.x, center.y, 325, 200);
}
WSETUFLAG(wwin, no_closable, 0);
WSETUFLAG(wwin, no_close_button, 0);
wWindowUpdateButtonImages(wwin);
wFrameWindowShowButton(wwin->frame, WFF_RIGHT_BUTTON);
#ifdef XKB_BUTTON_HINT
wFrameWindowHideButton(wwin->frame, WFF_LANGUAGE_BUTTON);
#endif
wwin->frame->on_click_right = destroyGNUstepPanel;
panel->wwin = wwin;
WMMapWidget(panel->win);
wWindowMap(wwin);
gnustepPanel = panel;
}

View File

@@ -41,11 +41,7 @@ int wExitDialog(WScreen *scr, char *title, char *message, char *defBtn,
Bool wIconChooserDialog(WScreen *scr, char **file, char *instance, char *class); Bool wIconChooserDialog(WScreen *scr, char **file, char *instance, char *class);
void wShowInfoPanel(WScreen *scr); void wShowInfoPanel(WScreen *scr);
void wShowLegalPanel(WScreen *scr); void wShowLegalPanel(WScreen *scr);
void wShowGNUstepPanel(WScreen *scr);
int wShowCrashingDialogPanel(int whatSig); int wShowCrashingDialogPanel(int whatSig);

View File

@@ -3281,11 +3281,8 @@ static void iconDblClick(WObjDescriptor *desc, XEvent *event)
else else
handleClipChangeWorkspace(dock->screen_ptr, event); handleClipChangeWorkspace(dock->screen_ptr, event);
} else if (btn->command) { } else if (btn->command) {
if (!btn->launching && (!btn->running || (event->xbutton.state & ControlMask))) { if (!btn->launching && (!btn->running || (event->xbutton.state & ControlMask)))
launchDockedApplication(btn, False); launchDockedApplication(btn, False);
}
} else if (btn->xindex == 0 && btn->yindex == 0 && btn->dock->type == WM_DOCK) {
wShowGNUstepPanel(dock->screen_ptr);
} }
} }
} }