This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [ANNOUNCEMENT] Server Test 88


Howdy Lev, thanks for the info!
At 09:42 AM 6/1/2003 -0400, you wrote:
I think I can tell you what you need to do to allow small and large icons
specified seperately. First, you need your window to be WNDCLASSEX not
WNDCLASS. This gives you the hIcon element as before, which is to be of
"system large" size, and in addition gives you an element hIconSm, which
is of "system small" size. Now of course you need to know what system
large, system small sizes are (the current code seems to assume system
large is 32x32). You can get this using GetSystemMetrics with parameters
SM_CXICON, SMCYICON for the system large and SM_CXSMICON, SMCYSMICON for
system small. The system large size is determined by the video driver and
cannot be changed any other way, the system small size is controlled by
the "caption buttons" size setting in the "display properties" applet,
appearance tab.

Yup, that's listed (GCL_HICONSM) right next to the GWL_ value we presently use, I just never saw it!

I did a quickie experiment and added bilinear filtering on the BW icon
format only.  Results:  xcalc still looks like garbage even @32x32:
instead of a black mismash, it's a gray one.  There is just no good way of
making some older icons look good, and newer apps use colored icons so
there isn't quite so big a subsampling problem.  IMHO, while you could add
filtering and 16x16 icon creation to the present code, it wouldn't be
worth the effort.  Try it for yourself, use twm and take a snapshot of the
big ol' xcalc icon, and then use your favorite image app to shrink it to
32x32 and I think you'll be disappointed no matter how you slice it.

You also pointed out a possible problem, instead of using the system
supplied X/Y of an icon we've got 32x32 hard coded.  It seems that this
assumption is correct on all Windoze versions so far, but it might be a bit
more "proper" to replace the "iconSize=32;" to
"iconSize=GetSystemMetrics(SM_CXICON);".  It could also be changed to have
non-square icons, in fact it was originally written to support them but
I ended up just overriding the Y scale with the X scale.


-Earle F. Philhower, III earle@ziplabel.com cdrlabel - ZipLabel - FlpLabel http://www.cdrlabel.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]