Changeset 629 in dev for trunk/ab5.0/abdev/abdev/TextEditor_MouseEvent.cpp
- Timestamp:
- Jun 2, 2008, 11:50:24 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/TextEditor_MouseEvent.cpp
r625 r629 12 12 if((GetKeyState(VK_CONTROL)&0x8000)&&pobj_nv->bCtrlKeyHyperLink){ 13 13 //Ctrlキーが押されているとき 14 if(MdiInfo[WndNum] .pMdiTextEdit->iUnderStart!=-1){14 if(MdiInfo[WndNum]->pMdiTextEdit->iUnderStart!=-1){ 15 15 //単語が選択可能なとき 16 16 17 17 //半角文字列を選択時の全角とのズレを修正 18 18 int start,end; 19 start=MdiInfo[WndNum] .pMdiTextEdit->iUnderStart;20 end=MdiInfo[WndNum] .pMdiTextEdit->iUnderEnd;21 GetCaretPosFromBufferIndex(MdiInfo[WndNum] .pMdiTextEdit->buffer,start,&pos);22 start=GetBufferIndexFromCaretPos(MdiInfo[WndNum] .pMdiTextEdit->buffer,pos.x,pos.y);23 GetCaretPosFromBufferIndex(MdiInfo[WndNum] .pMdiTextEdit->buffer,end,&pos);24 end=GetBufferIndexFromCaretPos(MdiInfo[WndNum] .pMdiTextEdit->buffer,pos.x,pos.y);19 start=MdiInfo[WndNum]->pMdiTextEdit->iUnderStart; 20 end=MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd; 21 GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,start,&pos); 22 start=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,pos.x,pos.y); 23 GetCaretPosFromBufferIndex(MdiInfo[WndNum]->pMdiTextEdit->buffer,end,&pos); 24 end=GetBufferIndexFromCaretPos(MdiInfo[WndNum]->pMdiTextEdit->buffer,pos.x,pos.y); 25 25 26 26 int length; … … 32 32 memcpy( 33 33 pTemp, 34 MdiInfo[WndNum] .pMdiTextEdit->buffer+start,34 MdiInfo[WndNum]->pMdiTextEdit->buffer+start, 35 35 length); 36 36 pTemp[length]=0; … … 53 53 54 54 int iControlTabSpace; 55 iControlTabSpace=MdiInfo[WndNum] .pMdiTextEdit->iWidth_ControlTabSpace;56 57 if(MdiInfo[WndNum] .IndentStr){55 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace; 56 57 if(MdiInfo[WndNum]->IndentStr){ 58 58 //自動インデント中のインデントを無効にする 59 59 CancelBeforeAutoIndent(WndNum); 60 60 } 61 61 62 MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll=0;62 MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll=0; 63 63 64 64 //上下キャレット移動時の左右位置保持機能を解除 65 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=-1;65 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 66 66 67 67 if(0<=(pMousePos->x) && (pMousePos->x)<iControlTabSpace){ … … 74 74 0, 75 75 pMousePos->y, 76 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);77 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;76 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 77 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 78 78 79 79 //////////// … … 82 82 83 83 char *pBuf; 84 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;84 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 85 85 CHARRANGE CharRange; 86 86 TextEdit_GetSel(WndNum,&CharRange); … … 101 101 pMousePos->x-iControlTabSpace, 102 102 pMousePos->y, 103 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);103 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 104 104 105 105 if(!(GetKeyState(VK_SHIFT)&0x8000)){ 106 106 //シフトキーが押されていない、通常時 107 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;107 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 108 108 } 109 109 … … 123 123 124 124 int iControlTabSpace; 125 iControlTabSpace=MdiInfo[WndNum] .pMdiTextEdit->iWidth_ControlTabSpace;125 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace; 126 126 127 127 if(0<=(pMousePos->x) && (pMousePos->x)<iControlTabSpace){ … … 140 140 141 141 //オートスクロールスレッドを停止 142 MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll=0;142 MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll=0; 143 143 144 144 //編集メニューをリセット … … 160 160 //エディタ画面左端のコントロールタブ 161 161 int iControlTabSpace; 162 iControlTabSpace=MdiInfo[WndNum] .pMdiTextEdit->iWidth_ControlTabSpace;163 164 165 while(MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll){162 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace; 163 164 165 while(MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll){ 166 166 GetCursorPos(&pos); 167 167 ScreenToClient(hwnd,&pos); … … 176 176 pos.x, 177 177 pos.y, 178 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);178 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 179 179 180 180 if(!TextEdit_ScrollCaret(WndNum,1)) … … 195 195 196 196 int iControlTabSpace; 197 iControlTabSpace=MdiInfo[WndNum] .pMdiTextEdit->iWidth_ControlTabSpace;197 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace; 198 198 199 199 if(GetCapture()==hwnd){ … … 215 215 //////////////////////////// 216 216 217 if(MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll){217 if(MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll){ 218 218 //すでにオートスクロールスレッドが作動中のときは抜け出す 219 219 return; … … 221 221 222 222 //オートスクロールスレッドを起動 223 MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll=1;223 MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll=1; 224 224 225 225 _beginthread((void (__cdecl *)(void *))AutoScrollThread,0,(void *)hwnd); … … 227 227 return; 228 228 } 229 else if(MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll){229 else if(MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll){ 230 230 //オートスクロールを解除 231 MdiInfo[WndNum] .pMdiTextEdit->bAutoScroll=0;231 MdiInfo[WndNum]->pMdiTextEdit->bAutoScroll=0; 232 232 } 233 233 … … 243 243 &pos); 244 244 245 if(pos.x!=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x||pos.y!=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y){246 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=pos;245 if(pos.x!=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x||pos.y!=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y){ 246 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=pos; 247 247 248 248 InvalidateRect(hwnd,NULL,0); … … 271 271 272 272 TextEdit_GetWordCaret( 273 MdiInfo[WndNum] .pMdiTextEdit->hEdit,273 MdiInfo[WndNum]->pMdiTextEdit->hEdit, 274 274 WndNum, 275 275 &pos, 276 &MdiInfo[WndNum] .pMdiTextEdit->iUnderStart,&MdiInfo[WndNum].pMdiTextEdit->iUnderEnd,276 &MdiInfo[WndNum]->pMdiTextEdit->iUnderStart,&MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd, 277 277 WORDCARET_AFTER); 278 278 … … 283 283 } 284 284 else{ 285 if(MdiInfo[WndNum] .pMdiTextEdit->iUnderStart!=-1){286 MdiInfo[WndNum] .pMdiTextEdit->iUnderStart=-1;287 MdiInfo[WndNum] .pMdiTextEdit->iUnderEnd=-1;285 if(MdiInfo[WndNum]->pMdiTextEdit->iUnderStart!=-1){ 286 MdiInfo[WndNum]->pMdiTextEdit->iUnderStart=-1; 287 MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd=-1; 288 288 289 289 InvalidateRect(hwnd,NULL,0); … … 301 301 302 302 int start,end; 303 TextEdit_GetWordCaret(hwnd,WndNum,&MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos,&start,&end,WORDCARET_AFTER);303 TextEdit_GetWordCaret(hwnd,WndNum,&MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos,&start,&end,WORDCARET_AFTER); 304 304 305 305 //セレクト … … 315 315 316 316 int iControlTabSpace; 317 iControlTabSpace=MdiInfo[WndNum] .pMdiTextEdit->iWidth_ControlTabSpace;317 iControlTabSpace=MdiInfo[WndNum]->pMdiTextEdit->iWidth_ControlTabSpace; 318 318 319 319 if(0<=(pMousePos->x) && (pMousePos->x)<iControlTabSpace){
Note:
See TracChangeset
for help on using the changeset viewer.