Modifier la taille du Terminal ?

Modifier la taille du Terminal ? - C++ - Programmation

Marsh Posté le 17-06-2009 à 00:15:47    

Hello,
je suis en train de coder un petit Rogue-like en C++ avec ncurses. Pour le moment tout ce passe bien, mais je suis un peu limité par la taille par défaut de la fenêtre du Terminal. Je n'ai pas la place d'afficher de grand donjons.
Je cherche donc à redimensionner la fenêtre en C++. Comment faire ? J'ai fais pas mal de rechercher, mais j'ai pas réussi à trouver ce que je voulais...
 
Merci d'avance :)

Reply

Marsh Posté le 17-06-2009 à 00:15:47   

Reply

Marsh Posté le 17-06-2009 à 07:27:12    

Tu ne peux pas.

Reply

Marsh Posté le 17-06-2009 à 08:04:07    

Avec un xterm -- ou un émulateur qui émule suffisemment bien tout ce que les VTxxx pouvaient faire -- tu peux passer en mode 132 colonnes.

 

Esc [ 40 h pour autoriser la fonctionnalité
Esc [ 3 h pour passer en mode 132 colonnes
Esc [ 3 l pour repasser en mode 80 colonnes
Esc [ 40 l pour interdire la fonctionnalité

 

Je viens de retester en shell avec:

Code :
  1. printf "\e[?40h\e[?3h"


et ça fonctionne bien avec un xterm, mais pas avec konsole ni l'émulateur de gnome.

Message cité 1 fois
Message édité par Un Programmeur le 17-06-2009 à 08:09:25

---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 17-06-2009 à 08:06:30    

et pas sous DOS non plus je pense

Reply

Marsh Posté le 17-06-2009 à 08:24:03    

Joel F a écrit :

et pas sous DOS non plus je pense


 
DOS?  J'ai ai pas touché depuis bien trop longtemps.  Avec une carte graphique ayant un mode texte 132 colonnes (ce que les cartes VGA avaient, mais qui n'était pas possible en EGA) et en ayant chargé ANSI.SYS, je ne vois pas d'objections de principe.  Bien que je doute qu'ANSI.SYS ait été programmé pour, la plupart des programmes bypassaient toute cette machinerie pour accéder au hard directement naturellement.
 
Et en ce qui concerne les boîtes DOS de Windows et la console de Windows NT, je n'ai quasiment été qu'utilisateur ayant passé toute ma programmation à la maison sous Linux en 94 et utilisant des stations Unix au boulot.  Quasiment tout ce que je sais de la programmation sous Windows, c'est ce que j'ai compris de discussions sur Internet.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 17-06-2009 à 12:26:16    

Merci  pour vos réponses !
"Un programmeur", ta solution marche mais :
- Comment faire pour augmenter le nombre de ligne ?
- Et surtout ça n'a pas l'air très "propre" comme solution. Dans ce cas... comment faire pour augmenter la taille de la fenêtre de mon jeu ? :/

Reply

Marsh Posté le 17-06-2009 à 12:41:55    

Normalement tu fonctionnes dans l'autre sens: tu détectes la taille du terminal (ncurses a tout ce qu'il faut pour cela) et tu t'y adaptes (note que c'est la même philosophie pour X, à part qu'avec X tu peux demander une taille, mais tu n'es pas sûr de l'avoir).  Tu peux même être notifié des changements de taille avec le signal SIGWINCH.
 
La séquence de contrôle que j'ai donnée est en fait une séquence demandant le changement de fonte d'un terminal texte.  Tu avais aussi des séquences pour passer en double hauteur et double largeur, mais de mémoire elles ne sont pas implémentée, même par xterm.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 17-06-2009 à 13:11:44    

Encore merci pour ta réponse !
 
Donc si je veux afficher uen "map" de 40*40 caractères dans le terminal... c'est pas possible ? Y'a pas moyen de mettre le Terminal en fullscreen ?
Sinon tant pis, je vais faire avec le peu de place qu'on me donne ^^
 

Reply

Marsh Posté le 17-06-2009 à 15:17:44    

Un Programmeur a écrit :

Avec un xterm -- ou un émulateur qui émule suffisemment bien tout ce que les VTxxx pouvaient faire -- tu peux passer en mode 132 colonnes.
 
Esc [ 40 h pour autoriser la fonctionnalité
Esc [ 3 h pour passer en mode 132 colonnes
Esc [ 3 l pour repasser en mode 80 colonnes
Esc [ 40 l pour interdire la fonctionnalité
 
Je viens de retester en shell avec:

Code :
  1. printf "\e[?40h\e[?3h"


et ça fonctionne bien avec un xterm, mais pas avec konsole ni l'émulateur de gnome.


Encore moins avec un VT100 physique.

Reply

Marsh Posté le 17-06-2009 à 15:39:11    

Taz a écrit :


Encore moins avec un VT100 physique.


 
Un VT100, si: http://vt100.net/docs/vt100-ug/chapter3.html#DECCOLM


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed