| version 1.4, 2005/12/01 18:52:29 |
version 1.5, 2005/12/02 17:15:00 |
| Line 91 void fobsizeokproc(WIN *win,long *x,long |
|
| Line 91 void fobsizeokproc(WIN *win,long *x,long |
|
| |
|
| bool fobdialogacelproc(WIN *win,long x,long y,unsigned short key) |
bool fobdialogacelproc(WIN *win,long x,long y,unsigned short key) |
| { |
{ |
| if(key==KK_ESC)((TUFOB*)(win->user))->i=0; |
if(key==CC_K_ESC)((TUFOB*)(win->user))->i=0; |
| return send_message(win,x,y,key); |
return send_message(win,x,y,key); |
| } |
} |
| |
|
| Line 125 void cbcombochangeproc(WIN *win) |
|
| Line 125 void cbcombochangeproc(WIN *win) |
|
| long color=win->extra->combo.activeline; |
long color=win->extra->combo.activeline; |
| TUCB *tucb=(TUCB*)(win->parent->user); |
TUCB *tucb=(TUCB*)(win->parent->user); |
| WIN *p1=tucb->p1,*p2=tucb->p2; |
WIN *p1=tucb->p1,*p2=tucb->p2; |
| move_win(p1,(color%4)*2+5,NOCHANGE,NOCHANGE,NOCHANGE,NOCHANGE); |
move_win(p1,(color%4)*2+5,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE); |
| move_win(p2,NOCHANGE,(color/4)+3,NOCHANGE,NOCHANGE,NOCHANGE); |
move_win(p2,CC_NOCHANGE,(color/4)+3,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE); |
| } |
} |
| |
|
| bool cbpaintacelproc(WIN *win,long x,long y,unsigned short key) |
bool cbpaintacelproc(WIN *win,long x,long y,unsigned short key) |
| { |
{ |
| if(key==MM_LBUTTONDOWN) |
if(key==CC_M_LBUTTONDOWN) |
| { |
{ |
| long color=(long)win->user; |
long color=(long)win->user; |
| TUCB *tucb=(TUCB*)(win->parent->user); |
TUCB *tucb=(TUCB*)(win->parent->user); |
| WIN *combo=tucb->combo,*p1=tucb->p1,*p2=tucb->p2; |
WIN *combo=tucb->combo,*p1=tucb->p1,*p2=tucb->p2; |
| set_pos(combo,color); |
set_pos(combo,color); |
| move_win(p1,(color%4)*2+5,NOCHANGE,NOCHANGE,NOCHANGE,NOCHANGE); |
move_win(p1,(color%4)*2+5,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE); |
| move_win(p2,NOCHANGE,(color/4)+3,NOCHANGE,NOCHANGE,NOCHANGE); |
move_win(p2,CC_NOCHANGE,(color/4)+3,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE); |
| } |
} |
| return send_message(win,x,y,key); |
return send_message(win,x,y,key); |
| } |
} |
| |
|
| bool cbdialogacelproc(WIN *win,long x,long y,unsigned short key) |
bool cbdialogacelproc(WIN *win,long x,long y,unsigned short key) |
| { |
{ |
| if(key==KK_ESC)((TUCB*)(win->user))->i=-1; |
if(key==CC_K_ESC)((TUCB*)(win->user))->i=-1; |
| return send_message(win,x,y,key); |
return send_message(win,x,y,key); |
| } |
} |
| |
|
| Line 161 void cbpushproc(WIN *sender) |
|
| Line 161 void cbpushproc(WIN *sender) |
|
| |
|
| bool mbdialogacelproc(WIN *win,long x,long y,unsigned short key) |
bool mbdialogacelproc(WIN *win,long x,long y,unsigned short key) |
| { |
{ |
| if(key==KK_ESC)win->user=(void*)MB_CANCEL; |
if(key==CC_K_ESC)win->user=(void*)CC_MB_CANCEL; |
| return send_message(win,x,y,key); |
return send_message(win,x,y,key); |
| } |
} |
| |
|
| void mbcloseproc(WIN *sender) |
void mbcloseproc(WIN *sender) |
| { |
{ |
| sender->user=(void*)MB_CANCEL; |
sender->user=(void*)CC_MB_CANCEL; |
| } |
} |
| |
|
| void mbpushproc(WIN *sender) |
void mbpushproc(WIN *sender) |
| Line 177 void mbpushproc(WIN *sender) |
|
| Line 177 void mbpushproc(WIN *sender) |
|
| |
|
| bool claeditacel(WIN *sender,long x,long y,unsigned short key) |
bool claeditacel(WIN *sender,long x,long y,unsigned short key) |
| { |
{ |
| if((key&KKMASK)==KK_TAB)return false; |
if((key&CC_MASK_KEY)==CC_K_TAB)return false; |
| bool ret=send_message(sender,x,y,key); |
bool ret=send_message(sender,x,y,key); |
| if(key==MM_LBUTTONDOWN)set_focus(sender->parent); |
if(key==CC_M_LBUTTONDOWN)set_focus(sender->parent); |
| return ret; |
return ret; |
| } |
} |
| |
|
| Line 221 void setuplistparams(WIN *win) |
|
| Line 221 void setuplistparams(WIN *win) |
|
| list->activeitem=g_list_nth(list->lines,list->activeline); |
list->activeitem=g_list_nth(list->lines,list->activeline); |
| list->oldscrollpos=list->vscroll->extra->scroll.pos; |
list->oldscrollpos=list->vscroll->extra->scroll.pos; |
| list->scrollupitem=g_list_nth(list->lines,list->oldscrollpos); |
list->scrollupitem=g_list_nth(list->lines,list->oldscrollpos); |
| if(list->combotyp!=CT_TABLE) |
if(list->combotyp!=CC_LI_TABLE) |
| { |
{ |
| list->maxitemlen=0; |
list->maxitemlen=0; |
| lines=list->lines; |
lines=list->lines; |
| Line 396 char *getshortcuttext(unsigned short sho |
|
| Line 396 char *getshortcuttext(unsigned short sho |
|
| { |
{ |
| static char s[MAXLEN_SHORTCUT_STRING]; |
static char s[MAXLEN_SHORTCUT_STRING]; |
| char *c; |
char *c; |
| unsigned short mod=shortcut&MDMASK,key=shortcut&KKMASK; |
unsigned short mod=shortcut&CC_MASK_MOD,key=shortcut&CC_MASK_KEY; |
| s[0]='\0'; |
s[0]='\0'; |
| if(key>=CCOFFSET) |
if(key>=CC_OFFSET_C) |
| { |
{ |
| if((mod&MD_CTRL)==MD_CTRL)sprintf(s,"%s%s",s,"CTRL+"); |
if((mod&CC_D_CTRL)==CC_D_CTRL)sprintf(s,"%s%s",s,"CTRL+"); |
| if((mod&MD_ALT)==MD_ALT)sprintf(s,"%s%s",s,"ALT+"); |
if((mod&CC_D_ALT)==CC_D_ALT)sprintf(s,"%s%s",s,"ALT+"); |
| if((mod&MD_SHIFT)==MD_SHIFT)sprintf(s,"%s%s",s,"SHIFT+"); |
if((mod&CC_D_SHIFT)==CC_D_SHIFT)sprintf(s,"%s%s",s,"SHIFT+"); |
| if(key<KKOFFSET)sprintf(s,"%s%c",s,key); |
if(key<CC_OFFSET_K)sprintf(s,"%s%c",s,key); |
| else |
else |
| { |
{ |
| switch(key) |
switch(key) |
| { |
{ |
| case KK_LEFT:c="LEFT";break; |
case CC_K_LEFT:c="LEFT";break; |
| case KK_RIGHT:c="RIGHT";break; |
case CC_K_RIGHT:c="RIGHT";break; |
| case KK_UP:c="UP";break; |
case CC_K_UP:c="UP";break; |
| case KK_DOWN:c="DOWN";break; |
case CC_K_DOWN:c="DOWN";break; |
| case KK_HOME:c="HOME";break; |
case CC_K_HOME:c="HOME";break; |
| case KK_END:c="END";break; |
case CC_K_END:c="END";break; |
| case KK_PGUP:c="PGUP";break; |
case CC_K_PGUP:c="PGUP";break; |
| case KK_PGDOWN:c="PGDOWN";break; |
case CC_K_PGDOWN:c="PGDOWN";break; |
| case KK_CENTER:c="CENTER";break; |
case CC_K_CENTER:c="CENTER";break; |
| case KK_ESC:c="ESC";break; |
case CC_K_ESC:c="ESC";break; |
| case KK_ENTER:c="ENTER";break; |
case CC_K_ENTER:c="ENTER";break; |
| case KK_DEL:c="DEL";break; |
case CC_K_DEL:c="DEL";break; |
| case KK_INS:c="INS";break; |
case CC_K_INS:c="INS";break; |
| case KK_TAB:c="TAB";break; |
case CC_K_TAB:c="TAB";break; |
| case KK_BACK:c="BACK";break; |
case CC_K_BACK:c="BACK";break; |
| case KK_PAUSE:c="PAUSE";break; |
case CC_K_PAUSE:c="PAUSE";break; |
| case KK_POPUP:c="POPUP";break; |
case CC_K_POPUP:c="POPUP";break; |
| case KK_F1:c="F1";break; |
case CC_K_F1:c="F1";break; |
| case KK_F2:c="F2";break; |
case CC_K_F2:c="F2";break; |
| case KK_F3:c="F3";break; |
case CC_K_F3:c="F3";break; |
| case KK_F4:c="F4";break; |
case CC_K_F4:c="F4";break; |
| case KK_F5:c="F5";break; |
case CC_K_F5:c="F5";break; |
| case KK_F6:c="F6";break; |
case CC_K_F6:c="F6";break; |
| case KK_F7:c="F7";break; |
case CC_K_F7:c="F7";break; |
| case KK_F8:c="F8";break; |
case CC_K_F8:c="F8";break; |
| case KK_F9:c="F9";break; |
case CC_K_F9:c="F9";break; |
| case KK_F10:c="F10";break; |
case CC_K_F10:c="F10";break; |
| case KK_F11:c="F11";break; |
case CC_K_F11:c="F11";break; |
| case KK_F12:c="F12";break; |
case CC_K_F12:c="F12";break; |
| default:c="?"; |
default:c="?"; |
| } |
} |
| sprintf(s,"%s%s",s,c); |
sprintf(s,"%s%s",s,c); |
| Line 471 bool isactive(WIN *win) |
|
| Line 471 bool isactive(WIN *win) |
|
| if(p->hasmodal)return false; |
if(p->hasmodal)return false; |
| while(p->parent!=NULL) |
while(p->parent!=NULL) |
| { |
{ |
| if((!((p->extra->type==TP_DIALOG)&&p->extra->dialog.modal))&&p->parent->hasmodal)return false; |
if((!((p->extra->type==CC_TP_DIALOG)&&p->extra->dialog.modal))&&p->parent->hasmodal)return false; |
| p=p->parent; |
p=p->parent; |
| } |
} |
| if((!((p->extra->type==TP_DIALOG)&&p->extra->dialog.modal))&&hasmodal)return false; |
if((!((p->extra->type==CC_TP_DIALOG)&&p->extra->dialog.modal))&&hasmodal)return false; |
| return true; |
return true; |
| } |
} |
| |
|
| Line 485 bool dosearchfocused(WIN *win) |
|
| Line 485 bool dosearchfocused(WIN *win) |
|
| if(win==focuswin)return true; |
if(win==focuswin)return true; |
| if(dosearchfocused(win->child))return true; |
if(dosearchfocused(win->child))return true; |
| win=win->next; |
win=win->next; |
| if((win!=NULL)&&(win->extra->type==TP_DIALOG))break; |
if((win!=NULL)&&(win->extra->type==CC_TP_DIALOG))break; |
| } |
} |
| return false; |
return false; |
| } |
} |
| Line 506 bool isvisible(WIN *win) |
|
| Line 506 bool isvisible(WIN *win) |
|
| win=win->parent; |
win=win->parent; |
| while(win!=NULL) |
while(win!=NULL) |
| { |
{ |
| if(((win->extra->type==TP_DIALOG)&& |
if(((win->extra->type==CC_TP_DIALOG)&& |
| (win->extra->dialog.state==SV_MINIMIZED)&& |
(win->extra->dialog.state==CC_SV_MINIMIZED)&& |
| (((prev->y!=0)||(prev->vy!=1))&&(prev->extra->type!=TP_FADE)))|| |
(((prev->y!=0)||(prev->vy!=1))&&(prev->extra->type!=TP_FADE)))|| |
| (!win->active))return false; |
(!win->active))return false; |
| prev=win; |
prev=win; |
| Line 572 void dobringonewintotop(WIN *win) |
|
| Line 572 void dobringonewintotop(WIN *win) |
|
| void dobringwintotop(WIN *win) |
void dobringwintotop(WIN *win) |
| { |
{ |
| if(win==NULL)return; |
if(win==NULL)return; |
| if((win->extra->type==TP_DIALOG)||(win->extra->type==TP_MENU))dobringonewintotop(win); |
if((win->extra->type==CC_TP_DIALOG)||(win->extra->type==CC_TP_MENU))dobringonewintotop(win); |
| dobringwintotop(win->parent); |
dobringwintotop(win->parent); |
| } |
} |
| |
|
| Line 590 WIN *findchild(WIN *win) |
|
| Line 590 WIN *findchild(WIN *win) |
|
| else p=hlwin; |
else p=hlwin; |
| for(;p!=NULL;p=p->next) |
for(;p!=NULL;p=p->next) |
| { |
{ |
| if(((p->extra->type==TP_EDIT)||((p->extra->type==TP_BUTTON)&&(p->extra->button.hasfocus)) |
if(((p->extra->type==CC_TP_EDIT)||((p->extra->type==CC_TP_BUTTON)&&(p->extra->button.hasfocus)) |
| ||(p->extra->type==TP_COMBO)||(p->extra->type==TP_LIST))&&isactive(p))return p; |
||(p->extra->type==CC_TP_COMBO)||(p->extra->type==CC_TP_LIST))&&isactive(p))return p; |
| if((p->extra->type==TP_DIALOG)&&(isactive(p)||p->hasmodal))return findchild(p); |
if((p->extra->type==CC_TP_DIALOG)&&(isactive(p)||p->hasmodal))return findchild(p); |
| } |
} |
| return win; |
return win; |
| } |
} |
| Line 600 WIN *findchild(WIN *win) |
|
| Line 600 WIN *findchild(WIN *win) |
|
| WIN *findchildnom(WIN *win) |
WIN *findchildnom(WIN *win) |
| { |
{ |
| WIN *p; |
WIN *p; |
| if((win!=NULL)&&(win->lastfocus!=NULL)&&(win->lastfocus->extra->type!=TP_DIALOG))return win->lastfocus; |
if((win!=NULL)&&(win->lastfocus!=NULL)&&(win->lastfocus->extra->type!=CC_TP_DIALOG))return win->lastfocus; |
| if(win!=NULL)p=win->child; |
if(win!=NULL)p=win->child; |
| else p=hlwin; |
else p=hlwin; |
| for(;p!=NULL;p=p->next) |
for(;p!=NULL;p=p->next) |
| { |
{ |
| if(((p->extra->type==TP_EDIT)||((p->extra->type==TP_BUTTON)&&(p->extra->button.hasfocus)) |
if(((p->extra->type==CC_TP_EDIT)||((p->extra->type==CC_TP_BUTTON)&&(p->extra->button.hasfocus)) |
| ||(p->extra->type==TP_COMBO)||(p->extra->type==TP_LIST))&&isactive(p))return p; |
||(p->extra->type==CC_TP_COMBO)||(p->extra->type==CC_TP_LIST))&&isactive(p))return p; |
| if((p->extra->type==TP_DIALOG)&&(isactive(p)||p->hasmodal))return findchildnom(p); |
if((p->extra->type==CC_TP_DIALOG)&&(isactive(p)||p->hasmodal))return findchildnom(p); |
| } |
} |
| return win; |
return win; |
| } |
} |
| |
|
| void combodblclkproc(WIN *sender) |
void combodblclkproc(WIN *sender) |
| { |
{ |
| if(sender->extra->type==TP_LIST) |
if(sender->extra->type==CC_TP_LIST) |
| if(sender->parent!=NULL) |
if(sender->parent!=NULL) |
| if(sender->parent->extra->type==TP_COMBO) |
if(sender->parent->extra->type==CC_TP_COMBO) |
| { |
{ |
| COMBO *combo=&sender->parent->extra->combo; |
COMBO *combo=&sender->parent->extra->combo; |
| long i=sender->extra->list.activeline; |
long i=sender->extra->list.activeline; |
| Line 641 void bclosepush(WIN *sender) |
|
| Line 641 void bclosepush(WIN *sender) |
|
| |
|
| void bmaximizepush(WIN *sender) |
void bmaximizepush(WIN *sender) |
| { |
{ |
| if(sender->parent->extra->dialog.state==SV_MAXIMIZED) |
if(sender->parent->extra->dialog.state==CC_SV_MAXIMIZED) |
| move_win(sender->parent,NOCHANGE,NOCHANGE,NOCHANGE,NOCHANGE,SV_NORMAL); |
move_win(sender->parent,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_SV_NORMAL); |
| else |
else |
| move_win(sender->parent,NOCHANGE,NOCHANGE,NOCHANGE,NOCHANGE,SV_MAXIMIZED); |
move_win(sender->parent,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_SV_MAXIMIZED); |
| } |
} |
| |
|
| void bminimizepush(WIN *sender) |
void bminimizepush(WIN *sender) |
| { |
{ |
| if(sender->parent->extra->dialog.state==SV_MINIMIZED) |
if(sender->parent->extra->dialog.state==CC_SV_MINIMIZED) |
| move_win(sender->parent,NOCHANGE,NOCHANGE,NOCHANGE,NOCHANGE,SV_NORMAL); |
move_win(sender->parent,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_SV_NORMAL); |
| else |
else |
| move_win(sender->parent,NOCHANGE,NOCHANGE,NOCHANGE,NOCHANGE,SV_MINIMIZED); |
move_win(sender->parent,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,CC_SV_MINIMIZED); |
| } |
} |
| |
|
| void dodeletewin(WIN *win) |
void dodeletewin(WIN *win) |
| Line 697 void dodeletewin(WIN *win) |
|
| Line 697 void dodeletewin(WIN *win) |
|
| dodeletewin(p); |
dodeletewin(p); |
| p=pnext; |
p=pnext; |
| } |
} |
| if(win->extra->type==TP_EDIT)free(win->extra->edit.text); |
if(win->extra->type==CC_TP_EDIT)free(win->extra->edit.text); |
| if(focuswin==win)focuswin=NULL; |
if(focuswin==win)focuswin=NULL; |
| if(capturewin==win)capturewin=NULL; |
if(capturewin==win)capturewin=NULL; |
| usekeys=true; |
usekeys=true; |
| del_timer_for_win(win); |
del_timer_for_win(win); |
| while(g_list_find(dialoglist,win)!=NULL)dialoglist=g_list_remove(dialoglist,win); |
while(g_list_find(dialoglist,win)!=NULL)dialoglist=g_list_remove(dialoglist,win); |
| if(win->extra->type==TP_MENU) |
if(win->extra->type==CC_TP_MENU) |
| { |
{ |
| WIN *parent=win->parent; |
WIN *parent=win->parent; |
| if(parent!=NULL) |
if(parent!=NULL) |
| { |
{ |
| if(parent->extra->type==TP_DIALOG) |
if(parent->extra->type==CC_TP_DIALOG) |
| { |
{ |
| DIALOG *dialog=&parent->extra->dialog; |
DIALOG *dialog=&parent->extra->dialog; |
| if(dialog->menu==win)dialog->menu=NULL; |
if(dialog->menu==win)dialog->menu=NULL; |
| } |
} |
| else if(parent->extra->type==TP_MENU) |
else if(parent->extra->type==CC_TP_MENU) |
| { |
{ |
| MENU *menu=&parent->extra->menu; |
MENU *menu=&parent->extra->menu; |
| GList *lines=menu->lines; |
GList *lines=menu->lines; |
| Line 735 void dodeletewin(WIN *win) |
|
| Line 735 void dodeletewin(WIN *win) |
|
| } |
} |
| if(menu->lines!=NULL)g_list_free(menu->lines); |
if(menu->lines!=NULL)g_list_free(menu->lines); |
| } |
} |
| else if(win->extra->type==TP_TEXT) |
else if(win->extra->type==CC_TP_TEXT) |
| { |
{ |
| if(hldowntext==win)hldowntext=NULL; |
if(hldowntext==win)hldowntext=NULL; |
| } |
} |
| Line 753 WIN *findnextwin(WIN *win) |
|
| Line 753 WIN *findnextwin(WIN *win) |
|
| { |
{ |
| if(p==NULL)p=(win->parent==NULL)?hlwin:win->parent->child; |
if(p==NULL)p=(win->parent==NULL)?hlwin:win->parent->child; |
| if(((p==win)||( |
if(((p==win)||( |
| ((p->extra->type==TP_EDIT)||((p->extra->type==TP_BUTTON)&&(p->extra->button.hasfocus))|| |
((p->extra->type==CC_TP_EDIT)||((p->extra->type==CC_TP_BUTTON)&&(p->extra->button.hasfocus))|| |
| (p->extra->type==TP_COMBO)||(p->extra->type==TP_LIST)) |
(p->extra->type==CC_TP_COMBO)||(p->extra->type==CC_TP_LIST)) |
| ))&&isactive(p))return p; |
))&&isactive(p))return p; |
| p=p->next; |
p=p->next; |
| } |
} |
| Line 793 WIN *searchnextdialog(WIN *win) |
|
| Line 793 WIN *searchnextdialog(WIN *win) |
|
| { |
{ |
| WIN *n=searchnextdialog(win->child); |
WIN *n=searchnextdialog(win->child); |
| if(n!=NULL)return n; |
if(n!=NULL)return n; |
| if((win->extra->type==TP_DIALOG)&&isactive(win))return win; |
if((win->extra->type==CC_TP_DIALOG)&&isactive(win))return win; |
| win=cyclenextwin(win); |
win=cyclenextwin(win); |
| } |
} |
| while(win!=start); |
while(win!=start); |
| Line 831 bool runacel(WIN *win,long x,long y,unsi |
|
| Line 831 bool runacel(WIN *win,long x,long y,unsi |
|
| if(p==NULL)p=hlmenu; |
if(p==NULL)p=hlmenu; |
| while(p!=NULL) |
while(p!=NULL) |
| { |
{ |
| if(p->extra->type==TP_DIALOG) |
if(p->extra->type==CC_TP_DIALOG) |
| { |
{ |
| parent=p->extra->dialog.menu; |
parent=p->extra->dialog.menu; |
| } |
} |
| else if((p->extra->type==TP_MENU)&&!p->extra->menu.vert) |
else if((p->extra->type==CC_TP_MENU)&&!p->extra->menu.vert) |
| { |
{ |
| parent=p->parent; |
parent=p->parent; |
| if(parent!=NULL)parent=p->parent; |
if(parent!=NULL)parent=p->parent; |
| Line 879 void dosetredrawed(WIN *win,bool redrawe |
|
| Line 879 void dosetredrawed(WIN *win,bool redrawe |
|
| if(hldowntext!=NULL) |
if(hldowntext!=NULL) |
| { |
{ |
| if(hldowntext->parent!=NULL)setparent(hldowntext,NULL); |
if(hldowntext->parent!=NULL)setparent(hldowntext,NULL); |
| hldowntext->style|=ST_TOP_WIN; |
hldowntext->style|=CC_ST_TOP_WIN; |
| hldowntext->x=0; |
hldowntext->x=0; |
| hldowntext->y=screeny-1; |
hldowntext->y=screeny-1; |
| hldowntext->vx=screenx; |
hldowntext->vx=screenx; |
| Line 899 int doredraw(WIN *win,char drawmode) |
|
| Line 899 int doredraw(WIN *win,char drawmode) |
|
| { |
{ |
| if(drawmode==DM_BOTTOM) |
if(drawmode==DM_BOTTOM) |
| { |
{ |
| if(!(win->style&ST_TOP_WIN)) |
if(!(win->style&CC_ST_TOP_WIN)) |
| { |
{ |
| if(drawwin(win,true)==ERR)return ERR; |
if(drawwin(win,true)==ERR)return ERR; |
| win->redrawed=true; |
win->redrawed=true; |
| Line 914 int doredraw(WIN *win,char drawmode) |
|
| Line 914 int doredraw(WIN *win,char drawmode) |
|
| } |
} |
| else if(drawmode==DM_MARK_TOP) |
else if(drawmode==DM_MARK_TOP) |
| { |
{ |
| if(win->style&ST_TOP_WIN)topwinlist=g_slist_append(topwinlist,win); |
if(win->style&CC_ST_TOP_WIN)topwinlist=g_slist_append(topwinlist,win); |
| if(doredraw(win->child,DM_MARK_TOP)==ERR)return ERR; |
if(doredraw(win->child,DM_MARK_TOP)==ERR)return ERR; |
| } |
} |
| else if(drawmode==DM_TOP_BOTTOM) |
else if(drawmode==DM_TOP_BOTTOM) |
| { |
{ |
| if(!(win->style&ST_TOP_WIN)) |
if(!(win->style&CC_ST_TOP_WIN)) |
| { |
{ |
| if(drawwin(win,true)==ERR)return ERR; |
if(drawwin(win,true)==ERR)return ERR; |
| win->redrawed=true; |
win->redrawed=true; |
| Line 934 int doredraw(WIN *win,char drawmode) |
|
| Line 934 int doredraw(WIN *win,char drawmode) |
|
| void doneredraw() |
void doneredraw() |
| { |
{ |
| long x,y; |
long x,y; |
| if((focuswin!=NULL)&&(focuswin->extra->type==TP_EDIT)&& |
if((focuswin!=NULL)&&(focuswin->extra->type==CC_TP_EDIT)&& |
| (focuswin->extra->edit.maskpos==-1)) |
(focuswin->extra->edit.maskpos==-1)) |
| { |
{ |
| EDIT *edit=&focuswin->extra->edit; |
EDIT *edit=&focuswin->extra->edit; |
| Line 964 void redrawclientwin(WIN *win) |
|
| Line 964 void redrawclientwin(WIN *win) |
|
| { |
{ |
| if(!winexist(win))return; |
if(!winexist(win))return; |
| if(win==NULL)return; |
if(win==NULL)return; |
| if((win->style&ST_AUTOXSIZE)||(win->style&ST_AUTOYSIZE)){redraw();return;} |
if((win->style&CC_ST_AUTOXSIZE)||(win->style&CC_ST_AUTOYSIZE)){redraw();return;} |
| if(!isvisible(win))return; |
if(!isvisible(win))return; |
| drawwin(win,false); |
drawwin(win,false); |
| long x=0,y=0,j,i,z; |
long x=0,y=0,j,i,z; |
| Line 1049 void checkwin(WIN *win) |
|
| Line 1049 void checkwin(WIN *win) |
|
| long x,y,wx,wy,px,py; |
long x,y,wx,wy,px,py; |
| bool result; |
bool result; |
| get_client_size(win->parent,&px,&py,&wx,&wy); |
get_client_size(win->parent,&px,&py,&wx,&wy); |
| switch(win->style&ST_AL_FIXED) |
switch(win->style&CC_ST_AL_FIXED) |
| { |
{ |
| case ST_AL_LEFT:win->x=px;break; |
case CC_ST_AL_LEFT:win->x=px;break; |
| case ST_AL_CENTER: |
case CC_ST_AL_CENTER: |
| win->x=(win->style&ST_AR_FIXED)!=ST_AR_CENTER?(wx+px)/2:(wx+px-win->vx)/2; |
win->x=(win->style&CC_ST_AR_FIXED)!=CC_ST_AR_CENTER?(wx+px)/2:(wx+px-win->vx)/2; |
| break; |
break; |
| case ST_AL_FIXED:win->x=win->flx;break; |
case CC_ST_AL_FIXED:win->x=win->flx;break; |
| } |
} |
| switch(win->style&ST_AR_FIXED) |
switch(win->style&CC_ST_AR_FIXED) |
| { |
{ |
| case ST_AR_RIGHT: |
case CC_ST_AR_RIGHT: |
| if(win->style&ST_AL_FIXED)win->vx=wx+px-win->x; |
if(win->style&CC_ST_AL_FIXED)win->vx=wx+px-win->x; |
| else win->x=wx+px-win->vx; |
else win->x=wx+px-win->vx; |
| break; |
break; |
| case ST_AR_CENTER: |
case CC_ST_AR_CENTER: |
| if(win->style&ST_AL_FIXED) |
if(win->style&CC_ST_AL_FIXED) |
| { |
{ |
| if((win->style&ST_AL_FIXED)!=ST_AL_CENTER)win->vx=(wx+px)/2-win->x; |
if((win->style&CC_ST_AL_FIXED)!=CC_ST_AL_CENTER)win->vx=(wx+px)/2-win->x; |
| } |
} |
| else win->x=(wx+px)/2-win->vx; |
else win->x=(wx+px)/2-win->vx; |
| break; |
break; |
| case ST_AR_FIXED: |
case CC_ST_AR_FIXED: |
| if(win->style&ST_AL_FIXED)win->vx=wx+px-win->frx-win->x; |
if(win->style&CC_ST_AL_FIXED)win->vx=wx+px-win->frx-win->x; |
| else win->x=wx+px-win->frx-win->vx; |
else win->x=wx+px-win->frx-win->vx; |
| break; |
break; |
| } |
} |
| switch(win->style&ST_AU_FIXED) |
switch(win->style&CC_ST_AU_FIXED) |
| { |
{ |
| case ST_AU_UP:win->y=py;break; |
case CC_ST_AU_UP:win->y=py;break; |
| case ST_AU_CENTER: |
case CC_ST_AU_CENTER: |
| win->y=(win->style&ST_AD_FIXED)!=ST_AD_CENTER?(wy+py)/2:(wy+py-win->vy)/2; |
win->y=(win->style&CC_ST_AD_FIXED)!=CC_ST_AD_CENTER?(wy+py)/2:(wy+py-win->vy)/2; |
| break; |
break; |
| case ST_AU_FIXED:win->y=win->fly;break; |
case CC_ST_AU_FIXED:win->y=win->fly;break; |
| } |
} |
| switch(win->style&ST_AD_FIXED) |
switch(win->style&CC_ST_AD_FIXED) |
| { |
{ |
| case ST_AD_DOWN: |
case CC_ST_AD_DOWN: |
| if(win->style&ST_AU_FIXED)win->vy=wy+py-win->y; |
if(win->style&CC_ST_AU_FIXED)win->vy=wy+py-win->y; |
| else win->y=wy+py-win->vy; |
else win->y=wy+py-win->vy; |
| break; |
break; |
| case ST_AD_CENTER: |
case CC_ST_AD_CENTER: |
| if(win->style&ST_AU_FIXED) |
if(win->style&CC_ST_AU_FIXED) |
| { |
{ |
| if((win->style&ST_AU_FIXED)!=ST_AU_CENTER)win->vy=(wy+py)/2-win->y; |
if((win->style&CC_ST_AU_FIXED)!=CC_ST_AU_CENTER)win->vy=(wy+py)/2-win->y; |
| } |
} |
| else win->y=(wy+py)/2-win->vy; |
else win->y=(wy+py)/2-win->vy; |
| break; |
break; |
| case ST_AD_FIXED: |
case CC_ST_AD_FIXED: |
| if(win->style&ST_AU_FIXED)win->vy=wy+py-win->fry-win->y; |
if(win->style&CC_ST_AU_FIXED)win->vy=wy+py-win->fry-win->y; |
| else win->y=wy+py-win->fry-win->vy; |
else win->y=wy+py-win->fry-win->vy; |
| break; |
break; |
| } |
} |
| if(win->style&ST_A_TEMP) |
if(win->style&CC_ST_A_TEMP) |
| win->style&=~(ST_AL_FIXED|ST_AU_FIXED|ST_AR_FIXED|ST_AD_FIXED|ST_A_TEMP); |
win->style&=~(CC_ST_AL_FIXED|CC_ST_AU_FIXED|CC_ST_AR_FIXED|CC_ST_AD_FIXED|CC_ST_A_TEMP); |
| x=win->x; |
x=win->x; |
| y=win->y; |
y=win->y; |
| client_to_screen(win->parent,&x,&y); |
client_to_screen(win->parent,&x,&y); |
| if(win->extra->type==TP_DIALOG) |
if(win->extra->type==CC_TP_DIALOG) |
| { |
{ |
| if(win->vx<10)win->vx=10; |
if(win->vx<10)win->vx=10; |
| if(x>screenx-1)x=screenx-1; |
if(x>screenx-1)x=screenx-1; |
| Line 1114 void checkwin(WIN *win) |
|
| Line 1114 void checkwin(WIN *win) |
|
| if(x+win->vx<=0)x=1-win->vx; |
if(x+win->vx<=0)x=1-win->vx; |
| if(y+win->vy<=0)y=1-win->vy; |
if(y+win->vy<=0)y=1-win->vy; |
| } |
} |
| else if((win->extra->type==TP_LIST)&&(win->extra->list.combotyp==CT_COMBO)) |
else if((win->extra->type==CC_TP_LIST)&&(win->extra->list.combotyp==CC_LI_COMBO)) |
| { |
{ |
| if((win->parent!=NULL)&&(win->parent->extra->type==TP_COMBO)) |
if((win->parent!=NULL)&&(win->parent->extra->type==CC_TP_COMBO)) |
| { |
{ |
| px=0;py=0;client_to_screen(win->parent,&px,&py); |
px=0;py=0;client_to_screen(win->parent,&px,&py); |
| x=px-1; |
x=px-1; |
| Line 1132 void checkwin(WIN *win) |
|
| Line 1132 void checkwin(WIN *win) |
|
| if(y<0)y=0; |
if(y<0)y=0; |
| if(y+win->vy>screeny)win->vy=screeny-y; |
if(y+win->vy>screeny)win->vy=screeny-y; |
| } |
} |
| else if((win->extra->type==TP_MENU)&&(win->extra->menu.vert)) |
else if((win->extra->type==CC_TP_MENU)&&(win->extra->menu.vert)) |
| { |
{ |
| if(x+win->vx>screenx)x=screenx-win->vx; |
if(x+win->vx>screenx)x=screenx-win->vx; |
| if(x<0)x=0; |
if(x<0)x=0; |
| if(y+win->vy>screeny)y=screeny-win->vy; |
if(y+win->vy>screeny)y=screeny-win->vy; |
| if(y<0)y=0; |
if(y<0)y=0; |
| } |
} |
| else if((win->extra->type==TP_TEXT)|| |
else if((win->extra->type==CC_TP_TEXT)|| |
| (win->extra->type==TP_EDIT)|| |
(win->extra->type==CC_TP_EDIT)|| |
| (win->extra->type==TP_COMBO)|| |
(win->extra->type==CC_TP_COMBO)|| |
| ((win->extra->type==TP_SCROLL)&&(!win->extra->scroll.vert))|| |
((win->extra->type==CC_TP_SCROLL)&&(!win->extra->scroll.vert))|| |
| ((win->extra->type==TP_STATUS)&&(!win->extra->status.vert))|| |
((win->extra->type==CC_TP_STATUS)&&(!win->extra->status.vert))|| |
| ((win->extra->type==TP_MENU)&&(!win->extra->menu.vert))) |
((win->extra->type==CC_TP_MENU)&&(!win->extra->menu.vert))) |
| { |
{ |
| if(win->vy>1)win->vy=1; |
if(win->vy>1)win->vy=1; |
| } |
} |
| else if(((win->extra->type==TP_SCROLL)&&(win->extra->scroll.vert))|| |
else if(((win->extra->type==CC_TP_SCROLL)&&(win->extra->scroll.vert))|| |
| ((win->extra->type==TP_STATUS)&&(win->extra->status.vert))) |
((win->extra->type==CC_TP_STATUS)&&(win->extra->status.vert))) |
| { |
{ |
| if(win->vx>1)win->vx=1; |
if(win->vx>1)win->vx=1; |
| } |
} |
| if(win->extra->type==TP_TEXT) |
if(win->extra->type==CC_TP_TEXT) |
| { |
{ |
| if(win->extra->text.text!=NULL) |
if(win->extra->text.text!=NULL) |
| if((win->style&ST_AUTOXSIZE)==ST_AUTOXSIZE) |
if((win->style&CC_ST_AUTOXSIZE)==CC_ST_AUTOXSIZE) |
| win->vx=strlen(win->extra->text.text); |
win->vx=strlen(win->extra->text.text); |
| } |
} |
| else if(win->extra->type==TP_BUTTON) |
else if(win->extra->type==CC_TP_BUTTON) |
| { |
{ |
| if(win->extra->button.text!=NULL) |
if(win->extra->button.text!=NULL) |
| if((win->style&ST_AUTOXSIZE)==ST_AUTOXSIZE) |
if((win->style&CC_ST_AUTOXSIZE)==CC_ST_AUTOXSIZE) |
| win->vx=strlenmenu(win->extra->button.text)+4; |
win->vx=strlenmenu(win->extra->button.text)+4; |
| } |
} |
| else if(win->extra->type==TP_COMBO) |
else if(win->extra->type==CC_TP_COMBO) |
| { |
{ |
| long maxlen,numlines; |
long maxlen,numlines; |
| COMBO *combo=&win->extra->combo; |
COMBO *combo=&win->extra->combo; |
| LIST *list=&combo->list->extra->list; |
LIST *list=&combo->list->extra->list; |
| numlines=list->numlines; |
numlines=list->numlines; |
| maxlen=list->maxitemlen; |
maxlen=list->maxitemlen; |
| if((win->style&ST_AUTOXSIZE)==ST_AUTOXSIZE)win->vx=maxlen+1; |
if((win->style&CC_ST_AUTOXSIZE)==CC_ST_AUTOXSIZE)win->vx=maxlen+1; |
| } |
} |
| else if(win->extra->type==TP_LIST) |
else if(win->extra->type==CC_TP_LIST) |
| { |
{ |
| LIST *list=&win->extra->list; |
LIST *list=&win->extra->list; |
| GList *lines=list->lines; |
GList *lines=list->lines; |
| if((win->style&ST_AUTOXSIZE)==ST_AUTOXSIZE)win->vx=list->maxitemlen+2; |
if((win->style&CC_ST_AUTOXSIZE)==CC_ST_AUTOXSIZE)win->vx=list->maxitemlen+2; |
| if((win->style&ST_AUTOYSIZE)==ST_AUTOYSIZE)win->vy=list->numlines+2; |
if((win->style&CC_ST_AUTOYSIZE)==CC_ST_AUTOYSIZE)win->vy=list->numlines+2; |
| } |
} |
| screen_to_client(win->parent,&x,&y); |
screen_to_client(win->parent,&x,&y); |
| win->x=x; |
win->x=x; |
| Line 1207 void checkwin(WIN *win) |
|
| Line 1207 void checkwin(WIN *win) |
|
| } |
} |
| switch(win->extra->type) |
switch(win->extra->type) |
| { |
{ |
| case TP_COMBO:checkwincombo(win);break; |
case CC_TP_COMBO:checkwincombo(win);break; |
| case TP_LIST:checkwinlist(win);break; |
case CC_TP_LIST:checkwinlist(win);break; |
| case TP_MENU:checkwinmenu(win);break; |
case CC_TP_MENU:checkwinmenu(win);break; |
| case TP_DIALOG:checkwindialog(win); |
case CC_TP_DIALOG:checkwindialog(win); |
| } |
} |
| } |
} |
| |
|
| Line 1227 int drawwin(WIN *win,bool dorefresh) |
|
| Line 1227 int drawwin(WIN *win,bool dorefresh) |
|
| wx=win->vx; |
wx=win->vx; |
| switch(win->extra->type) |
switch(win->extra->type) |
| { |
{ |
| case TP_TEXT:drawwintext(win);break; |
case CC_TP_TEXT:drawwintext(win);break; |
| case TP_EDIT:drawwinedit(win);break; |
case CC_TP_EDIT:drawwinedit(win);break; |
| case TP_BUTTON:drawwinbutton(win,wx);break; |
case CC_TP_BUTTON:drawwinbutton(win,wx);break; |
| case TP_SCROLL:drawwinscroll(win);break; |
case CC_TP_SCROLL:drawwinscroll(win);break; |
| case TP_LIST:drawwinlist(win,wx);break; |
case CC_TP_LIST:drawwinlist(win,wx);break; |
| case TP_COMBO:drawwincombo(win);break; |
case CC_TP_COMBO:drawwincombo(win);break; |
| case TP_STATUS:drawwinstatus(win);break; |
case CC_TP_STATUS:drawwinstatus(win);break; |
| case TP_PAINT:drawwinpaint(win);break; |
case CC_TP_PAINT:drawwinpaint(win);break; |
| case TP_MENU:drawwinmenu(win,wx);break; |
case CC_TP_MENU:drawwinmenu(win,wx);break; |
| case TP_DIALOG:drawwindialog(win,wx);break; |
case CC_TP_DIALOG:drawwindialog(win,wx);break; |
| case TP_FADE:drawwinfade(win,x,y);break; |
case TP_FADE:drawwinfade(win,x,y);break; |
| } |
} |
| if(dorefresh)mrefresh(win); |
if(dorefresh)mrefresh(win); |
| Line 1250 void clipboardmenuproc(WIN *win,long id) |
|
| Line 1250 void clipboardmenuproc(WIN *win,long id) |
|
| case 1:edit_copy(win->parent);break; |
case 1:edit_copy(win->parent);break; |
| case 2:edit_paste(win->parent);break; |
case 2:edit_paste(win->parent);break; |
| case 3:edit_delete(win->parent);break; |
case 3:edit_delete(win->parent);break; |
| case 4:edit_select(win->parent,0,MAXLONG);break; |
case 4:edit_select(win->parent,0,CC_MAXLONG);break; |
| } |
} |
| } |
} |
| |
|
| Line 1310 int main(int argc,char *argv[]) |
|
| Line 1310 int main(int argc,char *argv[]) |
|
| cmap=malloc(screenx*screeny*sizeof(CMAP)); |
cmap=malloc(screenx*screeny*sizeof(CMAP)); |
| { |
{ |
| PMENU menu; |
PMENU menu; |
| menu.type=TP_MENU; |
menu.type=CC_TP_MENU; |
| menu.cback=C_DEFAULT; |
menu.cback=C_DEFAULT; |
| menu.cborder=C_DEFAULT; |
menu.cborder=C_DEFAULT; |
| menu.ctext=C_DEFAULT; |
menu.ctext=C_DEFAULT; |
| Line 1322 int main(int argc,char *argv[]) |
|
| Line 1322 int main(int argc,char *argv[]) |
|
| menu.select=clipboardmenuproc; |
menu.select=clipboardmenuproc; |
| menu.vert=true; |
menu.vert=true; |
| clipboardmenu=create_menu(NULL,&menu,NULL); |
clipboardmenu=create_menu(NULL,&menu,NULL); |
| add_menu_item(clipboardmenu,&(CMENU){0,false,"Cu&t",MD_CTRL|'X',NULL}); |
add_menu_item(clipboardmenu,&(CMENU){0,false,"Cu&t",CC_D_CTRL|'X',NULL}); |
| add_menu_item(clipboardmenu,&(CMENU){1,false,"&Copy",MD_CTRL|'C',NULL}); |
add_menu_item(clipboardmenu,&(CMENU){1,false,"&Copy",CC_D_CTRL|'C',NULL}); |
| add_menu_item(clipboardmenu,&(CMENU){2,false,"&Paste",MD_CTRL|'V',NULL}); |
add_menu_item(clipboardmenu,&(CMENU){2,false,"&Paste",CC_D_CTRL|'V',NULL}); |
| add_menu_item(clipboardmenu,&(CMENU){3,false,"&Delete",0,NULL}); |
add_menu_item(clipboardmenu,&(CMENU){3,false,"&Delete",0,NULL}); |
| add_menu_item(clipboardmenu,&(CMENU){4,false,"Select &All",0,NULL}); |
add_menu_item(clipboardmenu,&(CMENU){4,false,"Select &All",0,NULL}); |
| } |
} |