First commit 05/11/1995
This commit is contained in:
221
PLC_UTIL.CPP
Normal file
221
PLC_UTIL.CPP
Normal file
@ -0,0 +1,221 @@
|
||||
#include <dos.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <alloc.h>
|
||||
#include <conio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graphics.h>
|
||||
|
||||
|
||||
#include "..\..\..\jd_lib\f_lib\make_bot.h" // Fuciones de MAKE_BOTON
|
||||
|
||||
//extern int Fichero_bot(char Dinamicos_Estaticos);
|
||||
|
||||
struct Colores {
|
||||
char Texto;
|
||||
char F_Texto;
|
||||
char VisorLCD;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
||||
struct Colores Colores;
|
||||
|
||||
} Configuracion;
|
||||
extern Configuracion CFG;
|
||||
|
||||
|
||||
|
||||
char Optar( char *texto1, char *texto2, char *texto3 );
|
||||
int Muestra_Mensaje(int Mensaje, char *file);
|
||||
void redefine_cursor_raton(int r_e);
|
||||
|
||||
char Optar( char *texto1, char *texto2, char *texto3 ){
|
||||
|
||||
int ok = 0, inst = 0;
|
||||
struct textsettingstype textinfo;
|
||||
|
||||
void *C_Texto, *C_Aceptar, *C_Cancelar;
|
||||
|
||||
C_Texto = malloc( JD_imagesize(200, 212, 440, 267) );
|
||||
C_Aceptar = malloc( JD_imagesize(200, 270, 280, 295) );
|
||||
C_Cancelar = malloc( JD_imagesize(360, 270, 440, 295) );
|
||||
|
||||
if( C_Texto == NULL || C_Aceptar == NULL || C_Cancelar == NULL) {
|
||||
closegraph();
|
||||
cprintf("\n\rSALIENDO");
|
||||
cprintf("\n\rImposible encontrar %ldKbytes en el Heap",
|
||||
( JD_imagesize(118, 160, 521, 335) +
|
||||
JD_imagesize(118, 160, 521, 335) +
|
||||
JD_imagesize(118, 160, 521, 335)
|
||||
)
|
||||
);
|
||||
exit(SIN_MEMORIA);
|
||||
}
|
||||
|
||||
gettextsettings(&textinfo);
|
||||
|
||||
settextstyle(SMALL_FONT, HORIZ_DIR, 5 );
|
||||
// settextjustify(CENTER_TEXT, CENTER_TEXT);
|
||||
|
||||
getimage(200, 212, 440, 267, C_Texto);
|
||||
getimage(200, 270, 280, 295, C_Aceptar);
|
||||
getimage(360, 270, 440, 295, C_Cancelar);
|
||||
|
||||
|
||||
Imprime_Estaticos(100, "PLC.DAT"); // Imprime botones estaticos 'Seccion 20'
|
||||
// Fichero_bot(100);
|
||||
Imprime_Secuencia(3); // Imprime secuencia 4.
|
||||
Imprime_Estaticos(101, "PLC.DAT"); // Imprime textos estaticos 'Seccion 5'
|
||||
// Fichero_bot(101);
|
||||
|
||||
outtextxy( 210+( ( 230 - textwidth(texto1) ) / 2 ), 220, texto1 );
|
||||
outtextxy( 210+( ( 230 - textwidth(texto2) ) / 2 ), 235, texto2 );
|
||||
outtextxy( 210+( ( 230 - textwidth(texto3) ) / 2 ), 250, texto3 );
|
||||
|
||||
while(!ok){ // Bucle infinito
|
||||
|
||||
switch( Comprueba_Secuencia( 3 ) ) { // Iniciamos comprobacion de 2<> sec
|
||||
|
||||
case 0: // No se pulso ningun BOTON
|
||||
// Pero el raton fue presionado en
|
||||
// algun sitio...
|
||||
break;
|
||||
case -2: // Hay una tecla normal en BUFFER
|
||||
switch( getch() ) { // La utilizamos
|
||||
// ESC ( CANCELAR )
|
||||
case 14:
|
||||
inst = 0;
|
||||
ok = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case -1: // Hay una tecla especial en BUFFER
|
||||
getch(); // La eliminamos
|
||||
break;
|
||||
// Boton Aceptar
|
||||
case 1:
|
||||
inst = 1;
|
||||
ok = 1;
|
||||
break;
|
||||
// Boton Cancelar
|
||||
case 2:
|
||||
inst = 0;
|
||||
ok = 1;
|
||||
break;
|
||||
default:
|
||||
while( kbhit() ) getch(); // Limpiamos posibles teclas en BUFFER
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
putimage(200, 212, C_Texto, COPY_PUT);
|
||||
putimage(200, 270, C_Aceptar, COPY_PUT);
|
||||
putimage(360, 270, C_Cancelar, COPY_PUT);
|
||||
|
||||
free ( C_Texto );
|
||||
free ( C_Aceptar );
|
||||
free ( C_Cancelar );
|
||||
|
||||
|
||||
settextstyle(textinfo.font, textinfo.direction, textinfo.charsize );
|
||||
settextjustify(textinfo.horiz, textinfo.vert);
|
||||
|
||||
return inst;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
int Muestra_Mensaje(int Mensaje, char *file) {
|
||||
void *Imagen;
|
||||
|
||||
|
||||
if ( (Imagen = malloc( JD_imagesize(200, 212, 440, 267) ) ) == NULL ) {
|
||||
Espera_Tecla_o_Raton();
|
||||
Anclar_Raton();
|
||||
return -1;
|
||||
} else {
|
||||
getimage( 200, 212, 440, 267, Imagen );
|
||||
Imprime_Estaticos( Mensaje, file);
|
||||
// Fichero_bot( Mensaje );
|
||||
|
||||
Espera_Tecla_o_Raton();
|
||||
Anclar_Raton();
|
||||
putimage( 200, 212, Imagen, COPY_PUT);
|
||||
free(Imagen);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
void redefine_cursor_raton(int r_e){
|
||||
|
||||
struct SREGS seg;
|
||||
union REGS ent, sal;
|
||||
long dir;
|
||||
|
||||
extern int dir_raton [32+32];
|
||||
|
||||
if(r_e==1) { //// Cursor mientras se ejecuta
|
||||
int dir_rton [32+32] = {
|
||||
|
||||
0x0808, /*<2A> <20> <20> <20> 1 <20> <20> <20> <20> <20> <20> <20> 1 <20> <20> <20>*/
|
||||
0x0000, /*<2A> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x0000, /*<2A> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x0000, /*<2A> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x0800, /*<2A> <20> <20> <20> 1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x0000, /*<2A> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x0000, /*<2A> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x8000, /*1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20>*/
|
||||
0x8083, /*1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> 1 1*/
|
||||
0x8001, /*1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> 1*/
|
||||
0xF810, /*1 1 1 1 1 <20> <20> <20> <20> <20> <20> 1 <20> <20> <20> 1*/
|
||||
0x8810, /*1 <20> <20> <20> 1 <20> <20> <20> <20> <20> <20> 1 <20> <20> <20> 1*/
|
||||
0x8811, /*1 <20> <20> <20> 1 <20> <20> <20> <20> <20> <20> 1 <20> <20> <20> 1*/
|
||||
0x8003, /*1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> 1 1*/
|
||||
0x8007, /*1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> 1 1 1*/
|
||||
0x800F, /*1 <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> <20> 1 1 1 1*/
|
||||
|
||||
0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/
|
||||
0x7252, /*0 <20> <20> <20> 0 0 <20> 0 0 <20> 0 <20> 0 0 <20> 0*/
|
||||
0x4A5A, /*0 <20> 0 0 <20> 0 <20> 0 0 <20> 0 <20> <20> 0 <20> 0*/
|
||||
0x725A, /*0 <20> <20> <20> 0 0 <20> 0 0 <20> 0 <20> <20> 0 <20> 0*/
|
||||
0x6256, /*0 <20> <20> 0 0 0 <20> 0 0 <20> 0 <20> 0 <20> <20> 0*/
|
||||
0x5256, /*0 <20> 0 <20> 0 0 <20> 0 0 <20> 0 <20> 0 <20> <20> 0*/
|
||||
0x4992, /*0 <20> 0 0 <20> 0 0 <20> <20> 0 0 <20> 0 0 <20> 0*/
|
||||
0x0000, /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/
|
||||
0x3E70, /*0 0 <20> <20> <20> <20> <20> 0 0 <20> <20> <20> 0 0 0 0*/
|
||||
0x0248, /*0 0 0 0 0 0 <20> 0 0 <20> 0 0 <20> 0 0 0*/
|
||||
0x0244, /*0 0 0 0 0 0 <20> 0 0 <20> 0 0 0 <20> 0 0*/
|
||||
0x0242, /*0 0 0 0 0 0 <20> 0 0 <20> 0 0 0 <20> 0 0*/
|
||||
0x2244, /*0 0 <20> 0 0 0 <20> 0 0 <20> 0 0 0 <20> 0 0*/
|
||||
0x2248, /*0 0 <20> 0 0 0 <20> 0 0 <20> 0 0 <20> 0 0 0*/
|
||||
0x3E70, /*0 0 <20> <20> <20> <20> <20> 0 0 <20> <20> <20> 0 0 0 0*/
|
||||
0x0000 /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/
|
||||
};
|
||||
dir = (long)dir_rton;
|
||||
|
||||
} else { //// Cursor mientras se edita
|
||||
dir = (long)dir_raton;
|
||||
}
|
||||
|
||||
ent.x.ax = 9;
|
||||
ent.x.bx = 0;
|
||||
ent.x.cx = 0;
|
||||
ent.x.dx = (int) dir;
|
||||
seg.es = (int) (dir >> 16);
|
||||
int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */
|
||||
|
||||
ent.x.ax = 3;
|
||||
int86(0x33, &ent, &sal);
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user