<?xml version="1.0" encoding="UTF-8"?>
<!--
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ProgressBar" script:language="StarBasic">REM  *****  BASIC  *****

Dim oDialog As Object

Sub Main()

	Dim oLibContainer As Object, oLib As Object
	Dim oInputStreamProvider As Object
	Dim oProgressBar As Object
			
	Const sLibName = &quot;ToolkitControls&quot;
	Const sDialogName = &quot;ProgressBarDlg&quot;

	REM load/get library and input stream provider
	oLibContainer = DialogLibraries	
	oLibContainer.loadLibrary( sLibName )
	oLib = oLibContainer.getByName( sLibName )	
	oInputStreamProvider = oLib.getByName( sDialogName )

	REM create dialog control
	oDialog = CreateUnoDialog( oInputStreamProvider )

	REM hide progress bar
	oProgressBar = oDialog.getControl(&quot;ProgressBar1&quot;)	
	oProgressBar.setVisible( False )
											
	REM show the dialog
	oDialog.execute()
			
End Sub

Sub ProgressBarDemo()

	Dim oProgressBar As Object, oProgressBarModel As Object
	Dim oCancelButtonModel As Object 
	Dim oStartButtonModel As Object
	Dim ProgressValue As Long
	
	REM progress bar settings
	Const ProgressValueMin = 0
	Const ProgressValueMax = 50
	Const ProgressStep = 1

	REM set minimum and maximum progress value
	oProgressBarModel = oDialog.Model.ProgressBar1
	oProgressBarModel.ProgressValueMin = ProgressValueMin
	oProgressBarModel.ProgressValueMax = ProgressValueMax

	REM disable cancel and start button
	oCancelButtonModel = oDialog.Model.CommandButton1
	oCancelButtonModel.Enabled = False
	oStartButtonModel = oDialog.Model.CommandButton2
	oStartButtonModel.Enabled = False

	REM show progress bar
	oProgressBar = oDialog.getControl(&quot;ProgressBar1&quot;)	
	oProgressBar.setVisible( True )

	REM increase progress value every second
	For ProgressValue = ProgressValueMin To ProgressValueMax Step ProgressStep
   	    oProgressBarModel.ProgressValue = ProgressValue
		Wait 40
	Next ProgressValue

	REM hide progress bar
	oProgressBar.setVisible( False )

	REM enable cancel and start button
	oCancelButtonModel.Enabled = True
	oStartButtonModel.Enabled = True

End Sub

</script:module>