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;
}
|