TIP: Click on subject to list as thread! ANSI
echo: aust_c_here
to: All
from: Frank Adam
date: 1996-04-10 00:47:04
subject: [2/6] Formlib

>>> Part 2 of 6...

  Attrib = f_f->titattrib;
  fast_gotoxy(40 - (strlen(f_f->formtitle) /2),1);
  fast_cprintf("%s",f_f->formtitle);
  }
 while(count maxfields)
 {
  Attrib = f_f->fieldtitattrib;
  tempx = f_f->fieldx[count] - strlen(f_f->fieldtitles[count]) -1;
  tempy = f_f->fieldy[count];
  fast_gotoxy(tempx,tempy);
  fast_cprintf("%s",f_f->fieldtitles[count]);
  fast_gotoxy(f_f->fieldx[count],f_f->fieldy[count]);
  Attrib = f_f->fieldattrib;
     fast_cprintf("%*c",f_f->fieldlen[count],' ');
  if(f_f->havedata == FORMTRUE)
  {
   fast_gotoxy(f_f->fieldx[count],f_f->fieldy[count]);
   fast_cprintf("%s",f_f->data[count]);
   }
  count++;
  }
FORM_showeditmode(1);
}

int get_form_input(struct form* f_f,int startfield)
{
 int key = 0,curfield,curpos = 0,count = 0,change = FORMFALSE;
 int maxpos = 1;
 int maxlen;
 int maxfield = f_f->maxfields;
 int insmode = 1;
 char fdata[FORMMAXFIELD][80];
 char *ptr;
 if(startfield > maxfield || startfield < 0) curfield = 0;
   else curfield = startfield;
 maxlen = f_f->fieldlen[curfield];
 if(f_f->havedata == FORMTRUE)
 {
  while(count data[count]);count++;}
  maxpos = strlen(fdata[curfield]);
  }
 else
 {
  count = 0;
  while(count < maxfield) strcpy(fdata[count++],"");
  }
FORM_puthelp(f_f,curfield);
FORM_repos(f_f,curfield,curpos);
Attrib = f_f->fieldattrib;
fast_cursortype(NORMALCURSOR);
 while(key != END_FORM_INPUT)
 {
  key = FORM_getkey();
  switch(key)
  {
   case UARROW :fdata[curfield][maxpos] = '\0';
  if(curfield > 0) curfield--;
    else curfield = maxfield-1;
  curpos = 0;maxpos = strlen(fdata[curfield]);
  maxlen = f_f->fieldlen[curfield];
  FORM_puthelp(f_f,curfield);
  FORM_repos(f_f,curfield,curpos);
  break;
   case DARROW :fdata[curfield][maxpos] = '\0';
  if(curfield < maxfield-1) curfield++;
  else curfield = 0;
  curpos = 0;maxpos = strlen(fdata[curfield]);
  maxlen = f_f->fieldlen[curfield];
  FORM_puthelp(f_f,curfield);
  FORM_repos(f_f,curfield,curpos);
  break;
   case RARROW :if(curpos < maxpos) FORM_repos(f_f,curfield,++curpos);
   break;
   case LARROW :if(curpos > 0) FORM_repos(f_f,curfield,--curpos);
   break;
   case HOME   :fdata[curfield][maxpos] = '\0';
  curpos = 0;curfield = 0;maxpos = strlen(fdata[curpos]);
  FORM_puthelp(f_f,curfield);
  FORM_repos(f_f,curfield,curpos);
  break;
   case END    :fdata[curfield][maxpos] = '\0';
  curpos = 0;curfield = 0;maxpos = strlen(fdata[curpos]);
  FORM_puthelp(f_f,curfield);
  FORM_repos(f_f,curfield,curpos);
  break;
   case ENTER  :fdata[curfield][maxpos] = '\0';            
  if(curfield < maxfield-1) curfield++;
  else curfield = 0;
  curpos = 0;maxpos = strlen(fdata[curfield]);
  maxlen = f_f->fieldlen[curfield];
  FORM_puthelp(f_f,curfield);
  FORM_repos(f_f,curfield,curpos);
  break;
   case BSP    :if(curpos > 0)                            
  {
   change = FORMTRUE;
   count = curpos;
   ptr = &fdata[curfield][curpos-1];
   while(count < maxpos)
   {
    *ptr++ = fdata[curfield][count++];
    }
    curpos--;
    fdata[curfield][--maxpos] = '\0';
    FORM_repaint(f_f,curfield,fdata[curfield]);
    FORM_repos(f_f,curfield,curpos);
                   }
    break;
   case INSERT :insmode ^= 1;FORM_showeditmode(insmode);
  insmode == 0 ? fast_cursortype(NORMALCURSOR):
          fast_cursortype(SOLIDCURSOR);
   break;
   case DELETE :if(maxpos > 0)                    
  {
   change = FORMTRUE;
   count = curpos;
   ptr = &fdata[curfield][curpos];
   if(curpos < maxpos)
   {
    while(count < maxpos)
    {

 >>> Continued to next message...
___ Blue Wave/DOS v2.21

--- Maximus 3.01
* Origin: The Software Parlour (3:635/544)
SEEN-BY: 50/99 78/0 620/243 623/630 632/349 635/503 544 727 711/401 409 410
SEEN-BY: 711/413 430 808 809 932 934 712/515 713/888 714/906 800/1 7877/2809
@PATH: 635/544 50/99 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.