forked from amazingfate/loongoffice
2009-01-20 17:39:31 +0100 pb r266605 : fix: #i98280# new 'More templates'-URL
2009-01-15 20:17:58 +0100 mst r266391 : #i95702# convert wizards to DocumentProperties (partially based on patch by cmc)
2009-01-12 07:35:44 +0100 pb r266131 : fix: #i96851# HID_PASTE_DLG and HID_LINKDLG_TABLB added
2009-01-09 10:40:48 +0100 pb r266061 : fix: #i97386# Execute_Impl() while sub-dialog is open this could be deleted; #i68415# patch from cmc
2009-01-09 10:35:24 +0100 pb r266059 : fix: #i97386# struct Deleted added
2009-01-09 10:05:17 +0100 pb r266057 : fix: #i97365# ModalDialog RID_SVXPAGE_IMPROVEMENT removed
2009-01-09 10:02:39 +0100 pb r266056 : fix: #i97841# new: set InfoURL and HandleHyperLink()
2009-01-09 09:59:13 +0100 pb r266053 : fix: #i97391# MinWidth re-calculated; #i97365# SvxImprovementDialog2 removed
2009-01-09 09:55:00 +0100 pb r266051 : fix: #i97841# new: HandleHyperLink(); #i97365# SvxImprovementDialog2 removed
2009-01-06 14:24:24 +0100 cd r265921 : #i96831# Fix build problem with gcc 4.3.2 using the return value of link correctly.
2009-01-06 12:18:41 +0100 cd r265907 : #i96831# Fix build problem with gcc 4.3.2
2009-01-06 12:02:59 +0100 mst r265905 : fix #i97775#
- xmloff/source/core/nmspmap.cxx:
+ SvXMLNamespaceMap::GetQNameByKey does not handle default namespace
correctly
437 lines
14 KiB
XML
437 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="HtmlAutoPilotBasic" script:language="StarBasic">' Variables must be declared
|
|
Option Explicit
|
|
|
|
Public CurDocIndex as Integer
|
|
Public CurWebPageIndex as Integer
|
|
|
|
|
|
Public bWithBackGraphic as Boolean
|
|
Public oStyle as Object
|
|
' Maximum number of content templates, style templates and bullets
|
|
Const MaxLayouts = 50
|
|
Const MaxStyles = 100
|
|
Const MaxBullets = 10
|
|
|
|
'Public NumberOfLayouts%, NumberOfStyles%
|
|
|
|
' Filled with title, previous, next, home, top, bullet, background, file name
|
|
Public Style(MaxStyles, 8) as String
|
|
|
|
Public Layout$(MaxLayouts, 2)
|
|
|
|
Public TextureDir$, BulletDir$, GraphicsDir$, GalleryDir$, PhotosDir$
|
|
Public SOBitmapPath as String
|
|
Public CurrentBullet$, CurrentPrev$, CurrentNext$, CurrentHome$, CurrentTop$
|
|
Public FileStr as String
|
|
|
|
Public WebWiz_gWizardName$, WebWiz_gErrContentNotFound$, WebWiz_gErrStyleNotFound$
|
|
Public WebWiz_gErrMainTemplateError$, WebWiz_gErrWhileReloading$
|
|
Public WebWiz_gErrWhileLoadStyles$, WebWiz_gErrMsg$, WebWiz_gErrMainDocumentError$
|
|
|
|
Public ProgressBar as Object
|
|
Public ProgressValue As Long
|
|
Public oBaseDocument as Object
|
|
Public oViewCursor as Object
|
|
Public oViewSettings as Object
|
|
Public NoArgs() as New com.sun.star.beans.PropertyValue
|
|
|
|
Public oCursor as Object
|
|
Public oBookmarks as Object
|
|
Public oBookMark as Object
|
|
|
|
Public oUcb as Object
|
|
Public MainDialog as Object
|
|
Public DialogModel as Object
|
|
|
|
|
|
Sub Main
|
|
Dim RetValue
|
|
On Local Error Goto GlobalErrorHandler
|
|
BasicLibraries.LoadLibrary("Tools")
|
|
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
|
|
oBaseDocument = StarDesktop.LoadComponentFromURL("private:factory/swriter/web", "_default", 0, NoArgs())
|
|
oViewSettings = oBaseDocument.CurrentController.ViewSettings
|
|
oViewCursor = oBaseDocument.GetCurrentController.ViewCursor
|
|
CurWebPageIndex = -1
|
|
ProgressBar = oBaseDocument.GetCurrentController.GetFrame.CreateStatusIndicator
|
|
ProgressBar.Start("", 100)
|
|
SetProgressValue(2)
|
|
oBaseDocument.LockControllers
|
|
oViewSettings.ShowTableBoundaries = False
|
|
If Not GetWebWizardPaths() Then
|
|
Exit Sub
|
|
End If
|
|
LoadLanguage
|
|
SetProgressValue(10)
|
|
Layout() = getListBoxArrays(oUcb, "/cnt")
|
|
GetCurIndex(DialogModel, Layout(),2)
|
|
SetProgressValue(30)
|
|
oCursor = oBasedocument.Text.CreateTextCursor
|
|
oCursor.InsertDocumentfromURL(FileStr, NoArgs())
|
|
SetProgressValue(50)
|
|
Style() = getListBoxArrays(oUcb, "/stl")
|
|
SetProgressValue(70)
|
|
LoadWebPageStyles(oBaseDocument)
|
|
SetProgressValue(90)
|
|
oBaseDocument.UnlockControllers
|
|
OpenWebDialog()
|
|
SetProgressValue(98)
|
|
SetProgressValue(0)
|
|
MainDialog.Model.ImagePreview.BackGroundColor = RGB(0, 60,126)
|
|
RetValue = MainDialog.Execute
|
|
Select Case RetValue
|
|
Case 0
|
|
MainDialog.Dispose()
|
|
DisposeDocument(oBaseDocument)
|
|
Case 1
|
|
EndDialog()
|
|
MainDialog.Dispose()
|
|
End Select
|
|
GLOBALERRORHANDLER:
|
|
If Err <> 0 Then
|
|
MsgBox (WebWiz_gErrMsg$, 16, WebWiz_gWizardName$)
|
|
DisposeDocument(oBaseDocument)
|
|
RESUME EXITWIZARD
|
|
EXITWIZARD:
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Function SetProgressValue(iValue as Integer)
|
|
If iValue = 0 Then
|
|
ProgressBar.End
|
|
End If
|
|
ProgressValue = iValue
|
|
ProgressBar.Value = iValue
|
|
End Function
|
|
|
|
|
|
Sub ReloadCurrentDocument()
|
|
Dim OldDocIndex as Integer
|
|
On Local Error Goto ErrorOcurred
|
|
OldDocIndex = CurDocIndex
|
|
CurDocIndex = GetCurIndex(DialogModel.lbTemplate, Layout(), 2)
|
|
If OldDocIndex <> CurDocIndex Then
|
|
oBaseDocument.LockControllers
|
|
ToggleDialogControls(False)
|
|
oCursor = oBaseDocument.Text.CreateTextCursor()
|
|
oCursor.GotoStart(False)
|
|
oCursor.GotoEnd(True)
|
|
oCursor.SetAllPropertiesToDefault()
|
|
oCursor.InsertDocumentfromURL(FileStr, NoArgs())
|
|
SetBulletAndGraphics
|
|
CheckControls(oBaseDocument.DrawPage)
|
|
ErrorOcurred:
|
|
If Err <> 0 Then
|
|
MsgBox(WebWiz_gErrWhileReloading$, 16, WebWiz_gWizardName$)
|
|
End If
|
|
oBaseDocument.UnlockControllers
|
|
oViewCursor.GotoStart(False)
|
|
ToggleDialogControls(True, "lbTemplate")
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
Sub LoadWebPageStyles(aEvent as Object, Optional bStartUp as Boolean)
|
|
Dim OldWebPageIndex as Integer
|
|
OldWebPageIndex = CurWebPageIndex
|
|
If IsNull(DialogModel) Then
|
|
CurWebPageIndex = GetCurIndex(DialogModel, Style(), 8)
|
|
Else
|
|
CurWebPageIndex = GetCurIndex(DialogModel.lbStyles, Style(), 8)
|
|
End If
|
|
If OldWebPageIndex <> CurWebPageIndex Then
|
|
ToggleDialogControls(False)
|
|
oBaseDocument.LockControllers
|
|
bWithBackGraphic = LoadNewStyles(oBaseDocument, DialogModel, CurWebPageIndex, FileStr, Style(), TextureDir)
|
|
CurrentBullet$ = BulletDir + Style(CurWebPageIndex, 6)
|
|
CurrentPrev$ = GraphicsDir + Style(CurWebPageIndex, 2)
|
|
CurrentNext$ = GraphicsDir + Style(CurWebPageIndex, 3)
|
|
CurrentHome$ = GraphicsDir + Style(CurWebPageIndex, 4)
|
|
CurrentTop$ = GraphicsDir + Style(CurWebPageIndex, 5)
|
|
With oBaseDocument.DocumentProperties.UserDefinedProperties
|
|
.AutoPilotName1 = ExtractGraphicNames(CurWebPageIndex,2)
|
|
.AutoPilotName2 = ExtractGraphicNames(CurWebPageIndex, 4)
|
|
.AutoPilotBullet = Style(CurWebPageIndex, 6)
|
|
.AutoPilotBackground = Style(CurWebPageIndex, 7)
|
|
End With
|
|
SetBulletAndGraphics()
|
|
CheckControls(oBaseDocument.DrawPage)
|
|
oViewCursor.GotoStart(False)
|
|
oBaseDocument.UnlockControllers
|
|
ToggleDialogControls(True, "lbStyles")
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Function ExtractGraphicNames(CurIndex as Integer, i as Integer) as String
|
|
Dim FieldValue as String
|
|
FieldValue = GetFileNameWithoutExtension(Style(CurIndex, i))
|
|
FieldValue = FieldValue & " " & GetFileNameWithoutExtension(Style(CurIndex, i+1))
|
|
ExtractGraphicNames = FieldValue
|
|
End Function
|
|
|
|
|
|
Sub SetBulletAndGraphics
|
|
SetGraphic("Prev", CurrentPrev)
|
|
SetGraphic("Next", CurrentNext)
|
|
SetGraphic("Home", CurrentHome)
|
|
SetGraphic("Top", CurrentTop)
|
|
SetBulletGraphics(CurrentBullet)
|
|
SetGraphicsToOriginalSize()
|
|
End Sub
|
|
|
|
|
|
Sub SetGraphicsToOriginalSize()
|
|
Dim oGraphics as Object
|
|
Dim oGraphic as Object
|
|
Dim i as Integer
|
|
Dim aActSize as New com.sun.star.awt.Size
|
|
oGraphics = oBaseDocument.GraphicObjects
|
|
For i = 0 To oGraphics.Count-1
|
|
oGraphic = oGraphics.GetByIndex(i)
|
|
aActSize = oGraphic.ActualSize
|
|
If aActSize.Height > 0 And aActSize.Width > 0 Then
|
|
oGraphic.SetSize(aActSize)
|
|
End If
|
|
Next i
|
|
End Sub
|
|
|
|
|
|
Sub EndDialog()
|
|
If DialogModel.chkSaveasTemplate.State = 1 Then
|
|
' Generating template? Set events later!
|
|
AttachBasicMacroToEvent(oBaseDocument,"OnNew", "WebWizard.HtmlAutoPilotBasic.SetEvent()")
|
|
' Call the Store template dialog
|
|
DispatchSlot(5538)
|
|
AttachBasicMacroToEvent(oBaseDocument,"OnNew", "")
|
|
End If
|
|
SetEvent()
|
|
End Sub
|
|
|
|
|
|
Sub SetEvent()
|
|
Dim oDocument as Object
|
|
' This sub links the events OnSaveDone and OnSaveAsDone to the procedure
|
|
' CopyGraphics. It is invoked when a document is created, either directly
|
|
' from the AutoPilot or from a template. It is not possible to set these
|
|
' links for the template created by the AutoPilot because then it is not
|
|
' possible to modify the template.
|
|
BasicLibraries.LoadLibrary("Tools")
|
|
oDocument = ThisComponent
|
|
AttachBasicMacroToEvent(oDocument,"OnSaveDone", "WebWizard.HtmlAutoPilotBasic.CopyGraphics()")
|
|
AttachBasicMacroToEvent(oDocument,"OnSaveAsDone", "WebWizard.HtmlAutoPilotBasic.CopyGraphics()")
|
|
End Sub
|
|
|
|
|
|
|
|
Sub CopyGraphics
|
|
' This sub copies all the graphics used in the document to the same directory the
|
|
' document has been copied into and changes the graphics links in the document.
|
|
Dim oGraphicObjects as Object
|
|
Dim oGraphic as Object
|
|
Dim i as Integer
|
|
Dim udProps as Object
|
|
Dim SavePath as String
|
|
BasicLibraries.LoadLibrary("Tools")
|
|
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
|
|
GetWebWizardPaths()
|
|
oBaseDocument = ThisComponent
|
|
' oBaseDocument.LockControllers()
|
|
|
|
' Note: The sub DirectoryNameoutofPath should be change, so that the last character is a slash
|
|
SavePath = DirectoryNameoutofPath(oBaseDocument.Url, "/") & "/"
|
|
|
|
oGraphicObjects = oBaseDocument.GraphicObjects
|
|
For i = 0 to oGraphicObjects.Count-1
|
|
oGraphic = oGraphicObjects.GetbyIndex(i)
|
|
oGraphic.GraphicUrl = CopyFile(oGraphic.GraphicURL, SavePath)
|
|
Next i
|
|
|
|
ChangeBackGraphicUrl(SavePath)
|
|
|
|
BulletUrlsToSavePath(SavePath)
|
|
|
|
udProps = oBaseDocument.DocumentProperties.UserDefinedProperties
|
|
udProps.addProperty("AutoPilotName1", 0, "")
|
|
udProps.addProperty("AutoPilotName2", 0, "")
|
|
udProps.addProperty("AutoPilotBullet", 0, "")
|
|
udProps.addProperty("AutoPilotBackground", 0, "")
|
|
|
|
AttachBasicMacroToEvent(oBaseDocument,"OnSaveDone", "")
|
|
AttachBasicMacroToEvent(oBaseDocument,"OnSaveAsDone", "")
|
|
AttachBasicMacroToEvent(oBaseDocument,"OnNew", "")
|
|
oBaseDocument.Store
|
|
' oBaseDocument.UnlockControllers()
|
|
End Sub
|
|
|
|
|
|
Function CopyFile(ByVal SourceUrl as String, TargetDir as String)
|
|
Dim sFileName as String
|
|
Dim sNewFileUrl as String
|
|
If oUcb.Exists(TargetDir) Then
|
|
If Len(TargetDir) > 2 Then
|
|
sFileName = FileNameoutofPath(SourceUrl)
|
|
sNewFileUrl = TargetDir & sFileName
|
|
oUcb.Copy(SourceUrl, sNewFileUrl)
|
|
CopyFile() = sNewFileUrl
|
|
End If
|
|
End If
|
|
End Function
|
|
|
|
|
|
Function getListBoxArrays(oUcb as Object, sFileFilter as String)
|
|
Dim oDocProps as Object
|
|
Dim oListboxControl as Object
|
|
Dim Description as String
|
|
Dim sField as String
|
|
Dim sFieldList() as String
|
|
Dim bItemFound as Boolean
|
|
Dim MaxIndex as Integer
|
|
Dim DirContent() as String
|
|
Dim FileName as String
|
|
Dim TemplatePath as String
|
|
Dim FilterLen as Integer
|
|
Dim i as Integer
|
|
Dim m as Integer
|
|
Dim n as Integer
|
|
Dim s as Integer
|
|
Dim a as Integer
|
|
Dim LocMaxIndex as Integer
|
|
Dim Properties()
|
|
Dim DimCount as Integer
|
|
Dim sExtension as String
|
|
oDocProps = CreateUnoService("com.sun.star.document.DocumentProperties")
|
|
FilterLen = Len(sFileFilter)
|
|
bItemFound = False
|
|
' It has to be made sure that the TemplatePath <> ""
|
|
TemplatePath = GetOfficeSubPath("Template", "wizard/web/")
|
|
If TemplatePath = "" Then
|
|
Dim NullList()
|
|
getListBoxArrays() = NullList()
|
|
Exit Function
|
|
End If
|
|
DirContent() = oUcb.GetFolderContents(TemplatePath,True)
|
|
If sFileFilter = "/cnt" Then
|
|
DimCount = 2
|
|
Else
|
|
DimCount = 8
|
|
End If
|
|
LocMaxIndex = Ubound(DirContent())
|
|
Dim List(LocMaxIndex, DimCount) as String
|
|
Dim SortList(LocMaxIndex,1)
|
|
For i = 0 to LocMaxIndex
|
|
SortList(i,0) = DirContent(i)
|
|
SortList(i,1) = RetrieveDocTitle(oDocProps, DirContent(i))
|
|
Next i
|
|
SortList() = BubbleSortList(SortList(),True)
|
|
For i = 0 to LocMaxIndex
|
|
DirContent(i) = SortList(i,0)
|
|
Next i
|
|
a = 0
|
|
For i = 0 To LocMaxIndex
|
|
FileName = DirContent(i)
|
|
sExtension = Ucase(GetFileNameExtension(FileName))
|
|
If Instr(1,Filename, sFileFilter) And sExtension = "STW" Then
|
|
bItemFound = True
|
|
Description = RetrieveDocTitle(oDocProps, FileName)
|
|
Properties = oDocProps.UserDefinedProperties.PropertyValues
|
|
List(a,1) = Description
|
|
If sFileFilter = "/cnt" Then
|
|
List(a,2) = Filename
|
|
Else
|
|
m = 2
|
|
For n = 0 To 3
|
|
sField = Properties(n).Value
|
|
sFieldList() = ArrayoutofString(sField, " ", MaxIndex)
|
|
For s = 0 To MaxIndex
|
|
If m < 6 Then
|
|
List(a,m) = sFieldList(s) & ".gif"
|
|
Else
|
|
List(a,m) = sFieldList(s)
|
|
End If
|
|
m = m + 1
|
|
Next s
|
|
Next n
|
|
List(a,8) = FileName
|
|
End If
|
|
a = a + 1
|
|
End If
|
|
Next i
|
|
If sFileFilter = "/cnt" Then
|
|
ReDim Preserve List(a-1,2) as String
|
|
Else
|
|
ReDim Preserve List(a-1,8) as String
|
|
End If
|
|
If Not bItemfound Then
|
|
MsgBox(WebWiz_gErrContentNotFound$, 16, WebWiz_gWizardName$)
|
|
DisposeDocument(oBaseDocument)
|
|
Stop
|
|
End If
|
|
getListBoxArrays = List()
|
|
End Function
|
|
|
|
|
|
Sub SetGraphic(sWhich, sGraphicText as String)
|
|
Dim oLocCursor as Object
|
|
Dim oGraphic as Object
|
|
Dim bGetGraphic as Boolean
|
|
oBookmarks = oBaseDocument.BookMarks
|
|
If oBookmarks.HasbyName(sWhich)Then
|
|
oBookMark = oBookmarks.GetbyName(sWhich)
|
|
oLocCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
|
|
oGraphic = oBaseDocument.CreateInstance("com.sun.star.text.GraphicObject")
|
|
oLocCursor.GoRight(3,True)
|
|
oGraphic.AnchorType = 1
|
|
oGraphic.GraphicURL = ConverttoURL(sGraphicText)
|
|
oLocCursor.Text.InsertTextContent(oLocCursor, oGraphic, True)
|
|
oGraphic.Name = sWhich
|
|
ElseIf oBaseDocument.GraphicObjects.HasbyName(sWhich) Then
|
|
oGraphic = oBaseDocument.GraphicObjects.GetByName(sWhich)
|
|
oGraphic.GraphicUrl = sGraphicText
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Sub CheckControls(oDrawPage as Object)
|
|
Dim aForm as Object
|
|
Dim m,n as integer
|
|
Dim lColor as Long
|
|
Dim oControl as Object
|
|
lColor = oBaseDocument.StyleFamilies.GetbyName("ParagraphStyles").GetByName("Standard").CharColor
|
|
'SearchFor all possible Controls
|
|
For n = 0 to oDrawPage.Forms.Count - 1
|
|
aForm = oDrawPage.Forms(n)
|
|
For m = 0 to aForm.Count-1
|
|
oControl = aForm.GetbyIndex(m)
|
|
oControl.TextColor = lColor
|
|
Next
|
|
Next
|
|
End Sub
|
|
|
|
|
|
Sub RepaintHeaderPreview()
|
|
Dim Bitmap As Object
|
|
Dim sBitmapPath as String
|
|
sBitmapPath = SOBitmapPath & "webwizard.bmp"
|
|
WebWzrd.ImagePreview.ImageURL = sBitmapPath
|
|
End Sub
|
|
|
|
|
|
Sub ToggleDialogControls(ByVal bDoEnable as Boolean, Optional FocusControlName as String)
|
|
If Not IsNull(DialogModel) Then
|
|
DialogModel.Enabled = bDoEnable
|
|
If bDoEnable Then
|
|
' Enable Controls referring to Background graphic only when this Property is set
|
|
bDoEnable = bWithBackGraphic
|
|
ToggleOptionButtons(DialogModel, bDoEnable)
|
|
MainDialog.GetControl(FocusControlName).SetFocus()
|
|
End If
|
|
End If
|
|
End Sub
|
|
</script:module>
|