Changeset 497 in dev for trunk/ab5.0/abdev/abdev/abdev.cpp
- Timestamp:
- Apr 19, 2008, 7:08:37 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/abdev.cpp
r496 r497 1374 1374 case WM_COMMAND: 1375 1375 switch(LOWORD(wParam)){ 1376 case IDM_SAVE:1377 SaveDocument(GetWindow(hClient,GW_CHILD),NULL);1378 return 0;1379 case IDM_NEWSAVE:1380 //"保存先のファイルを指定してください"1381 if(!GetFilePathDialog(hwnd,str,DefFileFilter,STRING_FILESAVETITLE_DEFAULT,FALSE)) return 0;1382 1383 SaveDocument(GetWindow(hClient,GW_CHILD),str);1384 return 0;1385 case IDM_CODE_SAVE:1386 //文字コードを指定して保存1387 DialogBox(hResInst,MAKEINTRESOURCE(IDD_CODE_SAVE),hOwner,(DLGPROC)nkfDlgCodeSave);1388 return 0;1389 case IDM_ALLSAVE:1390 for(i=0;i<MAX_WNDNUM;i++){1391 if(MdiInfo[i].hwnd) SaveDocument(MdiInfo[i].hwnd,NULL);1392 }1393 if(ProjectInfo.name[0]) SaveProject();1394 return 0;1395 1396 case IDM_PAGESET:1397 //ページ設定1398 obj_Page.SetupDlg();1399 return 0;1400 1401 case IDM_PREVIEW:1402 //プレビュー(Pro版のみ)1403 Preview();1404 return 0;1405 1406 case IDM_PRINTOUT:1407 //印刷1408 Printout();1409 return 0;1410 1411 case IDM_EXIT:1412 SendMessage(hwnd,WM_CLOSE,0,0);1413 return 0;1414 case IDM_UNDO:1415 case (WORD)IDM_ACCEL_UNDO:1416 hChild=GetWindow(hClient,GW_CHILD);1417 if(!hChild) return 0;1418 WndNum=GetWndNum(hChild);1419 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))1420 TextEdit_UndoCommand(WndNum);1421 else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)1422 Rad_UndoCommand(WndNum);1423 else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)1424 IconEdit_UndoCommand(WndNum);1425 return 0;1426 case IDM_REDO:1427 case (WORD)IDM_ACCEL_REDO:1428 hChild=GetWindow(hClient,GW_CHILD);1429 if(!hChild) return 0;1430 WndNum=GetWndNum(hChild);1431 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))1432 TextEdit_RedoCommand(WndNum);1433 else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)1434 Rad_RedoCommand(WndNum);1435 else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)1436 IconEdit_RedoCommand(WndNum);1437 return 0;1438 case IDM_CUT:1439 hChild=GetWindow(hClient,GW_CHILD);1440 WndNum=GetWndNum(hChild);1441 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){1442 hEdit=GetWindow(hChild,GW_CHILD);1443 1444 TextEdit_GetSel(WndNum,&CharRange);1445 1446 hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);1447 pTemp=(char *)GlobalLock(hGlobal);1448 memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);1449 pTemp[CharRange.cpMax-CharRange.cpMin]=0;1450 GlobalUnlock(hGlobal);1451 1452 //クリップボードに保存1453 OpenClipboard(hwnd);1454 EmptyClipboard();1455 SetClipboardData(CF_TEXT,hGlobal);1456 CloseClipboard();1457 1458 //選択文字列を消去1459 SendMessage(hEdit,WM_KEYDOWN,VK_DELETE,0);1460 }1461 else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){1462 i2=GetWndInfoNum(MdiInfo[WndNum].path);1463 1464 //クリップボードに格納するためのデータを用意する1465 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.x-=17;1466 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.y-=10;1467 hGlobal=Rad_GetChildInfoClipboardData(WndNum,i2);1468 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.x+=17;1469 ProjectInfo.pWindowInfo[i2].pChildInfo[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]].pos.y+=10;1470 1471 OpenClipboard(hwnd);1472 EmptyClipboard();1473 SetClipboardData(dwRadClipboardID,hGlobal);1474 CloseClipboard();1475 1476 SendMessage(MdiInfo[WndNum].MdiRadInfo->hRad,WM_COMMAND,IDM_RAD_ITEM_DELETE,0);1477 }1478 else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){1479 //クリップボードに格納するためのデータを用意する1480 hGlobal=IconEdit_GetChildInfoClipboardData(WndNum);1481 if(hGlobal==0) return 0;1482 1483 OpenClipboard(hwnd);1484 EmptyClipboard();1485 SetClipboardData(CF_BITMAP,hGlobal);1486 CloseClipboard();1487 1488 DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);1489 MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;1490 1491 IconEdit_EraseRect(WndNum,&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);1492 }1493 return 0;1494 case IDM_COPY:1495 hChild=GetWindow(hClient,GW_CHILD);1496 WndNum=GetWndNum(hChild);1497 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){1498 hEdit=GetWindow(hChild,GW_CHILD);1499 1500 TextEdit_GetSel(WndNum,&CharRange);1501 1502 hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);1503 pTemp=(char *)GlobalLock(hGlobal);1504 memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);1505 pTemp[CharRange.cpMax-CharRange.cpMin]=0;1506 GlobalUnlock(hGlobal);1507 1508 //クリップボードに保存1509 OpenClipboard(hwnd);1510 EmptyClipboard();1511 SetClipboardData(CF_TEXT,hGlobal);1512 CloseClipboard();1513 }1514 else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){1515 i2=GetWndInfoNum(MdiInfo[WndNum].path);1516 1517 //クリップボードに格納するためのデータを用意する1518 hGlobal=Rad_GetChildInfoClipboardData(WndNum,i2);1519 1520 OpenClipboard(hwnd);1521 EmptyClipboard();1522 SetClipboardData(dwRadClipboardID,hGlobal);1523 CloseClipboard();1524 }1525 else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){1526 //クリップボードに格納するためのデータを用意する1527 hGlobal=IconEdit_GetChildInfoClipboardData(WndNum);1528 1529 OpenClipboard(hwnd);1530 EmptyClipboard();1531 SetClipboardData(CF_BITMAP,hGlobal);1532 CloseClipboard();1533 }1534 return 0;1535 case IDM_PASTE:1536 hChild=GetWindow(hClient,GW_CHILD);1537 WndNum=GetWndNum(hChild);1538 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){1539 hEdit=GetWindow(hChild,GW_CHILD);1540 1541 //クリップボードを開く1542 OpenClipboard(hwnd);1543 hGlobal=GetClipboardData(CF_TEXT);1544 if(!hGlobal){1545 CloseClipboard();1546 return 0;1547 }1548 1549 1550 if(pobj_nv->bPasteIndent){1551 //インデント整形1552 pTemp=CodeFormatter((char *)GlobalLock(hGlobal));1553 GlobalUnlock(hGlobal);1554 }1555 else pTemp=(char *)GlobalLock(hGlobal);1556 1557 1558 //テキストエディタの文字列をリプレイス1559 TextEdit_ReplaceUpdateUndoData(WndNum,1560 pTemp,1561 1,1562 1);1563 1564 if(pobj_nv->bPasteIndent)1565 HeapDefaultFree(pTemp);1566 else1567 GlobalUnlock(hGlobal);1568 1569 //クリップボードを閉じる1570 CloseClipboard();1571 1572 1573 //キャレット位置までスクロールする1574 TextEdit_ScrollCaret(WndNum,0);1575 ResetCaretPos(WndNum);1576 }1577 else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){1578 OpenClipboard(hwnd);1579 hGlobal=GetClipboardData(dwRadClipboardID);1580 if(!hGlobal){1581 CloseClipboard();1582 return 0;1583 }1584 Rad_PasteChildInfoClipboardData(WndNum,hGlobal);1585 CloseClipboard();1586 }1587 else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){1588 OpenClipboard(hwnd);1589 hGlobal=GetClipboardData(CF_BITMAP);1590 if(!hGlobal){1591 CloseClipboard();1592 return 0;1593 }1594 IconEdit_PasteChildInfoClipboardData(WndNum,(HBITMAP)hGlobal);1595 CloseClipboard();1596 }1597 return 0;1598 1376 case IDM_DELETE: 1599 1377 hChild=GetWindow(hClient,GW_CHILD);
Note:
See TracChangeset
for help on using the changeset viewer.