| version 1.4, 2005/11/27 20:14:50 |
version 1.5, 2005/11/29 18:46:31 |
|
|
| /* |
/* |
| Name: lc_extra.c |
Name: cc_extra.c |
| Author: Michal Sudolsky |
Author: Michal Sudolsky <michals@sulysoft.com> |
| Date: 22.09.2005 14:26 |
Date: 22.09.2005 14:26 |
| */ |
*/ |
| // modified by Juraj Kolesar <koli@koli.sk> |
// modified by Juraj Kolesar <koli@koli.sk> |
| Line 121 void setcomboparams(WIN *win,PUNION *par |
|
| Line 121 void setcomboparams(WIN *win,PUNION *par |
|
| list->cactivetext=pcombo->lstcactivetext!=C_DEFAULT?pcombo->lstcactivetext:C_LBLACK; |
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; |
| |
setuplistparams(combo->list); |
| 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; |
| Line 144 void setlistparams(WIN *win,PUNION *para |
|
| Line 145 void setlistparams(WIN *win,PUNION *para |
|
| SCROLL *scroll2=&list->hscroll->extra->scroll; |
SCROLL *scroll2=&list->hscroll->extra->scroll; |
| PLIST *plist=¶ms->list; |
PLIST *plist=¶ms->list; |
| win->cback=plist->cback!=C_DEFAULT?plist->cback:C_BLACK; |
win->cback=plist->cback!=C_DEFAULT?plist->cback:C_BLACK; |
| |
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!=C_DEFAULT?plist->cborder:C_LWHITE; |
| list->ccells=plist->ccells!=C_DEFAULT?plist->ccells:C_WHITE; |
list->ccells=plist->ccells!=C_DEFAULT?plist->ccells:C_WHITE; |
| Line 161 void setlistparams(WIN *win,PUNION *para |
|
| Line 163 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)) |
setuplistparams(win); |
| { |
setlistactiveitem(list,actline,list->activeline); |
| 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 483 void checkwinlist(WIN *win) |
|
| Line 480 void checkwinlist(WIN *win) |
|
| SCROLL *hscroll,*vscroll; |
SCROLL *hscroll,*vscroll; |
| list=&win->extra->list; |
list=&win->extra->list; |
| long poz,maxlen,i,len; |
long poz,maxlen,i,len; |
| maxlen=0; |
maxlen=list->maxitemlen; |
| lines=list->lines; |
lines=list->lines; |
| |
|
| |
|
| // this may be in list setup function |
|
| if(list->combotyp!=CT_TABLE) |
|
| { |
|
| while(lines!=NULL) |
|
| { |
|
| if(lines->data==NULL)continue; |
|
| 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 530 void checkwinlist(WIN *win) |
|
| Line 498 void checkwinlist(WIN *win) |
|
| } |
} |
| vscroll=&list->vscroll->extra->scroll; |
vscroll=&list->vscroll->extra->scroll; |
| hscroll=&list->hscroll->extra->scroll; |
hscroll=&list->hscroll->extra->scroll; |
| len=g_list_length(list->lines); |
len=list->numlines; |
| if(len>win->vy-2) |
if(len>win->vy-2) |
| { |
{ |
| list->vscroll->x=win->vx-list->vscroll->vx; |
list->vscroll->x=win->vx-list->vscroll->vx; |
| Line 977 void drawwinlist(WIN *win,long wx) |
|
| Line 945 void drawwinlist(WIN *win,long wx) |
|
| 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==focuswin; |
| |
actline=list->activeline; |
| if(list->activeline<0)list->activeline=0; |
if(list->activeline<0)list->activeline=0; |
| numlines=g_list_length(list->lines); |
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); |
| actline=list->activeline; |
actline=list->activeline; |
| scrpos=vscroll->pos; |
scrpos=vscroll->pos; |
| hpos=hscroll->pos; |
hpos=hscroll->pos; |
| Line 996 void drawwinlist(WIN *win,long wx) |
|
| Line 966 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) |
if(list->combotyp==CT_TABLE) |
| { |
{ |
| windowinitdraw(win,list->ccells,win->cback,false); |
windowinitdraw(win,list->ccells,win->cback,false); |
| Line 1095 void drawwinlist(WIN *win,long wx) |
|
| Line 1036 void drawwinlist(WIN *win,long wx) |
|
| } |
} |
| lines=g_list_next(lines); |
lines=g_list_next(lines); |
| } |
} |
| |
actline=list->activeline; |
| if(list->exvscroll==EX_UP)if(vscroll->pos>vscroll->minpos){vscroll->pos--;list->activeline--;} |
if(list->exvscroll==EX_UP)if(vscroll->pos>vscroll->minpos){vscroll->pos--;list->activeline--;} |
| if(list->exvscroll==EX_DOWN)if(vscroll->pos<vscroll->maxpos){vscroll->pos++;list->activeline++;} |
if(list->exvscroll==EX_DOWN)if(vscroll->pos<vscroll->maxpos){vscroll->pos++;list->activeline++;} |
| |
setlistactiveitem(list,actline,list->activeline); |
| if(list->exhscroll==EX_UP)if(hscroll->pos>hscroll->minpos){hscroll->pos--;} |
if(list->exhscroll==EX_UP)if(hscroll->pos>hscroll->minpos){hscroll->pos--;} |
| if(list->exhscroll==EX_DOWN)if(hscroll->pos<hscroll->maxpos){hscroll->pos++;} |
if(list->exhscroll==EX_DOWN)if(hscroll->pos<hscroll->maxpos){hscroll->pos++;} |
| } |
} |
| Line 1113 void drawwincombo(WIN *win) |
|
| Line 1056 void drawwincombo(WIN *win) |
|
| list=&combo->list->extra->list; |
list=&combo->list->extra->list; |
| bool whatcol; |
bool whatcol; |
| long pushed; |
long pushed; |
| numlines=g_list_length(list->lines); |
numlines=list->numlines; |
| 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(list->lines,combo->activeline)->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; |
| if(combo->scroll<0)combo->scroll=0; |
if(combo->scroll<0)combo->scroll=0; |