Tu peux regarder du côté de http://www.ooomacros.org/user.php#98242(...) pour avoir une macro qui peut insérer un caractère ou changer un style. Il faut ensuite créer autant de macros qu'on veut de raccourcis et assigner chaque macro au raccourci de son choix.
Pour faire ce que tu décris, en changeant le niveau avec des raccourcis, j'ai développé deux macros : la première augmente le niveau (passe de Heading 1 à Heading 2) et l'autre descend le niveau (Heading 2 à Heading 1)
Les voici :
REM Fait passer le style de paragraphe de Heading n à Heading n+1
Sub IncreaseHeadingLevel
Dim oDocument As Object
Dim oText As Object
Dim oVCurseur As Object, oCurseur As Object
Dim sStyle As String
Dim sStyleType As String, nHeadingLevel As Integer
' Récupère le curseur visible
oVCurseur = oDocument.currentcontroller.getViewCursor()
' Crée un curseur d'écriture à partir du curseur visble
oCurseur = oText.createTextCursorByRange(oVCurseur.getstart())
' Récupère le style du paragraphe et récupère la partie gauche
sStyle = oCurseur.paraStyleName
sStyleType = Left(sStyle, 8)
if (sStyleType = "Heading ") then
' Récupère le niveau de Titre et l'augmente si possible
nHeadingLevel = Mid(sStyle, 8)
if (nHeadingLevel < 10) then
oCurseur.paraStyleName = sStyleType & (nHeadingLevel + 1)
endif
else
' Si le style est normal, on applique le style Heading 1
oCurseur.paraStyleName = "Heading 1"
endif
End Sub
REM Fait passer le style de paragraphe de Heading n à Heading n-1
Sub DecreaseHeadingLevel
Dim oDocument As Object
Dim oText As Object
Dim oVCurseur As Object, oCurseur As Object
Dim sStyle As String
Dim sStyleType As String, nHeadingLevel As Integer
' Récupère le curseur visible
oVCurseur = oDocument.currentcontroller.getViewCursor()
' Crée un curseur d'écriture à partir du curseur visble
oCurseur = oText.createTextCursorByRange(oVCurseur.getstart())
' Récupère le style du paragraphe et récupère la partie gauche
sStyle = oCurseur.paraStyleName
sStyleType = Left(sStyle, 8)
if (sStyleType = "Heading ") then
' Récupère le niveau de Titre et l'augmente si possible
nHeadingLevel = Mid(sStyle, 8)
if (nHeadingLevel > 1) then
oCurseur.paraStyleName = sStyleType & (nHeadingLevel - 1)
endif
endif
End Sub
Tu les assigne à deux touches et tu changes tout à la volée :) Le Navigateur (F5) permet de faire le même genre de chose.
Note : quand tu donnes un nom de style, celui-ci doit être en anglais.
[^] # Re: racourci clavier
Posté par Christophe Bliard . En réponse à la dépêche Sortie d'OpenOffice.org 1.1.2. Évalué à 7.
Pour faire ce que tu décris, en changeant le niveau avec des raccourcis, j'ai développé deux macros : la première augmente le niveau (passe de Heading 1 à Heading 2) et l'autre descend le niveau (Heading 2 à Heading 1)
Les voici :
REM Fait passer le style de paragraphe de Heading n à Heading n+1
Sub IncreaseHeadingLevel
Dim oDocument As Object
Dim oText As Object
Dim oVCurseur As Object, oCurseur As Object
Dim sStyle As String
Dim sStyleType As String, nHeadingLevel As Integer
' Récupère le document actif
oDocument = ThisComponent
oText = oDocument.Text
' Récupère le curseur visible
oVCurseur = oDocument.currentcontroller.getViewCursor()
' Crée un curseur d'écriture à partir du curseur visble
oCurseur = oText.createTextCursorByRange(oVCurseur.getstart())
' Récupère le style du paragraphe et récupère la partie gauche
sStyle = oCurseur.paraStyleName
sStyleType = Left(sStyle, 8)
if (sStyleType = "Heading ") then
' Récupère le niveau de Titre et l'augmente si possible
nHeadingLevel = Mid(sStyle, 8)
if (nHeadingLevel < 10) then
oCurseur.paraStyleName = sStyleType & (nHeadingLevel + 1)
endif
else
' Si le style est normal, on applique le style Heading 1
oCurseur.paraStyleName = "Heading 1"
endif
End Sub
REM Fait passer le style de paragraphe de Heading n à Heading n-1
Sub DecreaseHeadingLevel
Dim oDocument As Object
Dim oText As Object
Dim oVCurseur As Object, oCurseur As Object
Dim sStyle As String
Dim sStyleType As String, nHeadingLevel As Integer
' Récupère le document actif
oDocument = ThisComponent
oText = oDocument.Text
' Récupère le curseur visible
oVCurseur = oDocument.currentcontroller.getViewCursor()
' Crée un curseur d'écriture à partir du curseur visble
oCurseur = oText.createTextCursorByRange(oVCurseur.getstart())
' Récupère le style du paragraphe et récupère la partie gauche
sStyle = oCurseur.paraStyleName
sStyleType = Left(sStyle, 8)
if (sStyleType = "Heading ") then
' Récupère le niveau de Titre et l'augmente si possible
nHeadingLevel = Mid(sStyle, 8)
if (nHeadingLevel > 1) then
oCurseur.paraStyleName = sStyleType & (nHeadingLevel - 1)
endif
endif
End Sub
Tu les assigne à deux touches et tu changes tout à la volée :) Le Navigateur (F5) permet de faire le même genre de chose.
Note : quand tu donnes un nom de style, celui-ci doit être en anglais.
J'espère que ça t'aidera ;)