Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for tucniak/cuchar/cc_extra.c between version 1.3 and 1.4

version 1.3, 2005/11/26 19:44:12 version 1.4, 2005/11/27 20:14:50
Line 1 
Line 1 
 // Copyright (c) 2005 Michal Sudolsky  /*
 // modified by Juraj Kolesár <koli@koli.sk>    Name: lc_extra.c
 #include "cuchar.h"    Author: Michal Sudolsky
     Date: 22.09.2005 14:26
   */
   // modified by Juraj Kolesar <koli@koli.sk>
   
   #include "cc.h"
   
 void settextparams(WIN *win,PUNION *params)  void settextparams(WIN *win,PUNION *params)
 {  {
Line 18  void seteditparams(WIN *win,PUNION *para
Line 23  void seteditparams(WIN *win,PUNION *para
   EDIT *edit=&win->extra->edit;    EDIT *edit=&win->extra->edit;
   PEDIT *pedit=&params->edit;    PEDIT *pedit=&params->edit;
   win->cback=pedit->cback!=C_DEFAULT?pedit->cback:C_BLACK;    win->cback=pedit->cback!=C_DEFAULT?pedit->cback:C_BLACK;
     edit->style=pedit->style;
     edit->cbmask=pedit->cbmask!=C_DEFAULT?pedit->cbmask:C_CYAN;
     edit->cfmask=pedit->cfmask!=C_DEFAULT?pedit->cfmask:C_BLACK;
   edit->ctext=pedit->ctext!=C_DEFAULT?pedit->ctext:C_WHITE;    edit->ctext=pedit->ctext!=C_DEFAULT?pedit->ctext:C_WHITE;
   edit->change=pedit->change;    edit->change=pedit->change;
 }  }
Line 26  void setbuttonparams(WIN *win,PUNION *pa
Line 34  void setbuttonparams(WIN *win,PUNION *pa
 {  {
   BUTTON *button=&win->extra->button;    BUTTON *button=&win->extra->button;
   PBUTTON *pbutton=&params->button;    PBUTTON *pbutton=&params->button;
   win->cback=pbutton->cback[0]!=C_DEFAULT?pbutton->cback[0]:C_GREEN;    if(pbutton->style==BT_NORMAL)
     {
       win->cback=pbutton->cback[0]!=C_DEFAULT?pbutton->cback[0]:C_GREEN;
     }
     else
     {
       win->cback=pbutton->cback[0]!=C_DEFAULT?pbutton->cback[0]:C_BLUE;
     }
   button->text=pbutton->text;    button->text=pbutton->text;
   button->cback[0]=pbutton->cback[1]!=C_DEFAULT?pbutton->cback[1]:C_BLACK;    button->style=pbutton->style;
   button->cback[1]=pbutton->cback[2]!=C_DEFAULT?pbutton->cback[2]:C_GREEN;    button->checked=pbutton->checked;
   button->ctext[0]=pbutton->ctext[0]!=C_DEFAULT?pbutton->ctext[0]:C_LWHITE;    if(pbutton->style==BT_NORMAL)
   button->ctext[1]=pbutton->ctext[1]!=C_DEFAULT?pbutton->ctext[1]:C_YELLOW;    {
   button->ctext[2]=pbutton->ctext[2]!=C_DEFAULT?pbutton->ctext[2]:C_LYELLOW;      button->cback[0]=pbutton->cback[1]!=C_DEFAULT?pbutton->cback[1]:C_BLACK;
   button->cutext[0]=pbutton->cutext[0]!=C_DEFAULT?pbutton->cutext[0]:C_LCYAN;      button->cback[1]=pbutton->cback[2]!=C_DEFAULT?pbutton->cback[2]:C_GREEN;
   button->cutext[1]=pbutton->cutext[1]!=C_DEFAULT?pbutton->cutext[1]:C_CYAN;      button->ctext[0]=pbutton->ctext[0]!=C_DEFAULT?pbutton->ctext[0]:C_LWHITE;
   button->cutext[2]=pbutton->cutext[2]!=C_DEFAULT?pbutton->cutext[2]:C_LCYAN;      button->ctext[1]=pbutton->ctext[1]!=C_DEFAULT?pbutton->ctext[1]:C_YELLOW;
   button->cfocus[0]=pbutton->cfocus[0]!=C_DEFAULT?pbutton->cfocus[0]:C_LRED;      button->ctext[2]=pbutton->ctext[2]!=C_DEFAULT?pbutton->ctext[2]:C_LYELLOW;
   button->cfocus[1]=pbutton->cfocus[1]!=C_DEFAULT?pbutton->cfocus[1]:C_RED;      button->cutext[0]=pbutton->cutext[0]!=C_DEFAULT?pbutton->cutext[0]:C_LCYAN;
   button->cfocus[2]=pbutton->cfocus[2]!=C_DEFAULT?pbutton->cfocus[2]:C_LRED;      button->cutext[1]=pbutton->cutext[1]!=C_DEFAULT?pbutton->cutext[1]:C_CYAN;
       button->cutext[2]=pbutton->cutext[2]!=C_DEFAULT?pbutton->cutext[2]:C_LCYAN;
       button->cfocus[0]=pbutton->cfocus[0]!=C_DEFAULT?pbutton->cfocus[0]:C_LRED;
       button->cfocus[1]=pbutton->cfocus[1]!=C_DEFAULT?pbutton->cfocus[1]:C_RED;
       button->cfocus[2]=pbutton->cfocus[2]!=C_DEFAULT?pbutton->cfocus[2]:C_LRED;
     }
     else
     {
       button->cback[0]=pbutton->cback[1]!=C_DEFAULT?pbutton->cback[1]:C_BLUE;
       button->cback[1]=pbutton->cback[2]!=C_DEFAULT?pbutton->cback[2]:C_BLUE;
       button->ctext[0]=pbutton->ctext[0]!=C_DEFAULT?pbutton->ctext[0]:C_LWHITE;
       button->ctext[1]=pbutton->ctext[1]!=C_DEFAULT?pbutton->ctext[1]:C_LWHITE;
       button->ctext[2]=pbutton->ctext[2]!=C_DEFAULT?pbutton->ctext[2]:C_LWHITE;
       button->cutext[0]=pbutton->cutext[0]!=C_DEFAULT?pbutton->cutext[0]:C_LCYAN;
       button->cutext[1]=pbutton->cutext[1]!=C_DEFAULT?pbutton->cutext[1]:C_LCYAN;
       button->cutext[2]=pbutton->cutext[2]!=C_DEFAULT?pbutton->cutext[2]:C_LCYAN;
       button->cfocus[0]=pbutton->cfocus[0]!=C_DEFAULT?pbutton->cfocus[0]:C_LGREEN;
       button->cfocus[1]=pbutton->cfocus[1]!=C_DEFAULT?pbutton->cfocus[1]:C_LGREEN;
       button->cfocus[2]=pbutton->cfocus[2]!=C_DEFAULT?pbutton->cfocus[2]:C_LGREEN;
     }
   button->hasfocus=pbutton->hasfocus;    button->hasfocus=pbutton->hasfocus;
   button->push=pbutton->push;    button->push=pbutton->push;
 }  }
Line 76  void setcomboparams(WIN *win,PUNION *par
Line 110  void setcomboparams(WIN *win,PUNION *par
   combo->cbutfront[0]=pcombo->cbutfront[0]!=C_DEFAULT?pcombo->cbutfront[0]:C_LWHITE;    combo->cbutfront[0]=pcombo->cbutfront[0]!=C_DEFAULT?pcombo->cbutfront[0]:C_LWHITE;
   combo->cbutfront[1]=pcombo->cbutfront[1]!=C_DEFAULT?pcombo->cbutfront[1]:C_LGREEN;    combo->cbutfront[1]=pcombo->cbutfront[1]!=C_DEFAULT?pcombo->cbutfront[1]:C_LGREEN;
   combo->change=pcombo->change;    combo->change=pcombo->change;
     combo->maxvisitems=pcombo->maxvisitems;
   combo->lstvy=pcombo->lstvy;move_win(combo->list,NOCHANGE,NOCHANGE,NOCHANGE,pcombo->lstvy,NOCHANGE);    combo->lstvy=pcombo->lstvy;move_win(combo->list,NOCHANGE,NOCHANGE,NOCHANGE,pcombo->lstvy,NOCHANGE);
   combo->list->cback=pcombo->lstcback!=C_DEFAULT?pcombo->lstcback:C_MAGENTA;    combo->list->cback=pcombo->lstcback!=C_DEFAULT?pcombo->lstcback:C_GREEN;
   list->cborder=pcombo->lstcborder!=C_DEFAULT?pcombo->lstcborder:C_LWHITE;    list->cborder=pcombo->lstcborder!=C_DEFAULT?pcombo->lstcborder:C_LWHITE;
   list->ctext=pcombo->lstctext!=C_DEFAULT?pcombo->lstctext:C_WHITE;    list->ctext=pcombo->lstctext!=C_DEFAULT?pcombo->lstctext:C_LWHITE;
   list->cselected=pcombo->lstcselected!=C_DEFAULT?pcombo->lstcselected:C_WHITE;    list->cselected=pcombo->lstcselected!=C_DEFAULT?pcombo->lstcselected:C_WHITE;
   list->cseltext=pcombo->lstcseltext!=C_DEFAULT?pcombo->lstcseltext:C_LMAGENTA;    list->cseltext=pcombo->lstcseltext!=C_DEFAULT?pcombo->lstcseltext:C_LBLACK;
   list->cactive=pcombo->lstcactive!=C_DEFAULT?pcombo->lstcactive:C_YELLOW;    list->cactive=pcombo->lstcactive!=C_DEFAULT?pcombo->lstcactive:C_YELLOW;
   list->cactivetext=pcombo->lstcactivetext!=C_DEFAULT?pcombo->lstcactivetext:C_LMAGENTA;    list->cactivetext=pcombo->lstcactivetext!=C_DEFAULT?pcombo->lstcactivetext:C_LBLACK;
   list->lines=pcombo->lstlines;    list->lines=pcombo->lstlines;
   list->vscroll->cback=list->hscroll->cback=pcombo->lstscrcback!=C_DEFAULT?pcombo->lstscrcback:C_CYAN;    list->vscroll->cback=list->hscroll->cback=pcombo->lstscrcback!=C_DEFAULT?pcombo->lstscrcback:C_CYAN;
   scroll1->cmark=scroll2->cmark=pcombo->lstscrcmark!=C_DEFAULT?pcombo->lstscrcmark:C_YELLOW;    scroll1->cmark=scroll2->cmark=pcombo->lstscrcmark!=C_DEFAULT?pcombo->lstscrcmark:C_YELLOW;
   scroll1->cbar=scroll2->cbar=pcombo->lstscrcbar!=C_DEFAULT?pcombo->lstscrcbar:C_WHITE;    scroll1->cbar=scroll2->cbar=pcombo->lstscrcbar!=C_DEFAULT?pcombo->lstscrcbar:C_WHITE;
   scroll1->carrowup=scroll2->carrowup=pcombo->lstscrcarrowup!=C_DEFAULT?pcombo->lstscrcarrowup:C_LBLACK;    scroll1->carrowup=scroll2->carrowup=pcombo->lstscrcarrowup!=C_DEFAULT?pcombo->lstscrcarrowup:C_LBLACK;
   scroll1->carrowdown=scroll2->carrowdown=pcombo->lstscrcarrowdown!=C_DEFAULT?pcombo->lstscrcarrowdown:C_LGREEN;    scroll1->carrowdown=scroll2->carrowdown=pcombo->lstscrcarrowdown!=C_DEFAULT?pcombo->lstscrcarrowdown:C_LGREEN;
     if(combo->edit!=NULL)
     {
       EDIT *edit=&combo->edit->extra->edit;
       edit->style=pcombo->edistyle;
       combo->edit->cback=win->cback;
       edit->cbmask=pcombo->edicbmask!=C_DEFAULT?pcombo->edicbmask:C_CYAN;
       edit->cfmask=pcombo->edicfmask!=C_DEFAULT?pcombo->edicfmask:C_BLACK;
       edit->ctext=list->ctext;
       edit->change=pcombo->change;
     }
 }  }
   
 void setlistparams(WIN *win,PUNION *params)  void setlistparams(WIN *win,PUNION *params)
Line 101  void setlistparams(WIN *win,PUNION *para
Line 146  void setlistparams(WIN *win,PUNION *para
   win->cback=plist->cback!=C_DEFAULT?plist->cback:C_BLACK;    win->cback=plist->cback!=C_DEFAULT?plist->cback:C_BLACK;
   list->activeline=plist->activeline;    list->activeline=plist->activeline;
   list->cborder=plist->cborder!=C_DEFAULT?plist->cborder:C_LWHITE;    list->cborder=plist->cborder!=C_DEFAULT?plist->cborder:C_LWHITE;
     list->ccells=plist->ccells!=C_DEFAULT?plist->ccells:C_WHITE;
   list->ctext=plist->ctext!=C_DEFAULT?plist->ctext:C_WHITE;    list->ctext=plist->ctext!=C_DEFAULT?plist->ctext:C_WHITE;
   list->cselected=plist->cselected!=C_DEFAULT?plist->cselected:C_WHITE;    list->cselected=plist->cselected!=C_DEFAULT?plist->cselected:C_WHITE;
   list->cseltext=plist->cseltext!=C_DEFAULT?plist->cseltext:C_LBLACK;    list->cseltext=plist->cseltext!=C_DEFAULT?plist->cseltext:C_LBLACK;
Line 115  void setlistparams(WIN *win,PUNION *para
Line 161  void setlistparams(WIN *win,PUNION *para
   scroll1->cbar=scroll2->cbar=plist->scrcbar!=C_DEFAULT?plist->scrcbar:C_WHITE;    scroll1->cbar=scroll2->cbar=plist->scrcbar!=C_DEFAULT?plist->scrcbar:C_WHITE;
   scroll1->carrowup=scroll2->carrowup=plist->scrcarrowup!=C_DEFAULT?plist->scrcarrowup:C_LBLACK;    scroll1->carrowup=scroll2->carrowup=plist->scrcarrowup!=C_DEFAULT?plist->scrcarrowup:C_LBLACK;
   scroll1->carrowdown=scroll2->carrowdown=plist->scrcarrowup!=C_DEFAULT?plist->scrcarrowup:C_LGREEN;    scroll1->carrowdown=scroll2->carrowdown=plist->scrcarrowup!=C_DEFAULT?plist->scrcarrowup:C_LGREEN;
     if((list->combotyp==CT_TABLE)&&(list->lines!=NULL))
     {
       long i;
       if(list->lencells!=NULL)g_slist_free(list->lencells);
       for(i=0;i<g_slist_length((GSList*)list->lines->data);i++)
         list->lencells=g_slist_append(list->lencells,NULL);
     }
 }  }
   
 void setstatusparams(WIN *win,PUNION *params)  void setstatusparams(WIN *win,PUNION *params)
Line 132  void setstatusparams(WIN *win,PUNION *pa
Line 185  void setstatusparams(WIN *win,PUNION *pa
   status->text=pstatus->text;    status->text=pstatus->text;
 }  }
   
 void settableparams(WIN *win,PUNION *params)  
 {  
   TABLE *table=&win->extra->table;  
   PTABLE *ptable=&params->table;  
   win->cback=ptable->cback!=C_DEFAULT?ptable->cback:C_BLACK;  
   
   
   
 }  
   
 void setpaintparams(WIN *win,PUNION *params)  void setpaintparams(WIN *win,PUNION *params)
 {  {
   PAINT *paint=&win->extra->paint;    PAINT *paint=&win->extra->paint;
Line 204  void setdialogparams(WIN *win,PUNION *pa
Line 247  void setdialogparams(WIN *win,PUNION *pa
   if(button1!=NULL)button1->ctext[0]=color;    if(button1!=NULL)button1->ctext[0]=color;
   if(button2!=NULL)button2->ctext[0]=color;    if(button2!=NULL)button2->ctext[0]=color;
   if(button3!=NULL)button3->ctext[0]=color;    if(button3!=NULL)button3->ctext[0]=color;
   color=pdialog->cbuttext[1]!=C_DEFAULT?pdialog->cbuttext[1]:C_BLACK;    color=pdialog->cbuttext[1]!=C_DEFAULT?pdialog->cbuttext[1]:C_LCYAN;
   if(button1!=NULL)button1->ctext[1]=color;    if(button1!=NULL)button1->ctext[1]=color;
   if(button2!=NULL)button2->ctext[1]=color;    if(button2!=NULL)button2->ctext[1]=color;
   if(button3!=NULL)button3->ctext[1]=color;    if(button3!=NULL)button3->ctext[1]=color;
Line 233  void geteditparams(WIN *win,PUNION *para
Line 276  void geteditparams(WIN *win,PUNION *para
   EDIT *edit=&win->extra->edit;    EDIT *edit=&win->extra->edit;
   PEDIT *pedit=&params->edit;    PEDIT *pedit=&params->edit;
   pedit->cback=win->cback;    pedit->cback=win->cback;
     pedit->style=edit->style;
     pedit->cbmask=edit->cbmask;
     pedit->cfmask=edit->cfmask;
   pedit->ctext=edit->ctext;    pedit->ctext=edit->ctext;
   pedit->change=edit->change;    pedit->change=edit->change;
 }  }
Line 243  void getbuttonparams(WIN *win,PUNION *pa
Line 289  void getbuttonparams(WIN *win,PUNION *pa
   PBUTTON *pbutton=&params->button;    PBUTTON *pbutton=&params->button;
   pbutton->cback[0]=win->cback;    pbutton->cback[0]=win->cback;
   pbutton->text=button->text;    pbutton->text=button->text;
     pbutton->style=button->style;
     pbutton->checked=button->checked;
   pbutton->cback[1]=button->cback[0];    pbutton->cback[1]=button->cback[0];
   pbutton->cback[2]=button->cback[1];    pbutton->cback[2]=button->cback[1];
   pbutton->ctext[0]=button->ctext[0];    pbutton->ctext[0]=button->ctext[0];
Line 291  void getcomboparams(WIN *win,PUNION *par
Line 339  void getcomboparams(WIN *win,PUNION *par
   pcombo->cbutfront[0]=combo->cbutfront[0];    pcombo->cbutfront[0]=combo->cbutfront[0];
   pcombo->cbutfront[1]=combo->cbutfront[1];    pcombo->cbutfront[1]=combo->cbutfront[1];
   pcombo->change=combo->change;    pcombo->change=combo->change;
     pcombo->maxvisitems=combo->maxvisitems;
   pcombo->lstvy=combo->lstvy;    pcombo->lstvy=combo->lstvy;
   pcombo->lstcback=combo->list->cback;    pcombo->lstcback=combo->list->cback;
   pcombo->lstcborder=list->cborder;    pcombo->lstcborder=list->cborder;
Line 305  void getcomboparams(WIN *win,PUNION *par
Line 354  void getcomboparams(WIN *win,PUNION *par
   pcombo->lstscrcbar=scroll1->cbar;    pcombo->lstscrcbar=scroll1->cbar;
   pcombo->lstscrcarrowup=scroll1->carrowup;    pcombo->lstscrcarrowup=scroll1->carrowup;
   pcombo->lstscrcarrowdown=scroll1->carrowdown;    pcombo->lstscrcarrowdown=scroll1->carrowdown;
     if(combo->edit!=NULL)
     {
       EDIT *edit=&combo->edit->extra->edit;
       pcombo->edistyle=edit->style;
       pcombo->edicbmask=edit->cbmask;
       pcombo->edicfmask=edit->cfmask;
     }
 }  }
   
 void getlistparams(WIN *win,PUNION *params)  void getlistparams(WIN *win,PUNION *params)
Line 316  void getlistparams(WIN *win,PUNION *para
Line 372  void getlistparams(WIN *win,PUNION *para
   plist->cback=win->cback;    plist->cback=win->cback;
   plist->activeline=list->activeline;    plist->activeline=list->activeline;
   plist->cborder=list->cborder;    plist->cborder=list->cborder;
     plist->ccells=list->ccells;
   plist->ctext=list->ctext;    plist->ctext=list->ctext;
   plist->cselected=list->cselected;    plist->cselected=list->cselected;
   plist->cseltext=list->cseltext;    plist->cseltext=list->cseltext;
Line 347  void getstatusparams(WIN *win,PUNION *pa
Line 404  void getstatusparams(WIN *win,PUNION *pa
   pstatus->text=status->text;    pstatus->text=status->text;
 }  }
   
 void gettableparams(WIN *win,PUNION *params)  
 {  
   TABLE *table=&win->extra->table;  
   PTABLE *ptable=&params->table;  
   ptable->cback=win->cback;  
   
   
   
 }  
   
 void getpaintparams(WIN *win,PUNION *params)  void getpaintparams(WIN *win,PUNION *params)
 {  {
   PAINT *paint=&win->extra->paint;    PAINT *paint=&win->extra->paint;
Line 407  void getdialogparams(WIN *win,PUNION *pa
Line 454  void getdialogparams(WIN *win,PUNION *pa
   pdialog->close=dialog->close;    pdialog->close=dialog->close;
 }  }
   
   void checkwincombo(WIN *win)
   {
     COMBO *combo=&win->extra->combo;
     if(combo->maxvisitems)
     {
       LIST *list=&combo->list->extra->list;
       long len=g_list_length(list->lines);
       if(len<=combo->maxvisitems)
         combo->list->style|=ST_AUTOYSIZE;
       else
       {
         combo->list->style&=~ST_AUTOYSIZE;
         combo->lstvy=combo->maxvisitems+2;
       }
     }
     if(combo->edit!=NULL)
     {
       combo->edit->vx=win->vx-1;
       if(focuswin==win)focuswin=combo->edit;
     }
   }
   
 void checkwinlist(WIN *win)  void checkwinlist(WIN *win)
 {  {
   LIST *list;    LIST *list;
Line 416  void checkwinlist(WIN *win)
Line 485  void checkwinlist(WIN *win)
   long poz,maxlen,i,len;    long poz,maxlen,i,len;
   maxlen=0;    maxlen=0;
   lines=list->lines;    lines=list->lines;
   while(lines!=NULL)  
   
     // this may be in list setup function
     if(list->combotyp!=CT_TABLE)
   {    {
     if(lines->data==NULL)continue;      while(lines!=NULL)
     poz=strlen(lines->data);      {
     if(poz>maxlen)maxlen=poz;        if(lines->data==NULL)continue;
     lines=g_list_next(lines);        poz=strlen(lines->data);
         if(poz>maxlen)maxlen=poz;
         lines=g_list_next(lines);
       }
     }
     else
     {
       GSList *sc;
       sc=list->lencells;
       maxlen=-1;
       while(sc!=NULL)
       {
         maxlen+=(long)sc->data+1;
         sc=g_slist_next(sc);
         i++;
       }
       if(maxlen<0)maxlen=0;
   }    }
     // -----------------------------------
   
   
   if(list->hfade!=NULL)    if(list->hfade!=NULL)
   {    {
     list->hfade->x=2;      list->hfade->x=2;
Line 447  void checkwinlist(WIN *win)
Line 538  void checkwinlist(WIN *win)
     vscroll->minpos=0;      vscroll->minpos=0;
     vscroll->maxpos=len-win->vy+2;      vscroll->maxpos=len-win->vy+2;
     vscroll->pagecnt=win->vy-1-2;      vscroll->pagecnt=win->vy-1-2;
     if(!list->vscroll->active)      list->vscroll->active=true;
     {  
       list->vscroll->active=true;  
     }  
   }    }
   else if(list->vscroll->active)    else
   {    {
       vscroll->pos=0;
       vscroll->minpos=0;
       vscroll->maxpos=0;
       vscroll->pagecnt=win->vy-1-2;
     list->vscroll->active=false;      list->vscroll->active=false;
   }    }
   if(maxlen>win->vx-2)    if(maxlen>win->vx-2)
Line 463  void checkwinlist(WIN *win)
Line 555  void checkwinlist(WIN *win)
     hscroll->minpos=0;      hscroll->minpos=0;
     hscroll->maxpos=maxlen-win->vx+2;      hscroll->maxpos=maxlen-win->vx+2;
     hscroll->pagecnt=win->vx-1-2;      hscroll->pagecnt=win->vx-1-2;
     if(!list->hscroll->active)      list->hscroll->active=true;
     {  
       list->hscroll->active=true;  
     }  
   }    }
   else if(list->hscroll->active)    else
   {    {
       hscroll->pos=0;
       hscroll->minpos=0;
       hscroll->maxpos=0;
       hscroll->pagecnt=win->vx-1-2;
     list->hscroll->active=false;      list->hscroll->active=false;
   }    }
 }  }
Line 602  void drawwintext(WIN *win)
Line 695  void drawwintext(WIN *win)
 void drawwinedit(WIN *win)  void drawwinedit(WIN *win)
 {  {
   EDIT *edit=(EDIT*)win->extra;    EDIT *edit=(EDIT*)win->extra;
   long len,i;    long len,i,a,b;
   len=strlen(edit->text);    len=strlen(edit->text);
   if(edit->curpos>len)edit->curpos=len;    if(edit->curpos>len)edit->curpos=len;
   if(edit->curpos<0)edit->curpos=0;    if(edit->curpos<0)edit->curpos=0;
Line 614  void drawwinedit(WIN *win)
Line 707  void drawwinedit(WIN *win)
   if(edit->scroll>len)edit->scroll=len;    if(edit->scroll>len)edit->scroll=len;
   windowinitdraw(win,edit->ctext,win->cback,hascolors?true:2);    windowinitdraw(win,edit->ctext,win->cback,hascolors?true:2);
   if(!hascolors)for(i=0;i<win->vx;i++)addchar(win,0,i,'_');    if(!hascolors)for(i=0;i<win->vx;i++)addchar(win,0,i,'_');
   mprintw(win,0,-edit->scroll,"%s",edit->text);    if(edit->style!=ED_PASSWORD)
     {
       mprintw(win,0,-edit->scroll,"%s",edit->text);
     }
     else
     {
       for(i=0;i<len-edit->scroll;i++)addchar(win,0,i,'*');
     }
     if((edit->maskpos!=-1)&&isfocused(win))
     {
       a=edit->curpos;
       b=edit->maskpos;
       if(b<a){i=a;a=b;b=i;}
       if(b>len-1)b=len-1;
       windowinitdraw(win,edit->cfmask,edit->cbmask,false);
       if(!hascolors)win->attr|=A_REVERSE;
       for(i=a;i<=b;i++)addchar(win,0,i-edit->scroll,minch(win,0,i-edit->scroll));
     }
 }  }
   
 void drawwinbutton(WIN *win,long wx)  void drawwinbutton(WIN *win,long wx)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   BUTTON *button=(BUTTON*)win->extra;    BUTTON *button=(BUTTON*)win->extra;
   long vx=win->vx,vy=win->vy,x,y;    long vx=win->vx,vy=win->vy,x,y,i;
   char cf,cfu,cb,stav;    char cf,cfu,cb,stav;
   attr_t attrplus=0;    attr_t attrplus=0;
   x=0;    x=0;
Line 631  void drawwinbutton(WIN *win,long wx)
Line 741  void drawwinbutton(WIN *win,long wx)
   if((stav==TS_PUSH)||(stav==TS_EXPUSH))set_timer(win,BUTTONCLICK,0,buttontimer);    if((stav==TS_PUSH)||(stav==TS_EXPUSH))set_timer(win,BUTTONCLICK,0,buttontimer);
   if(stav==TS_PUSH){button->status=TS_UP;stav=TS_DOWN;}    if(stav==TS_PUSH){button->status=TS_UP;stav=TS_DOWN;}
   if(stav==TS_EXPUSH){button->status=TS_HIGH;stav=TS_DOWN;}    if(stav==TS_EXPUSH){button->status=TS_HIGH;stav=TS_DOWN;}
     if((button->style==BT_NORMAL)&&button->checked)stav=TS_DOWN;
   cf=button->ctext[stav];    cf=button->ctext[stav];
   cfu=button->cutext[stav];    cfu=button->cutext[stav];
   if(stav==0)cb=win->cback;else cb=button->cback[stav-1];    if(stav==0)cb=win->cback;else cb=button->cback[stav-1];
   char mode=(!hascolors&&((button->hasfocus&&(stav!=TS_DOWN))||(!button->hasfocus&&(stav==TS_DOWN))))?3:true;    char mode=(!hascolors&&
               ((button->style==BT_NORMAL)||((button->style!=BT_NORMAL)&&(win==focuswin)))&&
               ((button->style!=BT_NORMAL)||
               ((button->hasfocus&&(stav!=TS_DOWN))||(!button->hasfocus&&(stav==TS_DOWN)))))?3:true;
     if(mode==3)attrplus|=A_REVERSE;
   windowinitdraw(win,cf,cb,mode);    windowinitdraw(win,cf,cb,mode);
   if(win->vy>=3)    if(button->style==BT_NORMAL)
   {    {
     mbox(win,0,0,win->vx,win->vy);      if(win->vy>=3)
     x++;vx-=2;wx-=2;      {
     y++;vy-=2;        mbox(win,0,0,win->vx,win->vy);
         x++;vx-=2;wx-=2;
         y++;vy-=2;
       }
   }    }
   y+=(vy-1)/2;    y+=(vy-1)/2;
   if(win==focuswin)    if(win==focuswin)
   {    {
     windowinitdraw(win,button->cfocus[stav],cb,false);      windowinitdraw(win,button->cfocus[stav],cb,false);
     if(!hascolors&&((button->hasfocus&&(stav!=TS_DOWN))||(!button->hasfocus&&(stav==TS_DOWN))))      if(mode==3)
       {
       attrplus|=A_REVERSE;        attrplus|=A_REVERSE;
     addchar(win,y,x,'<');        win->attr|=attrplus;
     addchar(win,y,win->vx-1-x,'>');      }
     x++;vx-=2;wx-=2;      if(button->style==BT_NORMAL)
       {
         addchar(win,y,x,'<');
         addchar(win,y,win->vx-1-x,'>');
         x++;vx-=2;wx-=2;
       }
     }
     if(button->style==BT_CHECK1)
     {
       addchar(win,y,x,'[');
       addchar(win,y,x+2,']');
     }
     else if(button->style==BT_CHECK2)
     {
       addchar(win,y,x,'(');
       addchar(win,y,x+2,')');
     }
     if(win==focuswin)
     {
     windowinitdraw(win,cf,cb,false);      windowinitdraw(win,cf,cb,false);
     if(!hascolors&&((button->hasfocus&&(stav!=TS_DOWN))||(!button->hasfocus&&(stav==TS_DOWN))))      if(mode==3)
       {
       attrplus|=A_REVERSE;        attrplus|=A_REVERSE;
         win->attr|=attrplus;
       }
     }
     if((button->style==BT_CHECK1)&&(button->checked))addchar(win,y,x+1,'x');
     if((button->style==BT_CHECK2)&&(button->checked))addchar(win,y,x+1,'*');
     if(button->style==BT_NORMAL)x+=(vx-strlenmenu(button->text))/2;
     else
     {
       x+=4;
       wx-=4;
   }    }
   x+=(vx-strlenmenu(button->text))/2;    if(button->text!=NULL)
       for(i=0;i<strlen(button->text);i++)if(button->text[i]=='&'){wx++;i++;};
   sprintf(s,"%%.%lds\0",wx);    sprintf(s,"%%.%lds\0",wx);
   if((!hascolors)&&((stav!=TS_UP)))attrplus|=A_UNDERLINE;    if((!hascolors)&&((stav!=TS_UP)))attrplus|=A_UNDERLINE;
   mprintwmenu(win,y,x,cb,cf,cfu,attrplus,s,button->text);    mprintwmenu(win,y,x,cb,cf,cfu,attrplus,s,button->text);
Line 816  void drawwinlist(WIN *win,long wx)
Line 965  void drawwinlist(WIN *win,long wx)
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   LIST *list;    LIST *list;
   GList *lines;    GList *lines;
     GSList *sl,*sc;
   SCROLL *hscroll,*vscroll;    SCROLL *hscroll,*vscroll;
   list=&win->extra->list;    list=&win->extra->list;
   long poz,actline,scrpos,hpos,i,numlines;    long poz,actline,scrpos,hpos,i,numlines,x,bx;
   char cf,cb;    char cf,cb;
   bool isfocus;    bool isfocus;
   if(list->combotyp&&(capturewin==NULL)&&isactive(win))capturewin=win;    if((list->combotyp==CT_COMBO)&&(capturewin==NULL)&&isactive(win))capturewin=win;
   vscroll=&list->vscroll->extra->scroll;    vscroll=&list->vscroll->extra->scroll;
   hscroll=&list->hscroll->extra->scroll;    hscroll=&list->hscroll->extra->scroll;
   if(vscroll->pos<vscroll->minpos)vscroll->pos=vscroll->minpos;    if(vscroll->pos<vscroll->minpos)vscroll->pos=vscroll->minpos;
Line 838  void drawwinlist(WIN *win,long wx)
Line 988  void drawwinlist(WIN *win,long wx)
   mbox(win,0,0,win->vx,win->vy);    mbox(win,0,0,win->vx,win->vy);
   if((poz>=0)&&(poz<=win->vy-1-2))    if((poz>=0)&&(poz<=win->vy-1-2))
   {    {
     if((!hascolors)&&(!list->combotyp))addsymbol(win,0,poz+1,mapsymbol[LTEE]);      if((!hascolors)&&(list->combotyp!=CT_COMBO))addsymbol(win,0,poz+1,mapsymbol[LTEE]);
     cf=isfocus?list->cactivetext:list->cseltext;      cf=isfocus?list->cactivetext:list->cseltext;
     cb=isfocus?list->cactive:list->cselected;      cb=isfocus?list->cactive:list->cselected;
     windowinitdraw(win,cf,cb,false);      windowinitdraw(win,cf,cb,false);
Line 846  void drawwinlist(WIN *win,long wx)
Line 996  void drawwinlist(WIN *win,long wx)
     for(i=0;i<win->vx-2;i++)addchar(win,poz+1,i+1,' ');      for(i=0;i<win->vx-2;i++)addchar(win,poz+1,i+1,' ');
   }    }
   if(wx<win->vx)wx++;    if(wx<win->vx)wx++;
   
   
     // this may be in list setup function
     if(list->combotyp==CT_TABLE)
     {
       lines=list->lines;
       sc=list->lencells;
       while(sc!=NULL)
       {
         sc->data=(void*)0;
         sc=g_slist_next(sc);
       }
       while(lines!=NULL)
       {
         sl=(GSList*)lines->data;
         sc=list->lencells;
         while((sl!=NULL)&&(sc!=NULL))
         {
           i=strlen(sl->data);
           if(i>(long)sc->data)sc->data=(void*)i;
           sc=g_slist_next(sc);
           sl=g_slist_next(sl);
         }
         lines=g_list_next(lines);
       }
     }
     // ------------------------------------
   
   
     if(list->combotyp==CT_TABLE)
     {
       windowinitdraw(win,list->ccells,win->cback,false);
       sc=list->lencells;
       poz=-hpos;
       cf=isfocus?list->cactivetext:list->cseltext;
       cb=isfocus?list->cactive:list->cselected;
       while(sc!=NULL)
       {
         if((poz>0)&&(poz<wx-1))
         {
           mvline(win,poz,1,win->vy-2);
           i=actline-scrpos+1;
           if((i>0)&&(i<win->vy-1))
           {
             windowinitdraw(win,cf,cb,false);
             if(!hascolors)if(isfocus)win->attr|=A_REVERSE;
             mvline(win,poz,i,1);
             windowinitdraw(win,list->ccells,win->cback,false);
           }
         }
         poz+=(long)sc->data+1;
         if(poz>=wx-1)break;
         sc=g_slist_next(sc);
       }
     }
   lines=g_list_nth(list->lines,scrpos);    lines=g_list_nth(list->lines,scrpos);
   for(i=scrpos;i<numlines;i++)    for(i=scrpos;i<numlines;i++)
   {    {
Line 853  void drawwinlist(WIN *win,long wx)
Line 1058  void drawwinlist(WIN *win,long wx)
     {      {
       cf=(i!=actline)?list->ctext:(isfocus?list->cactivetext:list->cseltext);        cf=(i!=actline)?list->ctext:(isfocus?list->cactivetext:list->cseltext);
       cb=(i!=actline)?win->cback:(isfocus?list->cactive:list->cselected);        cb=(i!=actline)?win->cback:(isfocus?list->cactive:list->cselected);
       windowinitdraw(win,cf,cb,false);        windowinitdraw(win,cf,cb,false);
       if(strlen(lines->data)>hpos)        if((!hascolors)&&(i==actline))if(isfocus)win->attr|=A_REVERSE;
         if(list->combotyp!=CT_TABLE)
       {        {
         sprintf(s,"%%.%lds\0",wx-2+hpos);          if(strlen(lines->data)>hpos)
         if((!hascolors)&&(i==actline))if(isfocus)win->attr|=A_REVERSE;          {
         mprintw(win,i-scrpos+1,1,s,(char*)lines->data+hpos);            sprintf(s,"%%.%lds\0",wx-2);
             mprintw(win,i-scrpos+1,1,s,(char*)lines->data+hpos);
           }
         }
         else
         {
           sl=(GSList*)lines->data;
           sc=list->lencells;
           poz=1;
           while((sl!=NULL)&&(sc!=NULL)&&(poz-hpos<wx-1))
           {
             x=poz-hpos;
             bx=0;
             if(x<1)
             {
               bx=1-x;
               x=1;
             }
             if(strlen(sl->data)>bx)
             {
               sprintf(s,"%%.%lds\0",wx-1-x);
               mprintw(win,i-scrpos+1,x,s,(char*)sl->data+bx);
             }
             poz+=(long)sc->data+1;
             sc=g_slist_next(sc);
             sl=g_slist_next(sl);
           }
       }        }
     }      }
     lines=g_list_next(lines);      lines=g_list_next(lines);
Line 885  void drawwincombo(WIN *win)
Line 1117  void drawwincombo(WIN *win)
   if(combo->activeline<0)combo->activeline=0;    if(combo->activeline<0)combo->activeline=0;
   if(combo->activeline>numlines-1)combo->activeline=numlines-1;    if(combo->activeline>numlines-1)combo->activeline=numlines-1;
   data=g_list_nth_data(list->lines,combo->activeline);    data=g_list_nth_data(list->lines,combo->activeline);
   pushed=strlen(data)-win->vx+1;    if(data!=NULL)pushed=strlen(data)-win->vx+1;
   if(pushed<0)pushed=0;    if(pushed<0)pushed=0;
   if(combo->scroll<0)combo->scroll=0;    if(combo->scroll<0)combo->scroll=0;
   if(combo->scroll>pushed)combo->scroll=pushed;    if(combo->scroll>pushed)combo->scroll=pushed;
   pushed=combo->pushed;    pushed=combo->pushed;
   if(combo->pushed==SC_PUSH)combo->pushed=SC_UP;    if(combo->pushed==SC_PUSH)combo->pushed=SC_UP;
   if(pushed>1)pushed=1;    if(pushed>1)pushed=1;
   whatcol=!((win==focuswin)&&(!combo->list->active));    if(combo->edit==NULL)
   cb=whatcol?win->cback:list->cactive;    {
   cf=whatcol?list->ctext:list->cactivetext;      whatcol=!((win==focuswin)&&(!combo->list->active));
   windowinitdraw(win,cf,cb,true);      cb=whatcol?win->cback:list->cactive;
   sprintf(s,"%%.%lds\0",win->vx-1+combo->scroll);      cf=whatcol?list->ctext:list->cactivetext;
   if(!hascolors)      windowinitdraw(win,cf,cb,true);
   {      sprintf(s,"%%.%lds\0",win->vx-1+combo->scroll);
     if(focuswin==win)win->attr|=A_REVERSE;      if(!hascolors)
     win->attr|=A_UNDERLINE;      {
     for(i=0;i<win->vx-1;i++)addchar(win,0,i,'_');        if(focuswin==win)win->attr|=A_REVERSE;
         win->attr|=A_UNDERLINE;
         for(i=0;i<win->vx-1;i++)addchar(win,0,i,'_');
       }
       else for(i=0;i<win->vx-1;i++)addchar(win,0,i,' ');
       if(data!=NULL)mprintw(win,0,-combo->scroll,s,data);
   }    }
   else for(i=0;i<win->vx-1;i++)addchar(win,0,i,' ');  
   mprintw(win,0,-combo->scroll,s,data);  
   cb=combo->cbutback[pushed];    cb=combo->cbutback[pushed];
   cf=combo->cbutfront[pushed];    cf=combo->cbutfront[pushed];
   windowinitdraw(win,cf,cb,false);    windowinitdraw(win,cf,cb,false);
Line 966  void drawwinstatus(WIN *win)
Line 1201  void drawwinstatus(WIN *win)
   }    }
 }  }
   
 void drawwintable(WIN *win)  
 {  
   
   
   
   
   
 }  
   
 void drawwinpaint(WIN *win)  void drawwinpaint(WIN *win)
 {  {
   PAINT *paint=(PAINT*)win->extra;    PAINT *paint=(PAINT*)win->extra;
Line 1001  void drawwinmenu(WIN *win,long wx)
Line 1227  void drawwinmenu(WIN *win,long wx)
   MENU *menu;    MENU *menu;
   GList *lines;    GList *lines;
   menu=&win->extra->menu;    menu=&win->extra->menu;
   long poz,actline,i,numlines,len,scoffs;    long poz,actline,i,j,numlines,len,scoffs;
   char cfu,cf,cb;    char cfu,cf,cb;
   bool isfocus;    bool isfocus;
   isfocus=isfocused(win);    isfocus=isfocused(win);
Line 1014  void drawwinmenu(WIN *win,long wx)
Line 1240  void drawwinmenu(WIN *win,long wx)
   numlines=g_list_length(menu->lines);    numlines=g_list_length(menu->lines);
   if(menu->activeline>numlines-1)menu->activeline=numlines-1;    if(menu->activeline>numlines-1)menu->activeline=numlines-1;
   actline=menu->activeline;    actline=menu->activeline;
   windowinitdraw(win,menu->cborder,win->cback,true);    windowinitdraw(win,menu->cborder,win->cback,hascolors?true:3);
   if(menu->vert)    if(menu->vert)
   {    {
     mbox(win,0,0,win->vx,win->vy);      mbox(win,0,0,win->vx,win->vy);
Line 1045  void drawwinmenu(WIN *win,long wx)
Line 1271  void drawwinmenu(WIN *win,long wx)
         cfu=(i!=actline)?menu->cutext:menu->cactiveutext;          cfu=(i!=actline)?menu->cutext:menu->cactiveutext;
         cb=(i!=actline)?win->cback:menu->cactive;          cb=(i!=actline)?win->cback:menu->cactive;
         windowinitdraw(win,cf,cb,false);          windowinitdraw(win,cf,cb,false);
         if(((CMENU*)lines->data)->checked)addchar(win,i+1,1,'*');          if(!hascolors)
         if(strlenmenu(((CMENU*)lines->data)->text)>0)            if(!((i==actline)&&(isfocus)))
         {  
           sprintf(s,"%%.%lds\0",wx-2-1);  
           if((!hascolors)&&(i==actline))if(isfocus)  
           {            {
             attrplus=A_REVERSE;              attrplus=A_REVERSE;
             win->attr|=attrplus;              win->attr|=attrplus;
           }            }
             else
             {
               for(j=1;j<wx-1;j++)addchar(win,i+1,j,' ');
             }
           if(((CMENU*)lines->data)->checked)addchar(win,i+1,1,'*');
           if(strlenmenu(((CMENU*)lines->data)->text)>0)
           {
             sprintf(s,"%%.%lds\0",wx-2-1);
           mprintwmenu(win,i+1,1+1,cb,cf,cfu,attrplus,s,((CMENU*)lines->data)->text);            mprintwmenu(win,i+1,1+1,cb,cf,cfu,attrplus,s,((CMENU*)lines->data)->text);
         }          }
         else if(strcmp(((CMENU*)lines->data)->text,"-")==0)          else if(strcmp(((CMENU*)lines->data)->text,"-")==0)

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top