On Tue, 28 Feb 2012 07:02:14 +0100 Vincent Torri <vincent.to...@gmail.com> said:
there are actually zero docs for ecore_x - so i didnt bother :) as for #73 - it still only does 1 screen - 1 set of desks. comment still applies. :) > maybe doc must be added here to say this api is from 1.2 (even if no > doc for other ecore_x functions. > > related to this, maybe ticket #73 must be fixed too. > > Vincent > > On Tue, Feb 28, 2012 at 5:34 AM, Enlightenment SVN > <no-re...@enlightenment.org> wrote: > > Log: > > add ecore_x_netwm_icons_set() > > > > > > > > Author: raster > > Date: 2012-02-27 20:34:10 -0800 (Mon, 27 Feb 2012) > > New Revision: 68487 > > Trac: http://trac.enlightenment.org/e/changeset/68487 > > > > Modified: > > trunk/ecore/ChangeLog trunk/ecore/src/lib/ecore_x/Ecore_X.h > > trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c > > trunk/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c > > > > Modified: trunk/ecore/ChangeLog > > =================================================================== > > --- trunk/ecore/ChangeLog 2012-02-28 04:25:37 UTC (rev 68486) > > +++ trunk/ecore/ChangeLog 2012-02-28 04:34:10 UTC (rev 68487) > > @@ -528,3 +528,7 @@ > > > > * Fix ecore_file_download to not limit downloads to 30sec. > > > > +2012-02-28 Carsten Haitzler (The Rasterman) > > + > > + * Add ecore_x_netwm_icons_set() > > + > > > > Modified: trunk/ecore/src/lib/ecore_x/Ecore_X.h > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-02-28 04:25:37 UTC > > (rev 68486) +++ trunk/ecore/src/lib/ecore_x/Ecore_X.h 2012-02-28 > > 04:34:10 UTC (rev 68487) @@ -2166,6 +2166,11 @@ > > int *bottom_start_x, > > int *bottom_end_x); > > > > +EAPI void > > +ecore_x_netwm_icons_set(Ecore_X_Window win, > > + Ecore_X_Icon *icon, > > + int num); > > + > > EAPI Eina_Bool > > ecore_x_netwm_icons_get(Ecore_X_Window win, > > Ecore_X_Icon **icon, > > > > Modified: trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c 2012-02-28 04:25:37 > > UTC (rev 68486) +++ trunk/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c > > 2012-02-28 04:34:10 UTC (rev 68487) @@ -838,6 +838,54 @@ > > ecore_x_window_prop_string_set(win, ECORE_X_ATOM_NET_WM_ICON_NAME, name); > > } > > > > +EAPI void > > +ecore_x_netwm_icons_set(Ecore_X_Window win, > > + Ecore_X_Icon *icon, > > + int num) > > +{ > > + unsigned int *data, *p, *p2; > > + unsigned int i, size, x, y; > > + > > + LOGFN(__FILE__, __LINE__, __FUNCTION__); > > + size = 0; > > + for (i = 0; i < (unsigned int)num; i++) > > + { > > + size += 2 + (icon[i].width * icon[i].height); > > + } > > + data = alloca(size * sizeof(unsigned int)); > > + p = data; > > + for (i = 0; i < (unsigned int)num; i++) > > + { > > + p[0] = icon[i].width; > > + p[1] = icon[i].height; > > + p += 2; > > + p2 = icon[i].data; > > + for (y = 0; y < icon[i].height; y++) > > + { > > + for (x = 0; x < icon[i].width; x++) > > + { > > + unsigned int r, g, b, a; > > + > > + a = (*p2 >> 24) & 0xff; > > + r = (*p2 >> 16) & 0xff; > > + g = (*p2 >> 8 ) & 0xff; > > + b = (*p2 ) & 0xff; > > + if ((a > 0) && (a < 255)) > > + { > > + r = (r * 255) / a; > > + g = (g * 255) / a; > > + b = (b * 255) / a; > > + } > > + *p = (a << 24) | (r << 16) | (g << 8) | b; > > + p++; > > + p2++; > > + } > > + } > > + } > > + ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_ICON, > > + data, size); > > +} > > + > > EAPI Eina_Bool > > ecore_x_netwm_icons_get(Ecore_X_Window win, > > Ecore_X_Icon **icon, > > > > Modified: trunk/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c > > =================================================================== > > --- trunk/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c 2012-02-28 04:25:37 > > UTC (rev 68486) +++ trunk/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c > > 2012-02-28 04:34:10 UTC (rev 68487) @@ -661,6 +661,55 @@ > > return EINA_TRUE; > > } > > > > +EAPI void > > +ecore_x_netwm_icons_set(Ecore_X_Window win, > > + Ecore_X_Icon *icon, > > + int num) > > +{ > > + unsigned int *data, *p, *p2; > > + unsigned int i, size, x, y; > > + > > + LOGFN(__FILE__, __LINE__, __FUNCTION__); > > + size = 0; > > + for (i = 0; i < (unsigned int)num; i++) > > + { > > + size += 2 + (icon[i].width * icon[i].height); > > + } > > + data = alloca(size * sizeof(unsigned int)); > > + p = data; > > + for (i = 0; i < (unsigned int)num; i++) > > + { > > + p[0] = icon[i].width; > > + p[1] = icon[i].height; > > + p += 2; > > + p2 = icon[i].data; > > + for (y = 0; y < icon[i].height; y++) > > + { > > + for (x = 0; x < icon[i].width; x++) > > + { > > + unsigned int r, g, b, a; > > + > > + a = (*p2 >> 24) & 0xff; > > + r = (*p2 >> 16) & 0xff; > > + g = (*p2 >> 8 ) & 0xff; > > + b = (*p2 ) & 0xff; > > + if ((a > 0) && (a < 255)) > > + { > > + // unpremul > > + r = (r * 255) / a; > > + g = (g * 255) / a; > > + b = (b * 255) / a; > > + } > > + *p = (a << 24) | (r << 16) | (g << 8) | b; > > + p++; > > + p2++; > > + } > > + } > > + } > > + ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_NET_WM_ICON, > > + data, size); > > +} > > + > > EAPI Eina_Bool > > ecore_x_netwm_icons_get(Ecore_X_Window win, > > Ecore_X_Icon **icon, > > > > > > ------------------------------------------------------------------------------ > > Keep Your Developer Skills Current with LearnDevNow! > > The most comprehensive online learning library for Microsoft developers > > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > > Metro Style Apps, more. Free future releases when you subscribe now! > > http://p.sf.net/sfu/learndevnow-d2d > > _______________________________________________ > > enlightenment-svn mailing list > > enlightenment-...@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > ------------------------------------------------------------------------------ > Keep Your Developer Skills Current with LearnDevNow! > The most comprehensive online learning library for Microsoft developers > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > Metro Style Apps, more. Free future releases when you subscribe now! > http://p.sf.net/sfu/learndevnow-d2d > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel