123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <!--
- * 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 .
- -->
- <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Samples" script:language="StarBasic">Option Explicit
- Const NumStyles = 18
- Const aTempFileName = "Berend_Ilko_Tom_Stella_Volker.stc"
- Dim oUcbObject as Object
- Public StylesDir as String
- Public StylesDialog as Object
- Public PathSeparator as String
- Public oFamilies as Object
- Public aOptions(0) as New com.sun.star.beans.PropertyValue
- Public sQueryPath as String
- Public NoArgs()as New com.sun.star.beans.PropertyValue
- Public aTempURL as String
- Public Files(100) as String
- '--------------------------------------------------------------------------------------
- 'Calc Style Section starts here
- Sub ShowStyles
- 'This sub displays the style selection dialog if the current document is a calc document.
- Dim TemplateDir, ActFileTitle, DisplayDummy as String
- Dim sFilterName(0) as String
- Dim StyleNames() as String
- Dim LocalizedStyleNames(NumStyles,2) As String
- Dim LocalizedStyleName As String
- Dim t as Integer
- Dim MaxIndex as Integer
- Dim StyleNameDef As Variant
- BasicLibraries.LoadLibrary("Tools")
- If InitResources("'Template'") then
- oDocument = ThisComponent
- If oDocument.SupportsService("com.sun.star.sheet.SpreadsheetDocument") Then
- ToggleWindow(False)
- oUcbObject = createUnoService("com.sun.star.ucb.SimpleFileAccess")
- oFamilies = oDocument.StyleFamilies
- SaveCurrentStyles(oDocument)
- StylesDialog = LoadDialog("Template", "DialogStyles")
- DialogModel = StylesDialog.Model
- TemplateDir = GetPathSettings("Template", False, 0)
- StylesDir = GetOfficeSubPath("Template", "wizard/styles/")
- sQueryPath = GetOfficeSubPath("Template", "../wizard/bitmap/")
- DialogModel.Title = GetResText("STYLES_0")
- DialogModel.cmdCancel.Label = GetResText("STYLES_2")
- DialogModel.cmdOk.Label = GetResText("STYLES_3")
- StyleNameDef = Array("(Standard)", "Autumn Leaves", "Be", "Black and White", "Blackberry Bush", "Blue Jeans", "Fifties Diner", "Glacier", "Green Grapes", "Marine", "Millennium", "Nature", "Neon", "Night", "PC Nostalgia", "Pastel", "Pool Party", "Pumpkin")
- For t = 0 to NumStyles - 1
- LocalizedStyleNames(t,0) = StyleNameDef(t)
- LocalizedStyleNames(t,1) = GetResText("STYLENAME_" & Trim(Str(t)))
- Next t
- Stylenames() = ReadDirectories(StylesDir, False, False, True,)
- MaxIndex = Ubound(Stylenames())
- For t = 0 to MaxIndex
- LocalizedStyleName = StringInMultiArray(LocalizedStyleNames(), StyleNames(t,1), 0, 1)
- If LocalizedStyleName <> "" Then
- StyleNames(t,1) = LocalizedStyleName
- End If
- Next t
- BubbleSortList(Stylenames(),True)
- Dim cStyles(MaxIndex)
- For t = 0 to MaxIndex
- Files(t) = StyleNames(t,0)
- cStyles(t) = StyleNames(t,1)
- Next t
- On Local Error Resume Next
- DialogModel.lbStyles.StringItemList() = cStyles()
- ToggleWindow(True)
- StylesDialog.Execute
- End If
- End If
- End Sub
- Sub SelectStyle
- 'This sub loads the specific styles from a style document and loads them into the
- 'current document.
- Dim StylePath as String
- Dim NewStyle as String
- Dim Position as Integer
- Position = DialogModel.lbStyles.SelectedItems(0)
- If Position > -1 Then
- ToggleWindow(False)
- StylePath = Files(Position)
- aOptions(0).Name = "OverwriteStyles"
- aOptions(0).Value = true
- oFamilies.loadStylesFromURL(StylePath, aOptions())
- ToggleWindow(True)
- End If
- End Sub
- Sub SaveCurrentStyles(oDocument as Object)
- 'This sub stores the current document in the directory to hold temporary files.
- On Error Goto ErrorOccurred
- aTempURL = GetPathSettings("Temp", False)
- Dim aRightMost as String
- aRightMost = Right(aTempURL, 1)
- if aRightMost = "/" Then
- aTempURL = aTempURL & aTempFileName
- Else
- aTempURL = aTempURL & "/" & aTempFileName
- End If
- While FileExists(aTempURL)
- aTempURL=Left(aTempURL,(Len(aTempURL)-4)) & "_1.stc"
- Wend
- oDocument.storeToURL(aTempURL, NoArgs())
- Exit Sub
- ErrorOccurred:
- MsgBox(GetResText("STYLES_1"), 16, GetResText("STYLES_0"))
- On Local Error Goto 0
- End Sub
- Sub RestoreCurrentStyles
- 'This sub retrieves the styles from the temporarily save document
- ToggleWindow(False)
- On Local Error Goto NoFile
- If FileExists(aTempURL) Then
- aOptions(0).Name = "OverwriteStyles"
- aOptions(0).Value = true
- oFamilies.LoadStylesFromURL(aTempURL, aOptions())
- KillTempFile()
- End If
- StylesDialog.EndExecute
- ToggleWindow(True)
- NOFILE:
- If Err <> 0 Then
- Msgbox("Cannot load Document from " & aTempUrl, 64, GetProductname())
- End If
- On Local Error Goto 0
- End Sub
- Sub CloseStyleDialog
- KillTempFile()
- DialogExited = True
- StylesDialog.Endexecute
- End Sub
- Sub KillTempFile()
- If oUcbObject.Exists(aTempUrl) Then
- oUcbObject.Kill(aTempUrl)
- End If
- End Sub
- </script:module>
|