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

Diff for tucniak/cuchar/cc_extra.c between version 1.7 and 1.8

version 1.7, 2005/12/02 17:15:00 version 1.8, 2005/12/08 21:13:03
Line 7 
Line 7 
   
 #include "cc.h"  #include "cc.h"
   
 void settextparams(WIN *win,PUNION *params)  void _cc_settextparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   TEXT *text=&win->extra->text;    TEXT *text=&win->extra->text;
   PTEXT *ptext=&params->text;    Cc_Text_P *ptext=&params->text;
   win->cback=ptext->cback!=C_DEFAULT?ptext->cback:    win->cback=ptext->cback!=CC_C_DEFAULT?ptext->cback:
     (!(win->style&CC_ST_TE_DOWNTEXT_COLORS)?C_BLUE:C_WHITE);      (!(win->style&CC_ST_TE_DOWNTEXT_COLORS)?CC_C_BLUE:CC_C_WHITE);
   text->text=ptext->text;    text->text=ptext->text;
   text->ctext=ptext->ctext!=C_DEFAULT?ptext->ctext:    text->ctext=ptext->ctext!=CC_C_DEFAULT?ptext->ctext:
     (!(win->style&CC_ST_TE_DOWNTEXT_COLORS)?C_WHITE:C_BLACK);      (!(win->style&CC_ST_TE_DOWNTEXT_COLORS)?CC_C_WHITE:CC_C_BLACK);
 }  }
   
 void seteditparams(WIN *win,PUNION *params)  void _cc_seteditparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   EDIT *edit=&win->extra->edit;    EDIT *edit=&win->extra->edit;
   PEDIT *pedit=&params->edit;    Cc_Edit_P *pedit=&params->edit;
   win->cback=pedit->cback!=C_DEFAULT?pedit->cback:C_BLACK;    win->cback=pedit->cback!=CC_C_DEFAULT?pedit->cback:CC_C_BLACK;
   edit->style=pedit->style;    edit->style=pedit->style;
   edit->cbmask=pedit->cbmask!=C_DEFAULT?pedit->cbmask:C_CYAN;    edit->cbmask=pedit->cbmask!=CC_C_DEFAULT?pedit->cbmask:CC_C_CYAN;
   edit->cfmask=pedit->cfmask!=C_DEFAULT?pedit->cfmask:C_BLACK;    edit->cfmask=pedit->cfmask!=CC_C_DEFAULT?pedit->cfmask:CC_C_BLACK;
   edit->ctext=pedit->ctext!=C_DEFAULT?pedit->ctext:C_WHITE;    edit->ctext=pedit->ctext!=CC_C_DEFAULT?pedit->ctext:CC_C_WHITE;
   edit->change=pedit->change;    edit->change=pedit->change;
 }  }
   
 void setbuttonparams(WIN *win,PUNION *params)  void _cc_setbuttonparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   BUTTON *button=&win->extra->button;    BUTTON *button=&win->extra->button;
   PBUTTON *pbutton=&params->button;    Cc_Button_P *pbutton=&params->button;
   if(pbutton->style==CC_BT_NORMAL)    if(pbutton->style==CC_BT_NORMAL)
   {    {
     win->cback=pbutton->cback[0]!=C_DEFAULT?pbutton->cback[0]:C_GREEN;      win->cback=pbutton->cback[0]!=CC_C_DEFAULT?pbutton->cback[0]:CC_C_GREEN;
   }    }
   else    else
   {    {
     win->cback=pbutton->cback[0]!=C_DEFAULT?pbutton->cback[0]:C_BLUE;      win->cback=pbutton->cback[0]!=CC_C_DEFAULT?pbutton->cback[0]:CC_C_BLUE;
   }    }
   button->text=pbutton->text;    button->text=pbutton->text;
   button->style=pbutton->style;    button->style=pbutton->style;
   button->checked=pbutton->checked;    button->checked=pbutton->checked;
   if(pbutton->style==CC_BT_NORMAL)    if(pbutton->style==CC_BT_NORMAL)
   {    {
     button->cback[0]=pbutton->cback[1]!=C_DEFAULT?pbutton->cback[1]:C_BLACK;      button->cback[0]=pbutton->cback[1]!=CC_C_DEFAULT?pbutton->cback[1]:
     button->cback[1]=pbutton->cback[2]!=C_DEFAULT?pbutton->cback[2]:C_GREEN;                       CC_C_BLACK;
     button->ctext[0]=pbutton->ctext[0]!=C_DEFAULT?pbutton->ctext[0]:C_LWHITE;      button->cback[1]=pbutton->cback[2]!=CC_C_DEFAULT?pbutton->cback[2]:
     button->ctext[1]=pbutton->ctext[1]!=C_DEFAULT?pbutton->ctext[1]:C_YELLOW;                       CC_C_GREEN;
     button->ctext[2]=pbutton->ctext[2]!=C_DEFAULT?pbutton->ctext[2]:C_LYELLOW;      button->ctext[0]=pbutton->ctext[0]!=CC_C_DEFAULT?pbutton->ctext[0]:
     button->cutext[0]=pbutton->cutext[0]!=C_DEFAULT?pbutton->cutext[0]:C_LCYAN;                       CC_C_LWHITE;
     button->cutext[1]=pbutton->cutext[1]!=C_DEFAULT?pbutton->cutext[1]:C_CYAN;      button->ctext[1]=pbutton->ctext[1]!=CC_C_DEFAULT?pbutton->ctext[1]:
     button->cutext[2]=pbutton->cutext[2]!=C_DEFAULT?pbutton->cutext[2]:C_LCYAN;                       CC_C_YELLOW;
     button->cfocus[0]=pbutton->cfocus[0]!=C_DEFAULT?pbutton->cfocus[0]:C_LRED;      button->ctext[2]=pbutton->ctext[2]!=CC_C_DEFAULT?pbutton->ctext[2]:
     button->cfocus[1]=pbutton->cfocus[1]!=C_DEFAULT?pbutton->cfocus[1]:C_RED;                       CC_C_LYELLOW;
     button->cfocus[2]=pbutton->cfocus[2]!=C_DEFAULT?pbutton->cfocus[2]:C_LRED;      button->cutext[0]=pbutton->cutext[0]!=CC_C_DEFAULT?pbutton->cutext[0]:
                         CC_C_LCYAN;
       button->cutext[1]=pbutton->cutext[1]!=CC_C_DEFAULT?pbutton->cutext[1]:
                         CC_C_CYAN;
       button->cutext[2]=pbutton->cutext[2]!=CC_C_DEFAULT?pbutton->cutext[2]:
                         CC_C_LCYAN;
       button->cfocus[0]=pbutton->cfocus[0]!=CC_C_DEFAULT?pbutton->cfocus[0]:
                         CC_C_LRED;
       button->cfocus[1]=pbutton->cfocus[1]!=CC_C_DEFAULT?pbutton->cfocus[1]:
                         CC_C_RED;
       button->cfocus[2]=pbutton->cfocus[2]!=CC_C_DEFAULT?pbutton->cfocus[2]:
                         CC_C_LRED;
   }    }
   else    else
   {    {
     button->cback[0]=pbutton->cback[1]!=C_DEFAULT?pbutton->cback[1]:C_BLUE;      button->cback[0]=pbutton->cback[1]!=CC_C_DEFAULT?pbutton->cback[1]:
     button->cback[1]=pbutton->cback[2]!=C_DEFAULT?pbutton->cback[2]:C_BLUE;                       CC_C_BLUE;
     button->ctext[0]=pbutton->ctext[0]!=C_DEFAULT?pbutton->ctext[0]:C_LWHITE;      button->cback[1]=pbutton->cback[2]!=CC_C_DEFAULT?pbutton->cback[2]:
     button->ctext[1]=pbutton->ctext[1]!=C_DEFAULT?pbutton->ctext[1]:C_LWHITE;                       CC_C_BLUE;
     button->ctext[2]=pbutton->ctext[2]!=C_DEFAULT?pbutton->ctext[2]:C_LWHITE;      button->ctext[0]=pbutton->ctext[0]!=CC_C_DEFAULT?pbutton->ctext[0]:
     button->cutext[0]=pbutton->cutext[0]!=C_DEFAULT?pbutton->cutext[0]:C_LCYAN;                       CC_C_LWHITE;
     button->cutext[1]=pbutton->cutext[1]!=C_DEFAULT?pbutton->cutext[1]:C_LCYAN;      button->ctext[1]=pbutton->ctext[1]!=CC_C_DEFAULT?pbutton->ctext[1]:
     button->cutext[2]=pbutton->cutext[2]!=C_DEFAULT?pbutton->cutext[2]:C_LCYAN;                       CC_C_LWHITE;
     button->cfocus[0]=pbutton->cfocus[0]!=C_DEFAULT?pbutton->cfocus[0]:C_LGREEN;      button->ctext[2]=pbutton->ctext[2]!=CC_C_DEFAULT?pbutton->ctext[2]:
     button->cfocus[1]=pbutton->cfocus[1]!=C_DEFAULT?pbutton->cfocus[1]:C_LGREEN;                       CC_C_LWHITE;
     button->cfocus[2]=pbutton->cfocus[2]!=C_DEFAULT?pbutton->cfocus[2]:C_LGREEN;      button->cutext[0]=pbutton->cutext[0]!=CC_C_DEFAULT?pbutton->cutext[0]:
                         CC_C_LCYAN;
       button->cutext[1]=pbutton->cutext[1]!=CC_C_DEFAULT?pbutton->cutext[1]:
                         CC_C_LCYAN;
       button->cutext[2]=pbutton->cutext[2]!=CC_C_DEFAULT?pbutton->cutext[2]:
                         CC_C_LCYAN;
       button->cfocus[0]=pbutton->cfocus[0]!=CC_C_DEFAULT?pbutton->cfocus[0]:
                         CC_C_LGREEN;
       button->cfocus[1]=pbutton->cfocus[1]!=CC_C_DEFAULT?pbutton->cfocus[1]:
                         CC_C_LGREEN;
       button->cfocus[2]=pbutton->cfocus[2]!=CC_C_DEFAULT?pbutton->cfocus[2]:
                         CC_C_LGREEN;
   }    }
   button->hasfocus=pbutton->hasfocus;    button->hasfocus=pbutton->hasfocus;
   button->push=pbutton->push;    button->push=pbutton->push;
 }  }
   
 void setscrollparams(WIN *win,PUNION *params)  void _cc_setscrollparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   SCROLL *scroll=&win->extra->scroll;    SCROLL *scroll=&win->extra->scroll;
   PSCROLL *pscroll=&params->scroll;    Cc_Scroll_P *pscroll=&params->scroll;
   win->cback=pscroll->cback!=C_DEFAULT?pscroll->cback:C_CYAN;    win->cback=pscroll->cback!=CC_C_DEFAULT?pscroll->cback:CC_C_CYAN;
   scroll->pos=pscroll->pos;    scroll->pos=pscroll->pos;
   scroll->minpos=pscroll->minpos;    scroll->minpos=pscroll->minpos;
   scroll->maxpos=pscroll->maxpos;    scroll->maxpos=pscroll->maxpos;
   scroll->pagecnt=pscroll->pagecnt;    scroll->pagecnt=pscroll->pagecnt;
   scroll->cnt=pscroll->cnt;    scroll->cnt=pscroll->cnt;
   scroll->cmark=pscroll->cmark!=C_DEFAULT?pscroll->cmark:C_YELLOW;    scroll->cmark=pscroll->cmark!=CC_C_DEFAULT?pscroll->cmark:CC_C_YELLOW;
   scroll->cbar=pscroll->cbar!=C_DEFAULT?pscroll->cbar:C_WHITE;    scroll->cbar=pscroll->cbar!=CC_C_DEFAULT?pscroll->cbar:CC_C_WHITE;
   scroll->carrowup=pscroll->carrowup!=C_DEFAULT?pscroll->carrowup:C_LBLACK;    scroll->carrowup=pscroll->carrowup!=CC_C_DEFAULT?pscroll->carrowup:
   scroll->carrowdown=pscroll->carrowdown!=C_DEFAULT?pscroll->carrowdown:C_LGREEN;                     CC_C_LBLACK;
     scroll->carrowdown=pscroll->carrowdown!=CC_C_DEFAULT?pscroll->carrowdown:
                        CC_C_LGREEN;
   scroll->vert=pscroll->vert;    scroll->vert=pscroll->vert;
   scroll->change=pscroll->change;    scroll->change=pscroll->change;
 }  }
   
 void setcomboparams(WIN *win,PUNION *params)  void _cc_setcomboparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   COMBO *combo=&win->extra->combo;    COMBO *combo=&win->extra->combo;
   LIST *list=&combo->list->extra->list;    LIST *list=&combo->list->extra->list;
   SCROLL *scroll1,*scroll2;    SCROLL *scroll1,*scroll2;
   scroll1=&list->vscroll->extra->scroll;    scroll1=&list->vscroll->extra->scroll;
   scroll2=&list->hscroll->extra->scroll;    scroll2=&list->hscroll->extra->scroll;
   PCOMBO *pcombo=&params->combo;    Cc_Combo_P *pcombo=&params->combo;
   win->cback=pcombo->cback!=C_DEFAULT?pcombo->cback:C_BLACK;    win->cback=pcombo->cback!=CC_C_DEFAULT?pcombo->cback:CC_C_BLACK;
   combo->activeline=pcombo->activeline;    combo->activeline=pcombo->activeline;
   combo->cbutback[0]=pcombo->cbutback[0]!=C_DEFAULT?pcombo->cbutback[0]:C_CYAN;    combo->cbutback[0]=pcombo->cbutback[0]!=CC_C_DEFAULT?pcombo->cbutback[0]:
   combo->cbutback[1]=pcombo->cbutback[1]!=C_DEFAULT?pcombo->cbutback[1]:C_YELLOW;                       CC_C_CYAN;
   combo->cbutfront[0]=pcombo->cbutfront[0]!=C_DEFAULT?pcombo->cbutfront[0]:C_LWHITE;    combo->cbutback[1]=pcombo->cbutback[1]!=CC_C_DEFAULT?pcombo->cbutback[1]:
   combo->cbutfront[1]=pcombo->cbutfront[1]!=C_DEFAULT?pcombo->cbutfront[1]:C_LGREEN;                       CC_C_YELLOW;
     combo->cbutfront[0]=pcombo->cbutfront[0]!=CC_C_DEFAULT?pcombo->cbutfront[0]:
                         CC_C_LWHITE;
     combo->cbutfront[1]=pcombo->cbutfront[1]!=CC_C_DEFAULT?pcombo->cbutfront[1]:
                         CC_C_LGREEN;
   combo->change=pcombo->change;    combo->change=pcombo->change;
   combo->maxvisitems=pcombo->maxvisitems;    combo->maxvisitems=pcombo->maxvisitems;
   combo->lstvy=pcombo->lstvy;move_win(combo->list,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,pcombo->lstvy,CC_NOCHANGE);    combo->lstvy=pcombo->lstvy;cc_move_win(combo->list,CC_NOCHANGE,
   combo->list->cback=pcombo->lstcback!=C_DEFAULT?pcombo->lstcback:C_GREEN;                                           CC_NOCHANGE,CC_NOCHANGE,
   list->cborder=pcombo->lstcborder!=C_DEFAULT?pcombo->lstcborder:C_LWHITE;                                           pcombo->lstvy,CC_NOCHANGE);
   list->ctext=pcombo->lstctext!=C_DEFAULT?pcombo->lstctext:C_LWHITE;    combo->list->cback=pcombo->lstcback!=CC_C_DEFAULT?pcombo->lstcback:CC_C_GREEN;
   list->cselected=pcombo->lstcselected!=C_DEFAULT?pcombo->lstcselected:C_WHITE;    list->cborder=pcombo->lstcborder!=CC_C_DEFAULT?pcombo->lstcborder:CC_C_LWHITE;
   list->cseltext=pcombo->lstcseltext!=C_DEFAULT?pcombo->lstcseltext:C_LBLACK;    list->ctext=pcombo->lstctext!=CC_C_DEFAULT?pcombo->lstctext:CC_C_LWHITE;
   list->cactive=pcombo->lstcactive!=C_DEFAULT?pcombo->lstcactive:C_YELLOW;    list->cselected=pcombo->lstcselected!=CC_C_DEFAULT?pcombo->lstcselected:
   list->cactivetext=pcombo->lstcactivetext!=C_DEFAULT?pcombo->lstcactivetext:C_LBLACK;                    CC_C_WHITE;
     list->cseltext=pcombo->lstcseltext!=CC_C_DEFAULT?pcombo->lstcseltext:
                    CC_C_LBLACK;
     list->cactive=pcombo->lstcactive!=CC_C_DEFAULT?pcombo->lstcactive:CC_C_YELLOW;
     list->cactivetext=pcombo->lstcactivetext!=CC_C_DEFAULT?pcombo->lstcactivetext:
                       CC_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!=CC_C_DEFAULT?
   setcomboactiveitem(combo,-1,combo->activeline);                         pcombo->lstscrcback:CC_C_CYAN;
   setuplistparams(combo->list);    _cc_setcomboactiveitem(combo,-1,combo->activeline);
   scroll1->cmark=scroll2->cmark=pcombo->lstscrcmark!=C_DEFAULT?pcombo->lstscrcmark:C_YELLOW;    _cc_setuplistparams(combo->list);
   scroll1->cbar=scroll2->cbar=pcombo->lstscrcbar!=C_DEFAULT?pcombo->lstscrcbar:C_WHITE;    scroll1->cmark=scroll2->cmark=pcombo->lstscrcmark!=CC_C_DEFAULT?
   scroll1->carrowup=scroll2->carrowup=pcombo->lstscrcarrowup!=C_DEFAULT?pcombo->lstscrcarrowup:C_LBLACK;                                  pcombo->lstscrcmark:CC_C_YELLOW;
   scroll1->carrowdown=scroll2->carrowdown=pcombo->lstscrcarrowdown!=C_DEFAULT?pcombo->lstscrcarrowdown:C_LGREEN;    scroll1->cbar=scroll2->cbar=pcombo->lstscrcbar!=CC_C_DEFAULT?
                                 pcombo->lstscrcbar:CC_C_WHITE;
     scroll1->carrowup=scroll2->carrowup=pcombo->lstscrcarrowup!=CC_C_DEFAULT?
                       pcombo->lstscrcarrowup:CC_C_LBLACK;
     scroll1->carrowdown=scroll2->carrowdown=
       pcombo->lstscrcarrowdown!=CC_C_DEFAULT?pcombo->lstscrcarrowdown:CC_C_LGREEN;
   if(combo->edit!=NULL)    if(combo->edit!=NULL)
   {    {
     EDIT *edit=&combo->edit->extra->edit;      EDIT *edit=&combo->edit->extra->edit;
     edit->style=pcombo->edistyle;      edit->style=pcombo->edistyle;
     combo->edit->cback=win->cback;      combo->edit->cback=win->cback;
     edit->cbmask=pcombo->edicbmask!=C_DEFAULT?pcombo->edicbmask:C_CYAN;      edit->cbmask=pcombo->edicbmask!=CC_C_DEFAULT?pcombo->edicbmask:CC_C_CYAN;
     edit->cfmask=pcombo->edicfmask!=C_DEFAULT?pcombo->edicfmask:C_BLACK;      edit->cfmask=pcombo->edicfmask!=CC_C_DEFAULT?pcombo->edicfmask:CC_C_BLACK;
     edit->ctext=list->ctext;      edit->ctext=list->ctext;
     edit->change=pcombo->change;      edit->change=pcombo->change;
   }    }
 }  }
   
 void setlistparams(WIN *win,PUNION *params)  void _cc_setlistparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   LIST *list=&win->extra->list;    LIST *list=&win->extra->list;
   SCROLL *scroll1=&list->vscroll->extra->scroll;    SCROLL *scroll1=&list->vscroll->extra->scroll;
   SCROLL *scroll2=&list->hscroll->extra->scroll;    SCROLL *scroll2=&list->hscroll->extra->scroll;
   PLIST *plist=&params->list;    Cc_List_P *plist=&params->list;
   win->cback=plist->cback!=C_DEFAULT?plist->cback:C_BLACK;    win->cback=plist->cback!=CC_C_DEFAULT?plist->cback:CC_C_BLACK;
   long actline=list->activeline;    long actline=list->activeline;
   list->activeline=plist->activeline;    list->activeline=plist->activeline;
   list->cborder=plist->cborder!=C_DEFAULT?plist->cborder:C_LWHITE;    list->cborder=plist->cborder!=CC_C_DEFAULT?plist->cborder:CC_C_LWHITE;
   list->ccells=plist->ccells!=C_DEFAULT?plist->ccells:C_WHITE;    list->ccells=plist->ccells!=CC_C_DEFAULT?plist->ccells:CC_C_WHITE;
   list->ctext=plist->ctext!=C_DEFAULT?plist->ctext:C_WHITE;    list->ctext=plist->ctext!=CC_C_DEFAULT?plist->ctext:CC_C_WHITE;
   list->cselected=plist->cselected!=C_DEFAULT?plist->cselected:C_WHITE;    list->cselected=plist->cselected!=CC_C_DEFAULT?plist->cselected:CC_C_WHITE;
   list->cseltext=plist->cseltext!=C_DEFAULT?plist->cseltext:C_LBLACK;    list->cseltext=plist->cseltext!=CC_C_DEFAULT?plist->cseltext:CC_C_LBLACK;
   list->cactive=plist->cactive!=C_DEFAULT?plist->cactive:C_YELLOW;    list->cactive=plist->cactive!=CC_C_DEFAULT?plist->cactive:CC_C_YELLOW;
   list->cactivetext=plist->cactivetext!=C_DEFAULT?plist->cactivetext:C_LBLACK;    list->cactivetext=plist->cactivetext!=CC_C_DEFAULT?plist->cactivetext:
                       CC_C_LBLACK;
   list->combotyp=plist->combotyp;    list->combotyp=plist->combotyp;
   list->lines=plist->lines;    list->lines=plist->lines;
   list->change=plist->change;    list->change=plist->change;
   list->dblclk=plist->dblclk;    list->dblclk=plist->dblclk;
   list->vscroll->cback=list->hscroll->cback=plist->scrcback!=C_DEFAULT?plist->scrcback:C_CYAN;    list->vscroll->cback=list->hscroll->cback=plist->scrcback!=CC_C_DEFAULT?
   scroll1->cmark=scroll2->cmark=plist->scrcmark!=C_DEFAULT?plist->scrcmark:C_YELLOW;                         plist->scrcback:CC_C_CYAN;
   scroll1->cbar=scroll2->cbar=plist->scrcbar!=C_DEFAULT?plist->scrcbar:C_WHITE;    scroll1->cmark=scroll2->cmark=plist->scrcmark!=CC_C_DEFAULT?plist->scrcmark:
   scroll1->carrowup=scroll2->carrowup=plist->scrcarrowup!=C_DEFAULT?plist->scrcarrowup:C_LBLACK;                   CC_C_YELLOW;
   scroll1->carrowdown=scroll2->carrowdown=plist->scrcarrowup!=C_DEFAULT?plist->scrcarrowup:C_LGREEN;    scroll1->cbar=scroll2->cbar=plist->scrcbar!=CC_C_DEFAULT?plist->scrcbar:
   setuplistparams(win);                  CC_C_WHITE;
   setlistactiveitem(list,actline,list->activeline);    scroll1->carrowup=scroll2->carrowup=plist->scrcarrowup!=CC_C_DEFAULT?
                       plist->scrcarrowup:CC_C_LBLACK;
     scroll1->carrowdown=scroll2->carrowdown=plist->scrcarrowup!=CC_C_DEFAULT?
                         plist->scrcarrowup:CC_C_LGREEN;
     _cc_setuplistparams(win);
     _cc_setlistactiveitem(list,actline,list->activeline);
 }  }
   
 void setstatusparams(WIN *win,PUNION *params)  void _cc_setstatusparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   STATUS *status=&win->extra->status;    STATUS *status=&win->extra->status;
   PSTATUS *pstatus=&params->status;    Cc_Status_P *pstatus=&params->status;
   win->cback=pstatus->cbclear!=C_DEFAULT?pstatus->cbclear:C_WHITE;    win->cback=pstatus->cbclear!=CC_C_DEFAULT?pstatus->cbclear:CC_C_WHITE;
   status->pos=pstatus->pos;    status->pos=pstatus->pos;
   status->maxpos=pstatus->maxpos;    status->maxpos=pstatus->maxpos;
   status->cbfull=pstatus->cbfull!=C_DEFAULT?pstatus->cbfull:C_RED;    status->cbfull=pstatus->cbfull!=CC_C_DEFAULT?pstatus->cbfull:CC_C_RED;
   status->ctclear=pstatus->ctclear!=C_DEFAULT?pstatus->ctclear:C_BLACK;    status->ctclear=pstatus->ctclear!=CC_C_DEFAULT?pstatus->ctclear:CC_C_BLACK;
   status->ctfull=pstatus->ctfull!=C_DEFAULT?pstatus->ctfull:C_BLACK;    status->ctfull=pstatus->ctfull!=CC_C_DEFAULT?pstatus->ctfull:CC_C_BLACK;
   status->vert=pstatus->vert;    status->vert=pstatus->vert;
   status->vtext=pstatus->vtext;    status->vtext=pstatus->vtext;
   status->text=pstatus->text;    status->text=pstatus->text;
 }  }
   
 void setpaintparams(WIN *win,PUNION *params)  void _cc_setpaintparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   PAINT *paint=&win->extra->paint;    PAINT *paint=&win->extra->paint;
   PPAINT *ppaint=&params->paint;    Cc_Paint_P *ppaint=&params->paint;
   win->cback=ppaint->cback!=C_DEFAULT?ppaint->cback:C_BLACK;    win->cback=ppaint->cback!=CC_C_DEFAULT?ppaint->cback:CC_C_BLACK;
   paint->style=ppaint->style;    paint->style=ppaint->style;
   paint->color=ppaint->color!=C_DEFAULT?ppaint->color:C_WHITE;    paint->color=ppaint->color!=CC_C_DEFAULT?ppaint->color:CC_C_WHITE;
 }  }
   
 void setmenuparams(WIN *win,PUNION *params)  void _cc_setmenuparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   MENU *menu=&win->extra->menu;    MENU *menu=&win->extra->menu;
   PMENU *pmenu=&params->menu;    Cc_Menu_P *pmenu=&params->menu;
   win->cback=pmenu->cback!=C_DEFAULT?pmenu->cback:C_WHITE;    win->cback=pmenu->cback!=CC_C_DEFAULT?pmenu->cback:CC_C_WHITE;
   menu->cborder=pmenu->cborder!=C_DEFAULT?pmenu->cborder:C_BLACK;    menu->cborder=pmenu->cborder!=CC_C_DEFAULT?pmenu->cborder:CC_C_BLACK;
   menu->ctext=pmenu->ctext!=C_DEFAULT?pmenu->ctext:C_BLACK;    menu->ctext=pmenu->ctext!=CC_C_DEFAULT?pmenu->ctext:CC_C_BLACK;
   menu->cutext=pmenu->cutext!=C_DEFAULT?pmenu->cutext:C_BLUE;    menu->cutext=pmenu->cutext!=CC_C_DEFAULT?pmenu->cutext:CC_C_BLUE;
   menu->cactive=pmenu->cactive!=C_DEFAULT?pmenu->cactive:C_BLACK;    menu->cactive=pmenu->cactive!=CC_C_DEFAULT?pmenu->cactive:CC_C_BLACK;
   menu->cactivetext=pmenu->cactivetext!=C_DEFAULT?pmenu->cactivetext:C_WHITE;    menu->cactivetext=pmenu->cactivetext!=CC_C_DEFAULT?pmenu->cactivetext:
   menu->cactiveutext=pmenu->cactiveutext!=C_DEFAULT?pmenu->cactiveutext:C_CYAN;                      CC_C_WHITE;
     menu->cactiveutext=pmenu->cactiveutext!=CC_C_DEFAULT?pmenu->cactiveutext:
                        CC_C_CYAN;
   menu->lines=pmenu->lines;    menu->lines=pmenu->lines;
   menu->change=pmenu->change;    menu->change=pmenu->change;
   menu->select=pmenu->select;    menu->select=pmenu->select;
   menu->vert=pmenu->vert;    menu->vert=pmenu->vert;
 }  }
   
 void setdialogparams(WIN *win,PUNION *params)  void _cc_setdialogparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   DIALOG *dialog=&win->extra->dialog;    DIALOG *dialog=&win->extra->dialog;
   BUTTON *button1,*button2,*button3;    BUTTON *button1,*button2,*button3;
   long color;    long color;
   if(dialog->bclose!=NULL)button1=&dialog->bclose->extra->button;else button1=NULL;    if(dialog->bclose!=NULL)button1=&dialog->bclose->extra->button;
   if(dialog->bminimize!=NULL)button2=&dialog->bminimize->extra->button;else button2=NULL;    else button1=NULL;
   if(dialog->bmaximize!=NULL)button3=&dialog->bmaximize->extra->button;else button3=NULL;    if(dialog->bminimize!=NULL)button2=&dialog->bminimize->extra->button;
   PDIALOG *pdialog=&params->dialog;    else button2=NULL;
   win->cback=pdialog->cback!=C_DEFAULT?pdialog->cback:C_BLUE;    if(dialog->bmaximize!=NULL)button3=&dialog->bmaximize->extra->button;
     else button3=NULL;
     Cc_Dialog_P *pdialog=&params->dialog;
     win->cback=pdialog->cback!=CC_C_DEFAULT?pdialog->cback:CC_C_BLUE;
   if(dialog->bclose!=NULL)dialog->bclose->cback=win->cback;    if(dialog->bclose!=NULL)dialog->bclose->cback=win->cback;
   if(dialog->bminimize!=NULL)dialog->bminimize->cback=win->cback;    if(dialog->bminimize!=NULL)dialog->bminimize->cback=win->cback;
   if(dialog->bmaximize!=NULL)dialog->bmaximize->cback=win->cback;    if(dialog->bmaximize!=NULL)dialog->bmaximize->cback=win->cback;
Line 239  void setdialogparams(WIN *win,PUNION *pa
Line 288  void setdialogparams(WIN *win,PUNION *pa
   }    }
   dialog->caption=pdialog->caption;    dialog->caption=pdialog->caption;
   dialog->style=pdialog->style;    dialog->style=pdialog->style;
   dialog->cbactive=pdialog->cbactive!=C_DEFAULT?pdialog->cbactive:C_LWHITE;    dialog->cbactive=pdialog->cbactive!=CC_C_DEFAULT?pdialog->cbactive:
   dialog->cbinactive=pdialog->cbinactive!=C_DEFAULT?pdialog->cbinactive:C_WHITE;                     CC_C_LWHITE;
   color=pdialog->cbuttext[0]!=C_DEFAULT?pdialog->cbuttext[0]:C_LYELLOW;    dialog->cbinactive=pdialog->cbinactive!=CC_C_DEFAULT?pdialog->cbinactive:
                        CC_C_WHITE;
     color=pdialog->cbuttext[0]!=CC_C_DEFAULT?pdialog->cbuttext[0]:CC_C_LYELLOW;
   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_LCYAN;    color=pdialog->cbuttext[1]!=CC_C_DEFAULT?pdialog->cbuttext[1]:CC_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;
   color=pdialog->cbuttext[2]!=C_DEFAULT?pdialog->cbuttext[2]:C_LYELLOW;    color=pdialog->cbuttext[2]!=CC_C_DEFAULT?pdialog->cbuttext[2]:CC_C_LYELLOW;
   if(button1!=NULL)button1->ctext[2]=color;    if(button1!=NULL)button1->ctext[2]=color;
   if(button2!=NULL)button2->ctext[2]=color;    if(button2!=NULL)button2->ctext[2]=color;
   if(button3!=NULL)button3->ctext[2]=color;    if(button3!=NULL)button3->ctext[2]=color;
Line 260  void setdialogparams(WIN *win,PUNION *pa
Line 311  void setdialogparams(WIN *win,PUNION *pa
   dialog->close=pdialog->close;    dialog->close=pdialog->close;
 }  }
   
 void gettextparams(WIN *win,PUNION *params)  void _cc_gettextparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   TEXT *text=&win->extra->text;    TEXT *text=&win->extra->text;
   PTEXT *ptext=&params->text;    Cc_Text_P *ptext=&params->text;
   ptext->cback=win->cback;    ptext->cback=win->cback;
   ptext->text=text->text;    ptext->text=text->text;
   ptext->ctext=text->ctext;    ptext->ctext=text->ctext;
 }  }
   
 void geteditparams(WIN *win,PUNION *params)  void _cc_geteditparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   EDIT *edit=&win->extra->edit;    EDIT *edit=&win->extra->edit;
   PEDIT *pedit=&params->edit;    Cc_Edit_P *pedit=&params->edit;
   pedit->cback=win->cback;    pedit->cback=win->cback;
   pedit->style=edit->style;    pedit->style=edit->style;
   pedit->cbmask=edit->cbmask;    pedit->cbmask=edit->cbmask;
Line 281  void geteditparams(WIN *win,PUNION *para
Line 332  void geteditparams(WIN *win,PUNION *para
   pedit->change=edit->change;    pedit->change=edit->change;
 }  }
   
 void getbuttonparams(WIN *win,PUNION *params)  void _cc_getbuttonparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   BUTTON *button=&win->extra->button;    BUTTON *button=&win->extra->button;
   PBUTTON *pbutton=&params->button;    Cc_Button_P *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->style=button->style;
Line 304  void getbuttonparams(WIN *win,PUNION *pa
Line 355  void getbuttonparams(WIN *win,PUNION *pa
   pbutton->push=button->push;    pbutton->push=button->push;
 }  }
   
 void getscrollparams(WIN *win,PUNION *params)  void _cc_getscrollparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   SCROLL *scroll=&win->extra->scroll;    SCROLL *scroll=&win->extra->scroll;
   PSCROLL *pscroll=&params->scroll;    Cc_Scroll_P *pscroll=&params->scroll;
   pscroll->cback=win->cback;    pscroll->cback=win->cback;
   pscroll->pos=scroll->pos;    pscroll->pos=scroll->pos;
   pscroll->minpos=scroll->minpos;    pscroll->minpos=scroll->minpos;
Line 322  void getscrollparams(WIN *win,PUNION *pa
Line 373  void getscrollparams(WIN *win,PUNION *pa
   pscroll->change=scroll->change;    pscroll->change=scroll->change;
 }  }
   
 void getcomboparams(WIN *win,PUNION *params)  void _cc_getcomboparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   COMBO *combo=&win->extra->combo;    COMBO *combo=&win->extra->combo;
   LIST *list=&combo->list->extra->list;    LIST *list=&combo->list->extra->list;
   SCROLL *scroll1,*scroll2;    SCROLL *scroll1,*scroll2;
   scroll1=&list->hscroll->extra->scroll;    scroll1=&list->hscroll->extra->scroll;
   scroll2=&list->vscroll->extra->scroll;    scroll2=&list->vscroll->extra->scroll;
   PCOMBO *pcombo=&params->combo;    Cc_Combo_P *pcombo=&params->combo;
   pcombo->cback=win->cback;    pcombo->cback=win->cback;
   pcombo->activeline=combo->activeline;    pcombo->activeline=combo->activeline;
   pcombo->cbutback[0]=combo->cbutback[0];    pcombo->cbutback[0]=combo->cbutback[0];
Line 361  void getcomboparams(WIN *win,PUNION *par
Line 412  void getcomboparams(WIN *win,PUNION *par
   }    }
 }  }
   
 void getlistparams(WIN *win,PUNION *params)  void _cc_getlistparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   LIST *list=&win->extra->list;    LIST *list=&win->extra->list;
   SCROLL *scroll1=&list->vscroll->extra->scroll;    SCROLL *scroll1=&list->vscroll->extra->scroll;
   SCROLL *scroll2=&list->hscroll->extra->scroll;    SCROLL *scroll2=&list->hscroll->extra->scroll;
   PLIST *plist=&params->list;    Cc_List_P *plist=&params->list;
   plist->cback=win->cback;    plist->cback=win->cback;
   plist->activeline=list->activeline;    plist->activeline=list->activeline;
   plist->cborder=list->cborder;    plist->cborder=list->cborder;
Line 387  void getlistparams(WIN *win,PUNION *para
Line 438  void getlistparams(WIN *win,PUNION *para
   plist->scrcarrowup=scroll1->carrowdown;    plist->scrcarrowup=scroll1->carrowdown;
 }  }
   
 void getstatusparams(WIN *win,PUNION *params)  void _cc_getstatusparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   STATUS *status=&win->extra->status;    STATUS *status=&win->extra->status;
   PSTATUS *pstatus=&params->status;    Cc_Status_P *pstatus=&params->status;
   pstatus->cbclear=win->cback;    pstatus->cbclear=win->cback;
   pstatus->pos=status->pos;    pstatus->pos=status->pos;
   pstatus->maxpos=status->maxpos;    pstatus->maxpos=status->maxpos;
Line 402  void getstatusparams(WIN *win,PUNION *pa
Line 453  void getstatusparams(WIN *win,PUNION *pa
   pstatus->text=status->text;    pstatus->text=status->text;
 }  }
   
 void getpaintparams(WIN *win,PUNION *params)  void _cc_getpaintparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   PAINT *paint=&win->extra->paint;    PAINT *paint=&win->extra->paint;
   PPAINT *ppaint=&params->paint;    Cc_Paint_P *ppaint=&params->paint;
   ppaint->cback=win->cback;    ppaint->cback=win->cback;
   ppaint->style=paint->style;    ppaint->style=paint->style;
   ppaint->color=paint->color;    ppaint->color=paint->color;
 }  }
   
 void getmenuparams(WIN *win,PUNION *params)  void _cc_getmenuparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   MENU *menu=&win->extra->menu;    MENU *menu=&win->extra->menu;
   PMENU *pmenu=&params->menu;    Cc_Menu_P *pmenu=&params->menu;
   pmenu->cback=win->cback;    pmenu->cback=win->cback;
   pmenu->cborder=menu->cborder;    pmenu->cborder=menu->cborder;
   pmenu->ctext=menu->ctext;    pmenu->ctext=menu->ctext;
Line 428  void getmenuparams(WIN *win,PUNION *para
Line 479  void getmenuparams(WIN *win,PUNION *para
   pmenu->vert=menu->vert;    pmenu->vert=menu->vert;
 }  }
   
 void getdialogparams(WIN *win,PUNION *params)  void _cc_getdialogparams(Cc_Win *win,Cc_Union_P *params)
 {  {
   DIALOG *dialog=&win->extra->dialog;    DIALOG *dialog=&win->extra->dialog;
   BUTTON *button;    BUTTON *button;
   if(dialog->bclose!=NULL)button=&dialog->bclose->extra->button;else button=NULL;    if(dialog->bclose!=NULL)button=&dialog->bclose->extra->button;
   PDIALOG *pdialog=&params->dialog;    else button=NULL;
     Cc_Dialog_P *pdialog=&params->dialog;
   pdialog->cback=win->cback;    pdialog->cback=win->cback;
   pdialog->caption=dialog->caption;    pdialog->caption=dialog->caption;
   pdialog->style=dialog->style;    pdialog->style=dialog->style;
Line 452  void getdialogparams(WIN *win,PUNION *pa
Line 504  void getdialogparams(WIN *win,PUNION *pa
   pdialog->close=dialog->close;    pdialog->close=dialog->close;
 }  }
   
 void checkwincombo(WIN *win)  void _cc_checkwincombo(Cc_Win *win)
 {  {
   COMBO *combo=&win->extra->combo;    COMBO *combo=&win->extra->combo;
   if(combo->maxvisitems)    if(combo->maxvisitems)
Line 470  void checkwincombo(WIN *win)
Line 522  void checkwincombo(WIN *win)
   if(combo->edit!=NULL)    if(combo->edit!=NULL)
   {    {
     combo->edit->vx=win->vx-1;      combo->edit->vx=win->vx-1;
     if(focuswin==win)focuswin=combo->edit;      if(_cc_focuswin==win)_cc_focuswin=combo->edit;
   }    }
 }  }
   
 void checkwinlist(WIN *win)  void _cc_checkwinlist(Cc_Win *win)
 {  {
   LIST *list;    LIST *list;
   GList *lines;    GList *lines;
Line 536  void checkwinlist(WIN *win)
Line 588  void checkwinlist(WIN *win)
   }    }
 }  }
   
 void checkwinmenu(WIN *win)  void _cc_checkwinmenu(Cc_Win *win)
 {  {
   MENU *menu;    MENU *menu;
   WIN *submenu;    Cc_Win *submenu;
   GList *lines;    GList *lines;
   long i;    long i;
   menu=&win->extra->menu;    menu=&win->extra->menu;
Line 547  void checkwinmenu(WIN *win)
Line 599  void checkwinmenu(WIN *win)
   {    {
     lines=g_list_nth(menu->lines,menu->activeline);      lines=g_list_nth(menu->lines,menu->activeline);
     if(lines!=NULL)      if(lines!=NULL)
       if(strcmp(((CMENU*)lines->data)->text,"-")==0)menu->activeline=-1;        if(strcmp(((Cc_Menu_I*)lines->data)->text,"-")==0)menu->activeline=-1;
   }    }
   if(menu->vert)    if(menu->vert)
   {    {
Line 557  void checkwinmenu(WIN *win)
Line 609  void checkwinmenu(WIN *win)
     lines=menu->lines;      lines=menu->lines;
     while(lines!=NULL)      while(lines!=NULL)
     {      {
       i=strlenmenu(((CMENU*)lines->data)->text);        i=_cc_strlenmenu(((Cc_Menu_I*)lines->data)->text);
       if(i>maxlen)maxlen=i;        if(i>maxlen)maxlen=i;
       i=strlen(getshortcuttext(((CMENU*)lines->data)->shortcut));        i=strlen(_cc_getshortcuttext(((Cc_Menu_I*)lines->data)->shortcut));
       if(i>maxshcut)maxshcut=i;        if(i>maxshcut)maxshcut=i;
       lines=g_list_next(lines);        lines=g_list_next(lines);
     }      }
Line 570  void checkwinmenu(WIN *win)
Line 622  void checkwinmenu(WIN *win)
   i=0;    i=0;
   while(lines!=NULL)    while(lines!=NULL)
   {    {
     submenu=((CMENU*)lines->data)->submenu;      submenu=((Cc_Menu_I*)lines->data)->submenu;
     if(submenu!=NULL)      if(submenu!=NULL)
     {      {
       if(menu->vert)        if(menu->vert)
Line 583  void checkwinmenu(WIN *win)
Line 635  void checkwinmenu(WIN *win)
       {        {
         submenu->x=i;          submenu->x=i;
         submenu->y=win->vy;          submenu->y=win->vy;
         i+=strlenmenu(((CMENU*)lines->data)->text)+2;          i+=_cc_strlenmenu(((Cc_Menu_I*)lines->data)->text)+2;
       }        }
     }      }
     lines=g_list_next(lines);      lines=g_list_next(lines);
Line 602  void checkwinmenu(WIN *win)
Line 654  void checkwinmenu(WIN *win)
     menu->vfade->vx=win->vx>1?2:1;      menu->vfade->vx=win->vx>1?2:1;
     menu->vfade->vy=win->vy-1;      menu->vfade->vy=win->vy-1;
   }    }
   if(!isfocused(win))    if(!_cc_isfocused(win))
     if(menu->vert)win->active=false;      if(menu->vert)win->active=false;
       else if(capturewin==win)capturewin=NULL;        else if(_cc_capturewin==win)_cc_capturewin=NULL;
 }  }
   
 void checkwindialog(WIN *win)  void _cc_checkwindialog(Cc_Win *win)
 {  {
   DIALOG *dialog=&win->extra->dialog;    DIALOG *dialog=&win->extra->dialog;
   long n,olen;    long n,olen;
Line 640  void checkwindialog(WIN *win)
Line 692  void checkwindialog(WIN *win)
     dialog->vfade->vx=win->vx>1?2:1;      dialog->vfade->vx=win->vx>1?2:1;
     dialog->vfade->vy=win->vy-1;      dialog->vfade->vy=win->vy-1;
   }    }
   if((dialog->bclose!=NULL)&&(!dialog->bclose->active))dialog->bclose->active=true;    if((dialog->bclose!=NULL)&&(!dialog->bclose->active))
   if((dialog->bmaximize!=NULL)&&(!dialog->bmaximize->active))dialog->bmaximize->active=true;      dialog->bclose->active=true;
   if((dialog->bminimize!=NULL)&&(!dialog->bminimize->active))dialog->bminimize->active=true;    if((dialog->bmaximize!=NULL)&&(!dialog->bmaximize->active))
       dialog->bmaximize->active=true;
     if((dialog->bminimize!=NULL)&&(!dialog->bminimize->active))
       dialog->bminimize->active=true;
   if(dialog->menu!=NULL)    if(dialog->menu!=NULL)
   {    {
     WIN *menu=dialog->menu;      Cc_Win *menu=dialog->menu;
     if(menu->parent!=win)setparent(menu,win);      if(menu->parent!=win)_cc_setparent(menu,win);
     menu->x=1;      menu->x=1;
     menu->y=1;      menu->y=1;
     menu->vx=win->vx-2;      menu->vx=win->vx-2;
     menu->vy=1;      menu->vy=1;
   }    }
     if(win->extra->dialog.modal)
     {
       if(win->parent!=NULL)win->parent->hasmodal=_cc_isvisible(win);
       else _cc_hasmodal=_cc_isvisible(win);
     }
 }  }
   
 void drawwintext(WIN *win)  void _cc_drawwintext(Cc_Win *win)
 {  {
   TEXT *text=(TEXT*)win->extra;    TEXT *text=(TEXT*)win->extra;
   windowinitdraw(win,text->ctext,win->cback,true);    _cc_windowinitdraw(win,text->ctext,win->cback,true);
   mprintw(win,0,0,"%s",text->text);    _cc_mprintw(win,0,0,"%s",text->text);
 }  }
   
 void drawwinedit(WIN *win)  void _cc_drawwinedit(Cc_Win *win)
 {  {
   EDIT *edit=(EDIT*)win->extra;    EDIT *edit=(EDIT*)win->extra;
   long len,i,a,b;    long len,i,a,b;
Line 674  void drawwinedit(WIN *win)
Line 734  void drawwinedit(WIN *win)
     edit->scroll=edit->curpos-win->vx+1;      edit->scroll=edit->curpos-win->vx+1;
   if(edit->scroll<0)edit->scroll=0;    if(edit->scroll<0)edit->scroll=0;
   if(edit->scroll>len)edit->scroll=len;    if(edit->scroll>len)edit->scroll=len;
   windowinitdraw(win,edit->ctext,win->cback,hascolors?true:2);    _cc_windowinitdraw(win,edit->ctext,win->cback,_cc_hascolors?true:2);
   if(!hascolors)for(i=0;i<win->vx;i++)addchar(win,0,i,'_');    if(!_cc_hascolors)for(i=0;i<win->vx;i++)_cc_addchar(win,0,i,'_');
   if(edit->style!=CC_ED_PASSWORD)    if(edit->style!=CC_ED_PASSWORD)
   {    {
     mprintw(win,0,-edit->scroll,"%s",edit->text);      _cc_mprintw(win,0,-edit->scroll,"%s",edit->text);
   }    }
   else    else
   {    {
     for(i=0;i<len-edit->scroll;i++)addchar(win,0,i,'*');      for(i=0;i<len-edit->scroll;i++)_cc_addchar(win,0,i,'*');
   }    }
   if((edit->maskpos!=-1)&&isfocused(win))    if((edit->maskpos!=-1)&&_cc_isfocused(win))
   {    {
     a=edit->curpos;      a=edit->curpos;
     b=edit->maskpos;      b=edit->maskpos;
     if(b<a){i=a;a=b;b=i;}      if(b<a){i=a;a=b;b=i;}
     if(b>len-1)b=len-1;      if(b>len-1)b=len-1;
     windowinitdraw(win,edit->cfmask,edit->cbmask,false);      _cc_windowinitdraw(win,edit->cfmask,edit->cbmask,false);
     if(!hascolors)win->attr|=A_REVERSE;      if(!_cc_hascolors)win->attr|=A_REVERSE;
     for(i=a;i<=b;i++)addchar(win,0,i-edit->scroll,minch(win,0,i-edit->scroll));      for(i=a;i<=b;i++)
         _cc_addchar(win,0,i-edit->scroll,_cc_minch(win,0,i-edit->scroll));
   }    }
 }  }
   
 void drawwinbutton(WIN *win,long wx)  void _cc_drawwinbutton(Cc_Win *win,long wx)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   BUTTON *button=(BUTTON*)win->extra;    BUTTON *button=(BUTTON*)win->extra;
Line 705  void drawwinbutton(WIN *win,long wx)
Line 766  void drawwinbutton(WIN *win,long wx)
   attr_t attrplus=0;    attr_t attrplus=0;
   x=0;    x=0;
   y=0;    y=0;
   if((capturewin!=win)&&(button->status==TS_HIGH))button->status=TS_UP;    if((_cc_capturewin!=win)&&(button->status==TS_HIGH))button->status=TS_UP;
   stav=button->status;    stav=button->status;
   if((stav==TS_PUSH)||(stav==TS_EXPUSH))set_timer(win,BUTTONCLICK,0,buttontimer);    if((stav==TS_PUSH)||(stav==TS_EXPUSH))
       cc_set_timer(win,BUTTONCLICK,0,_cc_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==CC_BT_NORMAL)&&button->checked)stav=TS_DOWN;    if((button->style==CC_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&&    char mode=(!_cc_hascolors&&
             ((button->style==CC_BT_NORMAL)||((button->style!=CC_BT_NORMAL)&&(win==focuswin)))&&              ((button->style==CC_BT_NORMAL)||
               ((button->style!=CC_BT_NORMAL)&&(win==_cc_focuswin)))&&
             ((button->style!=CC_BT_NORMAL)||              ((button->style!=CC_BT_NORMAL)||
             ((button->hasfocus&&(stav!=TS_DOWN))||(!button->hasfocus&&(stav==TS_DOWN)))))?3:true;              ((button->hasfocus&&(stav!=TS_DOWN))||
               (!button->hasfocus&&(stav==TS_DOWN)))))?3:true;
   if(mode==3)attrplus|=A_REVERSE;    if(mode==3)attrplus|=A_REVERSE;
   windowinitdraw(win,cf,cb,mode);    _cc_windowinitdraw(win,cf,cb,mode);
   if(button->style==CC_BT_NORMAL)    if(button->style==CC_BT_NORMAL)
   {    {
     if(win->vy>=3)      if(win->vy>=3)
     {      {
       mbox(win,0,0,win->vx,win->vy);        _cc_mbox(win,0,0,win->vx,win->vy);
       x++;vx-=2;wx-=2;        x++;vx-=2;wx-=2;
       y++;vy-=2;        y++;vy-=2;
     }      }
   }    }
   y+=(vy-1)/2;    y+=(vy-1)/2;
   if(win==focuswin)    if(win==_cc_focuswin)
   {    {
     windowinitdraw(win,button->cfocus[stav],cb,false);      _cc_windowinitdraw(win,button->cfocus[stav],cb,false);
     if(mode==3)      if(mode==3)
     {      {
       attrplus|=A_REVERSE;        attrplus|=A_REVERSE;
Line 740  void drawwinbutton(WIN *win,long wx)
Line 804  void drawwinbutton(WIN *win,long wx)
     }      }
     if(button->style==CC_BT_NORMAL)      if(button->style==CC_BT_NORMAL)
     {      {
       addchar(win,y,x,'<');        _cc_addchar(win,y,x,'<');
       addchar(win,y,win->vx-1-x,'>');        _cc_addchar(win,y,win->vx-1-x,'>');
       x++;vx-=2;wx-=2;        x++;vx-=2;wx-=2;
     }      }
   }    }
   if(button->style==CC_BT_CHECK1)    if(button->style==CC_BT_CHECK1)
   {    {
     addchar(win,y,x,'[');      _cc_addchar(win,y,x,'[');
     addchar(win,y,x+2,']');      _cc_addchar(win,y,x+2,']');
   }    }
   else if(button->style==CC_BT_CHECK2)    else if(button->style==CC_BT_CHECK2)
   {    {
     addchar(win,y,x,'(');      _cc_addchar(win,y,x,'(');
     addchar(win,y,x+2,')');      _cc_addchar(win,y,x+2,')');
   }    }
   if(win==focuswin)    if(win==_cc_focuswin)
   {    {
     windowinitdraw(win,cf,cb,false);      _cc_windowinitdraw(win,cf,cb,false);
     if(mode==3)      if(mode==3)
     {      {
       attrplus|=A_REVERSE;        attrplus|=A_REVERSE;
       win->attr|=attrplus;        win->attr|=attrplus;
     }      }
   }    }
   if((button->style==CC_BT_CHECK1)&&(button->checked))addchar(win,y,x+1,'x');    if((button->style==CC_BT_CHECK1)&&(button->checked))
   if((button->style==CC_BT_CHECK2)&&(button->checked))addchar(win,y,x+1,'*');      _cc_addchar(win,y,x+1,'x');
   if(button->style==CC_BT_NORMAL)x+=(vx-strlenmenu(button->text))/2;    if((button->style==CC_BT_CHECK2)&&(button->checked))
       _cc_addchar(win,y,x+1,'*');
     if(button->style==CC_BT_NORMAL)x+=(vx-_cc_strlenmenu(button->text))/2;
   else    else
   {    {
     x+=4;      x+=4;
Line 775  void drawwinbutton(WIN *win,long wx)
Line 841  void drawwinbutton(WIN *win,long wx)
   if(button->text!=NULL)    if(button->text!=NULL)
     for(i=0;i<strlen(button->text);i++)if(button->text[i]=='&'){wx++;i++;};      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((!_cc_hascolors)&&((stav!=TS_UP)))attrplus|=A_UNDERLINE;
   mprintwmenu(win,y,x,cb,cf,cfu,attrplus,s,button->text);    _cc_mprintwmenu(win,y,x,cb,cf,cfu,attrplus,s,button->text);
 }  }
   
 void drawwinscroll(WIN *win)  void _cc_drawwinscroll(Cc_Win *win)
 {  {
   SCROLL *scroll=(SCROLL*)win->extra;    SCROLL *scroll=(SCROLL*)win->extra;
   char cf,cb;    char cf,cb;
Line 790  void drawwinscroll(WIN *win)
Line 856  void drawwinscroll(WIN *win)
   if(scroll->vert)    if(scroll->vert)
   {    {
     if(scroll->smoothpos>win->vy-3)scroll->smoothpos=win->vy-3;      if(scroll->smoothpos>win->vy-3)scroll->smoothpos=win->vy-3;
     if(!scroll->smooth)len=(win->vy-3)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos);      if(!scroll->smooth)len=(win->vy-3)*(scroll->pos-scroll->minpos)/
                              (scroll->maxpos-scroll->minpos);
     else len=scroll->smoothpos;      else len=scroll->smoothpos;
     if(len>0)      if(len>0)
     {      {
Line 804  void drawwinscroll(WIN *win)
Line 871  void drawwinscroll(WIN *win)
         cf=scroll->carrowdown;          cf=scroll->carrowdown;
         cb=scroll->cmark;          cb=scroll->cmark;
       }        }
       windowinitdraw(win,cf,cb,false);        _cc_windowinitdraw(win,cf,cb,false);
       if((!hascolors)&&(scroll->spageup==SC_DOWN))win->attr|=A_REVERSE;        if((!_cc_hascolors)&&(scroll->spageup==SC_DOWN))win->attr|=A_REVERSE;
       for(i=0;i<len;i++)addchar(win,i+1,0,hascolors?' ':'|');        for(i=0;i<len;i++)_cc_addchar(win,i+1,0,_cc_hascolors?' ':'|');
     }      }
     if(win->vy-3-len>0)      if(win->vy-3-len>0)
     {      {
Line 820  void drawwinscroll(WIN *win)
Line 887  void drawwinscroll(WIN *win)
         cf=scroll->carrowdown;          cf=scroll->carrowdown;
         cb=scroll->cmark;          cb=scroll->cmark;
       }        }
       windowinitdraw(win,cf,cb,false);        _cc_windowinitdraw(win,cf,cb,false);
       if((!hascolors)&&(scroll->spagedown==SC_DOWN))win->attr|=A_REVERSE;        if((!_cc_hascolors)&&(scroll->spagedown==SC_DOWN))win->attr|=A_REVERSE;
       for(i=0;i<win->vy-3-len;i++)addchar(win,i+2+len,0,hascolors?' ':'|');        for(i=0;i<win->vy-3-len;i++)
           _cc_addchar(win,i+2+len,0,_cc_hascolors?' ':'|');
     }      }
     windowinitdraw(win,scroll->carrowup,scroll->cbar,false);      _cc_windowinitdraw(win,scroll->carrowup,scroll->cbar,false);
     addchar(win,len+1,0,hascolors?' ':'o');      _cc_addchar(win,len+1,0,_cc_hascolors?' ':'o');
     if(scroll->sup==SC_UP)      if(scroll->sup==SC_UP)
     {      {
       cf=scroll->carrowup;        cf=scroll->carrowup;
Line 836  void drawwinscroll(WIN *win)
Line 904  void drawwinscroll(WIN *win)
       cf=scroll->carrowdown;        cf=scroll->carrowdown;
       cb=scroll->cmark;        cb=scroll->cmark;
     }      }
     windowinitdraw(win,cf,cb,false);      _cc_windowinitdraw(win,cf,cb,false);
     if((!hascolors)&&(scroll->sup==SC_DOWN))win->attr|=A_REVERSE;      if((!_cc_hascolors)&&(scroll->sup==SC_DOWN))win->attr|=A_REVERSE;
     if(!uglycharset)win->attr|=A_ALTCHARSET;      if(!_cc_uglycharset)win->attr|=A_ALTCHARSET;
     addchar(win,0,0,mapsymbol[UARROW]);      _cc_addchar(win,0,0,_cc_mapsymbol[UARROW]);
     if(scroll->sdown==SC_UP)      if(scroll->sdown==SC_UP)
     {      {
       cf=scroll->carrowup;        cf=scroll->carrowup;
Line 850  void drawwinscroll(WIN *win)
Line 918  void drawwinscroll(WIN *win)
       cf=scroll->carrowdown;        cf=scroll->carrowdown;
       cb=scroll->cmark;        cb=scroll->cmark;
     }      }
     windowinitdraw(win,cf,cb,false);      _cc_windowinitdraw(win,cf,cb,false);
     if((!hascolors)&&(scroll->sdown==SC_DOWN))win->attr|=A_REVERSE;      if((!_cc_hascolors)&&(scroll->sdown==SC_DOWN))win->attr|=A_REVERSE;
     if(!uglycharset)win->attr|=A_ALTCHARSET;      if(!_cc_uglycharset)win->attr|=A_ALTCHARSET;
     addchar(win,win->vy-1,0,mapsymbol[DARROW]);      _cc_addchar(win,win->vy-1,0,_cc_mapsymbol[DARROW]);
   }    }
   else    else
   {    {
     if(scroll->smoothpos>win->vx-3)scroll->smoothpos=win->vx-3;      if(scroll->smoothpos>win->vx-3)scroll->smoothpos=win->vx-3;
     if(!scroll->smooth)len=(win->vx-3)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos);      if(!scroll->smooth)len=(win->vx-3)*(scroll->pos-scroll->minpos)/
                              (scroll->maxpos-scroll->minpos);
     else len=scroll->smoothpos;      else len=scroll->smoothpos;
     if(len>0)      if(len>0)
     {      {
Line 872  void drawwinscroll(WIN *win)
Line 941  void drawwinscroll(WIN *win)
         cf=scroll->carrowdown;          cf=scroll->carrowdown;
         cb=scroll->cmark;          cb=scroll->cmark;
       }        }
       windowinitdraw(win,cf,cb,false);        _cc_windowinitdraw(win,cf,cb,false);
       if((!hascolors)&&(scroll->spageup==SC_DOWN))win->attr|=A_REVERSE;        if((!_cc_hascolors)&&(scroll->spageup==SC_DOWN))win->attr|=A_REVERSE;
       for(i=0;i<len;i++)addchar(win,0,i+1,hascolors?' ':'-');        for(i=0;i<len;i++)_cc_addchar(win,0,i+1,_cc_hascolors?' ':'-');
     }      }
     if(win->vx-3-len>0)      if(win->vx-3-len>0)
     {      {
Line 888  void drawwinscroll(WIN *win)
Line 957  void drawwinscroll(WIN *win)
         cf=scroll->carrowdown;          cf=scroll->carrowdown;
         cb=scroll->cmark;          cb=scroll->cmark;
       }        }
       windowinitdraw(win,cf,cb,false);        _cc_windowinitdraw(win,cf,cb,false);
       if((!hascolors)&&(scroll->spagedown==SC_DOWN))win->attr|=A_REVERSE;        if((!_cc_hascolors)&&(scroll->spagedown==SC_DOWN))win->attr|=A_REVERSE;
       for(i=0;i<win->vx-3-len;i++)addchar(win,0,i+2+len,hascolors?' ':'-');        for(i=0;i<win->vx-3-len;i++)
           _cc_addchar(win,0,i+2+len,_cc_hascolors?' ':'-');
     }      }
     windowinitdraw(win,scroll->carrowup,scroll->cbar,false);      _cc_windowinitdraw(win,scroll->carrowup,scroll->cbar,false);
     addchar(win,0,len+1,hascolors?' ':'o');      _cc_addchar(win,0,len+1,_cc_hascolors?' ':'o');
     if(scroll->sup==SC_UP)      if(scroll->sup==SC_UP)
     {      {
       cf=scroll->carrowup;        cf=scroll->carrowup;
Line 904  void drawwinscroll(WIN *win)
Line 974  void drawwinscroll(WIN *win)
       cf=scroll->carrowdown;        cf=scroll->carrowdown;
       cb=scroll->cmark;        cb=scroll->cmark;
     }      }
     windowinitdraw(win,cf,cb,false);      _cc_windowinitdraw(win,cf,cb,false);
     if((!hascolors)&&(scroll->sup==SC_DOWN))win->attr|=A_REVERSE;      if((!_cc_hascolors)&&(scroll->sup==SC_DOWN))win->attr|=A_REVERSE;
     if(!uglycharset)win->attr|=A_ALTCHARSET;      if(!_cc_uglycharset)win->attr|=A_ALTCHARSET;
     addchar(win,0,0,mapsymbol[LARROW]);      _cc_addchar(win,0,0,_cc_mapsymbol[LARROW]);
     if(scroll->sdown==SC_UP)      if(scroll->sdown==SC_UP)
     {      {
       cf=scroll->carrowup;        cf=scroll->carrowup;
Line 918  void drawwinscroll(WIN *win)
Line 988  void drawwinscroll(WIN *win)
       cf=scroll->carrowdown;        cf=scroll->carrowdown;
       cb=scroll->cmark;        cb=scroll->cmark;
     }      }
     windowinitdraw(win,cf,cb,false);      _cc_windowinitdraw(win,cf,cb,false);
     if((!hascolors)&&(scroll->sdown==SC_DOWN))win->attr|=A_REVERSE;      if((!_cc_hascolors)&&(scroll->sdown==SC_DOWN))win->attr|=A_REVERSE;
     if(!uglycharset)win->attr|=A_ALTCHARSET;      if(!_cc_uglycharset)win->attr|=A_ALTCHARSET;
     addchar(win,0,win->vx-1,mapsymbol[RARROW]);      _cc_addchar(win,0,win->vx-1,_cc_mapsymbol[RARROW]);
   }    }
   if(scroll->sup==SC_PUSH)scroll->sup=SC_UP;    if(scroll->sup==SC_PUSH)scroll->sup=SC_UP;
   if(scroll->spageup==SC_PUSH)scroll->spageup=SC_UP;    if(scroll->spageup==SC_PUSH)scroll->spageup=SC_UP;
Line 929  void drawwinscroll(WIN *win)
Line 999  void drawwinscroll(WIN *win)
   if(scroll->spagedown==SC_PUSH)scroll->spagedown=SC_UP;    if(scroll->spagedown==SC_PUSH)scroll->spagedown=SC_UP;
 }  }
   
 void drawwinlist(WIN *win,long wx)  void _cc_drawwinlist(Cc_Win *win,long wx)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   LIST *list;    LIST *list;
Line 940  void drawwinlist(WIN *win,long wx)
Line 1010  void drawwinlist(WIN *win,long wx)
   long poz,actline,scrpos,hpos,i,numlines,x,bx;    long poz,actline,scrpos,hpos,i,numlines,x,bx;
   char cf,cb;    char cf,cb;
   bool isfocus;    bool isfocus;
   if((list->combotyp==CC_LI_COMBO)&&(capturewin==NULL)&&isactive(win))capturewin=win;    if((list->combotyp==CC_LI_COMBO)&&(_cc_capturewin==NULL)&&_cc_isactive(win))
       _cc_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;
   if(vscroll->pos>vscroll->maxpos)vscroll->pos=vscroll->maxpos;    if(vscroll->pos>vscroll->maxpos)vscroll->pos=vscroll->maxpos;
   isfocus=win==focuswin;    isfocus=win==_cc_focuswin;
   actline=list->activeline;    actline=list->activeline;
   if(list->activeline<0)list->activeline=0;    if(list->activeline<0)list->activeline=0;
   numlines=list->numlines;    numlines=list->numlines;
   if(list->activeline>numlines-1)list->activeline=numlines-1;    if(list->activeline>numlines-1)list->activeline=numlines-1;
   setlistactiveitem(list,actline,list->activeline);    _cc_setlistactiveitem(list,actline,list->activeline);
   actline=list->activeline;    actline=list->activeline;
   scrpos=vscroll->pos;    scrpos=vscroll->pos;
   setlistscrollupitem(list,list->oldscrollpos,scrpos);    _cc_setlistscrollupitem(list,list->oldscrollpos,scrpos);
   list->oldscrollpos=scrpos;    list->oldscrollpos=scrpos;
   hpos=hscroll->pos;    hpos=hscroll->pos;
   poz=actline-vscroll->pos;    poz=actline-vscroll->pos;
   windowinitdraw(win,list->cborder,win->cback,true);    _cc_windowinitdraw(win,list->cborder,win->cback,true);
   mbox(win,0,0,win->vx,win->vy);    _cc_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!=CC_LI_COMBO))addsymbol(win,0,poz+1,mapsymbol[LTEE]);      if((!_cc_hascolors)&&(list->combotyp!=CC_LI_COMBO))
         _cc_addsymbol(win,0,poz+1,_cc_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);      _cc_windowinitdraw(win,cf,cb,false);
     if(!hascolors)if(isfocus)win->attr|=A_REVERSE;      if(!_cc_hascolors)if(isfocus)win->attr|=A_REVERSE;
     for(i=0;i<win->vx-2;i++)addchar(win,poz+1,i+1,' ');      for(i=0;i<win->vx-2;i++)_cc_addchar(win,poz+1,i+1,' ');
   }    }
   if(wx<win->vx)wx++;    if(wx<win->vx)wx++;
   if(list->combotyp==CC_LI_TABLE)    if(list->combotyp==CC_LI_TABLE)
   {    {
     windowinitdraw(win,list->ccells,win->cback,false);      _cc_windowinitdraw(win,list->ccells,win->cback,false);
     sc=list->lencells;      sc=list->lencells;
     poz=-hpos;      poz=-hpos;
     cf=isfocus?list->cactivetext:list->cseltext;      cf=isfocus?list->cactivetext:list->cseltext;
Line 980  void drawwinlist(WIN *win,long wx)
Line 1052  void drawwinlist(WIN *win,long wx)
     {      {
       if((poz>0)&&(poz<wx-1))        if((poz>0)&&(poz<wx-1))
       {        {
         mvline(win,poz,1,win->vy-2);          _cc_mvline(win,poz,1,win->vy-2);
         i=actline-scrpos+1;          i=actline-scrpos+1;
         if((i>0)&&(i<win->vy-1))          if((i>0)&&(i<win->vy-1))
         {          {
           windowinitdraw(win,cf,cb,false);            _cc_windowinitdraw(win,cf,cb,false);
           if(!hascolors)if(isfocus)win->attr|=A_REVERSE;            if(!_cc_hascolors)if(isfocus)win->attr|=A_REVERSE;
           mvline(win,poz,i,1);            _cc_mvline(win,poz,i,1);
           windowinitdraw(win,list->ccells,win->cback,false);            _cc_windowinitdraw(win,list->ccells,win->cback,false);
         }          }
       }        }
       poz+=(long)sc->data+1;        poz+=(long)sc->data+1;
Line 1002  void drawwinlist(WIN *win,long wx)
Line 1074  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);        _cc_windowinitdraw(win,cf,cb,false);
       if((!hascolors)&&(i==actline))if(isfocus)win->attr|=A_REVERSE;        if((!_cc_hascolors)&&(i==actline))if(isfocus)win->attr|=A_REVERSE;
       if(list->combotyp!=CC_LI_TABLE)        if(list->combotyp!=CC_LI_TABLE)
       {        {
         if(strlen(lines->data)>hpos)          if(strlen(lines->data)>hpos)
         {          {
           sprintf(s,"%%.%lds\0",wx-2);            sprintf(s,"%%.%lds\0",wx-2);
           mprintw(win,i-scrpos+1,1,s,(char*)lines->data+hpos);            _cc_mprintw(win,i-scrpos+1,1,s,(char*)lines->data+hpos);
         }          }
       }        }
       else        else
Line 1029  void drawwinlist(WIN *win,long wx)
Line 1101  void drawwinlist(WIN *win,long wx)
           if(strlen(sl->data)>bx)            if(strlen(sl->data)>bx)
           {            {
             sprintf(s,"%%.%lds\0",wx-1-x);              sprintf(s,"%%.%lds\0",wx-1-x);
             mprintw(win,i-scrpos+1,x,s,(char*)sl->data+bx);              _cc_mprintw(win,i-scrpos+1,x,s,(char*)sl->data+bx);
           }            }
           poz+=(long)sc->data+1;            poz+=(long)sc->data+1;
           sc=g_slist_next(sc);            sc=g_slist_next(sc);
Line 1041  void drawwinlist(WIN *win,long wx)
Line 1113  void drawwinlist(WIN *win,long wx)
     lines=g_list_next(lines);      lines=g_list_next(lines);
   }    }
   actline=list->activeline;    actline=list->activeline;
   if(list->exvscroll==EX_UP)if(vscroll->pos>vscroll->minpos){vscroll->pos--;list->activeline--;}    if(list->exvscroll==EX_UP)
   if(list->exvscroll==EX_DOWN)if(vscroll->pos<vscroll->maxpos){vscroll->pos++;list->activeline++;}      if(vscroll->pos>vscroll->minpos)
   setlistactiveitem(list,actline,list->activeline);      {
   if(list->exhscroll==EX_UP)if(hscroll->pos>hscroll->minpos){hscroll->pos--;}        vscroll->pos--;list->activeline--;
   if(list->exhscroll==EX_DOWN)if(hscroll->pos<hscroll->maxpos){hscroll->pos++;}        _cc_redrawclientwin(list->vscroll);
       }
     if(list->exvscroll==EX_DOWN)
       if(vscroll->pos<vscroll->maxpos)
       {
         vscroll->pos++;list->activeline++;
         _cc_redrawclientwin(list->vscroll);
       }
     _cc_setlistactiveitem(list,actline,list->activeline);
     if(list->exhscroll==EX_UP)if(hscroll->pos>hscroll->minpos)
     {
       hscroll->pos--;
       _cc_redrawclientwin(list->hscroll);
     }
     if(list->exhscroll==EX_DOWN)if(hscroll->pos<hscroll->maxpos)
     {
       hscroll->pos++;
       _cc_redrawclientwin(list->hscroll);
     }
 }  }
   
 void drawwincombo(WIN *win)  void _cc_drawwincombo(Cc_Win *win)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   long i,numlines;    long i,numlines;
Line 1064  void drawwincombo(WIN *win)
Line 1154  void drawwincombo(WIN *win)
   long actline=combo->activeline;    long actline=combo->activeline;
   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;
   setcomboactiveitem(combo,actline,combo->activeline);    _cc_setcomboactiveitem(combo,actline,combo->activeline);
   if(combo->activeitem!=NULL)data=combo->activeitem->data;    if(combo->activeitem!=NULL)data=combo->activeitem->data;
   if(data!=NULL)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;
Line 1075  void drawwincombo(WIN *win)
Line 1165  void drawwincombo(WIN *win)
   if(pushed>1)pushed=1;    if(pushed>1)pushed=1;
   if(combo->edit==NULL)    if(combo->edit==NULL)
   {    {
     whatcol=!((win==focuswin)&&(!combo->list->active));      whatcol=!((win==_cc_focuswin)&&(!combo->list->active));
     cb=whatcol?win->cback:list->cactive;      cb=whatcol?win->cback:list->cactive;
     cf=whatcol?list->ctext:list->cactivetext;      cf=whatcol?list->ctext:list->cactivetext;
     windowinitdraw(win,cf,cb,true);      _cc_windowinitdraw(win,cf,cb,true);
     sprintf(s,"%%.%lds\0",win->vx-1+combo->scroll);      sprintf(s,"%%.%lds\0",win->vx-1+combo->scroll);
     if(!hascolors)      if(!_cc_hascolors)
     {      {
       if(focuswin==win)win->attr|=A_REVERSE;        if(_cc_focuswin==win)win->attr|=A_REVERSE;
       win->attr|=A_UNDERLINE;        win->attr|=A_UNDERLINE;
       for(i=0;i<win->vx-1;i++)addchar(win,0,i,'_');        for(i=0;i<win->vx-1;i++)_cc_addchar(win,0,i,'_');
     }      }
     else for(i=0;i<win->vx-1;i++)addchar(win,0,i,' ');      else for(i=0;i<win->vx-1;i++)_cc_addchar(win,0,i,' ');
     if(data!=NULL)mprintw(win,0,-combo->scroll,s,data);      if(data!=NULL)_cc_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);    _cc_windowinitdraw(win,cf,cb,false);
   if((!hascolors)&&(pushed==0))win->attr|=A_REVERSE;    if((!_cc_hascolors)&&(pushed==0))win->attr|=A_REVERSE;
   if(!uglycharset)win->attr|=A_ALTCHARSET;    if(!_cc_uglycharset)win->attr|=A_ALTCHARSET;
   addchar(win,0,win->vx-1,mapsymbol[DARROW]);    _cc_addchar(win,0,win->vx-1,_cc_mapsymbol[DARROW]);
 }  }
   
 void drawwinstatus(WIN *win)  void _cc_drawwinstatus(Cc_Win *win)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   long x,y,i;    long x,y,i;
Line 1112  void drawwinstatus(WIN *win)
Line 1202  void drawwinstatus(WIN *win)
     sprintf(s,"%ld%s\0",status->pos,status->text);      sprintf(s,"%ld%s\0",status->pos,status->text);
     l=strlen(s);      l=strlen(s);
     x=(win->vy-l)/2;      x=(win->vy-l)/2;
     windowinitdraw(win,status->ctfull,status->cbfull,false);      _cc_windowinitdraw(win,status->ctfull,status->cbfull,false);
     if(!hascolors)win->attr|=A_UNDERLINE|A_REVERSE;      if(!_cc_hascolors)win->attr|=A_UNDERLINE|A_REVERSE;
     for(i=win->vy;i>=y;i--)      for(i=win->vy;i>=y;i--)
     {      {
       if(((i<x)||(i>=x+l))||(!status->vtext)){if(hascolors)c=' ';else c='_';}else c=s[i-x];        if(((i<x)||(i>=x+l))||(!status->vtext))
       addchar(win,i,0,c);          {if(_cc_hascolors)c=' ';else c='_';}else c=s[i-x];
         _cc_addchar(win,i,0,c);
     }      }
     windowinitdraw(win,status->ctclear,win->cback,false);      _cc_windowinitdraw(win,status->ctclear,win->cback,false);
     if(!hascolors)win->attr|=A_UNDERLINE;      if(!_cc_hascolors)win->attr|=A_UNDERLINE;
     for(;i>=0;i--)      for(;i>=0;i--)
     {      {
       if(((i<x)||(i>=x+l))||(!status->vtext)){if(hascolors)c=' ';else c='_';}else c=s[i-x];        if(((i<x)||(i>=x+l))||(!status->vtext))
       addchar(win,i,0,c);          {if(_cc_hascolors)c=' ';else c='_';}else c=s[i-x];
         _cc_addchar(win,i,0,c);
     }      }
   }    }
   else    else
Line 1133  void drawwinstatus(WIN *win)
Line 1225  void drawwinstatus(WIN *win)
     sprintf(s,"%ld%s\0",status->pos,status->text);      sprintf(s,"%ld%s\0",status->pos,status->text);
     l=strlen(s);      l=strlen(s);
     y=(win->vx-l)/2;      y=(win->vx-l)/2;
     windowinitdraw(win,status->ctfull,status->cbfull,false);      _cc_windowinitdraw(win,status->ctfull,status->cbfull,false);
     if(!hascolors)win->attr|=A_UNDERLINE|A_REVERSE;      if(!_cc_hascolors)win->attr|=A_UNDERLINE|A_REVERSE;
     for(i=0;i<x;i++)      for(i=0;i<x;i++)
     {      {
       if(((i<y)||(i>=y+l))||(!status->vtext)){if(hascolors)c=' ';else c='_';}else c=s[i-y];        if(((i<y)||(i>=y+l))||(!status->vtext))
       addchar(win,0,i,c);          {if(_cc_hascolors)c=' ';else c='_';}else c=s[i-y];
         _cc_addchar(win,0,i,c);
     }      }
     windowinitdraw(win,status->ctclear,win->cback,false);      _cc_windowinitdraw(win,status->ctclear,win->cback,false);
     if(!hascolors)win->attr|=A_UNDERLINE;      if(!_cc_hascolors)win->attr|=A_UNDERLINE;
     for(;i<win->vx;i++)      for(;i<win->vx;i++)
     {      {
       if(((i<y)||(i>=y+l))||(!status->vtext)){if(hascolors)c=' ';else c='_';}else c=s[i-y];        if(((i<y)||(i>=y+l))||(!status->vtext))
       addchar(win,0,i,c);          {if(_cc_hascolors)c=' ';else c='_';}else c=s[i-y];
         _cc_addchar(win,0,i,c);
     }      }
   }    }
 }  }
   
 void drawwinpaint(WIN *win)  void _cc_drawwinpaint(Cc_Win *win)
 {  {
   PAINT *paint=(PAINT*)win->extra;    PAINT *paint=(PAINT*)win->extra;
   if(paint->style==CC_PA_SOLID)    if(paint->style==CC_PA_SOLID)
   {    {
     windowinitdraw(win,paint->color,win->cback,true);      _cc_windowinitdraw(win,paint->color,win->cback,true);
   }    }
   else if(paint->style==CC_PA_PATTERN)    else if(paint->style==CC_PA_PATTERN)
   {    {
     windowinitdraw(win,paint->color,win->cback,4);      _cc_windowinitdraw(win,paint->color,win->cback,4);
   }    }
   else if(paint->style==CC_PA_BORDER)    else if(paint->style==CC_PA_BORDER)
   {    {
     windowinitdraw(win,paint->color,win->cback,true);      _cc_windowinitdraw(win,paint->color,win->cback,true);
     if((win->vx==1)&&(win->vy>1))mvline(win,0,0,win->vy);      if((win->vx==1)&&(win->vy>1))_cc_mvline(win,0,0,win->vy);
     else if((win->vx>1)&&(win->vy==1))mhline(win,0,0,win->vx);      else if((win->vx>1)&&(win->vy==1))_cc_mhline(win,0,0,win->vx);
     else if((win->vx>1)&&(win->vy>1))mbox(win,0,0,win->vx,win->vy);      else if((win->vx>1)&&(win->vy>1))_cc_mbox(win,0,0,win->vx,win->vy);
   }    }
 }  }
   
 void drawwinmenu(WIN *win,long wx)  void _cc_drawwinmenu(Cc_Win *win,long wx)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   MENU *menu;    MENU *menu;
Line 1179  void drawwinmenu(WIN *win,long wx)
Line 1273  void drawwinmenu(WIN *win,long wx)
   long poz,actline,i,j,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=_cc_isfocused(win);
   if(!isfocus)    if(!isfocus)
   {    {
     menu->activeline=-1;      menu->activeline=-1;
     if(capturewin==win)capturewin=NULL;      if(_cc_capturewin==win)_cc_capturewin=NULL;
   }    }
   if(menu->activeline<-1)menu->activeline=-1;    if(menu->activeline<-1)menu->activeline=-1;
   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,hascolors?true:3);    _cc_windowinitdraw(win,menu->cborder,win->cback,_cc_hascolors?true:3);
   if(menu->vert)    if(menu->vert)
   {    {
     mbox(win,0,0,win->vx,win->vy);      _cc_mbox(win,0,0,win->vx,win->vy);
     if((actline>=0)&&(actline<=win->vy-1-2))      if((actline>=0)&&(actline<=win->vy-1-2))
     {      {
       cf=isfocus?menu->cactivetext:menu->cactivetext;        cf=isfocus?menu->cactivetext:menu->cactivetext;
       cb=isfocus?menu->cactive:menu->cactive;        cb=isfocus?menu->cactive:menu->cactive;
       windowinitdraw(win,cf,cb,false);        _cc_windowinitdraw(win,cf,cb,false);
       if(!hascolors)if(isfocus)win->attr|=A_REVERSE;        if(!_cc_hascolors)if(isfocus)win->attr|=A_REVERSE;
       for(i=0;i<win->vx-2;i++)addchar(win,actline+1,i+1,' ');        for(i=0;i<win->vx-2;i++)_cc_addchar(win,actline+1,i+1,' ');
     }      }
     if(wx<win->vx)wx++;      if(wx<win->vx)wx++;
     lines=menu->lines;      lines=menu->lines;
     scoffs=4;      scoffs=4;
     while(lines!=NULL)      while(lines!=NULL)
     {      {
       i=strlenmenu(((CMENU*)lines->data)->text)+4;        i=_cc_strlenmenu(((Cc_Menu_I*)lines->data)->text)+4;
       if(scoffs<i)scoffs=i;        if(scoffs<i)scoffs=i;
       lines=g_list_next(lines);        lines=g_list_next(lines);
     }      }
Line 1219  void drawwinmenu(WIN *win,long wx)
Line 1313  void drawwinmenu(WIN *win,long wx)
         cf=(i!=actline)?menu->ctext:menu->cactivetext;          cf=(i!=actline)?menu->ctext:menu->cactivetext;
         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);          _cc_windowinitdraw(win,cf,cb,false);
         if(!hascolors)          if(!_cc_hascolors)
           if(!((i==actline)&&(isfocus)))            if(!((i==actline)&&(isfocus)))
           {            {
             attrplus=A_REVERSE;              attrplus=A_REVERSE;
Line 1228  void drawwinmenu(WIN *win,long wx)
Line 1322  void drawwinmenu(WIN *win,long wx)
           }            }
           else            else
           {            {
             for(j=1;j<wx-1;j++)addchar(win,i+1,j,' ');              for(j=1;j<wx-1;j++)_cc_addchar(win,i+1,j,' ');
           }            }
         if(((CMENU*)lines->data)->checked)addchar(win,i+1,1,'*');          if(((Cc_Menu_I*)lines->data)->checked)_cc_addchar(win,i+1,1,'*');
         if(strlenmenu(((CMENU*)lines->data)->text)>0)          if(_cc_strlenmenu(((Cc_Menu_I*)lines->data)->text)>0)
         {          {
           sprintf(s,"%%.%lds\0",wx-2-1);            sprintf(s,"%%.%lds\0",wx-2-1);
           mprintwmenu(win,i+1,1+1,cb,cf,cfu,attrplus,s,((CMENU*)lines->data)->text);            _cc_mprintwmenu(win,i+1,1+1,cb,cf,cfu,attrplus,s,
                         ((Cc_Menu_I*)lines->data)->text);
         }          }
         else if(strcmp(((CMENU*)lines->data)->text,"-")==0)          else if(strcmp(((Cc_Menu_I*)lines->data)->text,"-")==0)
           mhline(win,1+1,i+1,win->vx-4);            _cc_mhline(win,1+1,i+1,win->vx-4);
         mprintw(win,i+1,scoffs,getshortcuttext(((CMENU*)lines->data)->shortcut),          _cc_mprintw(win,i+1,scoffs,
                 ((CMENU*)lines->data)->text);                  _cc_getshortcuttext(((Cc_Menu_I*)lines->data)->shortcut),
         if(((CMENU*)lines->data)->submenu!=NULL)                  ((Cc_Menu_I*)lines->data)->text);
           if(((Cc_Menu_I*)lines->data)->submenu!=NULL)
         {          {
           if(!uglycharset)win->attr|=A_ALTCHARSET;            if(!_cc_uglycharset)win->attr|=A_ALTCHARSET;
           addchar(win,i+1,win->vx-2,mapsymbol[RARROW]);            _cc_addchar(win,i+1,win->vx-2,_cc_mapsymbol[RARROW]);
         }          }
       }        }
       lines=g_list_next(lines);        lines=g_list_next(lines);
Line 1261  void drawwinmenu(WIN *win,long wx)
Line 1357  void drawwinmenu(WIN *win,long wx)
         cf=(i!=actline)?menu->ctext:menu->cactivetext;          cf=(i!=actline)?menu->ctext:menu->cactivetext;
         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);          _cc_windowinitdraw(win,cf,cb,false);
         if((!hascolors)&&!((i==actline)&&isfocus))          if((!_cc_hascolors)&&!((i==actline)&&isfocus))
         {          {
           attrplus=A_REVERSE;            attrplus=A_REVERSE;
           win->attr|=attrplus;            win->attr|=attrplus;
Line 1270  void drawwinmenu(WIN *win,long wx)
Line 1366  void drawwinmenu(WIN *win,long wx)
         len=0;          len=0;
         if(lines!=NULL)          if(lines!=NULL)
           if(lines->data!=NULL)            if(lines->data!=NULL)
             if(((CMENU*)lines->data)->text!=NULL)              if(((Cc_Menu_I*)lines->data)->text!=NULL)
               len=strlenmenu(((CMENU*)lines->data)->text);                len=_cc_strlenmenu(((Cc_Menu_I*)lines->data)->text);
         if(len>0)          if(len>0)
         {          {
           sprintf(s,"%%.%lds\0",wx);            sprintf(s,"%%.%lds\0",wx);
           mprintwmenu(win,0,poz,cb,cf,cfu,attrplus,s,((CMENU*)lines->data)->text);            _cc_mprintwmenu(win,0,poz,cb,cf,cfu,attrplus,s,
                         ((Cc_Menu_I*)lines->data)->text);
         }          }
         if(i==actline)          if(i==actline)
         {          {
           addchar(win,0,poz-1,' ');            _cc_addchar(win,0,poz-1,' ');
           addchar(win,0,poz+len,' ');            _cc_addchar(win,0,poz+len,' ');
         }          }
       }        }
       poz+=len+2;        poz+=len+2;
Line 1289  void drawwinmenu(WIN *win,long wx)
Line 1386  void drawwinmenu(WIN *win,long wx)
   }    }
 }  }
   
 void drawwindialog(WIN *win,long wx)  void _cc_drawwindialog(Cc_Win *win,long wx)
 {  {
   char s[MAXLEN_NUMBER_STRING];    char s[MAXLEN_NUMBER_STRING];
   DIALOG *dialog=&win->extra->dialog;    DIALOG *dialog=&win->extra->dialog;
Line 1298  void drawwindialog(WIN *win,long wx)
Line 1395  void drawwindialog(WIN *win,long wx)
   n=8;    n=8;
   if((dialog->style&CC_ST_DI_HASMAXIMIZE)==CC_ST_DI_HASMAXIMIZE)n++;    if((dialog->style&CC_ST_DI_HASMAXIMIZE)==CC_ST_DI_HASMAXIMIZE)n++;
   if((dialog->style&CC_ST_DI_HASMINIMIZE)==CC_ST_DI_HASMINIMIZE)n++;    if((dialog->style&CC_ST_DI_HASMINIMIZE)==CC_ST_DI_HASMINIMIZE)n++;
   if(isfocused(win))c=dialog->cbactive;else c=dialog->cbinactive;    if(_cc_isfocused(win))c=dialog->cbactive;else c=dialog->cbinactive;
   windowinitdraw(win,c,win->cback,true);    _cc_windowinitdraw(win,c,win->cback,true);
   if(win->vy!=1)mbox(win,0,0,win->vx,win->vy);else mhline(win,0,0,win->vx);    if(win->vy!=1)_cc_mbox(win,0,0,win->vx,win->vy);
     else _cc_mhline(win,0,0,win->vx);
   wx-=3;    wx-=3;
   if(wx>win->vx-n)wx=win->vx-n;    if(wx>win->vx-n)wx=win->vx-n;
   sprintf(s,"%%.%lds\0",wx);    sprintf(s,"%%.%lds\0",wx);
   addchar(win,0,2,' ');    _cc_addchar(win,0,2,' ');
   mprintw(win,0,3,s,dialog->caption);    _cc_mprintw(win,0,3,s,dialog->caption);
   olen=strlen(dialog->caption);    olen=strlen(dialog->caption);
   addchar(win,0,3+(olen<wx?olen:wx),' ');    _cc_addchar(win,0,3+(olen<wx?olen:wx),' ');
   addchar(win,0,win->vx-n+4,'[');    _cc_addchar(win,0,win->vx-n+4,'[');
   addchar(win,0,win->vx-2,']');    _cc_addchar(win,0,win->vx-2,']');
 }  }
   
 void drawwinfade(WIN *win,long x,long y)  void _cc_drawwinfade(Cc_Win *win,long x,long y)
 {  {
   long i,j;    long i,j;
   for(j=y;j<y+win->vy;j++)    for(j=y;j<y+win->vy;j++)
     for(i=x;i<x+win->vx;i++)      for(i=x;i<x+win->vx;i++)
       maddch(&mainwin,j,i,fadecolor(minch(&mainwin,j,i)));        _cc_maddch(&_cc_mainwin,j,i,_cc_fadecolor(_cc_minch(&_cc_mainwin,j,i)));
 }  }

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

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