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