Screen Resolution
Ken Norris
pixelbird at interisland.net
Fri May 7 14:39:43 EDT 2004
On May 7, 2004, at 9:00 AM, use-revolution-request at lists.runrev.com
wrote:
> Date: Fri, 7 May 2004 10:28:49 +0100
> From: Frank Leahy <frank at backtalk.com>
> Subject: Re: Screen Resolution
>
> On May 7, 2004, at 10:11 AM, use-revolution-request at lists.runrev.com
> wrote:
>
>> From: Brent Anderson <brentj84062 at earthlink.net>
>> Subject: Screen Resolution
>> To: use-revolution at lists.runrev.com
>> Message-ID: <BEB6E298-9E26-11D8-8A31-003065A72500 at earthlink.net>
>> Content-Type: text/plain; charset=US-ASCII; format=flowed
>>
>> Hello.
>>
>> Is there any way that you can change the monitor resolution when you
>> run a stack (For example, you run the stack in a 1280X1024 resolution
>> and when it runs the preOpenStack handler, it sets the monitor
>> resolution to 800X600)
>
> Don't do it. I *hate* programs that mess with my screen resolution.
> I've got a 17" screen and I don't want to see *anything* at 800 x 600!
> Also there are a lot of LCDs (laptops, flat-panels, etc.) that don't
> support many resolutions well or at all, and you could leave the screen
> in a state that makes it illegible or unusable.
==========
I know where you're coming from. It's extremely rude and pretentious to
change someone else's monitor resolution, even if you change it back
when closing (IMO _never_ change it without putting it back where it
was, in any case). However, especially when dealing with web pages, you
need to keep in mind that many, if not most, student;s home computers
are second machines running at lower resolutions.
My old 1400 PowerBook, which I use on the internet a lot for emails and
lazy surfing, etc., maxes out at 800x600.
Having said that, we should probably offer geometry choices. If a
project is built and locked in at 800x600, which would make for small
windows on a monitor set at, say 1280x1024, the user might need to bump
it up so it's readable. Therefore we should offer the user choices of
_program_ resolution, not mess with their monitor's resolution.
Granted, that's a bunch of extra scripting and tweaking (I believe
geometry should be hard-coded for professionalism), but I don't think
anyone should _ever_ (i.e., the only exception being for the scripter's
personal stuff) change someone else's monitor resolution without
offering them choices.
I often make fullscreen standalone apps for disabled users. These are
designed to provide closed environments within which the user has
customized controls. The method I use is brute-force, but solid:
On my 17 inch monitor, I'm personally most comfortable at 1024x768.
Everything looks "normal" to me at that resolution, so that is where I
create. When I'm done, I redesign the program at additional 800x600 and
1280x1024 resolutions for the stack files. Because the main window of
these apps are fullscreen, these are actually separate UI stacks, and I
always use data and image files for most everything, preferences, etc.,
so it doesn't matter which set of stack files is being used. The image
controls, for example, automatically resize the images to match their
size, which have been manually proportioned for each resolution stack.
Here's my method for that:
On startup, the Memory Error dialog contains the engine and the memory
check (per Richard Gaskin's suggestion) first thing. If there is a
memory problem, it will (hopefully) display the warning (always at its
original created res size), and abort continuing to load. It uses a
"send <in time>" to wait out that process. If it's OK, it doesn't
display the warning. Then it checks monitor resolution. If it lies
within the available resolutions, it loads a list of appropriate
windows (substack files) the first of which is the splash. However, if
it is not among the available resolutions, it displays a "Monitor
Configuration Out Of Range" dialog warning that says it cannot load at
the monitor's current resolution and offers to change it, or to pick a
resolution for displaying the app (i.e., smaller which is available).
If the user decides to change the display, it logs the current display
configuration for returning it to the original on closing, then changes
it. If the user picks a smaller resolution for the app, it will load
the stacks designed for that resolution. Then the splash stack for the
designated resolution opens, usually with some kind of progress thing
while it loads up all the globals, including all references and
preferences, menus, and other configurations.
Now the all the app's stuff is fully loaded at the current monitor's
resolution, or less if the user decided to go with choosing that
option.
I realize, because of the fullscreen stuff, that this isn't necessarily
appropriate for every app, but I think the procedure is otherwise
fairly generic.
HTH,
Ken N
More information about the use-livecode
mailing list