wok-6.x annotate jwm/stuff/resize-backgound.u @ rev 964

Up: asunder (1.6)
author Christophe Lincoln <pankso@slitaz.org>
date Mon Jun 30 11:48:04 2008 +0200 (2008-06-30)
parents
children
rev   line source
pascal@416 1 --- jwm-2.0.1/src/icon.c
pascal@416 2 +++ jwm-2.0.1/src/icon.c
pascal@416 3 @@ -55,3 +55,3 @@
pascal@416 4
pascal@416 5 -static ScaledIconNode *GetScaledIcon(IconNode *icon, int width, int height);
pascal@416 6 +static ScaledIconNode *_GetScaledIcon(IconNode *icon, int width, int height);
pascal@416 7
pascal@416 8 @@ -194,8 +194,26 @@
pascal@416 9 int ix, iy;
pascal@416 10 + int nwidth = width, nheight = height;
pascal@416 11
pascal@416 12 Assert(icon);
pascal@416 13 + Assert(icon->image);
pascal@416 14
pascal@416 15 - /* Scale the icon. */
pascal@416 16 - node = GetScaledIcon(icon, width, height);
pascal@416 17 + if(nwidth == 0) {
pascal@416 18 + nwidth = icon->image->width;
pascal@416 19 + }
pascal@416 20 + if(nheight == 0) {
pascal@416 21 + nheight = icon->image->height;
pascal@416 22 + }
pascal@416 23
pascal@416 24 + /* respect ratio if not background */
pascal@416 25 + if (x || y) {
pascal@416 26 + double ratio;
pascal@416 27 +
pascal@416 28 + ratio = (double)icon->image->width / icon->image->height;
pascal@416 29 + nwidth = Min(nwidth, nheight * ratio);
pascal@416 30 + nheight = Min(nheight, nwidth / ratio);
pascal@416 31 + nwidth = nheight * ratio;
pascal@416 32 + }
pascal@416 33 +
pascal@416 34 + node = _GetScaledIcon(icon, nwidth, nheight);
pascal@416 35 +
pascal@416 36 if(node) {
pascal@416 37 @@ -450,3 +468,3 @@
pascal@416 38 /** Get a scaled icon. */
pascal@416 39 -ScaledIconNode *GetScaledIcon(IconNode *icon, int rwidth, int rheight) {
pascal@416 40 +ScaledIconNode *_GetScaledIcon(IconNode *icon, int nwidth, int nheight) {
pascal@416 41
pascal@416 42 @@ -460,4 +478,2 @@
pascal@416 43 double srcx, srcy;
pascal@416 44 - double ratio;
pascal@416 45 - int nwidth, nheight;
pascal@416 46 int usesMask;
pascal@416 47 @@ -465,16 +481,2 @@
pascal@416 48
pascal@416 49 - Assert(icon);
pascal@416 50 - Assert(icon->image);
pascal@416 51 -
pascal@416 52 - if(rwidth == 0) {
pascal@416 53 - rwidth = icon->image->width;
pascal@416 54 - }
pascal@416 55 - if(rheight == 0) {
pascal@416 56 - rheight = icon->image->height;
pascal@416 57 - }
pascal@416 58 -
pascal@416 59 - ratio = (double)icon->image->width / icon->image->height;
pascal@416 60 - nwidth = Min(rwidth, rheight * ratio);
pascal@416 61 - nheight = Min(rheight, nwidth / ratio);
pascal@416 62 - nwidth = nheight * ratio;
pascal@416 63 if(nwidth < 1) {