[Libreoffice-commits] core.git: wizards/Package_sfdocuments.mk wizards/source

Jean-Pierre Ledure (via logerrit) logerrit at kemper.freedesktop.org
Wed Jul 7 07:55:51 UTC 2021


 wizards/Package_sfdocuments.mk                   |    1 
 wizards/source/scriptforge/SF_Services.xba       |    8 
 wizards/source/scriptforge/python/scriptforge.py |   26 +
 wizards/source/sfdocuments/SF_Calc.xba           |    2 
 wizards/source/sfdocuments/SF_Register.xba       |   10 
 wizards/source/sfdocuments/SF_Writer.xba         |  446 +++++++++++++++++++++++
 wizards/source/sfdocuments/script.xlb            |    1 
 7 files changed, 487 insertions(+), 7 deletions(-)

New commits:
commit c2d69eae17acc93775066e649a3e22d542306ef8
Author:     Jean-Pierre Ledure <jp at ledure.be>
AuthorDate: Tue Jul 6 16:42:12 2021 +0200
Commit:     Jean-Pierre Ledure <jp at ledure.be>
CommitDate: Wed Jul 7 09:55:20 2021 +0200

    ScriptForge - (SFDocuments) New SF_Writer service
    
    Addition of the skeleton of the new SF_Writer service
    as a subclass of SF_Document.
    
    Entry points in CreateScriptService are provided
    both for Basic and Python user scripts.
    
    Full compatibility with existing user scripts.
    
    Specific properties and methods will be provided in later
    commits.
    
    Change-Id: Ib00a9ea52023707d1429e8ad9dcb4dca2ca63174
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118515
    Tested-by: Jean-Pierre Ledure <jp at ledure.be>
    Tested-by: Jenkins
    Reviewed-by: Jean-Pierre Ledure <jp at ledure.be>

diff --git a/wizards/Package_sfdocuments.mk b/wizards/Package_sfdocuments.mk
index 6f9cbf7f5ae2..39211afa88cf 100644
--- a/wizards/Package_sfdocuments.mk
+++ b/wizards/Package_sfdocuments.mk
@@ -26,6 +26,7 @@ $(eval $(call gb_Package_add_files,wizards_basicsrvsfdocuments,$(LIBO_SHARE_FOLD
 	SF_Form.xba \
 	SF_FormControl.xba \
 	SF_Register.xba \
+	SF_Writer.xba \
 	__License.xba \
 	dialog.xlb \
 	script.xlb \
diff --git a/wizards/source/scriptforge/SF_Services.xba b/wizards/source/scriptforge/SF_Services.xba
index 2ae92b79bc2a..4bd57c9e1b64 100644
--- a/wizards/source/scriptforge/SF_Services.xba
+++ b/wizards/source/scriptforge/SF_Services.xba
@@ -125,11 +125,11 @@ Try:
 		sLibrary = "ScriptForge"	'	Yes, the default value !
 		sService = vSplit(0)
 		'	Accept other default values for associated libraries
-		Select Case sService
-			Case "Document", "Calc", "Base", "DocumentEvent", "FormEvent"
+		Select Case LCase(sService)
+			Case "document", "calc", "writer", "base", "documentevent", "formevent"
 														sLibrary = "SFDocuments"
-			Case "Dialog", "DialogEvent"			:	sLibrary = "SFDialogs"
-			Case "Database"							:	sLibrary = "SFDatabases"
+			Case "dialog", "dialogevent"			:	sLibrary = "SFDialogs"
+			Case "database"							:	sLibrary = "SFDatabases"
 			Case Else
 		End Select
 	Else
diff --git a/wizards/source/scriptforge/python/scriptforge.py b/wizards/source/scriptforge/python/scriptforge.py
index 0f16613d618f..689d4a9276ec 100644
--- a/wizards/source/scriptforge/python/scriptforge.py
+++ b/wizards/source/scriptforge/python/scriptforge.py
@@ -2071,6 +2071,32 @@ class SFDocuments:
         def SetFocus(self):
             return self.ExecMethod(self.vbMethod, 'SetFocus')
 
+    # #########################################################################
+    # SF_Writer CLASS
+    # #########################################################################
+    class SF_Writer(SF_Document, SFServices):
+        """
+            The SF_Writer module is focused on :
+                - TBD
+            """
+        # Mandatory class properties for service registration
+        serviceimplementation = 'basic'
+        servicename = 'SFDocuments.Writer'
+        servicesynonyms = ('writer', 'sfdocuments.writer')
+        serviceproperties = dict(Description = True, DocumentType = False, IsBase = False, IsCalc = False,
+                                 IsDraw = False, IsImpress = False, IsMath = False, IsWriter = False,
+                                 Keywords = True, Readonly = False, Subject = True, Title = True,
+                                 XComponent = False)
+        # Force for each property to get its value from Basic - due to intense interactivity with user
+        forceGetProperty = True
+
+        @classmethod
+        def ReviewServiceArgs(cls, windowname = ''):
+            """
+                Transform positional and keyword arguments into positional only
+                """
+            return (windowname,)
+
 
 # ##############################################False##################################################################
 #                           CreateScriptService()                                                                   ###
diff --git a/wizards/source/sfdocuments/SF_Calc.xba b/wizards/source/sfdocuments/SF_Calc.xba
index 1b96a981ec3a..75717c57d572 100644
--- a/wizards/source/sfdocuments/SF_Calc.xba
+++ b/wizards/source/sfdocuments/SF_Calc.xba
@@ -2767,7 +2767,7 @@ Const cstSubArgs = ""
 
 	_PropertyGet = False
 
-	cstThisSub = "SFDocuments.SF_Calc.get" & psProperty
+	cstThisSub = "SFDocuments.Calc.get" & psProperty
 	ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs)
 	If Not _IsStillAlive() Then GoTo Finally
 
diff --git a/wizards/source/sfdocuments/SF_Register.xba b/wizards/source/sfdocuments/SF_Register.xba
index a8872e4115ed..68b79aed952a 100644
--- a/wizards/source/sfdocuments/SF_Register.xba
+++ b/wizards/source/sfdocuments/SF_Register.xba
@@ -66,8 +66,9 @@ Public Sub RegisterScriptServices() As Variant
 
 	With GlobalScope.ScriptForge.SF_Services
 		.RegisterService("Document",			"SFDocuments.SF_Register._NewDocument")		'	Reference to the function initializing the service
-		.RegisterService("Calc",				"SFDocuments.SF_Register._NewDocument")		'	Same reference, distinction is made inside the function
 		.RegisterService("Base",				"SFDocuments.SF_Register._NewDocument")		'	Same reference, distinction is made inside the function
+		.RegisterService("Calc",				"SFDocuments.SF_Register._NewDocument")		'	Same reference, distinction is made inside the function
+		.RegisterService("Writer",				"SFDocuments.SF_Register._NewDocument")		'	Same reference, distinction is made inside the function
 		.RegisterEventManager("DocumentEvent",	"SFDocuments.SF_Register._EventManager")	'	Reference to the events manager
 		.RegisterEventManager("FormEvent",		"SFDocuments.SF_Register._FormEventManager")'	Reference to the form and controls events manager
 	End With
@@ -366,7 +367,7 @@ Check:
 	Set oDocument = Nothing
 
 Try:
-	Set oUi = ScriptForge.SF_Register.CreateScriptService("UI")
+	Set oUi = ScriptForge.SF_Services.CreateScriptService("UI")
 	Select Case VarType(vWindowName)
 		Case V_STRING
 			If Len(vWindowName) > 0 Then
@@ -407,6 +408,11 @@ Try:
 				Set oSuperDocument = New SF_Document
 				Set oDocument.[_Super] = oSuperDocument		'	Now both super and subclass are twinned
 				Set oSuperDocument.[_SubClass] = oDocument
+			Case "Writer"
+				Set oDocument = New SF_Writer
+				Set oSuperDocument = New SF_Document
+				Set oDocument.[_Super] = oSuperDocument		'	Now both super and subclass are twinned
+				Set oSuperDocument.[_SubClass] = oDocument
 			Case Else		'	Only superclass
 				Set oDocument = New SF_Document
 				Set oSuperDocument = oDocument
diff --git a/wizards/source/sfdocuments/SF_Writer.xba b/wizards/source/sfdocuments/SF_Writer.xba
new file mode 100644
index 000000000000..d175d64f5e9a
--- /dev/null
+++ b/wizards/source/sfdocuments/SF_Writer.xba
@@ -0,0 +1,446 @@
+<?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="SF_Writer" script:language="StarBasic" script:moduleType="normal">REM =======================================================================================================================
+REM ===			The ScriptForge library and its associated libraries are part of the LibreOffice project.				===
+REM	===						The SFDocuments library is one of the associated libraries.									===
+REM ===					Full documentation is available on https://help.libreoffice.org/								===
+REM =======================================================================================================================
+
+Option Compatible
+Option ClassModule
+
+Option Explicit
+
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+'''	SF_Writer
+'''	=========
+'''
+'''		The SFDocuments library gathers a number of methods and properties making easy
+'''		managing and manipulating LibreOffice documents
+'''
+'''		Some methods are generic for all types of documents: they are combined in the SF_Document module.
+'''		Specific properties and methods are implemented in the concerned subclass(es) SF_Calc, SF_Writer, SF_Base, ...
+'''
+'''		To workaround the absence of class inheritance in LibreOffice Basic, some redundancy is necessary
+'''		Each subclass MUST implement also the generic methods and properties, even if they only call
+'''		the parent methods and properties.
+'''		They should also duplicate some generic private members as a subset of their own set of members
+'''
+'''		The SF_Writer module is focused on :
+'''			TBD
+'''
+'''		The current module is closely related to the "UI" service of the ScriptForge library
+'''
+'''		Service invocation examples:
+'''		1) From the UI service
+'''			Dim ui As Object, oDoc As Object
+'''			Set ui = CreateScriptService("UI")
+'''			Set oDoc = ui.CreateDocument("Writer", ...)
+'''				' or Set oDoc = ui.OpenDocument("C:\Me\MyFile.odt")
+'''		2) Directly if the document is already opened
+'''			Dim oDoc As Object
+'''			Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1")	'	Default = ActiveWindow
+'''				' or Set oDoc = CreateScriptService("SFDocuments.Writer", "Untitled 1")	'	Untitled 1 is presumed a Writer document
+'''			' The substring "SFDocuments." in the service name is optional
+'''
+'''		Definitions: 
+'''			TBD
+'''
+'''		Detailed user documentation:
+'''			https://help.libreoffice.org/latest/en-US/text/sbasic/shared/03/SF_Writer.html?DbPAR=BASIC
+'''
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+REM ================================================================== EXCEPTIONS
+
+Private Const UNKNOWNFILEERROR		=	"UNKNOWNFILEERROR"
+
+REM ============================================================= PRIVATE MEMBERS
+
+Private [Me]					As Object
+Private [_Parent]				As Object
+Private [_Super]				As Object		'	Document superclass, which the current instance is a subclass of
+Private ObjectType				As String		'	Must be WRITER
+Private ServiceName				As String
+
+'	Window component
+Private _Component				As Object		'	com.sun.star.lang.XComponent
+
+REM ============================================================ MODULE CONSTANTS
+
+REM ====================================================== CONSTRUCTOR/DESTRUCTOR
+
+REM -----------------------------------------------------------------------------
+Private Sub Class_Initialize()
+	Set [Me] = Nothing
+	Set [_Parent] = Nothing
+	Set [_Super] = Nothing
+	ObjectType = "WRITER"
+	ServiceName = "SFDocuments.Writer"
+	Set _Component = Nothing
+End Sub		'	SFDocuments.SF_Writer Constructor
+
+REM -----------------------------------------------------------------------------
+Private Sub Class_Terminate()
+	Call Class_Initialize()
+End Sub		'	SFDocuments.SF_Writer Destructor
+
+REM -----------------------------------------------------------------------------
+Public Function Dispose() As Variant
+	If Not IsNull([_Super]) Then Set [_Super] = [_Super].Dispose()
+	Call Class_Terminate()
+	Set Dispose = Nothing
+End Function	'	SFDocuments.SF_Writer Explicit Destructor
+
+REM ================================================================== PROPERTIES
+
+REM ===================================================================== METHODS
+
+REM -----------------------------------------------------------------------------
+Public Function GetProperty(Optional ByVal PropertyName As Variant _
+								, Optional ObjectName As Variant _
+								) As Variant
+'''	Return the actual value of the given property
+'''	Args:
+'''		PropertyName: the name of the property as a string
+'''		ObjectName: a sheet or range name
+'''	Returns:
+'''		The actual value of the property
+'''	Exceptions:
+'''		ARGUMENTERROR		The property does not exist
+
+Const cstThisSub = "SFDocuments.Writer.GetProperty"
+Const cstSubArgs = ""
+
+	If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch
+	GetProperty = Null
+
+Check:
+	If IsMissing(ObjectName) Or IsEmpty(ObjectName) Then ObjectName = ""
+	If ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs) Then
+		If Not ScriptForge.SF_Utils._Validate(PropertyName, "PropertyName", V_STRING, Properties()) Then GoTo Catch
+		If Not ScriptForge.SF_Utils._Validate(ObjectName, "ObjectName", V_STRING) Then GoTo Catch
+	End If
+
+Try:
+	'	Superclass or subclass property ?
+	If ScriptForge.SF_Array.Contains([_Super].Properties(), PropertyName) Then
+		GetProperty = [_Super].GetProperty(PropertyName)
+	ElseIf Len(ObjectName) = 0 Then
+		GetProperty = _PropertyGet(PropertyName)
+	Else
+		GetProperty = _PropertyGet(PropertyName, ObjectName)
+	End If
+
+Finally:
+	ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+	Exit Function
+Catch:
+	GoTo Finally
+End Function	'	SFDocuments.SF_Writer.GetProperty
+
+REM -----------------------------------------------------------------------------
+Public Function Methods() As Variant
+'''	Return the list of public methods of the Writer service as an array
+
+	Methods = Array( _
+					"Activate" _
+					, "CloseDocument" _
+					, "RunCommand" _
+					, "Save" _
+					, "SaveAs" _
+					, "SaveCopyAs" _
+					)
+
+End Function	'	SFDocuments.SF_Writer.Methods
+
+REM -----------------------------------------------------------------------------
+Public Function Properties() As Variant
+'''	Return the list or properties of the Writer class as an array
+
+	Properties = Array( _
+					"CustomProperties" _
+					, "Description" _
+					, "DocumentProperties" _
+					, "DocumentType" _
+					, "IsBase" _
+					, "IsCalc" _
+					, "IsDraw" _
+					, "IsImpress" _
+					, "IsMath" _
+					, "IsWriter" _
+					, "Keywords" _
+					, "Readonly" _
+					, "Subject" _
+					, "Title" _
+					, "XComponent" _
+					)
+
+End Function	'	SFDocuments.SF_Writer.Properties
+
+REM -----------------------------------------------------------------------------
+Private Function SetProperty(Optional ByVal psProperty As String _
+								, Optional ByVal pvValue As Variant _
+								) As Boolean
+'''	Set the new value of the named property
+'''	Args:
+'''		psProperty: the name of the property
+'''		pvValue: the new value of the given property
+'''	Returns:
+'''		True if successful
+
+Dim bSet As Boolean							'	Return value
+Static oSession As Object					'	Alias of SF_Session
+Dim cstThisSub As String
+Const cstSubArgs = "Value"
+
+	If ScriptForge.SF_Utils._ErrorHandling() Then On Local Error GoTo Catch
+	bSet = False
+
+	cstThisSub = "SFDocuments.Writer.set" & psProperty
+	If IsMissing(pvValue) Then pvValue = Empty
+	'ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs)	'	Validation done in Property Lets
+
+	If IsNull(oSession) Then Set oSession = ScriptForge.SF_Services.CreateScriptService("Session")
+	bSet = True
+	Select Case UCase(psProperty)
+		Case UCase("CustomProperties")
+			CustomProperties = pvValue
+		Case UCase("Description")
+			Description = pvValue
+		Case UCase("Keywords")
+			Keywords = pvValue
+		Case UCase("Subject")
+			Subject = pvValue
+		Case UCase("Title")
+			Title = pvValue
+		Case Else
+			bSet = False
+	End Select
+
+Finally:
+	SetProperty = bSet
+	'ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+	Exit Function
+Catch:
+	GoTo Finally
+End Function	'	SFDocuments.SF_Writer.SetProperty
+
+REM ======================================================= SUPERCLASS PROPERTIES
+
+REM -----------------------------------------------------------------------------
+Property Get CustomProperties() As Variant
+	CustomProperties = [_Super].GetProperty("CustomProperties")
+End Property	'	SFDocuments.SF_Writer.CustomProperties
+
+REM -----------------------------------------------------------------------------
+Property Let CustomProperties(Optional ByVal pvCustomProperties As Variant)
+	[_Super].CustomProperties = pvCustomProperties
+End Property	'	SFDocuments.SF_Writer.CustomProperties
+
+REM -----------------------------------------------------------------------------
+Property Get Description() As Variant
+	Description = [_Super].GetProperty("Description")
+End Property	'	SFDocuments.SF_Writer.Description
+
+REM -----------------------------------------------------------------------------
+Property Let Description(Optional ByVal pvDescription As Variant)
+	[_Super].Description = pvDescription
+End Property	'	SFDocuments.SF_Writer.Description
+
+REM -----------------------------------------------------------------------------
+Property Get DocumentProperties() As Variant
+	DocumentProperties = [_Super].GetProperty("DocumentProperties")
+End Property	'	SFDocuments.SF_Writer.DocumentProperties
+
+REM -----------------------------------------------------------------------------
+Property Get DocumentType() As String
+	DocumentType = [_Super].GetProperty("DocumentType")
+End Property	'	SFDocuments.SF_Writer.DocumentType
+
+REM -----------------------------------------------------------------------------
+Property Get IsBase() As Boolean
+	IsBase = [_Super].GetProperty("IsBase")
+End Property	'	SFDocuments.SF_Writer.IsBase
+
+REM -----------------------------------------------------------------------------
+Property Get IsCalc() As Boolean
+	IsCalc = [_Super].GetProperty("IsCalc")
+End Property	'	SFDocuments.SF_Writer.IsCalc
+
+REM -----------------------------------------------------------------------------
+Property Get IsDraw() As Boolean
+	IsDraw = [_Super].GetProperty("IsDraw")
+End Property	'	SFDocuments.SF_Writer.IsDraw
+
+REM -----------------------------------------------------------------------------
+Property Get IsImpress() As Boolean
+	IsImpress = [_Super].GetProperty("IsImpress")
+End Property	'	SFDocuments.SF_Writer.IsImpress
+
+REM -----------------------------------------------------------------------------
+Property Get IsMath() As Boolean
+	IsMath = [_Super].GetProperty("IsMath")
+End Property	'	SFDocuments.SF_Writer.IsMath
+
+REM -----------------------------------------------------------------------------
+Property Get IsWriter() As Boolean
+	IsWriter = [_Super].GetProperty("IsWriter")
+End Property	'	SFDocuments.SF_Writer.IsWriter
+
+REM -----------------------------------------------------------------------------
+Property Get Keywords() As Variant
+	Keywords = [_Super].GetProperty("Keywords")
+End Property	'	SFDocuments.SF_Writer.Keywords
+
+REM -----------------------------------------------------------------------------
+Property Let Keywords(Optional ByVal pvKeywords As Variant)
+	[_Super].Keywords = pvKeywords
+End Property	'	SFDocuments.SF_Writer.Keywords
+
+REM -----------------------------------------------------------------------------
+Property Get Readonly() As Variant
+	Readonly = [_Super].GetProperty("Readonly")
+End Property	'	SFDocuments.SF_Writer.Readonly
+
+REM -----------------------------------------------------------------------------
+Property Get Subject() As Variant
+	Subject = [_Super].GetProperty("Subject")
+End Property	'	SFDocuments.SF_Writer.Subject
+
+REM -----------------------------------------------------------------------------
+Property Let Subject(Optional ByVal pvSubject As Variant)
+	[_Super].Subject = pvSubject
+End Property	'	SFDocuments.SF_Writer.Subject
+
+REM -----------------------------------------------------------------------------
+Property Get Title() As Variant
+	Title = [_Super].GetProperty("Title")
+End Property	'	SFDocuments.SF_Writer.Title
+
+REM -----------------------------------------------------------------------------
+Property Let Title(Optional ByVal pvTitle As Variant)
+	[_Super].Title = pvTitle
+End Property	'	SFDocuments.SF_Writer.Title
+
+REM -----------------------------------------------------------------------------
+Property Get XComponent() As Variant
+	XComponent = [_Super].GetProperty("XComponent")
+End Property	'	SFDocuments.SF_Writer.XComponent
+
+REM ========================================================== SUPERCLASS METHODS
+
+REM -----------------------------------------------------------------------------
+Public Function Activate() As Boolean
+	Activate = [_Super].Activate()
+End Function    '   SFDocuments.SF_Writer.Activate
+
+REM -----------------------------------------------------------------------------
+Public Function CloseDocument(Optional ByVal SaveAsk As Variant) As Boolean
+	CloseDocument = [_Super].CloseDocument(SaveAsk)
+End Function   '   SFDocuments.SF_Writer.CloseDocument
+
+REM -----------------------------------------------------------------------------
+Public Sub RunCommand(Optional ByVal Command As Variant)
+	[_Super].RunCommand(Command)
+End Sub		  '   SFDocuments.SF_Writer.RunCommand
+
+REM -----------------------------------------------------------------------------
+Public Function Save() As Boolean
+	Save = [_Super].Save()
+End Function   '   SFDocuments.SF_Writer.Save
+
+REM -----------------------------------------------------------------------------
+Public Function SaveAs(Optional ByVal FileName As Variant _
+							, Optional ByVal Overwrite As Variant _
+							, Optional ByVal Password As Variant _
+							, Optional ByVal FilterName As Variant _
+							, Optional ByVal FilterOptions As Variant _
+							) As Boolean
+	SaveAs = [_Super].SaveAs(FileName, Overwrite, Password, FilterName, FilterOptions)
+End Function   '   SFDocuments.SF_Writer.SaveAs
+
+REM -----------------------------------------------------------------------------
+Public Function SaveCopyAs(Optional ByVal FileName As Variant _
+							, Optional ByVal Overwrite As Variant _
+							, Optional ByVal Password As Variant _
+							, Optional ByVal FilterName As Variant _
+							, Optional ByVal FilterOptions As Variant _
+							) As Boolean
+	SaveCopyAs = [_Super].SaveCopyAs(FileName, Overwrite, Password, FilterName, FilterOptions)
+End Function   '   SFDocuments.SF_Writer.SaveCopyAs
+
+REM =========================================================== PRIVATE FUNCTIONS
+
+REM -----------------------------------------------------------------------------
+Private Function _FileIdent() As String
+'''	Returns a file identification from the information that is currently available
+'''	Useful e.g. for display in error messages
+
+	_FileIdent = [_Super]._FileIdent()
+
+End Function	'	SFDocuments.SF_Writer._FileIdent
+
+REM -----------------------------------------------------------------------------
+Private Function _IsStillAlive(Optional ByVal pbForUpdate As Boolean _
+									, Optional ByVal pbError As Boolean _
+									) As Boolean
+'''	Returns True if the document has not been closed manually or incidentally since the last use
+'''	If dead the actual instance is disposed. The execution is cancelled when pbError = True (default)
+'''	Args:
+'''		pbForUpdate: if True (default = False), check additionally if document is open for editing
+'''		pbError: if True (default), raise a fatal error
+
+Dim bAlive As Boolean			'	Return value
+
+	If IsMissing(pbForUpdate) Then pbForUpdate = False
+	If IsMissing(pbError) Then pbError = True
+
+Try:
+	bAlive = [_Super]._IsStillAlive(pbForUpdate, pbError)
+
+Finally:
+	_IsStillAlive = bAlive
+	Exit Function
+End Function	'	SFDocuments.SF_Writer._IsStillAlive
+
+REM -----------------------------------------------------------------------------
+Private Function _PropertyGet(Optional ByVal psProperty As String _
+								, Optional ByVal pvArg As Variant _
+								) As Variant
+'''	Return the value of the named property
+'''	Args:
+'''		psProperty: the name of the property
+
+Dim cstThisSub As String
+Const cstSubArgs = ""
+
+	_PropertyGet = False
+
+	cstThisSub = "SFDocuments.Writer.get" & psProperty
+	ScriptForge.SF_Utils._EnterFunction(cstThisSub, cstSubArgs)
+	If Not _IsStillAlive() Then GoTo Finally
+
+	Select Case psProperty
+		Case Else
+			_PropertyGet = Null
+	End Select
+
+Finally:
+	ScriptForge.SF_Utils._ExitFunction(cstThisSub)
+	Exit Function
+End Function	'	SFDocuments.SF_Writer._PropertyGet
+
+REM -----------------------------------------------------------------------------
+Private Function _Repr() As String
+'''	Convert the SF_Writer instance to a readable string, typically for debugging purposes (DebugPrint ...)
+'''	Args:
+'''	Return:
+'''		"[DOCUMENT]: Type/File"
+
+	_Repr = "[Writer]: " & [_Super]._FileIdent()
+
+End Function	'	SFDocuments.SF_Writer._Repr
+
+REM ============================================ END OF SFDOCUMENTS.SF_WRITER
+</script:module>
\ No newline at end of file
diff --git a/wizards/source/sfdocuments/script.xlb b/wizards/source/sfdocuments/script.xlb
index b4c70afe4f2b..881ef70e0f6b 100644
--- a/wizards/source/sfdocuments/script.xlb
+++ b/wizards/source/sfdocuments/script.xlb
@@ -8,4 +8,5 @@
  <library:element library:name="SF_Base"/>
  <library:element library:name="SF_Form"/>
  <library:element library:name="SF_FormControl"/>
+ <library:element library:name="SF_Writer"/>
 </library:library>
\ No newline at end of file


More information about the Libreoffice-commits mailing list