Text: You can now type long lines (250car).

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@327 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-11-05 23:59:05 +00:00
parent 29dae934f1
commit 863f5111f0
5 changed files with 41 additions and 24 deletions

View File

@ -5905,15 +5905,6 @@ void Bouton_Texte()
{
Touche=0;
Effacer_curseur();
/*
if (Position_curseur<(NB_FONTES-1))
Position_curseur=(NB_FONTES-1);
else
{
Position_curseur+=NB_FONTES;
if (Position_curseur+Debut_liste >= (Fonte_nombre-1))
Position_curseur = Fonte_nombre-1-Debut_liste;
}*/
Position_curseur=(Fonte_nombre-1)-Debut_liste;
if (Position_curseur>(NB_FONTES-1))
{
@ -5931,7 +5922,7 @@ void Bouton_Texte()
{
case 1: // Texte saisi
Effacer_curseur();
Readline(43,20,Chaine,30,0);
Readline_ex(43,20,Chaine,30,250,0);
A_previsionner=1;
break;

View File

@ -1542,7 +1542,7 @@ void Print_dans_fenetre_limite(short X,short Y,char * Chaine,byte Taille,byte Co
{
char Chaine_affichee[256];
strncpy(Chaine_affichee, Chaine, Taille);
Chaine_affichee[255]='\0';
Chaine_affichee[Taille]='\0';
if (strlen(Chaine_affichee) > Taille)
{

View File

@ -1320,7 +1320,7 @@ void Fenetre_Dessiner_bouton_saisie(word Pos_X,word Pos_Y,word Largeur_en_caract
void Fenetre_Contenu_bouton_saisie(struct Fenetre_Bouton_special * Enreg, char * Contenu)
{
Print_dans_fenetre(Enreg->Pos_X+2,Enreg->Pos_Y+2,Contenu,CM_Noir,CM_Clair);
Print_dans_fenetre_limite(Enreg->Pos_X+2,Enreg->Pos_Y+2,Contenu,Enreg->Largeur/8,CM_Noir,CM_Clair);
}
//------------ Effacer le contenu (caption) d'une zone de saisie ------------

View File

@ -37,6 +37,7 @@
#include "const.h"
#include "linux.h"
#include "sdlscreen.h"
#include "readline.h"
#define COULEUR_TEXTE CM_Noir
#define COULEUR_FOND CM_Clair
@ -99,7 +100,6 @@ void Rafficher_toute_la_chaine(word Pos_X,word Pos_Y,char * Chaine,byte Position
Print_char_dans_fenetre(Pos_X+(Position<<3),Pos_Y,Chaine[Position],COULEUR_TEXTE_CURSEUR,COULEUR_FOND_CURSEUR);
}
//****************************************************************************
//* Enhanced super scanf deluxe pro plus giga mieux :-) *
//****************************************************************************
@ -111,6 +111,28 @@ byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte Type
// Type_saisie : 0=Chaîne, 1=Nombre, 2=Nom de fichier
// Sortie:
// 0: Sortie par annulation (Esc.) / 1: sortie par acceptation (Return)
{
byte Taille_maxi;
// Grosse astuce pour les noms de fichiers: La taille affichée est différente
// de la taille maximum gérée.
if (Type_saisie == 2)
Taille_maxi = 255;
else
Taille_maxi = Taille_affichee;
return Readline_ex(Pos_X,Pos_Y,Chaine,Taille_affichee,Taille_maxi,Type_saisie);
}
//****************************************************************************
//* Enhanced super scanf deluxe pro plus giga mieux :-) *
//****************************************************************************
byte Readline_ex(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte Taille_maxi, byte Type_saisie)
// Paramètres:
// Pos_X, Pos_Y : Coordonnées de la saisie dans la fenêtre
// Chaine : Chaîne recevant la saisie (et contenant éventuellement une valeur initiale)
// Taille_maxi : Nombre de caractères logeant dans la zone de saisie
// Type_saisie : 0=Chaîne, 1=Nombre, 2=Nom de fichier
// Sortie:
// 0: Sortie par annulation (Esc.) / 1: sortie par acceptation (Return)
{
char Chaine_initiale[256];
char Chaine_affichee[256];
@ -118,13 +140,7 @@ byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte Type
byte Taille;
word Touche_lue=0;
byte Touche_autorisee;
byte Taille_maxi;
// Grosse astuce pour les noms de fichiers: La taille affichée est différente
// de la taille maximum gérée.
if (Type_saisie == 2)
Taille_maxi = 255;
else
Taille_maxi = Taille_affichee;
byte Offset=0; // Indice du premier caractère affiché

View File

@ -21,9 +21,19 @@
byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte Type_saisie);
// Paramètres:
// Pos_X, Pos_Y : Coordonnées de la saisie dans la fenêtre
// Chaine : Chaîne recevant la saisie (et contenant éventuellement une valeur initiale)
// Taille_maxi : Nombre de caractères logeant dans la zone de saisie
// Type_saisie : 0=Chaîne, 1=Nombre, 2=Nom de fichier (255 caractères réels)
// Pos_X, Pos_Y : Coordonnées de la saisie dans la fenêtre
// Chaine : Chaîne recevant la saisie (et contenant éventuellement une valeur initiale)
// Taille_affichee : Nombre de caractères logeant dans la zone de saisie
// Type_saisie : 0=Chaîne, 1=Nombre, 2=Nom de fichier (255 caractères réels)
// Sortie:
// 0: Sortie par annulation (Esc.) / 1: sortie par acceptation (Return)
byte Readline_ex(word Pos_X,word Pos_Y,char * Chaine,byte Taille_affichee,byte Taille_maxi, byte Type_saisie);
// Paramètres:
// Pos_X, Pos_Y : Coordonnées de la saisie dans la fenêtre
// Chaine : Chaîne recevant la saisie (et contenant éventuellement une valeur initiale)
// Taille_affichee : Nombre de caractères logeant dans la zone de saisie
// Taille_maxi : Nombre de caractères logeant dans la zone de saisie
// Type_saisie : 0=Chaîne, 1=Nombre, 2=Nom de fichier (255 caractères réels)
// Sortie:
// 0: Sortie par annulation (Esc.) / 1: sortie par acceptation (Return)