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_main.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 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});
   }    }

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