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

Diff for tucniak/cuchar/cc_mouse.c between version 1.4 and 1.5

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;

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

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