comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: [Q]Finding Screen Resolution in IDL
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: [Q]Finding Screen Resolution in IDL [message #6803] Thu, 29 August 1996 00:00
David Foster is currently offline  David Foster
Messages: 341
Registered: January 1996
Senior Member
Tim Patterson wrote:
>
> So, is there a way to test which resolution screen I'm on and
> set the font point-size accordingly (perhaps something using
> the size of the screen in pixels which I can get via IDL).
>

Check out the documentation for the !D graphics system variable.
The fields X_VSIZE, Y_VSIZE give the size of the visible area of
the display; X_CH_SIZE and Y_CH_SIZE give the normal width and height of
a character in device units. X_PX_CM and Y_PX_CM give the approximate
number of pixels per cm in X and Y direction.

Hope this helps.

--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
David S. Foster Univ. of California, San Diego
Programmer/Analyst Brain Image Analysis Laboratory
foster@bial1.ucsd.edu Department of Psychiatry
(619) 622-5892 8950 Via La Jolla Drive, Suite 2200
La Jolla, CA 92037
[ UCSD Mail Code 0949 ]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
Re: [Q]Finding Screen Resolution in IDL [message #6818 is a reply to message #6803] Wed, 28 August 1996 00:00 Go to previous message
Peter Mason is currently offline  Peter Mason
Messages: 145
Registered: June 1996
Senior Member
On Wed, 28 Aug 1996, Tim Patterson wrote:

> I have a large IDL widget application that creates a number
> of windows of varying sizes. The problem is that some of
> the machines it runs on have differing screen resolutions
> i.e. 100 dpi vs 75 dpi. If I use a 14 point font, it looks fine
> on the 100dpi screen, but too large on the 75dpi screen
> (the windows are too large and therefore hard to work with
> when there are a number open). But if I use, say, a 10point
> font, the windows look greta on the lower resolution screen, but
> unreadable on the high resolution one.
>
> So, is there a way to test which resolution screen I'm on and
> set the font point-size accordingly (perhaps something using
> the size of the screen in pixels which I can get via IDL).


I'm not sure that you can do this sort of thing reliably. My personal view
is that it's far easier to provide the facility for the user to select the
font of his/her choice.
Here are some ideas anyway...

You can get the screen resolution with DEVICE,GET_SCREEN_SIZ=screen_xy
(size in pixels) and !D.X_PX_CM, !D.Y_PX_CM (screen pixels per cm).
For the character size use !D.X_CH_SIZE and !D.Y_CH_SIZE (pixels wide & high).

Well, this is the idea anyway. I'm not sure how accurate the _PX_CM values
are, and obviously the _CH_SIZE fields are some sort of approximation
when variable-character-width fonts are used. If you have a
representative string of characters handy, you might get a better idea of
width by rendering the string and checking its width, e.g.,
XYOUTS,0,0,char_string,/norm,charsiz=-1,width=string_width,f ont=0
(Then convert the width from "norm" to pixels according to your window
size.)

This all assumes that the widget and device "systems" are using the same
font, and that you can make a rough guess at the sort of overhead
incurred in the widget system (spacing, padding etc). (I think the latter
might be difficult.)
e.g., to set the font (in Windows) to "courier new*10", use
DEVICE,FONT='courier new*10' & WIDGET_CONTROL,DEFAULT_FONT='courier new*10'


Peter Mason
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: how to animate/loop plots (not images)
Next Topic: Re: Another widget_button question

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 13:27:47 PDT 2025

Total time taken to generate the page: 0.02564 seconds