Hi David,
I hope I find some time soon to draft an API for a component that can
be used to handle multi display support for different platforms.
I'm not sure yet if your approch to use an integer to identify a
display is sufficient. If on X it is also a string who identifies a
display we should use a string as a handle. Sure the component must
then also provide a user interface string for each registered monitor.
In a simple case this could just result in strings like "Display X" or
"Primary Display", "Secondary Display" etc.
Would be nice if we can have the same string representation on windows
as in the display settings dialog, f.e. "Sun 22 HDTV on ATI X800 XXL".
I think ImplSalCalcFullScreenSize ist a nice place to make vcl multi
display aware for desktop sized (fullscreen) windows. But I think this
is mainly Philips area of expertise.
For the dialog patch I think we must support a textual representation
of the display, not only the number.
Something we should discuss is if we need support for displays that are
not part of the desktop. For OOo this would currently not work on
windows as there is no free direct x canvas implementation. But even
if there was a canvas implementation that could theoreticaly work
with a non desktop display, for some features we still need the
posibility to overlay windows on the presentation. F.e. plugins or
controls.
Thorsten, ist it safe to assume that we never will support such
displays?
Regards,
Christian
David Fraser wrote:
Hi
I've been working on issue 12719, Support for multiscreen displays (dual
monitors).
The proposal there is to do a first level patch that enables an Impress
user to select the monitor to display presentations on in the options,
and then to go through the more complex process of doing a presentation
mode.
So for the purpose of the first level patch, it is neccessary to specify
for a window which display it should operate on.
I have done an initial patch for Windows that allows displaying on other
displays (attached to the issue), by altering ImplSalCalcFullScreenSize
(since this is only used in full-screen mode), but there is no way of
specifying it in the structure. It should be possible to do this at
least for full-screen windows, but it may be desirable to allow it for
other windows as well. For example, if a window is already opened on a
secondary display and it pops up a dialog box, it may be helpful to know
which display the dialog box should be on (or not). But the main usage
is likely for full-screen displays of Impress presentations.
Currently there is an pFrame->mbFullScreen which specifies whether
something should run full-screen or not.
So I would like to know what we should add to specify the display.
On Windows there are methods that allow getting the total number of
displays and enumerating them. There is no specific "display number" as
such, but I think the displays are always returned by the enumerator in
the same order. There is also a string specifying the name of each
display but this is not user-presentable (".\\DISPLAY\\1" etc), and I am
not sure what different forms it can take.
It would be neccessary to investigate the other display types (mainly X
with Xinerama) to determine how they handle multi-screen displays, I
intend to do this shortly.
But it seems like the simplest way would be to specify a display number
as an element of the Frame object.
Since this is my first VCL hack I thought I'd write to the list for
feedback... how does the above sound?
Regards
David
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]