Difference between revisions of "Documentation/DevGuide/Basic/AutoPilot Dialogs"
SergeMoutou (Talk | contribs) m |
|||
Line 7: | Line 7: | ||
{{Documentation/DevGuideLanguages|Documentation/DevGuide/Basic/{{SUBPAGENAME}}}} | {{Documentation/DevGuideLanguages|Documentation/DevGuide/Basic/{{SUBPAGENAME}}}} | ||
{{DISPLAYTITLE:AutoPilot Dialogs}} | {{DISPLAYTITLE:AutoPilot Dialogs}} | ||
− | The final step is to create a small AutoPilot with two pages. The {{ | + | The final step is to create a small AutoPilot with two pages. The {{AOo}} Dialogs have a simple concept for AutoPilot pages. Each dialog and each control in a dialog has a property '''Page (Step)''' to control the pages of a dialog. Normally, dialogs are on page 0, but they can be set to a different page, for example, to page 1. All controls having 1 in their '''Page''' property are visible as long as the dialog is on page 1. All controls having 2 in their page property are only displayed on page 2 and so forth. If the dialog is on Page 0, all controls are visible at once. If a control has its Page property set to 0, it is visible on all dialog pages. |
− | This feature is used to create a second page in our dialog. Hold down the | + | This feature is used to create a second page in our dialog. Hold down the {{key|Control}} key, and click the label and file control in the dialog to select them. In the '''Properties Dialog''', fill in 1 for the '''Page''' property and press '''Enter''' to apply the change. Next, select the dialog by clicking the outer rim of the dialog in the dialog editor, enter 2 for the '''Page''' property and press the {{key|Enter}} key. The label and file control disappear, because we are on page 2 now. Only the buttons are visible since they are on page 0. |
On page 2, add a label "Anchor" and two option buttons "at Paragraph" and "as Character". Name the option buttons <code>AtParagraph</code> and <code>AsCharacter</code>, and toggle the '''State''' property of the <code>AtParagraph</code> button, so that it is selected by default. The new controls automatically receive 2 in their '''Page''' property. When page 2 is finished, set the dialog to page 1 again, because we want it to be on page 1 on startup. | On page 2, add a label "Anchor" and two option buttons "at Paragraph" and "as Character". Name the option buttons <code>AtParagraph</code> and <code>AsCharacter</code>, and toggle the '''State''' property of the <code>AtParagraph</code> button, so that it is selected by default. The new controls automatically receive 2 in their '''Page''' property. When page 2 is finished, set the dialog to page 1 again, because we want it to be on page 1 on startup. | ||
Line 15: | Line 15: | ||
[[Image:DialogStep2.png|none|thumb|400px|The Insert Graphics Wizard]] | [[Image:DialogStep2.png|none|thumb|400px|The Insert Graphics Wizard]] | ||
− | The Subs below handle the | + | The Subs below handle the {{key|<< Back}} and {{key|Next >>}} buttons, and the Sub <code>FinishGraphicsDialog</code> has been extended to anchor the new graphics selected by the user. Note that the property that is called '''Page (Step)''' in the GUI, is called Step in the API. |
<!--[SOURCE:BasicAndDialogs/FirstStepsBasic.odt]--> | <!--[SOURCE:BasicAndDialogs/FirstStepsBasic.odt]--> | ||
<source lang="oobas"> | <source lang="oobas"> |
Revision as of 14:17, 10 December 2020
The final step is to create a small AutoPilot with two pages. The Apache OpenOffice Dialogs have a simple concept for AutoPilot pages. Each dialog and each control in a dialog has a property Page (Step) to control the pages of a dialog. Normally, dialogs are on page 0, but they can be set to a different page, for example, to page 1. All controls having 1 in their Page property are visible as long as the dialog is on page 1. All controls having 2 in their page property are only displayed on page 2 and so forth. If the dialog is on Page 0, all controls are visible at once. If a control has its Page property set to 0, it is visible on all dialog pages.
This feature is used to create a second page in our dialog. Hold down the Control key, and click the label and file control in the dialog to select them. In the Properties Dialog, fill in 1 for the Page property and press Enter to apply the change. Next, select the dialog by clicking the outer rim of the dialog in the dialog editor, enter 2 for the Page property and press the ↵ Enter key. The label and file control disappear, because we are on page 2 now. Only the buttons are visible since they are on page 0.
On page 2, add a label "Anchor" and two option buttons "at Paragraph" and "as Character". Name the option buttons AtParagraph
and AsCharacter
, and toggle the State property of the AtParagraph
button, so that it is selected by default. The new controls automatically receive 2 in their Page property. When page 2 is finished, set the dialog to page 1 again, because we want it to be on page 1 on startup.
The Subs below handle the << Back and Next >> buttons, and the Sub FinishGraphicsDialog
has been extended to anchor the new graphics selected by the user. Note that the property that is called Page (Step) in the GUI, is called Step in the API.
Sub BackGraphicsDialog oDialog.Model.Step = 1 oDialog.Model.Back.Enabled = false oDialog.Model.Next.Enabled = true End Sub Sub NextGraphicsDialog oDialog.Model.Step = 2 oDialog.Model.Back.Enabled = true oDialog.Model.Next.Enabled = false End Sub Sub FinishGraphicsDialog Dim sGraphicURL as String, iAnchor as Long oDialog.endExecute() sFile = oDialog.Model.FileControl1.Text ' State = Selected corresponds to 1 in the API if oDialog.Model.AsCharacter.State = 1 then iAnchor = com.sun.star.text.TextContentAnchorType.AS_CHARACTER elseif oDialog.Model.AtParagraph.State = 1 then iAnchor = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH endif ' the File Selection control returns a system path, we have to transform it to a File URL ' We use the built-in Basic runtime function ConvertToURL for this purpose sGraphicURL = ConvertToURL(sFile) ' access the document model oDoc = ThisComponent ' get the Text service of the document oText = oDoc.getText() ' create an instance of a graphic object using the document service factory oGraphicObject = oDoc.createInstance("com.sun.star.text.GraphicObject") ' set the URL of the graphic oGraphicObject.GraphicURL = sGraphicURL oGraphicObject.AnchorType = iAnchor ' get the current cursor position in the GUI and create a text cursor from it oViewCursor = oDoc.getCurrentController().getViewCursor() oCursor = oText.createTextCursorByRange(oViewCursor.getStart()) ' insert the graphical object at the beginning of the text oText.insertTextContent(oCursor.getStart(), oGraphicObject, false) End Sub
Content on this page is licensed under the Public Documentation License (PDL). |