[Writer] Retrait automatique à la position du curseur

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2791
Inscription : 16 avr. 2010 13:31

[Writer] Retrait automatique à la position du curseur

Message par OOotremer971 »

Bonjour,

Pour faire écho à ce sujet ouvert en section traitement de texte : Placer un repère de retrait de texte sous forme de caractère

Ci-joint une proposition qui ne répond pas stricto sensu à l'attente de l’intéressé mais qui permet à partir d'un raccourci clavier (Shift+Espace) d'obtenir un retrait du texte à l'endroit où est positionné le curseur sur la première ligne d'un paragraphe :
Capture d’écran du 2025-03-08 20-02-42.png

Code : Tout sélectionner

Option Explicit

Sub Main
Dim oDoc As Object, oViewCursor As Object
Dim posCursor As long, posStartOfLine As Long, tabValue As Long 
oDoc = ThisComponent
oViewCursor = oDoc.CurrentController.ViewCursor
posCursor = oViewCursor.Position.X 
oViewCursor.gotoStartOfLine(False)
posStartOfLine = oViewCursor.Position.X
tabValue = posCursor-posStartOfLine
oViewCursor.ParaLeftMargin = tabValue
oViewCursor.ParaFirstLineIndent = -tabValue
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par OOotremer971 le 25 mars 2025 02:58, modifié 2 fois.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian GNU/Linux 12 (bookworm)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25975
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu] [Writer] Retrait automatique à la position du curseur

Message par Dude »

Salut,

Bel effort de codage.
Hors macro, il est possible de réaliser simplement ce retrait des autres lignes en utilisant la règle.
L'appui sur la touche Ctrl permet de déplacer le curseur du bas :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
ccciolll
Membre hOOnoraire
Membre hOOnoraire
Messages : 134
Inscription : 29 août 2017 08:46

Re: [Résolu] [Writer] Retrait automatique à la position du curseur

Message par ccciolll »

Merci pour vos réponses.

J'ai téléchargé le fichier Retrait automatique, activé les macros, mais le shift-espace ne semble pas déclencher l'alignement.

Toutefois, d'après ce que j'ai pu en observer, le résultat de la macro proposée par OOotremer971 semble avoir un comportement similaire au résultat de l'application de l'astuce proposée par Dude : cela crée un décalage sur une partie du texte qui ressemble à ce que je recherche à produire, mais de façon statique (le décalage est calé sur une longueur, pas sur un caractère invisible qui la rendrait dynamique).
D'ailleurs, si je sélectionne les textes "décalés" du fichier Retrait auto, je vois ce fameux triangle blanc qui se cale sur le texte.

De fait, ça ne répond pas exactement à ce que je recherche ; et je fais alors la supposition que ce que je recherche n'existe pas sur LO Writer et qu'il faudra que j'en fasse le deuil.

Une fois fait ce deuil, les solutions apportées pourront tout à fait convenir.
Côté pro : LibreOffice 7.6.6.3 sur windows10pro
Côté perso : LibreOffice 7.3.6.2 sur MacOSX 10.12 et autres variantes sur les postes MacOSX plus anciens.
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2791
Inscription : 16 avr. 2010 13:31

Re: [Writer] Retrait automatique à la position du curseur

Message par OOotremer971 »

Bonjour à tous,
ccciolll a écrit : 21 mars 2025 15:57 J'ai téléchargé le fichier Retrait automatique, activé les macros, mais le shift-espace ne semble pas déclencher l'alignement.
Effectivement ! Apparemment les raccourcis clavier ne suivent pas le fichier. Il faut les paramétrer soi-même ou les activer par macro (j'y travaille :) )
ccciolll a écrit : 21 mars 2025 15:57 je fais alors la supposition que ce que je recherche n'existe pas sur LO Writer et qu'il faudra que j'en fasse le deuil.
J'ai trouvé le moyen d'y parvenir, cf démonstration ci-dessous :
RetraitAutomatique.gif
Je posterai le fichier lorsque j'aurai résolu quelques difficultés

Dans un premier temps, le raccourci clavier positionne un repère de texte à l'emplacement du curseur pour marquer l'emplacement du retrait, puis effectue le retrait. J'ai volontairement appliqué un style de caractère rouge à la zone concernée pour la mettre en évidence pour la démo:
PositionRetrait.gif
Un listener se charge ensuite de détecter les appuis sur les touches et réajuste en temps réel la position du retrait selon qu'on ajoute ou retire du texte dans la zone préalablement définie.
La zone définie est repérable par le passage de la souris sur son nom dans le navigateur :
Capture d’écran du 2025-03-24 20-15-28.png
Il sera nécessaire de savoir comment tu procèdes pour modifier tes textes : copier/coller ou saisie au clavier ou les deux ? Merci de préciser.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian GNU/Linux 12 (bookworm)