Changeset 455 in dev for trunk/ab5.0/abdev/ProjectEditor


Ignore:
Timestamp:
Mar 22, 2008, 9:47:59 PM (17 years ago)
Author:
dai_9181
Message:

・コンパイルビューへの出力を標準出力にも行うようにした。
#164への対応。コンパイルを中断すると高確率で強制終了してしまうバグを修正。
・ProjectEditorをVista用Microsoft SDKにてビルドできるようにした(WINVER定数を0x0501に指定した)。
#168への対応。エディタ上のDelegateキーワードを青色で表示するようにした。

Location:
trunk/ab5.0/abdev/ProjectEditor
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/ProjectEditor/DialogBoxes.cpp

    r302 r455  
    11091109
    11101110        //SideWebウィンドウを再表示
    1111         delete pobj_SideWeb;
    1112         pobj_SideWeb=new CSideWeb(hOwner);
    1113         ResizeOwnerWnd();
     1111        //delete pobj_SideWeb;
     1112        //pobj_SideWeb=new CSideWeb(hOwner);
     1113        //ResizeOwnerWnd();
    11141114    }
    11151115    return;
  • trunk/ab5.0/abdev/ProjectEditor/ProjectEditor.cpp

    r302 r455  
    8686#endif
    8787
     88
     89void CreateProcessWithStdHandle( const char *appPath, const char *cmdLine)
     90{
     91    std::string argsStr = (std::string)"\"" + appPath + "\" " + cmdLine;
     92    STARTUPINFO si;
     93    PROCESS_INFORMATION pi;
     94    memset(&si,0,sizeof(STARTUPINFO));
     95    si.cb=sizeof(STARTUPINFO);
     96    si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
     97    si.wShowWindow = SW_HIDE;
     98    si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
     99    si.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
     100    si.hStdError = GetStdHandle(STD_ERROR_HANDLE);
     101   
     102    char args[8192];
     103    lstrcpy( args, argsStr.c_str() );
     104
     105    CreateProcess( NULL, args, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi );
     106}
    88107
    89108void ToBigChar(char str[]){
     
    12881307
    12891308    int width_SideWeb=0;
    1290     if(pobj_SideWeb->bShow){
    1291         width_SideWeb=pobj_nv->width_WebSearchView+LEVER_THICK;
     1309    if( pobj_SideWeb )
     1310    {
     1311        if(pobj_SideWeb->bShow){
     1312            width_SideWeb=pobj_nv->width_WebSearchView+LEVER_THICK;
     1313        }
    12921314    }
    12931315
     
    13231345        1);
    13241346
    1325     if(pobj_SideWeb->bShow){
    1326         //SideWeb
    1327         pobj_SideWeb->resize(
    1328             width_owner - pobj_nv->width_WebSearchView,
    1329             height_Rebar,
    1330             pobj_nv->width_WebSearchView,
    1331             height_MdiClient);
    1332     }
    1333     else pobj_SideWeb->resize(0,0,0,0);
     1347    if( pobj_SideWeb )
     1348    {
     1349        if(pobj_SideWeb->bShow){
     1350            //SideWeb
     1351            pobj_SideWeb->resize(
     1352                width_owner - pobj_nv->width_WebSearchView,
     1353                height_Rebar,
     1354                pobj_nv->width_WebSearchView,
     1355                height_MdiClient);
     1356        }
     1357        else pobj_SideWeb->resize(0,0,0,0);
     1358    }
    13341359
    13351360    if(width_pjv){
     
    14591484
    14601485        case WM_DRAWITEM:
    1461             DRAWITEMSTRUCT *pdis;
    1462             pdis=(DRAWITEMSTRUCT *)lParam;
    1463 
    1464             if(pdis->CtlType==ODT_MENU){
    1465                 if(!pobj_MainMenu) return 0;
    1466 
    1467                 CMenuItemData *pobj_MenuItemData;
    1468                 pobj_MenuItemData=(CMenuItemData *)pdis->itemData;
    1469                 if(pobj_MainMenu->hMenu==pobj_MenuItemData->pobj_ThisMenu->hMenu){
    1470                     //メインメニューの親アイテム
    1471                     pobj_MainMenu->OwnerDrawMenu(pdis->hDC,
    1472                         &pdis->rcItem,
    1473                         (pdis->itemState&ODS_SELECTED)!=0,
    1474                         pobj_MenuItemData->item_index);
     1486            {
     1487                DRAWITEMSTRUCT *pdis = (DRAWITEMSTRUCT *)lParam;
     1488
     1489                if(pdis->CtlType==ODT_MENU){
     1490                    if(!pobj_MainMenu) return 0;
     1491
     1492                    CMenuItemData *pobj_MenuItemData;
     1493                    pobj_MenuItemData=(CMenuItemData *)pdis->itemData;
     1494                    if(pobj_MainMenu->hMenu==pobj_MenuItemData->pobj_ThisMenu->hMenu){
     1495                        //メインメニューの親アイテム
     1496                        pobj_MainMenu->OwnerDrawMenu(pdis->hDC,
     1497                            &pdis->rcItem,
     1498                            (pdis->itemState&ODS_SELECTED)!=0,
     1499                            pobj_MenuItemData->item_index);
     1500                    }
     1501                    else{
     1502                        //メインメニューにぶらさがるサブメニュー
     1503                        pobj_MainMenu->OwnerDrawSubMenu(pobj_MenuItemData->pobj_ThisMenu->hMenu,
     1504                            pdis->hDC,
     1505                            &pdis->rcItem,
     1506                            (pdis->itemState&ODS_SELECTED)!=0,
     1507                            pobj_MenuItemData->item_index);
     1508                    }
    14751509                }
    1476                 else{
    1477                     //メインメニューにぶらさがるサブメニュー
    1478                     pobj_MainMenu->OwnerDrawSubMenu(pobj_MenuItemData->pobj_ThisMenu->hMenu,
    1479                         pdis->hDC,
    1480                         &pdis->rcItem,
    1481                         (pdis->itemState&ODS_SELECTED)!=0,
    1482                         pobj_MenuItemData->item_index);
    1483                 }
    1484             }
    1485             return 0;
     1510
     1511                return 0;
     1512            }
    14861513
    14871514        case WM_NOTIFY:
     
    20542081
    20552082                    sprintf(str,"%s%s",pj_editor_Dir,lpszCompilerName);
    2056                     ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
     2083
     2084                    CreateProcessWithStdHandle( str, temporary );
     2085
    20572086                    return 0;
    20582087                case IDM_DEBUGCOMPILE:
     
    21042133
    21052134                    sprintf(str,"%s%s",pj_editor_Dir,lpszCompilerName);
    2106                     ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
     2135
     2136                    CreateProcessWithStdHandle( str, temporary );
    21072137
    21082138                    return 0;
     
    21402170                        sprintf(str,"%s%s",pj_editor_Dir,WIN64_COMPILER_NAME);
    21412171
    2142                     ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
     2172                    CreateProcessWithStdHandle( str, temporary );
     2173
    21432174                    return 0;
    21442175                case IDM_RELEASECOMPILE:
     
    21902221
    21912222                    sprintf(str,"%s%s",pj_editor_Dir,lpszCompilerName);
    2192                     ShellExecute(hwnd,"open",str,temporary,NULL,SW_SHOWNORMAL);
     2223
     2224                    CreateProcessWithStdHandle( str, temporary );
     2225
    21932226                    return 0;
    21942227                case IDM_RELEASERUN:
     
    27212754            }
    27222755#endif
    2723             if(pobj_SideWeb->bShow){
    2724                 //SideWebとMDIクライアントの境目のサイズ変更ライン
    2725                 pobj_SideWeb->GetRect(&rect);
    2726                 ClientToScreen(hwnd,&rect);
    2727                 if(rect.top<=pos.y&&pos.y<=rect.bottom&&
    2728                     rect.left-LEVER_THICK<=pos.x&&pos.x<=rect.left){
    2729                     SetCursor(LoadCursor(0,IDC_SIZEWE));
     2756            if( pobj_SideWeb )
     2757            {
     2758                if(pobj_SideWeb->bShow){
     2759                    //SideWebとMDIクライアントの境目のサイズ変更ライン
     2760                    pobj_SideWeb->GetRect(&rect);
     2761                    ClientToScreen(hwnd,&rect);
     2762                    if(rect.top<=pos.y&&pos.y<=rect.bottom&&
     2763                        rect.left-LEVER_THICK<=pos.x&&pos.x<=rect.left){
     2764                        SetCursor(LoadCursor(0,IDC_SIZEWE));
     2765                    }
    27302766                }
    27312767            }
  • trunk/ab5.0/abdev/ProjectEditor/ProjectEditor.vcproj

    r123 r455  
    143143                Name="VCCLCompilerTool"
    144144                Optimization="0"
    145                 PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;JPN;THETEXT;SHAREWARE"
     145                PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;JPN;THETEXT;SHAREWARE;WINVER=0x0501;_WIN32_WINNT=0x0501"
    146146                MinimalRebuild="true"
    147147                BasicRuntimeChecks="3"
     
    241241                Optimization="2"
    242242                InlineFunctionExpansion="1"
    243                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN;THETEXT"
     243                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN;THETEXT;WINVER=0x0501;_WIN32_WINNT=0x0501"
    244244                StringPooling="true"
    245245                RuntimeLibrary="0"
     
    336336                Name="VCCLCompilerTool"
    337337                Optimization="0"
    338                 PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;JPN"
     338                PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;JPN;WINVER=0x0501;_WIN32_WINNT=0x0501"
    339339                MinimalRebuild="true"
    340340                BasicRuntimeChecks="3"
     
    434434                Optimization="2"
    435435                InlineFunctionExpansion="1"
    436                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN;THETEXT;SHAREWARE"
     436                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN;THETEXT;SHAREWARE;WINVER=0x0501;_WIN32_WINNT=0x0501"
    437437                StringPooling="true"
    438438                RuntimeLibrary="0"
     
    530530                Optimization="2"
    531531                InlineFunctionExpansion="1"
    532                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN"
     532                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;JPN;WINVER=0x0501;_WIN32_WINNT=0x0501"
    533533                StringPooling="true"
    534534                RuntimeLibrary="0"
     
    555555            <Tool
    556556                Name="VCLinkerTool"
    557                 AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib libcp.lib"
     557                AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib"
    558558                OutputFile="../ActiveBasic/abdev.exe"
    559559                LinkIncremental="1"
     
    625625                Name="VCCLCompilerTool"
    626626                Optimization="0"
    627                 PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;JPN;THETEXT"
     627                PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;JPN;THETEXT;WINVER=0x0501;_WIN32_WINNT=0x0501"
    628628                MinimalRebuild="true"
    629629                BasicRuntimeChecks="3"
  • trunk/ab5.0/abdev/ProjectEditor/SubOperation.cpp

    r446 r455  
    482482        if(lstrcmpi(str,"Declare")==0) return COM_DECLARE;
    483483        if(lstrcmpi(str,"Def")==0) return COM_DEF;
     484        if(lstrcmpi(str,"Delegate")==0) return -1;
    484485        if(lstrcmpi(str,"Delete")==0) return -1;
    485486        if(lstrcmpi(str,"DelWnd")==0) return COM_DELWND;
     
    10571058    //メニューフォント
    10581059    NONCLIENTMETRICS NCMetrics;
    1059     NCMetrics.cbSize = sizeof( NONCLIENTMETRICS );
    1060     SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof( NONCLIENTMETRICS ), &NCMetrics, 0 );
     1060    int sizeof_NONCLIENTMETRICS = sizeof( NONCLIENTMETRICS );
     1061#if WINVER >= 0x0600
     1062    sizeof_NONCLIENTMETRICS -= sizeof(int);
     1063#endif
     1064    NCMetrics.cbSize = sizeof_NONCLIENTMETRICS;
     1065    SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof_NONCLIENTMETRICS, &NCMetrics, 0 );
    10611066    hMenuFont=CreateFontIndirect(&NCMetrics.lfMenuFont);
    10621067
     
    14631468
    14641469    //SideWebを生成
    1465     pobj_SideWeb=new CSideWeb(hwnd);
     1470    //pobj_SideWeb=new CSideWeb(hwnd);
    14661471}
    14671472
  • trunk/ab5.0/abdev/ProjectEditor/menu.cpp

    r84 r455  
    172172    char temporary[MAX_PATH];
    173173    MENUITEMINFO mii;
     174    memset(&mii,0,sizeof(MENUITEMINFO));
    174175    mii.cbSize=sizeof(MENUITEMINFO);
    175176    mii.fMask=MIIM_TYPE|MIIM_ID|MIIM_SUBMENU|MIIM_DATA;
Note: See TracChangeset for help on using the changeset viewer.