[Solved] How to position a dialog opened from another dialog

Creating a macro - Writing a Script - Using the API

[Solved] How to position a dialog opened from another dialog

Postby grnhorn » Thu Jul 31, 2008 2:03 pm

When opening a dialog from another dialog, the new one may be any place on the screen. I tried the following code to control the position, but it seems to be ignored:

oDBDlg.PosSize.X = 100
oDBDlg.PosSize.Y = 10

The above code is also ignored if opening the dialog in BASIC. Any positioning set in the properties sheet is also ignored when ran. The only time the position can be controlled is during development. Is this a bug or is there an answer?

Thanks...
Last edited by grnhorn on Thu Jul 31, 2008 11:56 pm, edited 3 times in total.
OOo 2.4.X on Ms Windows XP
grnhorn
 
Posts: 32
Joined: Sun Jul 13, 2008 2:07 pm

Re: How to position a dialog opened from another dialog?

Postby Villeroy » Thu Jul 31, 2008 2:20 pm

http://api.openoffice.org/docs/common/r ... setPosSize
http://api.openoffice.org/docs/common/r ... sSize.html
Code: Select all   Expand viewCollapse view
with com.sun.star.awt.PosSize
   nWhat= .X + .Y
end with
oDBDlg.setPositionSize(100, 10, 0, 0, nWhat)

sets X and Y while ignoring Width and Height.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04, no OpenOffice, LibreOffice 6.x
User avatar
Villeroy
Volunteer
 
Posts: 27304
Joined: Mon Oct 08, 2007 1:35 am
Location: Germany

Re: How to position a dialog opened from another dialog

Postby grnhorn » Thu Jul 31, 2008 3:42 pm

Thanks Villeroy. This works for a dialog that is being used by itself, but I still could not get it to work when calling a second dialog from a first. I did have to make one change and I completely understand how it happened: setPositionSize to setPosSize. One thing about code when you work with a bunch of them, they all look a like.
Code: Select all   Expand viewCollapse view
with com.sun.star.awt.PosSize
   nWhat= .X + .Y
end with
oDBDlg.setPosSize(100, 10, 0, 0, nWhat)
OOo 2.4.X on Ms Windows XP
grnhorn
 
Posts: 32
Joined: Sun Jul 13, 2008 2:07 pm

Re: How to position a dialog opened from another dialog?

Postby Villeroy » Thu Jul 31, 2008 6:46 pm

I don't know.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 18.04, no OpenOffice, LibreOffice 6.x
User avatar
Villeroy
Volunteer
 
Posts: 27304
Joined: Mon Oct 08, 2007 1:35 am
Location: Germany

Re: How to position a dialog opened from another dialog?

Postby rmdemi » Thu Jul 31, 2008 11:19 pm

Hello Grnhorn,

Here is the code;

Code: Select all   Expand viewCollapse view
Private oform1, oform2  as Variant
Sub Form1show
oform1 = createUnoDialog(DialogLibraries.Standard.Dialog1)
oform1.setPosSize(0,0,,,3)
    oform1.execute

' You can Assign this macro a dialog1 buton or dialog1 event
Sub Form2show
oform2 = createUnoDialog(DialogLibraries.Standard.Dialog2)
oform2.setPosSize(0,200,,,3)
    oform2.execute
End Sub
End Sub



The fifth parameter is for flag in our example set to 3
The description of flags adress is here. http://api.openoffice.org/docs/common/ref/com/sun/star/awt/PosSize.html

Dialog1 and Dialog2 come from dialog editor's dialog modules,

setPosSize Methods' Details
setPosSize
[oneway] void
setPosSize( [in] long X,
[in] long Y,
[in] long Width,
[in] long Height,
[in] short Flags );

Description
sets the outer bounds of the window.
Parameter X ; the x-coordinate of the window.
Parameter Y ; the y-coordinate of the window.
Parameter Width ; the width of the window.
Parameter Height ; the height of the window.
Parameter Flags
Flags are of type PosSize and specify, which parameters are taken into account when setting the outer bounds of the window.

This code is working well

Cheers. :)
OOo 2.4.X on Ms Windows XP + linux-other
rmdemi
 
Posts: 10
Joined: Mon Jun 30, 2008 9:45 pm

[Solved] How to position a dialog opened from another dialog

Postby grnhorn » Thu Jul 31, 2008 11:56 pm

Thanks rmdemi and villeroy, I think I understand what is happening now. The second dialog is opening relative to the first and each succeeding dialog opens relative to the previous. There are 2 solutions. 1) close the 1st dialog before opening the 2nd or 2) use the code below and set negative (-100) to move the 2nd dialog further left or higher then the 1st dialog. Positive numbers will move to the right or down. rmdemi (above) has supplied a link for all of the flags.

Both pieces of code above will work, just apply the positive and negative rules for the position.

Thanks all...
OOo 2.4.X on Ms Windows XP
grnhorn
 
Posts: 32
Joined: Sun Jul 13, 2008 2:07 pm


Return to Macros and UNO API

Who is online

Users browsing this forum: No registered users and 13 guests