Changeset 629 in dev for trunk/ab5.0/abdev/abdev/src


Ignore:
Timestamp:
Jun 2, 2008, 11:50:24 PM (16 years ago)
Author:
dai_9181
Message:

MDIINFO構造体をリファクタリング。

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

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/src/MainFrame.cpp

    r625 r629  
    88void ResetTextEditFont(HWND hwnd);
    99
     10void MainFrame::Resized()
     11{
     12    int width_owner,height_owner;
     13    int height_Rebar;
     14    int height_MdiClient;
     15    RECT rect,StatusRect,RebarRect;
     16
     17    this->GetClientRect( &rect );
     18    width_owner=rect.right;
     19    height_owner=rect.bottom;
     20
     21    //Rebar
     22    SendMessage(pobj_Rebar->hRebar,WM_SIZE,0,MAKELONG(width_owner,height_owner));
     23    ::UpdateWindow(pobj_Rebar->hRebar);
     24
     25    //Status bar
     26#define STATUSBAR_PARTS_NUM 5
     27    int sb_size[STATUSBAR_PARTS_NUM];
     28    sb_size[0]=width_owner-340;
     29    sb_size[1]=width_owner-220;
     30    sb_size[2]=width_owner-120;
     31    sb_size[3]=width_owner-50;
     32    sb_size[4]=width_owner;
     33    extern HWND hStatusBar;
     34    ::SendMessage(hStatusBar,SB_SETPARTS,STATUSBAR_PARTS_NUM,(LPARAM)sb_size);
     35    ::SendMessage(hStatusBar,WM_SIZE,0,MAKELONG(width_owner,height_owner));
     36    ::UpdateWindow(hStatusBar);
     37
     38    //Status bar
     39    int height_Statusbar;
     40    SendMessage(hStatusBar,SB_GETRECT,0,(long)&StatusRect);
     41    height_Statusbar=StatusRect.bottom;
     42
     43    ::GetWindowRect(pobj_Rebar->hRebar,&RebarRect);
     44    height_Rebar=RebarRect.bottom-RebarRect.top+2;
     45
     46    int height_dv;  //Width of Debugger View
     47    int height_cv;  //Width of Compiler View
     48    height_dv=0;
     49    height_cv=0;
     50#ifndef THETEXT
     51    extern BOOL bClipCompileView;
     52    if(bClipCompileView){
     53        if(pobj_Debugger->IsDebuggerView()){
     54            //デバッガビューが表示されているとき
     55            height_dv=pobj_nv->height_ClipDebuggerView+LEVER_THICK;
     56        }
     57
     58        extern HWND hCompileView;
     59        if(hCompileView){
     60            //コンパイラビューが表示されているとき
     61            height_cv=pobj_nv->height_ClipCompileView+LEVER_THICK;
     62        }
     63    }
     64#endif
     65
     66    int width_pjv=0;    //Width of Project View
     67    if(pobj_nv->bClipProjectView){
     68        extern HWND hProjectView;
     69        if(::IsWindowVisible(hProjectView)){
     70            //プロジェクトビューが表示されているとき
     71            width_pjv=pobj_nv->width_ClipProjectView+LEVER_THICK;
     72        }
     73    }
     74
     75    int width_SideWeb=0;
     76    if( pobj_SideWeb )
     77    {
     78        if(pobj_SideWeb->bShow){
     79            width_SideWeb=pobj_nv->width_WebSearchView+LEVER_THICK;
     80        }
     81    }
     82
     83    //MDIクライアントの高さ
     84    height_MdiClient=height_owner-(
     85        height_Rebar+
     86        height_dv+
     87        height_cv+
     88        height_Statusbar
     89        );
     90
     91    //タブコントロール
     92    int tab_height;
     93    if(TabCtrl_GetItemCount(pobj_MainTab->hTab)==0) tab_height=0;
     94    else{
     95        RECT rc;
     96        TabCtrl_GetItemRect(pobj_MainTab->hTab,0,&rc);
     97        tab_height=rc.bottom-rc.top;
     98    }
     99    ::MoveWindow(pobj_MainTab->hTab,
     100        width_pjv,
     101        height_Rebar,
     102        width_owner-width_pjv-width_SideWeb,
     103        tab_height,
     104        1);
     105
     106    //MDIクライアント
     107    ::MoveWindow(
     108        hClient,
     109        width_pjv,
     110        height_Rebar+tab_height,
     111        width_owner-width_pjv-width_SideWeb,
     112        height_MdiClient-tab_height,
     113        1
     114    );
     115
     116    if( pobj_SideWeb )
     117    {
     118        if(pobj_SideWeb->bShow){
     119            //SideWeb
     120            pobj_SideWeb->resize(
     121                width_owner - pobj_nv->width_WebSearchView,
     122                height_Rebar,
     123                pobj_nv->width_WebSearchView,
     124                height_MdiClient);
     125        }
     126        else pobj_SideWeb->resize(0,0,0,0);
     127    }
     128
     129    if(width_pjv){
     130        //プロジェクトビュー
     131        extern HWND hProjectView;
     132        ::MoveWindow(hProjectView,
     133            0,
     134            height_Rebar,
     135            pobj_nv->width_ClipProjectView,
     136            height_MdiClient,
     137            1);
     138        ::InvalidateRect(hProjectView,NULL,0);
     139    }
     140
     141    if(height_dv){
     142#ifndef THETEXT
     143        //デバッガビュー
     144        pobj_Debugger->resize(
     145            0,
     146            height_Rebar+height_MdiClient+LEVER_THICK,
     147            width_owner,
     148            pobj_nv->height_ClipDebuggerView);
     149#endif
     150    }
     151    if(height_cv){
     152        //コンパイラビュー
     153        extern HWND hCompileView;
     154        ::MoveWindow(hCompileView,
     155            0,
     156            height_Rebar+height_MdiClient+height_dv+LEVER_THICK,
     157            width_owner,
     158            pobj_nv->height_ClipCompileView,
     159            1);
     160    }
     161}
     162
    10163void MainFrame::OpenWebBrowser( const std::string &url )
    11164{
     
    27180
    28181    // MDIベースを作成
    29     mdiWindow = new MdiWindow();
    30     mdiWindow->Create(
    31         m_hWnd,
    32         rect,
    33         NULL,
    34         WS_CHILD
    35     );
    36     wam.AddMdiWindow( mdiWindow );
     182    // フレームウィンドウのビューウィンドウを作成
     183    int indexOfWindowSubMenu = pobj_MainMenu->FindSubMenuIndex( "ウィンドウ(&W)" );
     184    HMENU hWindowSubMenu = NULL;
     185    if( indexOfWindowSubMenu != -1 )
     186    {
     187        hWindowSubMenu = GetSubMenu( pobj_MainMenu->hMenu, indexOfWindowSubMenu );
     188    }
     189    CreateMDIClient( hWindowSubMenu );
     190    wam.AddMdiClientWindow( m_hWndClient );
     191
     192    // TODO: hClientを廃止し、m_hWndClientに統一すること
     193    extern HWND hClient;
     194    hClient = m_hWndClient;
     195
     196    // メッセージループにメッセージフィルタとアイドルハンドラを追加
     197    CMessageLoop* pLoop = Program::_Module.GetMessageLoop();
     198    pLoop->AddMessageFilter(this);
     199    pLoop->AddIdleHandler(this);
    37200
    38201
     
    58221void MainFrame::OnSize(UINT nType, CSize size)
    59222{
    60     //mdiWindow->MoveWindow( 0, 0, size.cx, size.cy );
     223    this->Resized();
    61224}
    62225
     
    147310void MainFrame::OnDestroy()
    148311{
    149     mdiWindow->DestroyWindow();
    150     delete mdiWindow;
    151 
    152312    ::PostQuitMessage( 0 );
    153313}
     
    257417        //レバーオブジェクトが存在するとき
    258418        if(pnmh->hwndFrom==pobj_Rebar->hRebar&&pnmh->code==RBN_HEIGHTCHANGE){
    259             ResizeOwnerWnd();
     419            this->Resized();
    260420            return 0;
    261421        }
     
    316476                mii.dwTypeData=temporary;
    317477                mii.fType=MFT_STRING;
    318                 if(!MdiInfo[WndNum].path.empty()){
    319                     _splitpath(MdiInfo[WndNum].path.c_str(),NULL,NULL,temporary,temp2);
     478                if(!MdiInfo[WndNum]->path.empty()){
     479                    _splitpath(MdiInfo[WndNum]->path.c_str(),NULL,NULL,temporary,temp2);
    320480                    lstrcat(temporary,temp2);
    321481                    lstrcat(temporary," を保存(&S)");
     
    329489                /*「絶対パスをコピー」「フォルダを開く」「ファイルを削除」
    330490                                                コマンドを場合によって無効化にする */
    331                 if(!MdiInfo[WndNum].path.empty()){
     491                if(!MdiInfo[WndNum]->path.empty()){
    332492                    EnableMenuItem(hTabMenu,IDM_PATH_COPY,MF_BYCOMMAND|MF_ENABLED);
    333493                    EnableMenuItem(hTabMenu,IDM_FOLDER_OPEN,MF_BYCOMMAND|MF_ENABLED);
     
    364524    }
    365525    DragFinish(hDropInfo);
     526}
     527
     528void MainFrame::OnPaint( HDC dummy )
     529{
     530    PAINTSTRUCT ps;
     531    HDC hdc = this->BeginPaint( &ps );
     532
     533    HBRUSH hBrush = CreateSolidBrush( GetSysColor( COLOR_3DFACE ) );
     534
     535    RECT rect;
     536    this->GetClientRect( &rect );
     537
     538    FillRect( hdc, &rect, hBrush );
     539
     540    DeleteObject( hBrush );
     541
     542    this->EndPaint( &ps );
    366543}
    367544
     
    382559    while(hChild){
    383560        WndNum=GetWndNum(hChild);
    384         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    385             if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) break;
     561        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
     562            if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0) break;
    386563        }
    387564        hChild=::GetNextWindow(hChild,GW_HWNDNEXT);
     
    398575    ::UpdateWindow(hChild);
    399576
    400     char *pTemp=MdiInfo[WndNum].pMdiTextEdit->buffer;
     577    char *pTemp=MdiInfo[WndNum]->pMdiTextEdit->buffer;
    401578
    402579    //行の先頭インデックスを取得(取得する行の番号はwParamで渡される)
     
    549726{
    550727    for( int i=0;i<MdiInfo.size();i++){
    551         if(MdiInfo[i].hwnd) SaveDocument(MdiInfo[i].hwnd,NULL);
     728        if(MdiInfo[i]->hwnd) SaveDocument(MdiInfo[i]->hwnd,NULL);
    552729    }
    553730    if( projectInfo.IsOpened() )
     
    585762    if(!hChild) return;
    586763    int WndNum=GetWndNum(hChild);
    587     if( IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType) )
     764    if( IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType) )
    588765    {
    589766        TextEdit_UndoCommand(WndNum);
    590767    }
    591     else if( MdiInfo[WndNum].DocType == WNDTYPE_RAD )
     768    else if( MdiInfo[WndNum]->DocType == WNDTYPE_RAD )
    592769    {
    593770        Rad_UndoCommand(WndNum);
    594771    }
    595     else if( MdiInfo[WndNum].DocType == WNDTYPE_ICONEDIT )
     772    else if( MdiInfo[WndNum]->DocType == WNDTYPE_ICONEDIT )
    596773    {
    597774        IconEdit_UndoCommand(WndNum);
     
    604781    if(!hChild) return;
    605782    int WndNum=GetWndNum(hChild);
    606     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))
     783    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType))
    607784        TextEdit_RedoCommand(WndNum);
    608     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
     785    else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD)
    609786        Rad_RedoCommand(WndNum);
    610     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)
     787    else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT)
    611788        IconEdit_RedoCommand(WndNum);
    612789}
     
    616793    HWND hChild=::GetWindow(hClient,GW_CHILD);
    617794    int WndNum=GetWndNum(hChild);
    618     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     795    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    619796        HWND hEdit=::GetWindow(hChild,GW_CHILD);
    620797
     
    624801        HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);
    625802        char *pTemp=(char *)GlobalLock(hGlobal);
    626         memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
     803        memcpy(pTemp,MdiInfo[WndNum]->pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
    627804        pTemp[CharRange.cpMax-CharRange.cpMin]=0;
    628805        GlobalUnlock(hGlobal);
     
    637814        SendMessage(hEdit,WM_KEYDOWN,VK_DELETE,0);
    638815    }
    639     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    640         ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
    641         int indexOfWndInfo = GetWndInfoNum(MdiInfo[WndNum].path);
     816    else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD){
     817        ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum]->path);
     818        int indexOfWndInfo = GetWndInfoNum(MdiInfo[WndNum]->path);
    642819
    643820        //クリップボードに格納するためのデータを用意する
    644         pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->pos.x-=17;
    645         pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->pos.y-=10;
     821        pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->pos.x-=17;
     822        pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->pos.y-=10;
    646823        HGLOBAL hGlobal=Rad_GetChildInfoClipboardData(WndNum,indexOfWndInfo);
    647         pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->pos.x+=17;
    648         pWindowInfo->childWindowInfos[MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]]->pos.y+=10;
     824        pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->pos.x+=17;
     825        pWindowInfo->childWindowInfos[MdiInfo[WndNum]->MdiRadInfo->SelectingItem[0]]->pos.y+=10;
    649826
    650827        OpenClipboard();
     
    654831        CloseClipboard();
    655832
    656         SendMessage(MdiInfo[WndNum].MdiRadInfo->hRad,WM_COMMAND,IDM_RAD_ITEM_DELETE,0);
    657     }
    658     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     833        SendMessage(MdiInfo[WndNum]->MdiRadInfo->hRad,WM_COMMAND,IDM_RAD_ITEM_DELETE,0);
     834    }
     835    else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
    659836        //クリップボードに格納するためのデータを用意する
    660837        HGLOBAL hGlobal=IconEdit_GetChildInfoClipboardData(WndNum);
     
    666843        CloseClipboard();
    667844
    668         DeleteObject(MdiInfo[WndNum].MdiIconEditInfo->hSelectingBmp);
    669         MdiInfo[WndNum].MdiIconEditInfo->SelectLevel=0;
    670 
    671         IconEdit_EraseRect(WndNum,&MdiInfo[WndNum].MdiIconEditInfo->DraggingRect);
     845        DeleteObject(MdiInfo[WndNum]->MdiIconEditInfo->hSelectingBmp);
     846        MdiInfo[WndNum]->MdiIconEditInfo->SelectLevel=0;
     847
     848        IconEdit_EraseRect(WndNum,&MdiInfo[WndNum]->MdiIconEditInfo->DraggingRect);
    672849    }
    673850}
     
    677854    HWND hChild=::GetWindow(hClient,GW_CHILD);
    678855    int WndNum=GetWndNum(hChild);
    679     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     856    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    680857        HWND hEdit = ::GetWindow(hChild,GW_CHILD);
    681858
     
    685862        HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);
    686863        char *pTemp=(char *)GlobalLock(hGlobal);
    687         memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
     864        memcpy(pTemp,MdiInfo[WndNum]->pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
    688865        pTemp[CharRange.cpMax-CharRange.cpMin]=0;
    689866        GlobalUnlock(hGlobal);
     
    695872        CloseClipboard();
    696873    }
    697     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    698         int indexOfWndInfo = GetWndInfoNum(MdiInfo[WndNum].path);
     874    else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD){
     875        int indexOfWndInfo = GetWndInfoNum(MdiInfo[WndNum]->path);
    699876
    700877        //クリップボードに格納するためのデータを用意する
     
    707884        CloseClipboard();
    708885    }
    709     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     886    else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
    710887        //クリップボードに格納するためのデータを用意する
    711888        HGLOBAL hGlobal=IconEdit_GetChildInfoClipboardData(WndNum);
     
    722899    HWND hChild=::GetWindow(hClient,GW_CHILD);
    723900    int WndNum=GetWndNum(hChild);
    724     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     901    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    725902        HWND hEdit=::GetWindow(hChild,GW_CHILD);
    726903
     
    762939        ResetCaretPos(WndNum);
    763940    }
    764     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
     941    else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD){
    765942        OpenClipboard();
    766943        extern DWORD dwRadClipboardID;
     
    773950        CloseClipboard();
    774951    }
    775     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     952    else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
    776953        OpenClipboard();
    777954        HGLOBAL hGlobal=GetClipboardData(CF_BITMAP);
     
    789966    HWND hChild=::GetWindow(hClient,GW_CHILD);
    790967    int WndNum=GetWndNum(hChild);
    791     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     968    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    792969        HWND hEdit=::GetWindow(hChild,GW_CHILD);
    793970        TextEdit_ReplaceUpdateUndoData(WndNum,"",0,1);
    794971    }
    795     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
    796         SendMessage(MdiInfo[WndNum].MdiRadInfo->hRad,WM_COMMAND,IDM_RAD_ITEM_DELETE,0);
     972    else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD)
     973        SendMessage(MdiInfo[WndNum]->MdiRadInfo->hRad,WM_COMMAND,IDM_RAD_ITEM_DELETE,0);
    797974}
    798975
     
    801978    HWND hChild=::GetWindow(hClient,GW_CHILD);
    802979    int WndNum=GetWndNum(hChild);
    803     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     980    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    804981        HWND hEdit=::GetWindow(hChild,GW_CHILD);
    805982
    806         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x=0;
    807         MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y=0;
     983        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0;
     984        MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y=0;
    808985
    809986        GetCaretPosFromBufferIndex(
    810             MdiInfo[WndNum].pMdiTextEdit->buffer,
    811             lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer),
    812             &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
     987            MdiInfo[WndNum]->pMdiTextEdit->buffer,
     988            lstrlen(MdiInfo[WndNum]->pMdiTextEdit->buffer),
     989            &MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos);
    813990
    814991        ::InvalidateRect(hEdit,NULL,0);
     
    816993        ResetState_EditMenu();
    817994    }
    818     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
    819         ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);
     995    else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD){
     996        ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum]->path);
    820997        for( int i3=0; i3<static_cast<int>(pWindowInfo->childWindowInfos.size()); i3++ )
    821998        {
    822             MdiInfo[WndNum].MdiRadInfo->SelectingItem[i3] = i3;
     999            MdiInfo[WndNum]->MdiRadInfo->SelectingItem[i3] = i3;
    8231000        }
    8241001        DrawRadWindow(WndNum,pWindowInfo);
     
    8801057
    8811058    //再配置
    882     ResizeOwnerWnd();
     1059    this->Resized();
    8831060
    8841061    ::ShowWindow(hClient,SW_SHOW);
     
    9911168        //単独ソースコード
    9921169        if(!SetRunning(hChild)) return;
    993         if(IsNeedCompile(MdiInfo[GetWndNum(hChild)].path,1))
    994             sprintf(temporary,"\"%s\" /debug /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
     1170        if(IsNeedCompile(MdiInfo[GetWndNum(hChild)]->path,1))
     1171            sprintf(temporary,"\"%s\" /debug /run /wnd:%08x",MdiInfo[GetWndNum(hChild)]->path.c_str(),m_hWnd);
    9951172        else
    996             sprintf(temporary,"\"%s\" /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
     1173            sprintf(temporary,"\"%s\" /run /wnd:%08x",MdiInfo[GetWndNum(hChild)]->path.c_str(),m_hWnd);
    9971174
    9981175        //ブレークポイントをセーブ
     
    10571234        //単独ソースコード
    10581235        if(!SetRunning(hChild)) return;
    1059         sprintf(temporary,"\"%s\" /debug /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
     1236        sprintf(temporary,"\"%s\" /debug /wnd:%08x",MdiInfo[GetWndNum(hChild)]->path.c_str(),m_hWnd);
    10601237    }
    10611238
     
    11711348        //単独ソースコード
    11721349        if(!SetRunning(hChild)) return;
    1173         sprintf(temporary,"\"%s\" /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
     1350        sprintf(temporary,"\"%s\" /wnd:%08x",MdiInfo[GetWndNum(hChild)]->path.c_str(),m_hWnd);
    11741351    }
    11751352
     
    12261403        if(!SetRunning(hChild)) return;
    12271404
    1228         if(IsNeedCompile(MdiInfo[GetWndNum(hChild)].path,0))
     1405        if(IsNeedCompile(MdiInfo[GetWndNum(hChild)]->path,0))
    12291406            SendMessage(WM_COMMAND,IDM_RELEASECOMPILE,0);*/
    12301407
    12311408        //単独ソースコード
    1232         _splitpath(MdiInfo[GetWndNum(hChild)].path.c_str(),temporary,temp2,temp3,NULL);
     1409        _splitpath(MdiInfo[GetWndNum(hChild)]->path.c_str(),temporary,temp2,temp3,NULL);
    12331410        lstrcat(temporary,temp2);
    12341411        lstrcat(temporary,temp3);
     
    14111588    for(int i=0;i<MdiInfo.size();i++){
    14121589        if(i==WndNum) continue;
    1413         if(MdiInfo[i].hwnd) SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
     1590        if(MdiInfo[i]->hwnd) SendMessage(MdiInfo[i]->hwnd,WM_CLOSE,0,0);
    14141591    }
    14151592}
     
    14211598
    14221599    //絶対パスをコピー
    1423     HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,MdiInfo[WndNum].path.size()+1);
     1600    HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,MdiInfo[WndNum]->path.size()+1);
    14241601    char *pTemp=(char *)GlobalLock(hGlobal);
    1425     lstrcpy(pTemp,MdiInfo[WndNum].path.c_str());
     1602    lstrcpy(pTemp,MdiInfo[WndNum]->path.c_str());
    14261603    GlobalUnlock(hGlobal);
    14271604
     
    14391616
    14401617    char temporary[1024], temp2[1024];
    1441     _splitpath(MdiInfo[WndNum].path.c_str(),temporary,temp2,NULL,NULL);
     1618    _splitpath(MdiInfo[WndNum]->path.c_str(),temporary,temp2,NULL,NULL);
    14421619    lstrcat(temporary,temp2);
    14431620
     
    14511628
    14521629    char temporary[1024], temp2[1024];
    1453     _splitpath(MdiInfo[WndNum].path.c_str(),NULL,NULL,temporary,temp2);
     1630    _splitpath(MdiInfo[WndNum]->path.c_str(),NULL,NULL,temporary,temp2);
    14541631    lstrcat(temporary,temp2);
    14551632
     
    14611638    fo.hwnd=m_hWnd;
    14621639    fo.wFunc=FO_DELETE;
    1463     fo.pFrom =MdiInfo[WndNum].path.c_str();
     1640    fo.pFrom =MdiInfo[WndNum]->path.c_str();
    14641641    fo.pTo="\0";
    14651642    fo.fFlags =FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
     
    14671644
    14681645    //閉じる
    1469     MdiInfo[WndNum].pMdiTextEdit->UnModify();
    1470     SendMessage(MdiInfo[WndNum].hwnd,WM_CLOSE,0,0);
     1646    MdiInfo[WndNum]->pMdiTextEdit->UnModify();
     1647    SendMessage(MdiInfo[WndNum]->hwnd,WM_CLOSE,0,0);
    14711648}
    14721649
  • trunk/ab5.0/abdev/abdev/src/Program.cpp

    r489 r629  
    66CAppModule Program::_Module;
    77
    8 MainFrame Program::mainFrame;
     8MainFrame ActiveBasic::IDE::Program::mainFrame;
    99
    1010#include "../Common.h"
  • trunk/ab5.0/abdev/abdev/src/ProjectManager/ProjectManager.cpp

    r625 r629  
    279279    while(hChild){
    280280        WndNum=GetWndNum(hChild);
    281         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    282             if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ){
     281        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
     282            if( MdiInfo[WndNum]->pMdiTextEdit->IsModified() ){
    283283                for(i=0;i<this->pobj_DBFileInfo->iNum;i++){
    284284                    this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    285                     if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
     285                    if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){
    286286                        SaveDocument(hChild,NULL);
    287287                        break;
     
    290290            }
    291291        }
    292         if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
    293             if(MdiInfo[WndNum].MdiIconEditInfo->bModify){
     292        if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
     293            if(MdiInfo[WndNum]->MdiIconEditInfo->bModify){
    294294                BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, resourceManager.iconResources )
    295295                {
    296296                    lstrcpy(temporary,resourceItem.filepath.c_str());
    297297                    lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    298                     if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
     298                    if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){
    299299                        SaveDocument(hChild,NULL);
    300300                        break;
     
    548548        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
    549549        WndNum=GetWndNum(hCloseChild);
    550         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     550        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){
    551551            for(i=0;i<this->pobj_DBFileInfo->iNum;i++){
    552552                this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    553                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
     553                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){
    554554
    555555                    //変更フラグをオフにする
    556                     MdiInfo[WndNum].pMdiTextEdit->UnModify();
     556                    MdiInfo[WndNum]->pMdiTextEdit->UnModify();
    557557
    558558                    SendMessage(hCloseChild,WM_CLOSE,0,0);
     
    561561            }
    562562        }
    563         else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
     563        else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD)
    564564        {
    565565            BOOST_FOREACH( const WindowInfo *pWindowInfo, windowInfos )
    566566            {
    567                 if( pWindowInfo->GetName() == MdiInfo[WndNum].path ){
     567                if( pWindowInfo->GetName() == MdiInfo[WndNum]->path ){
    568568                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    569569                    break;
     
    571571            }
    572572        }
    573         else if(MdiInfo[WndNum].DocType==WNDTYPE_MENU){
     573        else if(MdiInfo[WndNum]->DocType==WNDTYPE_MENU){
    574574            for(i=0;i<this->NumberOfMenu;i++){
    575                 if( MdiInfo[WndNum].path == this->pMenuInfo[i].IdName )
     575                if( MdiInfo[WndNum]->path == this->pMenuInfo[i].IdName )
    576576                {
    577577                    SendMessage(hCloseChild,WM_CLOSE,0,0);
     
    580580            }
    581581        }
    582         else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     582        else if(MdiInfo[WndNum]->DocType==WNDTYPE_ICONEDIT){
    583583            for(i=0;this->resourceManager.iconResources.size();i++){
    584584                lstrcpy(temporary,this->resourceManager.iconResources[i].filepath.c_str());
    585585                lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    586                 if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
     586                if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){
    587587                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    588588                    break;
  • trunk/ab5.0/abdev/abdev/src/WindowAreaManager.cpp

    r489 r629  
    33using namespace ActiveBasic::IDE;
    44
    5 void WindowAreaManager::AddMdiWindow( WindowComponents::MdiWindow *mdiWindow )
     5void WindowAreaManager::AddMdiClientWindow( HWND hMdiClientWnd )
    66{
    7     this->mdiWindow = mdiWindow;
    8     windowCollections.push_back( WindowCollection( mdiWindow ) );
     7    windowCollections.push_back( WindowCollection( hMdiClientWnd ) );
    98}
  • trunk/ab5.0/abdev/abdev/src/WindowComponents/MdiWindow.cpp

    r489 r629  
    1 #include "stdafx.h"
    2 
    3 #include "../../common.h"
    4 
    5 using namespace ActiveBasic::IDE::WindowComponents;
    6 
    7 LRESULT MdiWindow::OnCreate(LPCREATESTRUCT lpcs){
    8     // フレームウィンドウのビューウィンドウを作成
    9     CreateMDIClient();
    10 
    11     // メッセージループにメッセージフィルタとアイドルハンドラを追加
    12     CMessageLoop* pLoop = Program::_Module.GetMessageLoop();
    13     pLoop->AddMessageFilter(this);
    14     pLoop->AddIdleHandler(this);
    15 
    16     return 0;
    17 }
Note: See TracChangeset for help on using the changeset viewer.