delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/10/29/17:13:56

From: Ole Winther <owsim AT emma DOT ruc DOT dk>
Message-Id: <199710292217.XAA21163@emma.ruc.dk>
Subject: GRX20 mouse problem
To: djgpp AT delorie DOT com
Date: Wed, 29 Oct 1997 23:17:01 +0100 (MET)
MIME-Version: 1.0

 MOUSE problem.
 I Use high Graphics svga mode (639x480 16 color) in the grx20 LIB. I have
 used some cliping and graphics text function there does as expected. When
 I include the mouse function as shown below, I got trouble. The below Code
 is just one of many I had tryed and it didn't does as I supposed.

The mouse cursor appear on the screen as it should, but when moving it
the old painting dosn't disappear when moving the mouse, and the 
screen is painted in mouse color where I move it to. Have anyone a way
to solve that problem.
NB! the position and button, keyb function returns the true data 
 visual v;       // ref til class contain some graphics rutine
  char *taltx; // string for graphics output
  taltx = new char[14];
  for( int O = 0; O < 13 ; O++ ) {taltx[O] = ' ';};
  strcpy( taltx, "\0" );
  GrMouseEvent evt;
  int  testmotion = 0;
  int  ii,mode, x = 0,y = 0, x3, y3;
 if(GrMouseDetect())
 {
   GrMouseEventMode(0);
   GrMouseInit();
   ii = 0;
   mode = GR_M_CUR_NORMAL;
   GrMouseSetColors(GrWhite(),GrBlack());
   GrMouseDisplayCursor();
   GrMouseGetEventT(GR_M_NOPAINT,&evt,0L);
   GrMousePendingEvent();
   x3 = evt.x;
   y3 = evt.y;
   do
   {
     GrMouseUpdateCursor();
     GrMouseGetEventT(GR_M_EVENT,&evt,0L);
     key = evt.key;
     if(evt.flags & (GR_M_KEYPRESS | GR_M_BUTTON_CHANGE | testmotion)) {
       x3 = evt.x;
       y3 = evt.y;
       taltx[0] = v.nk[120]; // v.nk[N] array contain the keyb table
       x = x3;
       if( x >99)
       {
	 x = (x - (x % 100)) /100; 
	 taltx[3] = v.nk[x + 48];
	 x = x % 100;
       } else { taltx[3] = v.nk[48]; };
       if( x > 9 )
       {
	 x = (x - (x % 10)) /10; 
	 taltx[4] = v.nk[x + 48];
	 x = x % 10;
       } else { taltx[4] = v.nk[48]; };
       taltx[5] = v.nk[x + 48];
       taltx[7] = v.nk[121];
       x = y3;
       if( x >99)
       {
	 x = (x - (x % 100)) /100; 
	 taltx[9] = v.nk[x + 48];
	 x = x % 100;
       } else { taltx[9] = v.nk[48]; };
       if( x > 9 )
       {
         x = (x - (x % 10)) /10; 
         taltx[10] = v.nk[x + 48];
         x = x % 10;
       } else { taltx[10] = v.nk[48]; };
      taltx[11] = v.nk[x + 48];
      v._txsize( 12, 14 );  // graphics text size
      v._txpos( 12, 12  ); // graphics text pos
      GrFilledBox(11,11,300,35,GrWhite());
      v.outt( taltx ); // call graphics text output (converted default font)
      testmotion = evt.buttons ? GR_M_MOTION : 0;
    };
    if(evt.flags & GR_M_KEYPRESS) 
    {
      if((key == 'Q') || (key == 'q')) break;
      if((key != 'N') && (key != 'n')) continue;
    };

   } while ( evt.key !=13 );
  };
  v.VisualInputF();    // function create some cliping graphics
  GrSetMode(GR_default_text);
_exit(0);

As far I can figure out, the Frame driver (on My machine based on vga) don't
being associated with the GrMouse... functions, and thats the course?
I have tryed to build the mouse function in int 33 by My self, but it
seems to change the graphics in a way, so I can't use the graphics text
after displaying the mouse cursor.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019