| version 1.4, 2005/12/01 18:52:29 |
version 1.5, 2005/12/02 17:15:00 |
| Line 133 void doubleclickproc(TIMER *sender) |
|
| Line 133 void doubleclickproc(TIMER *sender) |
|
| |
|
| void mouserepeatproc(TIMER *sender) |
void mouserepeatproc(TIMER *sender) |
| { |
{ |
| sendmousemessage(gpmev.x,gpmev.y,MM_LBUTTONDOWN); |
sendmousemessage(gpmev.x,gpmev.y,CC_M_LBUTTONDOWN); |
| if(!aftermouseval) |
if(!aftermouseval) |
| { |
{ |
| del_timer(sender); |
del_timer(sender); |
| Line 179 void domouseevent(MEVENT *event) |
|
| Line 179 void domouseevent(MEVENT *event) |
|
| { |
{ |
| unsigned short mod=0; |
unsigned short mod=0; |
| bool double1=true,double2=true; |
bool double1=true,double2=true; |
| if((event->bstate&BUTTON_SHIFT)==BUTTON_SHIFT)mod|=MD_SHIFT; |
if((event->bstate&BUTTON_SHIFT)==BUTTON_SHIFT)mod|=CC_D_SHIFT; |
| if((event->bstate&BUTTON_ALT)==BUTTON_ALT)mod|=MD_ALT; |
if((event->bstate&BUTTON_ALT)==BUTTON_ALT)mod|=CC_D_ALT; |
| if((event->bstate&BUTTON_CTRL)==BUTTON_CTRL)mod|=MD_CTRL; |
if((event->bstate&BUTTON_CTRL)==BUTTON_CTRL)mod|=CC_D_CTRL; |
| if((event->bstate&BUTTON1_PRESSED)==BUTTON1_PRESSED) |
if((event->bstate&BUTTON1_PRESSED)==BUTTON1_PRESSED) |
| { |
{ |
| sendmousemessage(event->x,event->y,MM_LBUTTONDOWN|mod); |
sendmousemessage(event->x,event->y,CC_M_LBUTTONDOWN|mod); |
| if(aftermouseval) |
if(aftermouseval) |
| { |
{ |
| mouserepeattimer=set_timer(NULL,WAITTICK,0,mousewaitproc); |
mouserepeattimer=set_timer(NULL,WAITTICK,0,mousewaitproc); |
| Line 196 void domouseevent(MEVENT *event) |
|
| Line 196 void domouseevent(MEVENT *event) |
|
| } |
} |
| if(doubleclickstate1) |
if(doubleclickstate1) |
| { |
{ |
| sendmousemessage(event->x,event->y,MM_LBUTTONDBLCLK|mod); |
sendmousemessage(event->x,event->y,CC_M_LBUTTONDBLCLK|mod); |
| } |
} |
| del_timer(doubletimer1); |
del_timer(doubletimer1); |
| doubletimer1=!doubleclickstate1?set_timer(NULL,DOUBLECLICK,0,doubleclickproc):NULL; |
doubletimer1=!doubleclickstate1?set_timer(NULL,DOUBLECLICK,0,doubleclickproc):NULL; |
| Line 207 void domouseevent(MEVENT *event) |
|
| Line 207 void domouseevent(MEVENT *event) |
|
| { |
{ |
| del_timer(mouserepeattimer); |
del_timer(mouserepeattimer); |
| mouserepeattimer=NULL; |
mouserepeattimer=NULL; |
| sendmousemessage(event->x,event->y,MM_LBUTTONUP|mod); |
sendmousemessage(event->x,event->y,CC_M_LBUTTONUP|mod); |
| double1=false; |
double1=false; |
| } |
} |
| if((event->bstate&BUTTON3_PRESSED)==BUTTON3_PRESSED) |
if((event->bstate&BUTTON3_PRESSED)==BUTTON3_PRESSED) |
| { |
{ |
| sendmousemessage(event->x,event->y,MM_RBUTTONDOWN|mod); |
sendmousemessage(event->x,event->y,CC_M_RBUTTONDOWN|mod); |
| if(doubleclickstate2) |
if(doubleclickstate2) |
| { |
{ |
| sendmousemessage(event->x,event->y,MM_RBUTTONDBLCLK|mod); |
sendmousemessage(event->x,event->y,CC_M_RBUTTONDBLCLK|mod); |
| } |
} |
| del_timer(doubletimer2); |
del_timer(doubletimer2); |
| doubletimer2=!doubleclickstate2?set_timer(NULL,DOUBLECLICK,0,doubleclickproc):NULL; |
doubletimer2=!doubleclickstate2?set_timer(NULL,DOUBLECLICK,0,doubleclickproc):NULL; |
| Line 224 void domouseevent(MEVENT *event) |
|
| Line 224 void domouseevent(MEVENT *event) |
|
| } |
} |
| if((event->bstate&BUTTON3_RELEASED)==BUTTON3_RELEASED|mod) |
if((event->bstate&BUTTON3_RELEASED)==BUTTON3_RELEASED|mod) |
| { |
{ |
| sendmousemessage(event->x,event->y,MM_RBUTTONUP|mod); |
sendmousemessage(event->x,event->y,CC_M_RBUTTONUP|mod); |
| double2=false; |
double2=false; |
| } |
} |
| if(double1) |
if(double1) |
| Line 246 void domouseevent(MEVENT *event) |
|
| Line 246 void domouseevent(MEVENT *event) |
|
| gpmev.x=mousex; |
gpmev.x=mousex; |
| gpmev.y=mousey; |
gpmev.y=mousey; |
| } |
} |
| sendmousemessage(mousex,mousey,MM_MOUSEMOVE|mod); |
sendmousemessage(mousex,mousey,CC_M_MOUSEMOVE|mod); |
| } |
} |
| |
|
| bool dosendmousemessage(WIN *p,long vx,long vy,unsigned short state) |
bool dosendmousemessage(WIN *p,long vx,long vy,unsigned short state) |
| Line 263 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 263 bool dosendmousemessage(WIN *p,long vx,l |
|
| DIALOG *dialog; |
DIALOG *dialog; |
| GList *lines; |
GList *lines; |
| long x=vx,y=vy,actline; |
long x=vx,y=vy,actline; |
| unsigned short statemd=state&MDMASK; |
unsigned short statemd=state&CC_MASK_MOD; |
| bool chang=false; |
bool chang=false; |
| static long stlen; |
static long stlen; |
| long i,len,height,old,maxpoz,minpoz,actpoz; |
long i,len,height,old,maxpoz,minpoz,actpoz; |
| Line 273 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 273 bool dosendmousemessage(WIN *p,long vx,l |
|
| bool setfocus=true; |
bool setfocus=true; |
| aftermouseval=false; |
aftermouseval=false; |
| screen_to_client(p,&x,&y); |
screen_to_client(p,&x,&y); |
| state&=KKMASK; |
state&=CC_MASK_KEY; |
| if((focuswin==NULL)||(focuswin->extra->type!=TP_MENU))lastfocused=focuswin; |
if((focuswin==NULL)||(focuswin->extra->type!=CC_TP_MENU))lastfocused=focuswin; |
| if((state==MM_LBUTTONDOWN)&&p->hasmodal){set_focus(findchild(p));return true;} |
if((state==CC_M_LBUTTONDOWN)&&p->hasmodal){set_focus(findchild(p));return true;} |
| switch(p->extra->type) |
switch(p->extra->type) |
| { |
{ |
| case TP_EDIT: |
case CC_TP_EDIT: |
| edit=&p->extra->edit; |
edit=&p->extra->edit; |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(capturewin!=p)break; |
if(capturewin!=p)break; |
| if(cecnt>0) |
if(cecnt>0) |
| { |
{ |
| Line 290 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 290 bool dosendmousemessage(WIN *p,long vx,l |
|
| cecnt++; |
cecnt++; |
| } |
} |
| chang=true; |
chang=true; |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| if(capturewin!=p) |
if(capturewin!=p) |
| { |
{ |
| edit->maskpos=-1; |
edit->maskpos=-1; |
| Line 313 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 313 bool dosendmousemessage(WIN *p,long vx,l |
|
| if(edit->curpos-edit->scroll>p->vx-1)edit->scroll=edit->curpos-p->vx+1; |
if(edit->curpos-edit->scroll>p->vx-1)edit->scroll=edit->curpos-p->vx+1; |
| } |
} |
| break; |
break; |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| cecnt=0; |
cecnt=0; |
| usekeys=true; |
usekeys=true; |
| capturewin=NULL; |
capturewin=NULL; |
| break; |
break; |
| case MM_LBUTTONDBLCLK: |
case CC_M_LBUTTONDBLCLK: |
| len=strlen(edit->text); |
len=strlen(edit->text); |
| actpoz=x+edit->scroll; |
actpoz=x+edit->scroll; |
| if(actpoz<0)actpoz=0; |
if(actpoz<0)actpoz=0; |
| Line 338 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 338 bool dosendmousemessage(WIN *p,long vx,l |
|
| cecnt=-1; |
cecnt=-1; |
| } |
} |
| break; |
break; |
| case MM_RBUTTONDOWN: |
case CC_M_RBUTTONDOWN: |
| set_parent(clipboardmenu,p); |
set_parent(clipboardmenu,p); |
| track_popup_menu(clipboardmenu,vx,vy); |
track_popup_menu(clipboardmenu,vx,vy); |
| break; |
break; |
| } |
} |
| break; |
break; |
| case TP_BUTTON: |
case CC_TP_BUTTON: |
| button=&p->extra->button; |
button=&p->extra->button; |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(stat==1) |
if(stat==1) |
| { |
{ |
| if(found==p)button->status=TS_HIGH; |
if(found==p)button->status=TS_HIGH; |
| Line 367 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 367 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| chang=true; |
chang=true; |
| break; |
break; |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| if(found==p) |
if(found==p) |
| { |
{ |
| capturewin=p; |
capturewin=p; |
| Line 378 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 378 bool dosendmousemessage(WIN *p,long vx,l |
|
| else |
else |
| { |
{ |
| setfocus=false; |
setfocus=false; |
| sendmousemessage(vx,vy,MM_MOUSEMOVE); |
sendmousemessage(vx,vy,CC_M_MOUSEMOVE); |
| sendmousemessage(vx,vy,MM_LBUTTONDOWN); |
sendmousemessage(vx,vy,CC_M_LBUTTONDOWN); |
| } |
} |
| if(!button->hasfocus)chang=true; |
if(!button->hasfocus)chang=true; |
| break; |
break; |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| usekeys=true; |
usekeys=true; |
| capturewin=NULL; |
capturewin=NULL; |
| if(found==p) |
if(found==p) |
| Line 409 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 409 bool dosendmousemessage(WIN *p,long vx,l |
|
| chang=true; |
chang=true; |
| } |
} |
| break; |
break; |
| case TP_SCROLL: |
case CC_TP_SCROLL: |
| scroll=&p->extra->scroll; |
scroll=&p->extra->scroll; |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(scroll->vert) |
if(scroll->vert) |
| { |
{ |
| len=(p->vy-2-1)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos); |
len=(p->vy-2-1)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos); |
| Line 458 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 458 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| chang=true; |
chang=true; |
| break; |
break; |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| capturewin=p; |
capturewin=p; |
| usekeys=false; |
usekeys=false; |
| scroll->sup=SC_UP; |
scroll->sup=SC_UP; |
| Line 499 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 499 bool dosendmousemessage(WIN *p,long vx,l |
|
| if(stat!=3)aftermouseval=true; |
if(stat!=3)aftermouseval=true; |
| chang=true; |
chang=true; |
| break; |
break; |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| if(scroll->vert) |
if(scroll->vert) |
| { |
{ |
| len=(p->vy-2-1)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos); |
len=(p->vy-2-1)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos); |
| Line 525 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 525 bool dosendmousemessage(WIN *p,long vx,l |
|
| set_timer(p,BUTTONCLICK,0,buttontimer); |
set_timer(p,BUTTONCLICK,0,buttontimer); |
| } |
} |
| break; |
break; |
| case TP_LIST: |
case CC_TP_LIST: |
| list=&p->extra->list; |
list=&p->extra->list; |
| vscroll=&list->vscroll->extra->scroll; |
vscroll=&list->vscroll->extra->scroll; |
| minpoz=vscroll->pos; |
minpoz=vscroll->pos; |
| maxpoz=p->vy-2+vscroll->pos-1; |
maxpoz=p->vy-2+vscroll->pos-1; |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(capturewin==p) |
if(capturewin==p) |
| { |
{ |
| actline=list->activeline; |
actline=list->activeline; |
| if((list->combotyp!=CT_COMBO)||((list->combotyp==CT_COMBO)&&(stat==1))) |
if((list->combotyp!=CC_LI_COMBO)||((list->combotyp==CC_LI_COMBO)&&(stat==1))) |
| list->activeline=y-1+vscroll->pos; |
list->activeline=y-1+vscroll->pos; |
| list->exvscroll=EX_NONE; |
list->exvscroll=EX_NONE; |
| list->exhscroll=EX_NONE; |
list->exhscroll=EX_NONE; |
| if((list->combotyp!=CT_COMBO)||((list->combotyp==CT_COMBO)&&(stat==1))) |
if((list->combotyp!=CC_LI_COMBO)||((list->combotyp==CC_LI_COMBO)&&(stat==1))) |
| { |
{ |
| if(list->activeline<minpoz){list->activeline=minpoz;if(stat>=1)list->exvscroll=EX_UP;} |
if(list->activeline<minpoz){list->activeline=minpoz;if(stat>=1)list->exvscroll=EX_UP;} |
| if(list->activeline>maxpoz){list->activeline=maxpoz;if(stat>=1)list->exvscroll=EX_DOWN;} |
if(list->activeline>maxpoz){list->activeline=maxpoz;if(stat>=1)list->exvscroll=EX_DOWN;} |
| Line 555 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 555 bool dosendmousemessage(WIN *p,long vx,l |
|
| chang=true; |
chang=true; |
| } |
} |
| break; |
break; |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| list->exvscroll=EX_NONE; |
list->exvscroll=EX_NONE; |
| list->exhscroll=EX_NONE; |
list->exhscroll=EX_NONE; |
| actline=list->activeline; |
actline=list->activeline; |
| if(list->combotyp!=CT_COMBO) |
if(list->combotyp!=CC_LI_COMBO) |
| { |
{ |
| if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y)) |
if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y)) |
| { |
{ |
| Line 607 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 607 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| } |
} |
| break; |
break; |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| actline=list->activeline; |
actline=list->activeline; |
| if(list->combotyp==CT_COMBO) |
if(list->combotyp==CC_LI_COMBO) |
| { |
{ |
| long act; |
long act; |
| if(stat>=1) |
if(stat>=1) |
| Line 634 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 634 bool dosendmousemessage(WIN *p,long vx,l |
|
| capturewin=NULL; |
capturewin=NULL; |
| usekeys=true; |
usekeys=true; |
| void (*change)()=list->change; |
void (*change)()=list->change; |
| if(list->combotyp==CT_COMBO) |
if(list->combotyp==CC_LI_COMBO) |
| { |
{ |
| set_focus(p->parent); |
set_focus(p->parent); |
| show_win(p,false); |
show_win(p,false); |
| if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y)) |
if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y)) |
| { |
{ |
| if((list->combotyp==CT_COMBO)&&(p->parent!=NULL)&& |
if((list->combotyp==CC_LI_COMBO)&&(p->parent!=NULL)&& |
| (p->parent->extra->type==TP_COMBO)&&(list->activeitem!=NULL)) |
(p->parent->extra->type==CC_TP_COMBO)&&(list->activeitem!=NULL)) |
| { |
{ |
| combo=&p->parent->extra->combo; |
combo=&p->parent->extra->combo; |
| char *data=list->activeitem->data; |
char *data=list->activeitem->data; |
| Line 655 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 655 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| chang=true; |
chang=true; |
| break; |
break; |
| case MM_LBUTTONDBLCLK: |
case CC_M_LBUTTONDBLCLK: |
| if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y)) |
if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y)) |
| { |
{ |
| if((list->combotyp==CT_COMBO)&&(p->parent!=NULL)&& |
if((list->combotyp==CC_LI_COMBO)&&(p->parent!=NULL)&& |
| (p->parent->extra->type==TP_COMBO)&&(list->activeitem!=NULL)) |
(p->parent->extra->type==CC_TP_COMBO)&&(list->activeitem!=NULL)) |
| { |
{ |
| combo=&p->parent->extra->combo; |
combo=&p->parent->extra->combo; |
| char *data=list->activeitem->data; |
char *data=list->activeitem->data; |
| Line 669 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 669 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| } |
} |
| break; |
break; |
| case TP_COMBO: |
case CC_TP_COMBO: |
| combo=&p->extra->combo; |
combo=&p->extra->combo; |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(capturewin==p) |
if(capturewin==p) |
| if((!(found==p))||(!inrect(0,0,p->vx,p->vy,x,y))) |
if((!(found==p))||(!inrect(0,0,p->vx,p->vy,x,y))) |
| { |
{ |
| Line 683 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 683 bool dosendmousemessage(WIN *p,long vx,l |
|
| stat=1; |
stat=1; |
| } |
} |
| break; |
break; |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| capturewin=p; |
capturewin=p; |
| usekeys=false; |
usekeys=false; |
| combo->pushed=SC_DOWN; |
combo->pushed=SC_DOWN; |
| Line 696 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 696 bool dosendmousemessage(WIN *p,long vx,l |
|
| setlistactiveitem(list,actline,list->activeline); |
setlistactiveitem(list,actline,list->activeline); |
| show_win(combo->list,true); |
show_win(combo->list,true); |
| break; |
break; |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| if(capturewin==p) |
if(capturewin==p) |
| { |
{ |
| set_timer(p,BUTTONCLICK,0,buttondoubletimer); |
set_timer(p,BUTTONCLICK,0,buttondoubletimer); |
| Line 706 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 706 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| } |
} |
| break; |
break; |
| case TP_MENU: |
case CC_TP_MENU: |
| menu=&p->extra->menu; |
menu=&p->extra->menu; |
| minpoz=0; |
minpoz=0; |
| actline=menu->activeline; |
actline=menu->activeline; |
| Line 715 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 715 bool dosendmousemessage(WIN *p,long vx,l |
|
| maxpoz=p->vy-2-1; |
maxpoz=p->vy-2-1; |
| if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y))actpoz=y-1;else actpoz=-1; |
if((found==p)&&inrect(1,1,p->vx-2,p->vy-2,x,y))actpoz=y-1;else actpoz=-1; |
| if(menu->lines!=NULL)if(actpoz>g_list_length(menu->lines)-1)actpoz=-1; |
if(menu->lines!=NULL)if(actpoz>g_list_length(menu->lines)-1)actpoz=-1; |
| if((p->parent!=NULL)&&(p->parent->extra->type==TP_MENU))result=false; |
if((p->parent!=NULL)&&(p->parent->extra->type==CC_TP_MENU))result=false; |
| } |
} |
| else |
else |
| { |
{ |
| Line 743 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 743 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(((focuswin==p)&&(found==p)&&(capturewin==NULL))||(menu->vert&&(actpoz!=-1))) |
if(((focuswin==p)&&(found==p)&&(capturewin==NULL))||(menu->vert&&(actpoz!=-1))) |
| { |
{ |
| capturewin=p; |
capturewin=p; |
| Line 813 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 813 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| if(nextcapturewin!=NULL)capturewin=nextcapturewin; |
if(nextcapturewin!=NULL)capturewin=nextcapturewin; |
| break; |
break; |
| case MM_RBUTTONDOWN: |
case CC_M_RBUTTONDOWN: |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| if(!menu->vert) |
if(!menu->vert) |
| { |
{ |
| if((actpoz!=-1)&&(stat==0)) |
if((actpoz!=-1)&&(stat==0)) |
| Line 868 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 868 bool dosendmousemessage(WIN *p,long vx,l |
|
| freesendnext=false; |
freesendnext=false; |
| } |
} |
| else if(found==p)result=true; |
else if(found==p)result=true; |
| else if((p->parent==NULL)||(p->parent->extra->type!=TP_MENU)) |
else if((p->parent==NULL)||(p->parent->extra->type!=CC_TP_MENU)) |
| { |
{ |
| capturewin=NULL; |
capturewin=NULL; |
| menu->activeline=-1; |
menu->activeline=-1; |
| Line 881 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 881 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| } |
} |
| break; |
break; |
| case MM_RBUTTONUP: |
case CC_M_RBUTTONUP: |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| if(menu->vert) |
if(menu->vert) |
| { |
{ |
| long act=-1; |
long act=-1; |
| Line 913 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 913 bool dosendmousemessage(WIN *p,long vx,l |
|
| usekeys=true; |
usekeys=true; |
| capturewin=NULL; |
capturewin=NULL; |
| show_win(p,false); |
show_win(p,false); |
| set_focus(((p->parent!=NULL)&&(p->parent->extra->type==TP_MENU))?lastfocused:p->parent); |
set_focus(((p->parent!=NULL)&&(p->parent->extra->type==CC_TP_MENU))?lastfocused:p->parent); |
| } |
} |
| if(menu->select!=NULL)menu->select(p,getmenucellid(menu)); |
if(menu->select!=NULL)menu->select(p,getmenucellid(menu)); |
| } |
} |
| } |
} |
| if((found!=p)&&((p->parent==NULL)||(p->parent->extra->type!=TP_MENU))) |
if((found!=p)&&((p->parent==NULL)||(p->parent->extra->type!=CC_TP_MENU))) |
| { |
{ |
| capturewin=NULL; |
capturewin=NULL; |
| menu->activeline=-1; |
menu->activeline=-1; |
| Line 966 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 966 bool dosendmousemessage(WIN *p,long vx,l |
|
| } |
} |
| if((menu->activeline!=actline)&&(menu->change!=NULL))menu->change(p); |
if((menu->activeline!=actline)&&(menu->change!=NULL))menu->change(p); |
| break; |
break; |
| case TP_DIALOG: |
case CC_TP_DIALOG: |
| dialog=&p->extra->dialog; |
dialog=&p->extra->dialog; |
| switch(state) |
switch(state) |
| { |
{ |
| case MM_MOUSEMOVE: |
case CC_M_MOUSEMOVE: |
| if(capturewin!=p)break; |
if(capturewin!=p)break; |
| switch(stat) |
switch(stat) |
| { |
{ |
| case 0:move_win(p,vx+mx,vy+my,NOCHANGE,NOCHANGE,NOCHANGE);break; |
case 0:move_win(p,vx+mx,vy+my,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE);break; |
| case 1:if(vy>ny-1-my)vy=ny-1-my;move_win(p,NOCHANGE,vy+my,NOCHANGE,ny-vy-my,NOCHANGE);break; |
case 1:if(vy>ny-1-my)vy=ny-1-my;move_win(p,CC_NOCHANGE,vy+my,CC_NOCHANGE,ny-vy-my,CC_NOCHANGE);break; |
| case 2:if(vy>ny-1-my)vy=ny-1-my;move_win(p,NOCHANGE,vy+my,nx-2*p->x+vx+mx,ny-vy-my,NOCHANGE);break; |
case 2:if(vy>ny-1-my)vy=ny-1-my;move_win(p,CC_NOCHANGE,vy+my,nx-2*p->x+vx+mx,ny-vy-my,CC_NOCHANGE);break; |
| case 3:move_win(p,NOCHANGE,NOCHANGE,nx-2*p->x+vx+mx,NOCHANGE,NOCHANGE);break; |
case 3:move_win(p,CC_NOCHANGE,CC_NOCHANGE,nx-2*p->x+vx+mx,CC_NOCHANGE,CC_NOCHANGE);break; |
| case 4:move_win(p,NOCHANGE,NOCHANGE,nx-2*p->x+vx+mx,ny-2*p->y+vy+my,NOCHANGE);break; |
case 4:move_win(p,CC_NOCHANGE,CC_NOCHANGE,nx-2*p->x+vx+mx,ny-2*p->y+vy+my,CC_NOCHANGE);break; |
| case 5:move_win(p,NOCHANGE,NOCHANGE,NOCHANGE,ny-2*p->y+vy+my,NOCHANGE);break; |
case 5:move_win(p,CC_NOCHANGE,CC_NOCHANGE,CC_NOCHANGE,ny-2*p->y+vy+my,CC_NOCHANGE);break; |
| case 6:if(vx>nx-10-mx)vx=nx-10-mx;move_win(p,vx+mx,NOCHANGE,nx-vx-mx,ny-2*p->y+vy+my,NOCHANGE);break; |
case 6:if(vx>nx-10-mx)vx=nx-10-mx;move_win(p,vx+mx,CC_NOCHANGE,nx-vx-mx,ny-2*p->y+vy+my,CC_NOCHANGE);break; |
| case 7:if(vx>nx-10-mx)vx=nx-10-mx;move_win(p,vx+mx,NOCHANGE,nx-vx-mx,NOCHANGE,NOCHANGE);break; |
case 7:if(vx>nx-10-mx)vx=nx-10-mx;move_win(p,vx+mx,CC_NOCHANGE,nx-vx-mx,CC_NOCHANGE,CC_NOCHANGE);break; |
| case 8:if(vx>nx-10-mx)vx=nx-10-mx;if(vy>ny-1-my)vy=ny-1-my; |
case 8:if(vx>nx-10-mx)vx=nx-10-mx;if(vy>ny-1-my)vy=ny-1-my; |
| move_win(p,vx+mx,vy+my,nx-vx-mx,ny-vy-my,NOCHANGE); |
move_win(p,vx+mx,vy+my,nx-vx-mx,ny-vy-my,CC_NOCHANGE); |
| } |
} |
| break; |
break; |
| case MM_LBUTTONDBLCLK: |
case CC_M_LBUTTONDBLCLK: |
| if(((dialog->style&ST_DI_HASMAXIMIZE)==ST_DI_HASMAXIMIZE)&&(inrect(0,0,p->vx,1,x,y))) |
if(((dialog->style&CC_ST_DI_HASMAXIMIZE)==CC_ST_DI_HASMAXIMIZE)&&(inrect(0,0,p->vx,1,x,y))) |
| { |
{ |
| capturewin=NULL; |
capturewin=NULL; |
| usekeys=true; |
usekeys=true; |
| dialog->bmaximize->extra->button.push(dialog->bmaximize); |
dialog->bmaximize->extra->button.push(dialog->bmaximize); |
| } |
} |
| break; |
break; |
| case MM_LBUTTONDOWN: |
case CC_M_LBUTTONDOWN: |
| if(inrect(0,0,p->vx,p->vy,x,y)&&(!inrect(1,1,p->vx-2,p->vy-2,x,y))) |
if(inrect(0,0,p->vx,p->vy,x,y)&&(!inrect(1,1,p->vx-2,p->vy-2,x,y))) |
| { |
{ |
| if((statemd&MD_CTRL)!=MD_CTRL) |
if((statemd&CC_D_CTRL)!=CC_D_CTRL) |
| { |
{ |
| if(inrect(0,0,p->vx,1,x,y))stat=0;else stat=-1; |
if(inrect(0,0,p->vx,1,x,y))stat=0;else stat=-1; |
| if(((dialog->style&ST_DI_SIZEABLE)==ST_DI_SIZEABLE)&&(dialog->state!=SV_MAXIMIZED)) |
if(((dialog->style&CC_ST_DI_SIZEABLE)==CC_ST_DI_SIZEABLE)&&(dialog->state!=CC_SV_MAXIMIZED)) |
| { |
{ |
| if((((inrect(1,0,1,1,x,y)||(inrect(p->vx-2,0,1,1,x,y)&&(p->vx>4)))&& |
if((((inrect(1,0,1,1,x,y)||(inrect(p->vx-2,0,1,1,x,y)&&(p->vx>4)))&& |
| (dialog->state==SV_NORMAL)))&&!(p->style&ST_AU_FIXED))stat=1; |
(dialog->state==CC_SV_NORMAL)))&&!(p->style&CC_ST_AU_FIXED))stat=1; |
| else if(inrect(p->vx-2,p->vy-2,2,2,x,y)&&(dialog->state==SV_NORMAL)&& |
else if(inrect(p->vx-2,p->vy-2,2,2,x,y)&&(dialog->state==CC_SV_NORMAL)&& |
| !(p->style&ST_AR_FIXED)&&!(p->style&ST_AD_FIXED))stat=4; |
!(p->style&CC_ST_AR_FIXED)&&!(p->style&CC_ST_AD_FIXED))stat=4; |
| else if(inrect(2,p->vy-1,p->vx-4,1,x,y)&&(p->vy>1)&&(dialog->state==SV_NORMAL)&& |
else if(inrect(2,p->vy-1,p->vx-4,1,x,y)&&(p->vy>1)&&(dialog->state==CC_SV_NORMAL)&& |
| !(p->style&ST_AD_FIXED))stat=5; |
!(p->style&CC_ST_AD_FIXED))stat=5; |
| else if(inrect(0,p->vy-2,2,2,x,y)&&(dialog->state==SV_NORMAL)&& |
else if(inrect(0,p->vy-2,2,2,x,y)&&(dialog->state==CC_SV_NORMAL)&& |
| !(p->style&ST_AL_FIXED)&&!(p->style&ST_AD_FIXED))stat=6; |
!(p->style&CC_ST_AL_FIXED)&&!(p->style&CC_ST_AD_FIXED))stat=6; |
| else if(inrect(p->vx-1,0,1,2,x,y)&&(dialog->state==SV_NORMAL)&& |
else if(inrect(p->vx-1,0,1,2,x,y)&&(dialog->state==CC_SV_NORMAL)&& |
| !(p->style&ST_AU_FIXED)&&!(p->style&ST_AR_FIXED))stat=2; |
!(p->style&CC_ST_AU_FIXED)&&!(p->style&CC_ST_AR_FIXED))stat=2; |
| else if(inrect(0,0,1,2,x,y)&&(dialog->state==SV_NORMAL)&& |
else if(inrect(0,0,1,2,x,y)&&(dialog->state==CC_SV_NORMAL)&& |
| !(p->style&ST_AU_FIXED)&&!(p->style&ST_AL_FIXED))stat=8; |
!(p->style&CC_ST_AU_FIXED)&&!(p->style&CC_ST_AL_FIXED))stat=8; |
| else if(inrect(p->vx-1,0,1,p->vy,x,y)&&!(p->style&ST_AR_FIXED))stat=3; |
else if(inrect(p->vx-1,0,1,p->vy,x,y)&&!(p->style&CC_ST_AR_FIXED))stat=3; |
| else if(inrect(0,0,1,p->vy,x,y)&&!(p->style&ST_AL_FIXED))stat=7; |
else if(inrect(0,0,1,p->vy,x,y)&&!(p->style&CC_ST_AL_FIXED))stat=7; |
| } |
} |
| if(stat==-1){stat=0;break;} |
if(stat==-1){stat=0;break;} |
| } |
} |
| Line 1028 bool dosendmousemessage(WIN *p,long vx,l |
|
| Line 1028 bool dosendmousemessage(WIN *p,long vx,l |
|
| ny=p->y+p->vy; |
ny=p->y+p->vy; |
| } |
} |
| break; |
break; |
| case MM_LBUTTONUP: |
case CC_M_LBUTTONUP: |
| if(capturewin!=p)break; |
if(capturewin!=p)break; |
| sendmousemessage(vx,vy,MM_MOUSEMOVE); |
sendmousemessage(vx,vy,CC_M_MOUSEMOVE); |
| stat=0; |
stat=0; |
| capturewin=NULL; |
capturewin=NULL; |
| usekeys=true; |
usekeys=true; |
| } |
} |
| } |
} |
| if(((state==MM_LBUTTONDOWN)||(state==MM_RBUTTONDOWN))&&setfocus)set_focus(findchild(p)); |
if(((state==CC_M_LBUTTONDOWN)||(state==CC_M_RBUTTONDOWN))&&setfocus)set_focus(findchild(p)); |
| if(chang)redrawclientwin(p); |
if(chang)redrawclientwin(p); |
| if(sendnext)sendmousemessage(vx,vy,state); |
if(sendnext)sendmousemessage(vx,vy,state); |
| return result; |
return result; |