Changeset 629 in dev for trunk/ab5.0/abdev/abdev/Caret.cpp
- Timestamp:
- Jun 2, 2008, 11:50:24 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/Caret.cpp
r625 r629 124 124 125 125 pCharRange->cpMin=GetBufferIndexFromCaretPos( 126 MdiInfo[WndNum] .pMdiTextEdit->buffer,127 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,128 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);129 130 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&131 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y){126 MdiInfo[WndNum]->pMdiTextEdit->buffer, 127 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 128 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 129 130 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&& 131 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y){ 132 132 //選択されていないとき 133 133 pCharRange->cpMax=pCharRange->cpMin; … … 135 135 else{ 136 136 pCharRange->cpMax=GetBufferIndexFromCaretPos( 137 MdiInfo[WndNum] .pMdiTextEdit->buffer,138 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos.x,139 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos.y);137 MdiInfo[WndNum]->pMdiTextEdit->buffer, 138 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x, 139 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y); 140 140 } 141 141 … … 150 150 151 151 memcpy(buffer, 152 MdiInfo[WndNum] .pMdiTextEdit->buffer+pCharRange->cpMin,152 MdiInfo[WndNum]->pMdiTextEdit->buffer+pCharRange->cpMin, 153 153 pCharRange->cpMax-pCharRange->cpMin); 154 154 buffer[pCharRange->cpMax-pCharRange->cpMin]=0; … … 158 158 159 159 HWND hEdit; 160 hEdit=MdiInfo[WndNum] .pMdiTextEdit->hEdit;160 hEdit=MdiInfo[WndNum]->pMdiTextEdit->hEdit; 161 161 162 162 //垂直スクロールバーの位置 … … 175 175 176 176 HWND hEdit; 177 hEdit=GetWindow(MdiInfo[WndNum] .hwnd,GW_CHILD);177 hEdit=GetWindow(MdiInfo[WndNum]->hwnd,GW_CHILD); 178 178 179 179 //垂直スクロールバーの位置 … … 192 192 193 193 GetCaretPosFromBufferIndex( 194 MdiInfo[WndNum] .pMdiTextEdit->buffer,194 MdiInfo[WndNum]->pMdiTextEdit->buffer, 195 195 StartIndex, 196 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);196 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 197 197 198 198 GetCaretPosFromBufferIndex( 199 MdiInfo[WndNum] .pMdiTextEdit->buffer,199 MdiInfo[WndNum]->pMdiTextEdit->buffer, 200 200 EndIndex, 201 &MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos);201 &MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos); 202 202 203 203 HWND hEdit; 204 hEdit=GetWindow(MdiInfo[WndNum] .hwnd,GW_CHILD);204 hEdit=GetWindow(MdiInfo[WndNum]->hwnd,GW_CHILD); 205 205 206 206 if(!TextEdit_ScrollCaret(WndNum,0,bShowCenter)) … … 218 218 int iStartPos; 219 219 iStartPos=code_pos; 220 while(MdiInfo[WndNum] .pMdiTextEdit->buffer[iStartPos]!='\n'&&iStartPos>0) iStartPos--;221 if(MdiInfo[WndNum] .pMdiTextEdit->buffer[iStartPos]=='\n') iStartPos++;220 while(MdiInfo[WndNum]->pMdiTextEdit->buffer[iStartPos]!='\n'&&iStartPos>0) iStartPos--; 221 if(MdiInfo[WndNum]->pMdiTextEdit->buffer[iStartPos]=='\n') iStartPos++; 222 222 223 223 int iEndPos; 224 224 iEndPos=code_pos; 225 while(MdiInfo[WndNum] .pMdiTextEdit->buffer[iEndPos]!='\r'&&MdiInfo[WndNum].pMdiTextEdit->buffer[iEndPos]!='\0') iEndPos++;225 while(MdiInfo[WndNum]->pMdiTextEdit->buffer[iEndPos]!='\r'&&MdiInfo[WndNum]->pMdiTextEdit->buffer[iEndPos]!='\0') iEndPos++; 226 226 227 227 TextEdit_SetSel(WndNum,iStartPos,iEndPos,bShowCenter); … … 234 234 GetCaretPos(&OldPos); 235 235 236 x=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x;237 y=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y;236 x=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x; 237 y=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y; 238 238 GetScrollBaseCaretPos(WndNum,&x,&y); 239 239 240 240 //エディタ画面左端のコントロールタブ 241 241 int iControlTabSpace; 242 iControlTabSpace=MdiInfo[WndNum] .pMdiTextEdit->iWidth_ControlTabSpace;242 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace; 243 243 244 244 //コントロールタブ上にカーソルがきたときに、非表示にする 245 if(OldPos.x>=iControlTabSpace&&x<0) HideCaret(MdiInfo[WndNum] .pMdiTextEdit->hEdit);246 else if(OldPos.x<iControlTabSpace&&x>=0) ShowCaret(MdiInfo[WndNum] .pMdiTextEdit->hEdit);245 if(OldPos.x>=iControlTabSpace&&x<0) HideCaret(MdiInfo[WndNum]->pMdiTextEdit->hEdit); 246 else if(OldPos.x<iControlTabSpace&&x>=0) ShowCaret(MdiInfo[WndNum]->pMdiTextEdit->hEdit); 247 247 248 248 SetCaretPos( … … 256 256 // Web検索文字列 257 257 ////////////////////////////////////////////// 258 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum] .DocType)){258 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){ 259 259 int start,end; 260 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&261 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y){260 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&& 261 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y){ 262 262 //文字列を選択中でないとき 263 263 264 264 int sw=0; 265 265 if(bInputAndReset){ 266 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x>1){267 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x-=2;266 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x>1){ 267 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x-=2; 268 268 sw=1; 269 269 } … … 271 271 272 272 TextEdit_GetWordCaret( 273 MdiInfo[WndNum] .pMdiTextEdit->hEdit,273 MdiInfo[WndNum]->pMdiTextEdit->hEdit, 274 274 WndNum, 275 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos,275 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos, 276 276 &start,&end, 277 277 WORDCARET_BEFORE); 278 278 279 if(sw) MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x+=2;279 if(sw) MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x+=2; 280 280 281 281 //半角文字列を選択時の全角とのズレを修正 282 282 POINT pos; 283 GetCaretPosFromBufferIndex(MdiInfo[WndNum] .pMdiTextEdit->buffer,start,&pos);284 start=GetBufferIndexFromCaretPos(MdiInfo[WndNum] .pMdiTextEdit->buffer,pos.x,pos.y);285 GetCaretPosFromBufferIndex(MdiInfo[WndNum] .pMdiTextEdit->buffer,end,&pos);286 end=GetBufferIndexFromCaretPos(MdiInfo[WndNum] .pMdiTextEdit->buffer,pos.x,pos.y);283 GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,start,&pos); 284 start=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,pos.x,pos.y); 285 GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,end,&pos); 286 end=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,pos.x,pos.y); 287 287 } 288 288 else{ 289 289 //文字列を選択中のとき 290 290 start=GetBufferIndexFromCaretPos( 291 MdiInfo[WndNum] .pMdiTextEdit->buffer,292 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,293 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);291 MdiInfo[WndNum]->pMdiTextEdit->buffer, 292 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 293 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 294 294 end=GetBufferIndexFromCaretPos( 295 MdiInfo[WndNum] .pMdiTextEdit->buffer,296 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos.x,297 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos.y);295 MdiInfo[WndNum]->pMdiTextEdit->buffer, 296 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x, 297 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y); 298 298 } 299 299 … … 310 310 if(length<0) length=0; 311 311 pTemp=(char *)HeapAlloc(hHeap,0,length+1024); 312 memcpy(pTemp,MdiInfo[WndNum] .pMdiTextEdit->buffer+start,length);312 memcpy(pTemp,MdiInfo[WndNum]->pMdiTextEdit->buffer+start,length); 313 313 pTemp[length]=0; 314 314 … … 340 340 extern METHODCHECKINFO MethodCheckInfo; 341 341 if(MethodCheckInfo.hWnd){ 342 if(MdiInfo[WndNum] .DocType==WNDTYPE_BASIC)342 if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC) 343 343 ShowParameterHint(WndNum); 344 344 } … … 354 354 char *pTemp,temporary[VN_SIZE]; 355 355 356 i=GetBufferIndexFromCaretPos(MdiInfo[WndNum] .pMdiTextEdit->buffer,357 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,358 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);356 i=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer, 357 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 358 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 359 359 360 360 if(i<ComplementWndInfo.iPos||ComplementWndInfo.iPos+ComplementWndInfo.iLength<i){ … … 379 379 pTemp=(char *)HeapAlloc(hHeap,0,ComplementWndInfo.iLength+1); 380 380 memcpy(pTemp, 381 MdiInfo[WndNum] .pMdiTextEdit->buffer+ComplementWndInfo.iPos,381 MdiInfo[WndNum]->pMdiTextEdit->buffer+ComplementWndInfo.iPos, 382 382 ComplementWndInfo.iLength); 383 383 pTemp[ComplementWndInfo.iLength]=0; … … 432 432 pTemp=(char *)HeapAlloc(hHeap,0,ComplementWndInfo.iLength+1); 433 433 memcpy(pTemp, 434 MdiInfo[WndNum] .pMdiTextEdit->buffer+ComplementWndInfo.iPos,434 MdiInfo[WndNum]->pMdiTextEdit->buffer+ComplementWndInfo.iPos, 435 435 ComplementWndInfo.iLength); 436 436 pTemp[ComplementWndInfo.iLength]=0; … … 462 462 463 463 HWND hEdit; 464 hEdit=MdiInfo[WndNum] .pMdiTextEdit->hEdit;465 466 x=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x;467 y=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y;464 hEdit=MdiInfo[WndNum]->pMdiTextEdit->hEdit; 465 466 x=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x; 467 y=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y; 468 468 GetScrollBaseCaretPos(WndNum,&x,&y); 469 469 … … 537 537 if(loose_y<0) loose_y=0; 538 538 539 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;539 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 540 540 541 541 // 行の確認 … … 659 659 660 660 POINT *pCaretPos; 661 pCaretPos=&MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos;661 pCaretPos=&MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 662 662 663 663 if(pCaretPos->x==0&&pCaretPos->y==0){ … … 666 666 } 667 667 668 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;668 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 669 669 670 670 i=GetBufferIndexFromCaretPos(pBuf, … … 711 711 char *pBuf; 712 712 713 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;713 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 714 714 715 715 i=GetBufferIndexFromCaretPos(pBuf, … … 768 768 769 769 //上下のキャレット移動時には、左右方向の位置を保持する 770 if(MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos==-1)771 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;770 if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1) 771 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x; 772 772 773 773 pCaretPos->y--; 774 774 775 775 CaretPos_LooseToNatural(WndNum, 776 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos,776 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos, 777 777 pCaretPos->y, 778 778 pCaretPos); … … 784 784 785 785 //上下のキャレット移動時には、左右方向の位置を保持する 786 if(MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos==-1)787 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;786 if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1) 787 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x; 788 788 789 789 pCaretPos->y++; 790 790 791 791 CaretPos_LooseToNatural(WndNum, 792 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos,792 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos, 793 793 pCaretPos->y, 794 794 pCaretPos); … … 805 805 806 806 //上下のキャレット移動時には、左右方向の位置を保持する 807 if(MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos==-1)808 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;807 if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1) 808 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x; 809 809 810 810 SCROLLINFO si; 811 811 si.cbSize=sizeof(SCROLLINFO); 812 812 si.fMask=SIF_PAGE; 813 GetScrollInfo(MdiInfo[WndNum] .pMdiTextEdit->hEdit,SB_VERT,&si);813 GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si); 814 814 pCaretPos->y-=si.nPage; 815 815 if(pCaretPos->y<0) pCaretPos->y=0; 816 816 817 817 CaretPos_LooseToNatural(WndNum, 818 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos,818 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos, 819 819 pCaretPos->y, 820 820 pCaretPos); … … 826 826 827 827 //上下のキャレット移動時には、左右方向の位置を保持する 828 if(MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos==-1)829 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;828 if(MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos==-1) 829 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x; 830 830 831 831 SCROLLINFO si; 832 832 si.cbSize=sizeof(SCROLLINFO); 833 833 si.fMask=SIF_PAGE; 834 GetScrollInfo(MdiInfo[WndNum] .pMdiTextEdit->hEdit,SB_VERT,&si);834 GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si); 835 835 pCaretPos->y+=si.nPage; 836 836 837 837 CaretPos_LooseToNatural(WndNum, 838 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos,838 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos, 839 839 pCaretPos->y, 840 840 pCaretPos);
Note:
See TracChangeset
for help on using the changeset viewer.