1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?> 2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3*b1cdbd2cSJim Jagielski<!--*********************************************************** 4*b1cdbd2cSJim Jagielski * 5*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 6*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 7*b1cdbd2cSJim Jagielski * distributed with this work for additional information 8*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 9*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 10*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 11*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 14*b1cdbd2cSJim Jagielski * 15*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 16*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 17*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 19*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 20*b1cdbd2cSJim Jagielski * under the License. 21*b1cdbd2cSJim Jagielski * 22*b1cdbd2cSJim Jagielski ***********************************************************--> 23*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ModuleControls" script:language="StarBasic">Option Explicit 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim JagielskiPublic DlgOverwrite as Object 26*b1cdbd2cSJim JagielskiPublic Const SBOVERWRITEUNDEFINED as Integer = 0 27*b1cdbd2cSJim JagielskiPublic Const SBOVERWRITECANCEL as Integer = 2 28*b1cdbd2cSJim JagielskiPublic Const SBOVERWRITEQUERY as Integer = 7 29*b1cdbd2cSJim JagielskiPublic Const SBOVERWRITEALWAYS as Integer = 6 30*b1cdbd2cSJim JagielskiPublic Const SBOVERWRITENEVER as Integer = 8 31*b1cdbd2cSJim JagielskiPublic iGeneralOverwrite as Integer 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski' Accepts the name of a control and returns the respective control model as object 36*b1cdbd2cSJim Jagielski' The Container can either be a whole document or a specific sheet of a Calc-Document 37*b1cdbd2cSJim Jagielski' 'CName' is the name of the Control 38*b1cdbd2cSJim JagielskiFunction getControlModel(oContainer as Object, CName as String) 39*b1cdbd2cSJim JagielskiDim aForm, oForms as Object 40*b1cdbd2cSJim JagielskiDim i as Integer 41*b1cdbd2cSJim Jagielski oForms = oContainer.Drawpage.GetForms 42*b1cdbd2cSJim Jagielski For i = 0 To oForms.Count-1 43*b1cdbd2cSJim Jagielski aForm = oForms.GetbyIndex(i) 44*b1cdbd2cSJim Jagielski If aForm.HasByName(CName) Then 45*b1cdbd2cSJim Jagielski GetControlModel = aForm.GetbyName(CName) 46*b1cdbd2cSJim Jagielski Exit Function 47*b1cdbd2cSJim Jagielski End If 48*b1cdbd2cSJim Jagielski Next i 49*b1cdbd2cSJim Jagielski Msgbox("No Control with the name '" & CName & "' found" , 16, GetProductName()) 50*b1cdbd2cSJim JagielskiEnd Function 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski' Gets the Shape of a Control( e. g. to reset the size or Position of the control 55*b1cdbd2cSJim Jagielski' Parameters: 56*b1cdbd2cSJim Jagielski' The 'oContainer' is the Document or a specific sheet of a Calc - Document 57*b1cdbd2cSJim Jagielski' 'CName' is the Name of the Control 58*b1cdbd2cSJim JagielskiFunction GetControlShape(oContainer as Object,CName as String) 59*b1cdbd2cSJim JagielskiDim i as integer 60*b1cdbd2cSJim JagielskiDim aShape as Object 61*b1cdbd2cSJim Jagielski For i = 0 to oContainer.DrawPage.Count-1 62*b1cdbd2cSJim Jagielski aShape = oContainer.DrawPage(i) 63*b1cdbd2cSJim Jagielski If HasUnoInterfaces(aShape, "com.sun.star.drawing.XControlShape") then 64*b1cdbd2cSJim Jagielski If ashape.Control.Name = CName then 65*b1cdbd2cSJim Jagielski GetControlShape = aShape 66*b1cdbd2cSJim Jagielski exit Function 67*b1cdbd2cSJim Jagielski End If 68*b1cdbd2cSJim Jagielski End If 69*b1cdbd2cSJim Jagielski Next 70*b1cdbd2cSJim JagielskiEnd Function 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski' Returns the View of a Control 74*b1cdbd2cSJim Jagielski' Parameters: 75*b1cdbd2cSJim Jagielski' The 'oContainer' is the Document or a specific sheet of a Calc - Document 76*b1cdbd2cSJim Jagielski' The 'oController' is always directly attached to the Document 77*b1cdbd2cSJim Jagielski' 'CName' is the Name of the Control 78*b1cdbd2cSJim JagielskiFunction getControlView(oContainer , oController as Object, CName as String) as Object 79*b1cdbd2cSJim JagielskiDim aForm, oForms, oControlModel as Object 80*b1cdbd2cSJim JagielskiDim i as Integer 81*b1cdbd2cSJim Jagielski oForms = oContainer.DrawPage.Forms 82*b1cdbd2cSJim Jagielski For i = 0 To oForms.Count-1 83*b1cdbd2cSJim Jagielski aForm = oforms.GetbyIndex(i) 84*b1cdbd2cSJim Jagielski If aForm.HasByName(CName) Then 85*b1cdbd2cSJim Jagielski oControlModel = aForm.GetbyName(CName) 86*b1cdbd2cSJim Jagielski GetControlView = oController.GetControl(oControlModel) 87*b1cdbd2cSJim Jagielski Exit Function 88*b1cdbd2cSJim Jagielski End If 89*b1cdbd2cSJim Jagielski Next i 90*b1cdbd2cSJim Jagielski Msgbox("No Control with the name '" & CName & "' found" , 16, GetProductName()) 91*b1cdbd2cSJim JagielskiEnd Function 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski' Parameters: 96*b1cdbd2cSJim Jagielski' The 'oContainer' is the Document or a specific sheet of a Calc - Document 97*b1cdbd2cSJim Jagielski' 'CName' is the Name of the Control 98*b1cdbd2cSJim JagielskiFunction DisposeControl(oContainer as Object, CName as String) as Boolean 99*b1cdbd2cSJim JagielskiDim aControl as Object 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski aControl = GetControlModel(oContainer,CName) 102*b1cdbd2cSJim Jagielski If not IsNull(aControl) Then 103*b1cdbd2cSJim Jagielski aControl.Dispose() 104*b1cdbd2cSJim Jagielski DisposeControl = True 105*b1cdbd2cSJim Jagielski Else 106*b1cdbd2cSJim Jagielski DisposeControl = False 107*b1cdbd2cSJim Jagielski End If 108*b1cdbd2cSJim JagielskiEnd Function 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski' Returns a sequence of a group of controls like option buttons or checkboxes 112*b1cdbd2cSJim Jagielski' The 'oContainer' is the Document or a specific sheet of a Calc - Document 113*b1cdbd2cSJim Jagielski' 'sGroupName' is the Name of the Controlgroup 114*b1cdbd2cSJim JagielskiFunction GetControlGroupModel(oContainer as Object, sGroupName as String ) 115*b1cdbd2cSJim JagielskiDim aForm, oForms As Object 116*b1cdbd2cSJim JagielskiDim aControlModel() As Object 117*b1cdbd2cSJim JagielskiDim i as integer 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski oForms = oContainer.DrawPage.Forms 120*b1cdbd2cSJim Jagielski For i = 0 To oForms.Count-1 121*b1cdbd2cSJim Jagielski aForm = oForms(i) 122*b1cdbd2cSJim Jagielski If aForm.HasbyName(sGroupName) Then 123*b1cdbd2cSJim Jagielski aForm.GetGroupbyName(sGroupName,aControlModel) 124*b1cdbd2cSJim Jagielski GetControlGroupModel = aControlModel 125*b1cdbd2cSJim Jagielski Exit Function 126*b1cdbd2cSJim Jagielski End If 127*b1cdbd2cSJim Jagielski Next i 128*b1cdbd2cSJim Jagielski Msgbox("No Controlgroup with the name '" & sGroupName & "' found" , 16, GetProductName()) 129*b1cdbd2cSJim JagielskiEnd Function 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski' Returns the Referencevalue of a group of e.g. option buttons or check boxes 133*b1cdbd2cSJim Jagielski' 'oControlGroup' is a sequence of the Control objects 134*b1cdbd2cSJim JagielskiFunction GetRefValue(oControlGroup() as Object) 135*b1cdbd2cSJim JagielskiDim i as Integer 136*b1cdbd2cSJim Jagielski For i = 0 To Ubound(oControlGroup()) 137*b1cdbd2cSJim Jagielski' oControlGroup(i).DefaultState = oControlGroup(i).State 138*b1cdbd2cSJim Jagielski If oControlGroup(i).State Then 139*b1cdbd2cSJim Jagielski GetRefValue = oControlGroup(i).RefValue 140*b1cdbd2cSJim Jagielski exit Function 141*b1cdbd2cSJim Jagielski End If 142*b1cdbd2cSJim Jagielski Next 143*b1cdbd2cSJim Jagielski GetRefValue() = -1 144*b1cdbd2cSJim JagielskiEnd Function 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim JagielskiFunction GetRefValueOfControlGroup(oContainer as Object, GroupName as String) 148*b1cdbd2cSJim JagielskiDim oOptGroup() as Object 149*b1cdbd2cSJim JagielskiDim iRef as Integer 150*b1cdbd2cSJim Jagielski oOptGroup() = GetControlGroupModel(oContainer, GroupName) 151*b1cdbd2cSJim Jagielski iRef = GetRefValue(oOptGroup()) 152*b1cdbd2cSJim Jagielski GetRefValueofControlGroup = iRef 153*b1cdbd2cSJim JagielskiEnd Function 154*b1cdbd2cSJim Jagielski 155*b1cdbd2cSJim Jagielski 156*b1cdbd2cSJim JagielskiFunction GetOptionGroupValue(oContainer as Object, OptGroupName as String) as Boolean 157*b1cdbd2cSJim JagielskiDim oRulesOptions() as Object 158*b1cdbd2cSJim Jagielski oRulesOptions() = GetControlGroupModel(oContainer, OptGroupName) 159*b1cdbd2cSJim Jagielski GetOptionGroupValue = oRulesOptions(0).State 160*b1cdbd2cSJim JagielskiEnd Function 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim JagielskiFunction WriteOptValueToCell(oSheet as Object, OptGroupName as String, iCol as Integer, iRow as Integer) as Boolean 165*b1cdbd2cSJim JagielskiDim bOptValue as Boolean 166*b1cdbd2cSJim JagielskiDim oCell as Object 167*b1cdbd2cSJim Jagielski bOptValue = GetOptionGroupValue(oSheet, OptGroupName) 168*b1cdbd2cSJim Jagielski oCell = oSheet.GetCellByPosition(iCol, iRow) 169*b1cdbd2cSJim Jagielski oCell.SetValue(ABS(CInt(bOptValue))) 170*b1cdbd2cSJim Jagielski WriteOptValueToCell() = bOptValue 171*b1cdbd2cSJim JagielskiEnd Function 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim JagielskiFunction LoadDialog(Libname as String, DialogName as String, Optional oLibContainer) 175*b1cdbd2cSJim JagielskiDim oLib as Object 176*b1cdbd2cSJim JagielskiDim oLibDialog as Object 177*b1cdbd2cSJim JagielskiDim oRuntimeDialog as Object 178*b1cdbd2cSJim Jagielski If IsMissing(oLibContainer ) then 179*b1cdbd2cSJim Jagielski oLibContainer = DialogLibraries 180*b1cdbd2cSJim Jagielski End If 181*b1cdbd2cSJim Jagielski oLibContainer.LoadLibrary(LibName) 182*b1cdbd2cSJim Jagielski oLib = oLibContainer.GetByName(Libname) 183*b1cdbd2cSJim Jagielski oLibDialog = oLib.GetByName(DialogName) 184*b1cdbd2cSJim Jagielski oRuntimeDialog = CreateUnoDialog(oLibDialog) 185*b1cdbd2cSJim Jagielski LoadDialog() = oRuntimeDialog 186*b1cdbd2cSJim JagielskiEnd Function 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim JagielskiSub GetFolderName(oRefModel as Object) 190*b1cdbd2cSJim JagielskiDim oFolderDialog as Object 191*b1cdbd2cSJim JagielskiDim iAccept as Integer 192*b1cdbd2cSJim JagielskiDim sPath as String 193*b1cdbd2cSJim JagielskiDim InitPath as String 194*b1cdbd2cSJim JagielskiDim RefControlName as String 195*b1cdbd2cSJim JagielskiDim oUcb as object 196*b1cdbd2cSJim Jagielski 'Note: The following services have to be called in the following order 197*b1cdbd2cSJim Jagielski ' because otherwise Basic does not remove the FileDialog Service 198*b1cdbd2cSJim Jagielski oFolderDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker") 199*b1cdbd2cSJim Jagielski oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess") 200*b1cdbd2cSJim Jagielski InitPath = ConvertToUrl(oRefModel.Text) 201*b1cdbd2cSJim Jagielski If InitPath = "" Then 202*b1cdbd2cSJim Jagielski InitPath = GetPathSettings("Work") 203*b1cdbd2cSJim Jagielski End If 204*b1cdbd2cSJim Jagielski If oUcb.Exists(InitPath) Then 205*b1cdbd2cSJim Jagielski oFolderDialog.SetDisplayDirectory(InitPath) 206*b1cdbd2cSJim Jagielski End If 207*b1cdbd2cSJim Jagielski iAccept = oFolderDialog.Execute() 208*b1cdbd2cSJim Jagielski If iAccept = 1 Then 209*b1cdbd2cSJim Jagielski sPath = oFolderDialog.GetDirectory() 210*b1cdbd2cSJim Jagielski If oUcb.Exists(sPath) Then 211*b1cdbd2cSJim Jagielski oRefModel.Text = ConvertFromUrl(sPath) 212*b1cdbd2cSJim Jagielski End If 213*b1cdbd2cSJim Jagielski End If 214*b1cdbd2cSJim JagielskiEnd Sub 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim JagielskiSub GetFileName(oRefModel as Object, Filternames()) 218*b1cdbd2cSJim JagielskiDim oFileDialog as Object 219*b1cdbd2cSJim JagielskiDim iAccept as Integer 220*b1cdbd2cSJim JagielskiDim sPath as String 221*b1cdbd2cSJim JagielskiDim InitPath as String 222*b1cdbd2cSJim JagielskiDim RefControlName as String 223*b1cdbd2cSJim JagielskiDim oUcb as object 224*b1cdbd2cSJim Jagielski'Dim ListAny(0) 225*b1cdbd2cSJim Jagielski 'Note: The following services have to be called in the following order 226*b1cdbd2cSJim Jagielski ' because otherwise Basic does not remove the FileDialog Service 227*b1cdbd2cSJim Jagielski oFileDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker") 228*b1cdbd2cSJim Jagielski oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess") 229*b1cdbd2cSJim Jagielski 'ListAny(0) = com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_SIMPLE 230*b1cdbd2cSJim Jagielski 'oFileDialog.initialize(ListAny()) 231*b1cdbd2cSJim Jagielski AddFiltersToDialog(FilterNames(), oFileDialog) 232*b1cdbd2cSJim Jagielski InitPath = ConvertToUrl(oRefModel.Text) 233*b1cdbd2cSJim Jagielski If InitPath = "" Then 234*b1cdbd2cSJim Jagielski InitPath = GetPathSettings("Work") 235*b1cdbd2cSJim Jagielski End If 236*b1cdbd2cSJim Jagielski If oUcb.Exists(InitPath) Then 237*b1cdbd2cSJim Jagielski oFileDialog.SetDisplayDirectory(InitPath) 238*b1cdbd2cSJim Jagielski End If 239*b1cdbd2cSJim Jagielski iAccept = oFileDialog.Execute() 240*b1cdbd2cSJim Jagielski If iAccept = 1 Then 241*b1cdbd2cSJim Jagielski sPath = oFileDialog.Files(0) 242*b1cdbd2cSJim Jagielski If oUcb.Exists(sPath) Then 243*b1cdbd2cSJim Jagielski oRefModel.Text = ConvertFromUrl(sPath) 244*b1cdbd2cSJim Jagielski End If 245*b1cdbd2cSJim Jagielski End If 246*b1cdbd2cSJim Jagielski oFileDialog.Dispose() 247*b1cdbd2cSJim JagielskiEnd Sub 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim JagielskiFunction StoreDocument(oDocument as Object, FilterNames() as String, DefaultName as String, DisplayDirectory as String, Optional iAddProcedure as Integer) as String 251*b1cdbd2cSJim JagielskiDim NoArgs() as New com.sun.star.beans.PropertyValue 252*b1cdbd2cSJim JagielskiDim oStoreProperties(0) as New com.sun.star.beans.PropertyValue 253*b1cdbd2cSJim JagielskiDim oStoreDialog as Object 254*b1cdbd2cSJim JagielskiDim iAccept as Integer 255*b1cdbd2cSJim JagielskiDim sPath as String 256*b1cdbd2cSJim JagielskiDim ListAny(0) as Long 257*b1cdbd2cSJim JagielskiDim UIFilterName as String 258*b1cdbd2cSJim JagielskiDim FilterName as String 259*b1cdbd2cSJim JagielskiDim FilterIndex as Integer 260*b1cdbd2cSJim Jagielski ListAny(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION_PASSWORD 261*b1cdbd2cSJim Jagielski oStoreDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker") 262*b1cdbd2cSJim Jagielski oStoreDialog.Initialize(ListAny()) 263*b1cdbd2cSJim Jagielski AddFiltersToDialog(FilterNames(), oStoreDialog) 264*b1cdbd2cSJim Jagielski oStoreDialog.SetDisplayDirectory(DisplayDirectory) 265*b1cdbd2cSJim Jagielski oStoreDialog.SetDefaultName(DefaultName) 266*b1cdbd2cSJim Jagielski oStoreDialog.setValue(com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_AUTOEXTENSION,0, true) 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski iAccept = oStoreDialog.Execute() 269*b1cdbd2cSJim Jagielski If iAccept = 1 Then 270*b1cdbd2cSJim Jagielski sPath = oStoreDialog.Files(0) 271*b1cdbd2cSJim Jagielski UIFilterName = oStoreDialog.GetCurrentFilter() 272*b1cdbd2cSJim Jagielski FilterIndex = IndexInArray(UIFilterName, FilterNames()) 273*b1cdbd2cSJim Jagielski FilterName = FilterNames(FilterIndex,2) 274*b1cdbd2cSJim Jagielski If Not IsMissing(iAddProcedure) Then 275*b1cdbd2cSJim Jagielski Select Case iAddProcedure 276*b1cdbd2cSJim Jagielski Case 1 277*b1cdbd2cSJim Jagielski CommitLastDocumentChanges(sPath) 278*b1cdbd2cSJim Jagielski End Select 279*b1cdbd2cSJim Jagielski End If 280*b1cdbd2cSJim Jagielski On Local Error Goto NOSAVING 281*b1cdbd2cSJim Jagielski If FilterName = "" Then 282*b1cdbd2cSJim Jagielski ' Todo: Catch the case that a document that has to be overwritten is writeportected (e.g. it is open) 283*b1cdbd2cSJim Jagielski oDocument.StoreAsUrl(sPath, NoArgs()) 284*b1cdbd2cSJim Jagielski Else 285*b1cdbd2cSJim Jagielski oStoreProperties(0).Name = "FilterName" 286*b1cdbd2cSJim Jagielski oStoreProperties(0).Value = FilterName 287*b1cdbd2cSJim Jagielski oDocument.StoreAsUrl(sPath, oStoreProperties()) 288*b1cdbd2cSJim Jagielski End If 289*b1cdbd2cSJim Jagielski End If 290*b1cdbd2cSJim Jagielski oStoreDialog.dispose() 291*b1cdbd2cSJim Jagielski StoreDocument() = sPath 292*b1cdbd2cSJim Jagielski Exit Function 293*b1cdbd2cSJim JagielskiNOSAVING: 294*b1cdbd2cSJim Jagielski If Err <> 0 Then 295*b1cdbd2cSJim Jagielski' Msgbox("Document cannot be saved under '" & ConvertFromUrl(sPath) & "'", 48, GetProductName()) 296*b1cdbd2cSJim Jagielski sPath = "" 297*b1cdbd2cSJim Jagielski oStoreDialog.dispose() 298*b1cdbd2cSJim Jagielski Resume NOERROR 299*b1cdbd2cSJim Jagielski NOERROR: 300*b1cdbd2cSJim Jagielski End If 301*b1cdbd2cSJim JagielskiEnd Function 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski 304*b1cdbd2cSJim JagielskiSub AddFiltersToDialog(FilterNames() as String, oDialog as Object) 305*b1cdbd2cSJim JagielskiDim i as Integer 306*b1cdbd2cSJim JagielskiDim MaxIndex as Integer 307*b1cdbd2cSJim JagielskiDim ViewFiltername as String 308*b1cdbd2cSJim JagielskiDim oProdNameAccess as Object 309*b1cdbd2cSJim JagielskiDim sProdName as String 310*b1cdbd2cSJim Jagielski oProdNameAccess = GetRegistryKeyContent("org.openoffice.Setup/Product") 311*b1cdbd2cSJim Jagielski sProdName = oProdNameAccess.getByName("ooName") 312*b1cdbd2cSJim Jagielski MaxIndex = Ubound(FilterNames(), 1) 313*b1cdbd2cSJim Jagielski For i = 0 To MaxIndex 314*b1cdbd2cSJim Jagielski Filternames(i,0) = ReplaceString(Filternames(i,0), sProdName,"%productname%") 315*b1cdbd2cSJim Jagielski oDialog.AppendFilter(FilterNames(i,0), FilterNames(i,1)) 316*b1cdbd2cSJim Jagielski Next i 317*b1cdbd2cSJim Jagielski oDialog.SetCurrentFilter(FilterNames(0,0) 318*b1cdbd2cSJim JagielskiEnd Sub 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski 321*b1cdbd2cSJim JagielskiSub SwitchMousePointer(oWindowPeer as Object, bDoEnable as Boolean) 322*b1cdbd2cSJim JagielskiDim oWindowPointer as Object 323*b1cdbd2cSJim Jagielski oWindowPointer = CreateUnoService("com.sun.star.awt.Pointer") 324*b1cdbd2cSJim Jagielski If bDoEnable Then 325*b1cdbd2cSJim Jagielski oWindowPointer.SetType(com.sun.star.awt.SystemPointer.ARROW) 326*b1cdbd2cSJim Jagielski Else 327*b1cdbd2cSJim Jagielski oWindowPointer.SetType(com.sun.star.awt.SystemPointer.WAIT) 328*b1cdbd2cSJim Jagielski End If 329*b1cdbd2cSJim Jagielski oWindowPeer.SetPointer(oWindowPointer) 330*b1cdbd2cSJim JagielskiEnd Sub 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski 333*b1cdbd2cSJim JagielskiSub ShowOverwriteAllDialog(FilePath as String, sTitle as String) 334*b1cdbd2cSJim JagielskiDim QueryString as String 335*b1cdbd2cSJim JagielskiDim LocRetValue as Integer 336*b1cdbd2cSJim JagielskiDim lblYes as String 337*b1cdbd2cSJim JagielskiDim lblNo as String 338*b1cdbd2cSJim JagielskiDim lblYesToAll as String 339*b1cdbd2cSJim JagielskiDim lblCancel as String 340*b1cdbd2cSJim JagielskiDim OverwriteModel as Object 341*b1cdbd2cSJim Jagielski If InitResources(GetProductName(), "dbw") Then 342*b1cdbd2cSJim Jagielski QueryString = GetResText(507) 343*b1cdbd2cSJim Jagielski QueryString = ReplaceString(QueryString, ConvertFromUrl(FilePath), "<PATH>") 344*b1cdbd2cSJim Jagielski If Len(QueryString) > 190 Then 345*b1cdbd2cSJim Jagielski QueryString = DeleteStr(QueryString, ".<BR>") 346*b1cdbd2cSJim Jagielski End If 347*b1cdbd2cSJim Jagielski QueryString = ReplaceString(QueryString, chr(13), "<BR>") 348*b1cdbd2cSJim Jagielski lblYes = GetResText(508) 349*b1cdbd2cSJim Jagielski lblYesToAll = GetResText(509) 350*b1cdbd2cSJim Jagielski lblNo = GetResText(510) 351*b1cdbd2cSJim Jagielski lblCancel = GetResText(511) 352*b1cdbd2cSJim Jagielski DlgOverwrite = LoadDialog("Tools", "DlgOverwriteAll") 353*b1cdbd2cSJim Jagielski DlgOverwrite.Title = sTitle 354*b1cdbd2cSJim Jagielski OverwriteModel = DlgOverwrite.Model 355*b1cdbd2cSJim Jagielski OverwriteModel.cmdYes.Label = lblYes 356*b1cdbd2cSJim Jagielski OverwriteModel.cmdYesToAll.Label = lblYesToAll 357*b1cdbd2cSJim Jagielski OverwriteModel.cmdNo.Label = lblNo 358*b1cdbd2cSJim Jagielski OverwriteModel.cmdCancel.Label = lblCancel 359*b1cdbd2cSJim Jagielski OverwriteModel.lblQueryforSave.Label = QueryString 360*b1cdbd2cSJim Jagielski OverwriteModel.cmdNo.DefaultButton = True 361*b1cdbd2cSJim Jagielski DlgOverwrite.GetControl("cmdNo").SetFocus() 362*b1cdbd2cSJim Jagielski iGeneralOverwrite = 999 363*b1cdbd2cSJim Jagielski LocRetValue = DlgOverwrite.execute() 364*b1cdbd2cSJim Jagielski If iGeneralOverwrite = 999 Then 365*b1cdbd2cSJim Jagielski iGeneralOverwrite = SBOVERWRITECANCEL 366*b1cdbd2cSJim Jagielski End If 367*b1cdbd2cSJim Jagielski DlgOverwrite.dispose() 368*b1cdbd2cSJim Jagielski Else 369*b1cdbd2cSJim Jagielski iGeneralOverwrite = SBOVERWRITECANCEL 370*b1cdbd2cSJim Jagielski End If 371*b1cdbd2cSJim JagielskiEnd Sub 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim JagielskiSub SetOVERWRITEToQuery() 375*b1cdbd2cSJim Jagielski iGeneralOverwrite = SBOVERWRITEQUERY 376*b1cdbd2cSJim Jagielski DlgOverwrite.EndExecute() 377*b1cdbd2cSJim JagielskiEnd Sub 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim JagielskiSub SetOVERWRITEToAlways() 381*b1cdbd2cSJim Jagielski iGeneralOverwrite = SBOVERWRITEALWAYS 382*b1cdbd2cSJim Jagielski DlgOverwrite.EndExecute() 383*b1cdbd2cSJim JagielskiEnd Sub 384*b1cdbd2cSJim Jagielski 385*b1cdbd2cSJim Jagielski 386*b1cdbd2cSJim JagielskiSub SetOVERWRITEToNever() 387*b1cdbd2cSJim Jagielski iGeneralOverwrite = SBOVERWRITENEVER 388*b1cdbd2cSJim Jagielski DlgOverwrite.EndExecute() 389*b1cdbd2cSJim JagielskiEnd Sub 390*b1cdbd2cSJim Jagielski</script:module> 391