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.3 and 1.4

version 1.3, 2005/11/29 18:46:31 version 1.4, 2005/12/01 18:52:29
Line 20  bool eventq=false;
Line 20  bool eventq=false;
 pthread_t gpmthreadp;  pthread_t gpmthreadp;
 WIN *lastfocused=NULL;  WIN *lastfocused=NULL;
   
   void setcomboactiveitem(COMBO *combo,long old,long new)
   {
     if(new==old)return;
     if(new==-1)combo->activeitem=NULL;
     else
     {
       if(old==-1)combo->activeitem=g_list_nth(combo->list->extra->list.lines,new);
       else
       {
         if(new>old)
           while(new>old)
           {
             combo->activeitem=g_list_next(combo->activeitem);
             old++;
           }
         else
           while(old>new)
           {
             combo->activeitem=g_list_previous(combo->activeitem);
             new++;
           }
       }
     }
   }
   
 void setlistactiveitem(LIST *list,long old,long new)  void setlistactiveitem(LIST *list,long old,long new)
 {  {
   if(new==old)return;    if(new==old)return;
Line 45  void setlistactiveitem(LIST *list,long o
Line 70  void setlistactiveitem(LIST *list,long o
   }    }
 }  }
   
   void setlistscrollupitem(LIST *list,long old,long new)
   {
     if(new==old)return;
     if(new==-1)list->scrollupitem=NULL;
     else
     {
       if(old==-1)list->scrollupitem=g_list_nth(list->lines,new);
       else
       {
         if(new>old)
           while(new>old)
           {
             list->scrollupitem=g_list_next(list->scrollupitem);
             old++;
           }
         else
           while(old>new)
           {
             list->scrollupitem=g_list_previous(list->scrollupitem);
             new++;
           }
       }
     }
   }
   
 void buttondoubletimer(TIMER *sender)  void buttondoubletimer(TIMER *sender)
 {  {
   redraw();    redrawclientwin(sender->win);
   redraw();    redrawclientwin(sender->win);
   del_timer(sender);    del_timer(sender);
 }  }
   
Line 189  void domouseevent(MEVENT *event)
Line 239  void domouseevent(MEVENT *event)
     doubleclickstate2=false;      doubleclickstate2=false;
     doubletimer2=NULL;      doubletimer2=NULL;
   }    }
   gpmev.x=mousex=event->x;    mousex=event->x;
   gpmev.y=mousey=event->y;    mousey=event->y;
     if(mouseactive!=MOUSE_GPM)
     {
       gpmev.x=mousex;
       gpmev.y=mousey;
     }
   sendmousemessage(mousex,mousey,MM_MOUSEMOVE|mod);    sendmousemessage(mousex,mousey,MM_MOUSEMOVE|mod);
 }  }
   
Line 416  bool dosendmousemessage(WIN *p,long vx,l
Line 471  bool dosendmousemessage(WIN *p,long vx,l
         if(inrect(0,0,p->vx,1,x,y)&&((stat==0)||(stat==1))&&(p->vy>1)){stat=1;scroll->sup=SC_DOWN;}          if(inrect(0,0,p->vx,1,x,y)&&((stat==0)||(stat==1))&&(p->vy>1)){stat=1;scroll->sup=SC_DOWN;}
         else if(inrect(0,1,p->vx,len,x,y)&&((stat==0)||(stat==2))){stat=2;scroll->spageup=SC_DOWN;}          else if(inrect(0,1,p->vx,len,x,y)&&((stat==0)||(stat==2))){stat=2;scroll->spageup=SC_DOWN;}
         else if(inrect(0,1+len,p->vx,1,x,y)&&((stat==0)||(stat==3))&&(p->vy>3)){stat=3;stlen=1+len-y;}          else if(inrect(0,1+len,p->vx,1,x,y)&&((stat==0)||(stat==3))&&(p->vy>3)){stat=3;stlen=1+len-y;}
         else if(inrect(0,1+len+1,p->vx,p->vy-2-1-len,x,y)&&((stat==0)||(stat==4))){stat=4;scroll->spagedown=SC_DOWN;}          else if(inrect(0,1+len+1,p->vx,p->vy-2-1-len,x,y)&&((stat==0)||(stat==4)))
                {stat=4;scroll->spagedown=SC_DOWN;}
         else if(inrect(0,p->vy-1,p->vx,1,x,y)&&((stat==0)||(stat==5))){stat=5;scroll->sdown=SC_DOWN;}          else if(inrect(0,p->vy-1,p->vx,1,x,y)&&((stat==0)||(stat==5))){stat=5;scroll->sdown=SC_DOWN;}
       }        }
       else        else
Line 424  bool dosendmousemessage(WIN *p,long vx,l
Line 480  bool dosendmousemessage(WIN *p,long vx,l
         len=(p->vx-2-1)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos);          len=(p->vx-2-1)*(scroll->pos-scroll->minpos)/(scroll->maxpos-scroll->minpos);
         if((y>=0)&&(y<p->vy))          if((y>=0)&&(y<p->vy))
         {          {
           if(inrect(0,0,1,p->vy,x,y)&&((stat==0)||(stat==1))&&(p->vy>1)){stat=1;scroll->sup=SC_DOWN;}            if(inrect(0,0,1,p->vy,x,y)&&((stat==0)||(stat==1))&&(p->vx>1)){stat=1;scroll->sup=SC_DOWN;}
           else if(inrect(1,0,len,p->vy,x,y)&&((stat==0)||(stat==2))){stat=2;scroll->spageup=SC_DOWN;}            else if(inrect(1,0,len,p->vy,x,y)&&((stat==0)||(stat==2))){stat=2;scroll->spageup=SC_DOWN;}
           else if(inrect(1+len,0,1,p->vy,x,y)&&((stat==0)||(stat==3))&&(p->vx>3)){stat=3;stlen=1+len-x;}            else if(inrect(1+len,0,1,p->vy,x,y)&&((stat==0)||(stat==3))&&(p->vx>3)){stat=3;stlen=1+len-x;}
           else if(inrect(1+len+1,0,p->vx-2-1-len,p->vy,x,y)&&((stat==0)||(stat==4))){stat=4;scroll->spagedown=SC_DOWN;}            else if(inrect(1+len+1,0,p->vx-2-1-len,p->vy,x,y)&&((stat==0)||(stat==4)))
                  {stat=4;scroll->spagedown=SC_DOWN;}
           else if(inrect(p->vx-1,0,1,p->vy,x,y)&&((stat==0)||(stat==5))){stat=5;scroll->sdown=SC_DOWN;}            else if(inrect(p->vx-1,0,1,p->vy,x,y)&&((stat==0)||(stat==5))){stat=5;scroll->sdown=SC_DOWN;}
         }          }
       }        }
Line 479  bool dosendmousemessage(WIN *p,long vx,l
Line 536  bool dosendmousemessage(WIN *p,long vx,l
       if(capturewin==p)        if(capturewin==p)
       {        {
         actline=list->activeline;          actline=list->activeline;
         if((list->combotyp!=CT_COMBO)||((list->combotyp==CT_COMBO)&&(stat==1)))list->activeline=y-1+vscroll->pos;          if((list->combotyp!=CT_COMBO)||((list->combotyp==CT_COMBO)&&(stat==1)))
             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!=CT_COMBO)||((list->combotyp==CT_COMBO)&&(stat==1)))
Line 924  bool dosendmousemessage(WIN *p,long vx,l
Line 982  bool dosendmousemessage(WIN *p,long vx,l
         case 5:move_win(p,NOCHANGE,NOCHANGE,NOCHANGE,ny-2*p->y+vy+my,NOCHANGE);break;          case 5:move_win(p,NOCHANGE,NOCHANGE,NOCHANGE,ny-2*p->y+vy+my,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,NOCHANGE,nx-vx-mx,ny-2*p->y+vy+my,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,NOCHANGE,nx-vx-mx,NOCHANGE,NOCHANGE);break;
         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);          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);
       }        }
       break;        break;
       case MM_LBUTTONDBLCLK:        case MM_LBUTTONDBLCLK:
Line 978  bool dosendmousemessage(WIN *p,long vx,l
Line 1037  bool dosendmousemessage(WIN *p,long vx,l
     }      }
   }    }
   if(((state==MM_LBUTTONDOWN)||(state==MM_RBUTTONDOWN))&&setfocus)set_focus(findchild(p));    if(((state==MM_LBUTTONDOWN)||(state==MM_RBUTTONDOWN))&&setfocus)set_focus(findchild(p));
   if(chang)redraw();    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.3  
changed lines
  Added in v.1.4

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