IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[termcap] Wrapping Scrolling


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 24
    Par défaut [termcap] Wrapping Scrolling
    Bonjours,

    Je fais un éditeur de texte et j'ai un soucis lorsque je me trouve a la dernière ligne de mon terminal. J'utilise "sc" et "rc" pour repositionner mon curseur a chaque fois. Sauf qu'arrivé en bas de mon terminal il scroll d'un cran vers le haut et la position de mon curseur n'est pas monté. Donc je me retrouve a ne plus afficher correctement.

    Je cherche donc le moyen de savoir si le terminal a scrollé.

    J'ai lu beaucoup de doc sur le wrapping et le scrolling mais ce ne sont que des flags pour me dire que le terminal va oui ou non scroller mais ne me précise pas quand.

    Une idée ?

    Merci d'avance

    Ps: Puis je configurer le terminal pour qu'il ne scroll pas ? (termios ?)

  2. #2
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Bonjour,

    Généralement un terminal scrolle si tu fais dépasser le curseur «en bas à droite», cela signifie que tu écris quelque chose à la position COL,LIG en supposant que ton terminal affiche COL colonnes et LIG lignes, ou que tu vas à la ligne sur la dernière ligne, ou n'importe quoi qui fait dépasser ...
    Je ne sais pas si ça peut aider mais tu as vu à la section initialisation :
    `ti'
    String of commands to put the terminal into whatever special modes are needed or appropriate for programs that move the cursor nonsequentially around the screen. Programs that use termcap to do full-screen display should output this string when they start up.
    Je ne sais pas à quoi ça correspond mais ça peut être une piste à suivre ?
    Tu fais bien du full screen en bougeant sans cesse ton curseur je suppose.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 24
    Par défaut
    Merci de ta réponse.

    Oui effectivement il scrolle si la position du curseur est a COL, LIN mais impossible en termcap de savoir la position du curseur :/

    Je vais explorer la voie du "ti".

    [edition] "ti" est un termcap pour initialiser le terminal en mode cursor motion et ce n'est pas ce que je recherche :/

    Une autre idée ?

    Merci d'avance [/edition]

  4. #4
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Arrrgh
    Pour la position du curseur il y a un moyen simple : tu le trackes
    Au départ tu le mets en haut à gauche puis à chaque mouvement tu calcules sa nouvelle position ... tu le fais de ton côté si termcap ne permet pas de récupérer cette info.
    Sinon tu as toujours la solution ncurses (pour te simplifier la vie) et au pire consulter les sources de logiciels qui le gère bien pour glaner des idées

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 24
    Par défaut
    Sauf que je ne peux pas me permettre de cleaner la fenêtre ^^
    Mais oué je vais me diriger vers les ncurses avec getcurx et getcury que je n'arrive pas encore a faire fonctionner d'ailleurs x)

  6. #6
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Pas cleaner mais juste te positionner en (0,0) puis à partir de la tu trackes chaque action ... mais bon si tu passes en ncurses tu n'auras plus tout ces problèmes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fenetre sans Scroll Bar
    Par nicolas78986 dans le forum MFC
    Réponses: 15
    Dernier message: 01/06/2007, 03h15
  2. StringGrid, multiligne et word wrap
    Par Dajon dans le forum C++Builder
    Réponses: 7
    Dernier message: 17/09/2003, 17h15
  3. le fameux scrolling
    Par tanmieu dans le forum DirectX
    Réponses: 4
    Dernier message: 27/05/2003, 23h25
  4. scrolling vertical et horizontal
    Par myriam dans le forum MFC
    Réponses: 2
    Dernier message: 24/01/2003, 17h06
  5. scroll dans un label
    Par Pretender dans le forum Composants VCL
    Réponses: 9
    Dernier message: 27/09/2002, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo