Salut la ML,

Puisque vous êtes nombreux à avoir formulé cette demande, vous voici en PJ, un module 6pad++.py sur mesure qui répond à la demande de JF.

1. Le module ajoute un item de menu "Touche origine intelligente" dans le menu format de 6pad++.

Cet item est coché par défaut.

Il permet de faire en sorte que la touche Origine positionne sur le premier caractère de la ligne qui n'est pas une espace ou tabulation s'il est coché, et le contraire s'il ne l'est pas.

2. À l'opposé, le raccourci-clavier Alt Origine, provoquera l'action contraire selon que la touche Origine intelligente soit activée ou pas.

La présence de l'item de menu n'est pas indispensable, mais pourrait toujours être utile si on préfère gérer tout cela rien qu'avec la touche origine.

Voila, dites moi ce que vous en pensez.

Bien amicalement,,
Abdel.


Le 29/01/2017 à 21:54, Mathieu Barbe a écrit :
Bonne idée, je vote pour.

Sous Gedit, linux, un appui amène au premier caractère et un second appui au début de la ligne.

Mais pour nous, sans voir, ce n'est pas du tout pratique.


++ Mathieu




Le 27/01/2017 à 21:39, Jean-François Colas a écrit :
Hello la ML,

Je me demandais un truc: est-ce qu'il ne serait pas judicieux de considérer que Alt+Home ait un comportement alternatif à Home dans tous les cas? Je veux dire, si SmartHome est à On, Home place donc le curseur sur le premier caractère non blanc et Alt-Home, alternativement, place sur le vrai début de la ligne. Mais si SmartHome était à Off, pourrait-on imaginer que, de même que Home place sur le vrai début de ligne, Alt-Home placerait sur le premier caractère non blanc?

Je m'aperçois que j'ai très souvent besoin de me placer en début de ligne. Plus souvent que sur le premier non blanc. Donc j'envisage de désactiver SmartHome; mais je sais qu'en faisant ça, je perds une commande puisque je ne vois pas trop alors comment je pourrais me placer en une manip, aujourd'hui, sur le premier caractère non blanc...

Merci,
J.-F.

Progliste :
Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.



Progliste :
Pour se d�sinscrire de la liste : mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je vous r�pondrez en priv�.




import sixpad as sp
# Action de la case à cocher "Touche origine intelligente" dans le menu format
def onHomeKey():
        formatMenu.originalHomeKey.checked = not 
formatMenu.originalHomeKey.checked

# Ajout de la case à cocher "Touche origine intelligente" dans le menu format
formatMenu = sp.window.menus[-3]
formatMenu.add(label="Touche &origine intelligente", action = onHomeKey, name = 
"originalHomeKey")

# On la coche par défaut
formatMenu.originalHomeKey.checked = True

def onKeyDown(activePage, vk):
        # On vérifie si la touche origine a bien été pressée
        if vk == 36:
                # On vérifie si la case touche origine intelligente est cochée
                if formatMenu.originalHomeKey.checked:
                        # On se positionne sur le premier caractère qui n'est 
pas une espace ou une tabulation
                        activePage.position = 
activePage.lineSafeStartOffset(activePage.curLine)
                else:
                        # On se positionne au début de la ligne sur n'importe 
quel caractère
                        activePage.position = 
activePage.lineStartOffset(activePage.curLine)
                return False
        # On vérifie si le raccourci-clavier Alt + origine a bien été pressée
        if vk == 2084:
                # On vérifie si la case touche origine intelligente est bien 
cochée
                if formatMenu.originalHomeKey.checked:
                        # On se positionne au début de la ligne sur n'importe 
quel caractère
                        activePage.position = 
activePage.lineStartOffset(activePage.curLine)
                        char = "tab" if activePage.text[activePage.position] == 
"\t" else "espace"
                        sp.say(char, True)
                else:
                        # On se positionne sur le premier caractère qui n'est 
pas une espace ou une tabulation
                        activePage.position = 
activePage.lineSafeStartOffset(activePage.curLine)
                        sp.say(activePage.text[activePage.position], True)
                return False
        return True

def pageOpened(openedPage):
        openedPage.addEvent("keyDown", onKeyDown)

sp.window.addEvent("pageOpened", pageOpened)
sp.window.curPage.addEvent("keyDown", onKeyDown)

Répondre à