Description: Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen When launched with NX Agent flavour, the startup screen gets unbranded by this patch (the !M logo does not get shown). . When launched with X2Go Agent flavour, the startup screen gets branded with the X2GO logo. Forwarded: not-needed Author: Oleksandr Shneyder Last-Update: 2012-01-11 --- a/nx-X11/programs/Xserver/hw/nxagent/Splash.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.c @@ -35,6 +35,7 @@ #include "Windows.h" #include "Atoms.h" #include "Trap.h" +#include "Init.h" /* * Set here the required log level. @@ -53,6 +54,7 @@ int nxagentLogoWhite; int nxagentLogoRed; int nxagentLogoBlack; +int nxagentLogoGray; void nxagentPaintLogo(Window win, GC gc, int scale, int width, int height); @@ -166,6 +168,15 @@ XPoint m[12]; int w, h, c, w2, h2; + /* + * Show only X2GO Logo when running as X2Go Agent + */ + if(! nxagentX2go) + { + nxagentPixmapLogo = 0L; + return; + } + #ifdef DEBUG fprintf(stderr, "nxagenShowtLogo: Got called.\n"); #endif @@ -218,75 +229,146 @@ XSetForeground(nxagentDisplay, gc, nxagentLogoRed); XSetBackground(nxagentDisplay, gc, nxagentLogoWhite); - rect[0].x = w2-10*c; rect[0].y = h2-8*c; - rect[1].x = w2-10*c; rect[1].y = h2+8*c; - rect[2].x = w2+10*c; rect[2].y = h2+8*c; - rect[3].x = w2+10*c; rect[3].y = h2-8*c; + /* + * Draw X2GO Logo + */ + /* + * Begin 'X'. + */ + + XSetForeground(nxagentDisplay, gc, nxagentLogoGray); + XSetBackground(nxagentDisplay, gc, nxagentLogoWhite); + rect[0].x = w2-7*c; rect[0].y = h2-5*c; + rect[1].x = w2-8*c; rect[1].y = h2-5*c; + rect[2].x = w2-4*c; rect[2].y = h2+3*c; + rect[3].x = w2-3*c; rect[3].y = h2+3*c; XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); - #ifdef NXAGENT_LOGO_DEBUG - fprintf(stderr, "filled red rect\n"); - #endif + rect[0].x = w2-4*c; rect[0].y = h2-5*c; + rect[1].x = w2-3*c; rect[1].y = h2-5*c; + rect[2].x = w2-7*c; rect[2].y = h2+3*c; + rect[3].x = w2-8*c; rect[3].y = h2+3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); - rect[0].x = w2-9*c; rect[0].y = h2-7*c; - rect[1].x = w2-9*c; rect[1].y = h2+7*c; - rect[2].x = w2+9*c; rect[2].y = h2+7*c; - rect[3].x = w2+9*c; rect[3].y = h2-7*c; + /* + * End 'X'. + */ - XSetForeground(nxagentDisplay, gc, nxagentLogoWhite); - XSetBackground(nxagentDisplay, gc, nxagentLogoRed); + /* + * Start '2'. + */ + + rect[0].x = w2-2*c; rect[0].y = h2-5*c; + rect[1].x = w2-1*c; rect[1].y = h2-5*c; + rect[2].x = w2-1*c; rect[2].y = h2-3*c; + rect[3].x = w2-2*c; rect[3].y = h2-3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + + rect[0].x = w2-2*c; rect[0].y = h2-5*c; + rect[1].x = w2+2*c; rect[1].y = h2-5*c; + rect[2].x = w2+2*c; rect[2].y = h2-4*c; + rect[3].x = w2-2*c; rect[3].y = h2-4*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + rect[0].x = w2+1*c; rect[0].y = h2-5*c; + rect[1].x = w2+2*c; rect[1].y = h2-5*c; + rect[2].x = w2+2*c; rect[2].y = h2-2*c; + rect[3].x = w2+1*c; rect[3].y = h2-2*c; XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + rect[0].x = w2+2*c; rect[0].y = h2-2*c; + rect[1].x = w2+1*c; rect[1].y = h2-2*c; + rect[2].x = w2-2*c; rect[2].y = h2+2*c; + rect[3].x = w2-1*c; rect[3].y = h2+2*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + + + rect[0].x = w2-2*c; rect[0].y = h2+2*c; + rect[1].x = w2+2*c; rect[1].y = h2+2*c; + rect[2].x = w2+2*c; rect[2].y = h2+3*c; + rect[3].x = w2-2*c; rect[3].y = h2+3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); /* - * Begin 'M'. + * End '2'. */ - m[0].x = w2-3*c; m[0].y = h2-5*c; - m[1].x = w2+7*c; m[1].y = h2-5*c; - m[2].x = w2+7*c; m[2].y = h2+5*c; - m[3].x = w2+5*c; m[3].y = h2+5*c; - m[4].x = w2+5*c; m[4].y = h2-3*c; - m[5].x = w2+3*c; m[5].y = h2-3*c; - m[6].x = w2+3*c; m[6].y = h2+5*c; - m[7].x = w2+1*c; m[7].y = h2+5*c; - m[8].x = w2+1*c; m[8].y = h2-3*c; - m[9].x = w2-1*c; m[9].y = h2-3*c; - m[10].x = w2-1*c; m[10].y = h2+5*c; - m[11].x = w2-3*c; m[11].y = h2+5*c; + /* + * Start 'G'. + */ - XSetForeground(nxagentDisplay, gc, nxagentLogoRed); - XSetBackground(nxagentDisplay, gc, nxagentLogoWhite); + rect[0].x = w2+3*c; rect[0].y = h2-5*c; + rect[1].x = w2+7*c; rect[1].y = h2-5*c; + rect[2].x = w2+7*c; rect[2].y = h2-4*c; + rect[3].x = w2+3*c; rect[3].y = h2-4*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); - XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, m, 12, Nonconvex, CoordModeOrigin); + rect[0].x = w2+3*c; rect[0].y = h2-5*c; + rect[1].x = w2+4*c; rect[1].y = h2-5*c; + rect[2].x = w2+4*c; rect[2].y = h2+3*c; + rect[3].x = w2+3*c; rect[3].y = h2+3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + rect[0].x = w2+3*c; rect[0].y = h2+2*c; + rect[1].x = w2+7*c; rect[1].y = h2+2*c; + rect[2].x = w2+7*c; rect[2].y = h2+3*c; + rect[3].x = w2+3*c; rect[3].y = h2+3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + + rect[0].x = w2+6*c; rect[0].y = h2-5*c; + rect[1].x = w2+7*c; rect[1].y = h2-5*c; + rect[2].x = w2+7*c; rect[2].y = h2-3*c; + rect[3].x = w2+6*c; rect[3].y = h2-3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + + rect[0].x = w2+6*c; rect[0].y = h2-0*c; + rect[1].x = w2+7*c; rect[1].y = h2-0*c; + rect[2].x = w2+7*c; rect[2].y = h2+3*c; + rect[3].x = w2+6*c; rect[3].y = h2+3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + + rect[0].x = w2+5*c; rect[0].y = h2-1*c; + rect[1].x = w2+7*c; rect[1].y = h2-1*c; + rect[2].x = w2+7*c; rect[2].y = h2+0*c; + rect[3].x = w2+5*c; rect[3].y = h2+0*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); /* - * End 'M'. + * End 'G'. */ /* - * Begin '!'. + * Start 'O'. */ - rect[0].x = w2-7*c; rect[0].y = h2-5*c; - rect[1].x = w2-5*c; rect[1].y = h2-5*c; - rect[2].x = w2-5*c; rect[2].y = h2+2*c; - rect[3].x = w2-7*c; rect[3].y = h2+2*c; + rect[0].x = w2+8*c; rect[0].y = h2-5*c; + rect[1].x = w2+12*c; rect[1].y = h2-5*c; + rect[2].x = w2+12*c; rect[2].y = h2-4*c; + rect[3].x = w2+8*c; rect[3].y = h2-4*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + rect[0].x = w2+8*c; rect[0].y = h2+3*c; + rect[1].x = w2+12*c; rect[1].y = h2+3*c; + rect[2].x = w2+12*c; rect[2].y = h2+2*c; + rect[3].x = w2+8*c; rect[3].y = h2+2*c; XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); - rect[0].x = w2-7*c; rect[0].y = h2+3*c; - rect[1].x = w2-5*c; rect[1].y = h2+3*c; - rect[2].x = w2-5*c; rect[2].y = h2+5*c; - rect[3].x = w2-7*c; rect[3].y = h2+5*c; + rect[0].x = w2+8*c; rect[0].y = h2-5*c; + rect[1].x = w2+9*c; rect[1].y = h2-5*c; + rect[2].x = w2+9*c; rect[2].y = h2+3*c; + rect[3].x = w2+8*c; rect[3].y = h2+3*c; + XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); + rect[0].x = w2+11*c; rect[0].y = h2-5*c; + rect[1].x = w2+12*c; rect[1].y = h2-5*c; + rect[2].x = w2+12*c; rect[2].y = h2+3*c; + rect[3].x = w2+11*c; rect[3].y = h2+3*c; XFillPolygon(nxagentDisplay, nxagentPixmapLogo, gc, rect, 4, Convex, CoordModeOrigin); /* - * End 'M'. + * End 'O'. */ + XSetWindowBackgroundPixmap(nxagentDisplay, win, nxagentPixmapLogo); #ifdef NXAGENT_LOGO_DEBUG --- a/nx-X11/programs/Xserver/hw/nxagent/Display.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c @@ -1403,22 +1403,10 @@ g = pV.green_mask; b = pV.blue_mask; - if (!pV.red_mask || !pV.green_mask || !pV.blue_mask) - { - nxagentLogoBlack = 0x000000; - nxagentLogoRed = 0xff0000; - nxagentLogoWhite = 0xffffff; - } - else - { - for (or=0, off=0x800000; (r&(off>>or)) == 0; or++); - for (og=0, off=0x800000; (g&(off>>og)) == 0; og++); - for (ob=0, off=0x800000; (b&(off>>ob)) == 0; ob++); - - nxagentLogoRed = nxagentLogoColor(0xff0000); - nxagentLogoBlack = nxagentLogoColor(0x000000); - nxagentLogoWhite = 0xffffff; - } + nxagentLogoBlack = 0x000000; + nxagentLogoRed = 0xff0000; + nxagentLogoWhite = 0xffffff; + nxagentLogoGray = 0x222222; #ifdef WATCH @@ -2673,22 +2661,10 @@ g = pV.green_mask; b = pV.blue_mask; - if (!pV.red_mask || !pV.green_mask || !pV.blue_mask) - { - nxagentLogoBlack = 0x000000; - nxagentLogoRed = 0xff0000; - nxagentLogoWhite = 0xffffff; - } - else - { - for (or=0, off=0x800000; (r&(off>>or)) == 0; or++); - for (og=0, off=0x800000; (g&(off>>og)) == 0; og++); - for (ob=0, off=0x800000; (b&(off>>ob)) == 0; ob++); - - nxagentLogoRed = nxagentLogoColor(0xff0000); - nxagentLogoBlack = nxagentLogoColor(0x000000); - nxagentLogoWhite = 0xffffff; - } + nxagentLogoBlack = 0x000000; + nxagentLogoRed = 0xff0000; + nxagentLogoWhite = 0xffffff; + nxagentLogoGray = 0x222222; useXpmIcon = nxagentMakeIcon(nxagentDisplay, &nxagentIconPixmap, &nxagentIconShape); --- a/nx-X11/programs/Xserver/hw/nxagent/Splash.h +++ b/nx-X11/programs/Xserver/hw/nxagent/Splash.h @@ -33,6 +33,7 @@ extern int nxagentLogoWhite; extern int nxagentLogoRed; extern int nxagentLogoBlack; +extern int nxagentLogoGray; extern Window nxagentSplashWindow;