From: Jorge G. <cl...@us...> - 2007-02-12 10:00:41
|
Update of /cvsroot/easycalc/easycalc In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv4158 Modified Files: main.c Log Message: Highlight of brackets when closing Index: main.c =================================================================== RCS file: /cvsroot/easycalc/easycalc/main.c,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** main.c 10 Oct 2006 00:58:36 -0000 1.70 --- main.c 12 Feb 2007 10:00:29 -0000 1.71 *************** *** 780,783 **** --- 780,784 ---- Tbase trig; Tbase base; + static UInt16 BrH=0,start; #ifdef SUPPORT_DIA *************** *** 787,790 **** --- 788,799 ---- #endif + if(event->eType && BrH==1){ + EventType newevent; + newevent.eType=nilEvent; + EvtAddEventToQueue(&newevent); + EvtAddEventToQueue(event); + return true; + } + switch (event->eType) { *************** *** 805,808 **** --- 814,820 ---- main_input_exec(); handled=true; + } else if (event->data.keyDown.chr==')' || event->data.keyDown.chr=='(') { + calc_nil_timeout(0); + BrH=2; } else if (formid == frmScientific && event->data.keyDown.chr == pageDownChr) { *************** *** 1041,1046 **** --- 1053,1067 ---- break; default: + if(calcPrefs.matchParenth) { + handled=false; + break; + } + case btnMainClBr: + BrH=2; + calc_nil_timeout(0); handled=false; + break; } + if (main_btnrow_click(controlID)) handled = true; *************** *** 1123,1126 **** --- 1144,1198 ---- } break; + case fldEnterEvent: + if(event->data.fldEnter.fieldID==tdInput){ + BrH=2; + calc_nil_timeout(0); + } + break; + case nilEvent: + if(BrH==2){ + UInt16 j,k=1,end; + char char1,char2; + + field=GetObjectPtr(tdInput); + FldGetSelection(field,&start,&end); + + if(start!=end || end==0){ + goto exit; + } + + j=start-1; + text = FldGetTextPtr(field); + if(text[j]==')'){ + char1=')'; char2='('; + i=-1; end=0; + }else if(text[j]=='('){ + char1='('; char2=')'; + i=1; end=StrLen(text); + }else{ + goto exit; + } + + while(j!=end && k){ + j+=i; + if(text[j]==char1) k++; + else if(text[j]==char2) k--; + } + + if(k) goto exit; + else{ + FldSetSelection(field,j,j+1); + calc_nil_timeout(40); + BrH=1; + } + } + else if(BrH==1) + { + FldSetSelection(GetObjectPtr(tdInput),start,start); + exit: calc_nil_timeout(evtWaitForever); + BrH=0; + } + handled=true; + break; } |