Changeset 474 in Sophya
- Timestamp:
- Oct 19, 1999, 11:37:53 AM (26 years ago)
- Location:
- trunk/SophyaPI/PI
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/Tests/pitcons.cc
r402 r474 89 89 90 90 91 scons->AcceptCmd(true );91 scons->AcceptCmd(true,8); 92 92 // RedirectOutStream(scons); 93 93 // RedirectErrStream(scons); … … 189 189 190 190 case 10110 : 191 if (scons) scons->AcceptCmd(true );191 if (scons) scons->AcceptCmd(true,5); 192 192 break; 193 193 case 10111 : -
trunk/SophyaPI/PI/picons.cc
r403 r474 7 7 #include "picons.h" 8 8 9 10 //++ 11 // Class PIConsole 12 // Lib PI 13 // include picons.h 14 // 15 // Cette classe fournit une partie des services equivalentes 16 // a une console. Les sorties stdout et stderr peuvent etre 17 // redirigees sur un objet *PIConsole* (Voir "PIApplication"). 18 // La classe offre aussi la possibilite de gestion d'un ScrollBar, 19 // ainsi que la saisie et l'edition de commande, avec la gestion 20 // d'un buffer de rappel. 21 // de *Drawer* avec la gestion de zoom (agrandissement). 22 // * Bouton-1 : Envoie le message "PIMsg_Active". Permet aussi 23 // la selection d'un rectangle pour le copie/coller 24 // * Bouton-2 : Effectue l'operation Copier/*Coller* sur la ligne 25 // d'edition de commandes. 26 // de commande (convention Xt) 27 // * Bouton-3 : Affiche le menu des options d'affichage. 28 // 29 // Gestion du clavier : 30 // * <Alt>O : Affiche le menu des options d'affichage. 31 // * <Alt>V : Copier/*Coller* Copie le texte depuis le buffer copier/coller 32 // sur la ligne d'edition de commande. 33 // * <Alt>A : Selectionne toute la fenetre pour *Copier*/Coller 34 // * <Alt>L : Liste des commandes dans le tampon de rappel. 35 // 36 // Commandes d'edition : 37 // * <Ctl>A : Debut de ligne. 38 // * <Ctl>E : Fin de ligne. 39 // * <Ctl>K : Effacement jusqu'en fin de ligne. 40 // * <Ctl>C : Effacement de la ligne. 41 // * Curseur gauche, droite : deplacement curseur 42 // * Cursur Haut,bas : rappel de commande 43 // * Backspace, del : effacement de caracteres 44 // * <Return> : Validation 45 //-- 46 //++ 47 // Links Parents 48 // PIBaseWdg 49 //-- 9 50 10 51 // #define DEBUG_PICONS 1 … … 47 88 static int Scb_Width = 14; 48 89 90 91 //++ 92 // Titre Constructeur 93 //-- 94 //++ 95 // PIConsole(PIContainer* par, const char* nom, PIMessage msg, \ 96 // int nl, int nc, int sx, int sy, int px, int py, bool scb) 97 // Creation d'un objet PIConsole, avec "nl" lignes et "nc" colonnes. 98 // "sx,sy" indique la taille de la fenetre. Si "scb==true", un 99 // ScrollBar est cree associe a l'objet PIConsole. 100 //-- 101 49 102 /* --Methode-- */ 50 103 PIConsole::PIConsole(PIContainer* par, const char* nom, PIMessage msg, … … 119 172 if (opmc) { delete opmc; opmc=NULL; } 120 173 } 174 175 176 //++ 177 // Titre Méthodes 178 // le type "enum PIVAType" est utilise pour definir les attributs 179 // graphiques du texte affiche dans l'objet PIConsole. Les attributs 180 // de texte et de couleur peuvent etre combine a l'aide de l'operateur 181 // ou logique (|) 182 //| PIVA_Def : Attribut par defaut 183 //| PIVA_Bold : Caracteres gras 184 //| PIVA_Ital : Caracteres italiques 185 //| PIVA_Reverse : Caracteres en video inverse 186 //| PIVA_DefCol : Couleur par defaut 187 //| PIVA_Red : couleur rouge 188 //| PIVA_Blue : Couleur bleue 189 //| PIVA_Green : Couleur verte 190 //| PIVA_Yellow : couleur jaune 191 //| PIVA_Magenta : couleur mauve 192 //-- 193 194 //++ 195 // void AddChar(char c, unsigned char va= PIVA_Def, bool ref=true) 196 // Ajout d'un caractere a la position courante. si "ref==true", 197 // la fenetre est rafraichie. le caractere newline declenche 198 // un retour a la ligne. 199 // void AddStr(const char* strg, unsigned char va= PIVA_Def, bool ref=true); 200 // Ajout d'une chaine de caracteres a partir de la position courante. 201 // si "ref==true", la fenetre est rafraichie. le caractere newline declenche 202 // un retour a la ligne. 203 // void AcceptCmd(bool acc=true, int nrecmx=20) 204 // Active/desactive l'edition de commandes. "nrecmx" indique la profondeur 205 // du tampon de rappel de commandes. Le message associe a l'objet PIConsole 206 // avec la qualificatif "PIMsg_OK" est envoye lors de la validation de la 207 // commande. 208 // string GetCmdString() 209 // Renvoie la chaine de caractere correspondant a la ligne editee. 210 //-- 121 211 122 212 /* --Methode-- */ … … 316 406 return; 317 407 } 408 else if (key == 'L' || key == 'l') { // Pour lister le buffer de rappel 409 int nmxrec = (mNComm < NMxRecall) ? mNComm : NMxRecall; 410 if (nmxrec < 1) return; 411 AddStr("PIConsole - Command history : \n", PIVA_Def, false); 412 int ridx = mRCindx+nmxrec; 413 int kk; 414 char strg[64]; 415 for(kk=0; kk<nmxrec; kk++) { 416 sprintf(strg, "%d- ", mNComm-nmxrec+kk+1); 417 AddStr(strg, PIVA_Def, false); 418 AddStr(mRStr[ridx%nmxrec].c_str(), PIVA_Def, false); 419 AddChar('\n', PIVA_Def, false); 420 ridx++; 421 } 422 AddChar('\n', PIVA_Def, false); 423 Refresh(); 424 return; 425 } 318 426 } 319 427 … … 325 433 if (kmod == PIKM_Cntl) { 326 434 switch (key) { 327 case 1 : // <Cntl> A 435 case 1 : // <Cntl> A Debut de ligne 328 436 mCCP = 0; 329 437 break; 330 case 5 : // <Cntl> E 438 case 3 : // <Cntl> C On efface la ligne 439 mCCP = mCLC = 0; 440 mCmdStr[mCLC] = '\0'; 441 mRindx = mRCindx; 442 mChangeFg = true; 443 break; 444 case 5 : // <Cntl> E Fin de ligne 331 445 mCCP = mCLC; 332 446 break; 333 case 11 : // <Cntl> K 447 case 11 : // <Cntl> K On efface jusqu'en fin de ligne 334 448 mCLC = mCCP; 335 449 break; … … 382 496 } 383 497 int nmxrec = ((mNComm+1) < NMxRecall) ? mNComm+1 : NMxRecall; 384 if (key == PIK_Up) { 385 mRindx--; 386 if (mRindx < 0) mRindx = 0; 387 } 388 else { 389 mRindx++; 390 if (mRindx >= nmxrec) mRindx= nmxrec-1; 391 } 392 mCLC = mCCP = mRStr[mRindx].length(); 393 for(k=0; k< mCLC; k++) mCmdStr[k] = mRStr[mRindx][k]; 498 if (key == PIK_Up) { 499 mRindx --; 500 if (mRindx < 0) mRindx += nmxrec; 501 } 502 else mRindx++; 503 int ridx = mRindx%nmxrec; 504 mCLC = mCCP = mRStr[ridx].length(); 505 for(k=0; k< mCLC; k++) mCmdStr[k] = mRStr[ridx][k]; 394 506 mCmdStr[mCLC] = '\0'; 395 507 }
Note:
See TracChangeset
for help on using the changeset viewer.