Changeset 625 in dev for trunk/ab5.0/abdev


Ignore:
Timestamp:
May 27, 2008, 9:17:34 PM (16 years ago)
Author:
dai_9181
Message:

・WindowInfoクラスをリファクタリング
・MdiInfoを単純配列からvectorに変更した。

Location:
trunk/ab5.0/abdev
Files:
54 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/BasicCompiler.cpp

    r608 r625  
    211211    lstrcat(temporary,path+i);
    212212    lstrcpy(path,temporary);
    213 }
    214 std::string GetApplicationBaseFullPath( const std::string &relationalPath )
    215 {
    216     char fullPath[1024];
    217     lstrcpy( fullPath, relationalPath.c_str() );
    218     GetFullPath( fullPath, Jenga::Common::Environment::GetAppDir() );
    219     return fullPath;
    220213}
    221214
  • trunk/ab5.0/abdev/BasicCompiler_Common/common.h

    r622 r625  
    217217void GetRelationalPath(char *path,char *dir);
    218218void GetFullPath( char *path, const std::string &baseDirPath );
    219 std::string GetApplicationBaseFullPath( const std::string &relationalPath );
    220219void ShowErrorLine(int LineNum,const char *FileName);
    221220BOOL GetFilePathDialog(HWND hwnd,char *filename,LPSTR Filter,LPSTR Title,BOOL bOpen);
  • trunk/ab5.0/abdev/BasicCompiler_Common/include/LexicalAnalyzer.h

    r581 r625  
    66class LexicalAnalyzer
    77{
    8     class SourceTemplate
    9     {
    10         std::string source;
    11     public:
    12         SourceTemplate( const std::string &filePath );
    13         ~SourceTemplate()
    14         {
    15         }
    16 
    17         std::string GetResult( const std::map<std::string,std::string> &values );
    18     };
    19 
    208public:
    219
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer.cpp

    r546 r625  
    22
    33using namespace ActiveBasic::Compiler;
    4 
    5 LexicalAnalyzer::SourceTemplate::SourceTemplate( const std::string &filePath )
    6 {
    7     Jenga::Common::File file = Jenga::Common::File( GetApplicationBaseFullPath( filePath ) );
    8     source = file.Read();
    9 }
    10 std::string LexicalAnalyzer::SourceTemplate::GetResult( const std::map<std::string,std::string> &values )
    11 {
    12     std::string result = source;
    13 
    14     std::map<std::string,std::string>::const_iterator it = values.begin();
    15     while( it != values.end() )
    16     {
    17         while( true )
    18         {
    19             std::string::size_type index = result.find( it->first );
    20             if( index == std::string::npos )
    21             {
    22                 break;
    23             }
    24 
    25             result = result.substr( 0, index ) + it->second + result.substr( index + it->first.length() );
    26         }
    27         it++;
    28     }
    29 
    30     return result;
    31 }
    32 
    334
    345bool LexicalAnalyzer::CollectNamespaces( const char *source, NamespaceScopesCollection &namespaceScopesCollection )
  • trunk/ab5.0/abdev/BasicCompiler_Common/src/LexicalAnalyzer_Delegate.cpp

    r588 r625  
    124124    std::string destSource = "";
    125125
    126     SourceTemplate sourceTemplate( ActiveBasic::Common::Environment::GetAbdevSystemDirPath() + "\\templates\\delegate_class.tab" );
     126    Jenga::Common::SourceTemplate sourceTemplate( ActiveBasic::Common::Environment::GetAbdevSystemDirPath() + "\\templates\\delegate_class.tab" );
    127127
    128128    delegates.Iterator_Reset();
  • trunk/ab5.0/abdev/abdev/Backup.cpp

    r475 r625  
    4848    sprintf(temp2,"%x\r\n",hOwner);
    4949
    50     for(i=0;i<MAX_WNDNUM;i++){
     50    for(i=0;i<MdiInfo.size();i++){
    5151        if(MdiInfo[i].hwnd){
    5252            int WndNum;
     
    6060
    6161            //情報を追加
    62             sprintf(temp2+lstrlen(temp2),"%s\r\n",MdiInfo[WndNum].path);
     62            sprintf(temp2+lstrlen(temp2),"%s\r\n",MdiInfo[WndNum].path.c_str());
    6363
    6464            iNum++;
     
    115115
    116116        //パスを変更
    117         GlobalFree(MdiInfo[WndNum].path);
    118         MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(szBeforeFilePath)+1);
    119         lstrcpy(MdiInfo[WndNum].path,szBeforeFilePath);
     117        MdiInfo[WndNum].path = szBeforeFilePath;
    120118
    121119        //ドキュメント セレクト コンボボックスに挿入
  • trunk/ab5.0/abdev/abdev/Caret.cpp

    r475 r625  
    122122    // 選択範囲(バッファインデックス)を取得
    123123    //////////////////////////////////////////
    124     extern MDIINFO MdiInfo[MAX_WNDNUM];
    125124
    126125    pCharRange->cpMin=GetBufferIndexFromCaretPos(
     
    149148}
    150149void TextEdit_GetSelText(int WndNum,CHARRANGE *pCharRange,char *buffer){
    151     extern MDIINFO MdiInfo[MAX_WNDNUM];
    152150
    153151    memcpy(buffer,
     
    158156
    159157void GetScrollBaseCaretPos(int WndNum,int *pNaturalBaseX,int *pNaturalBaseY){
    160     extern MDIINFO MdiInfo[MAX_WNDNUM];
    161158
    162159    HWND hEdit;
     
    176173
    177174void GetNaturalBaseCaretPos(int WndNum,int *pScrollBaseX,int *pScrollBaseY){
    178     extern MDIINFO MdiInfo[MAX_WNDNUM];
    179175
    180176    HWND hEdit;
     
    194190
    195191void TextEdit_SetSel(int WndNum,int StartIndex,int EndIndex,BOOL bShowCenter){
    196     extern MDIINFO MdiInfo[MAX_WNDNUM];
    197192
    198193    GetCaretPosFromBufferIndex(
     
    216211}
    217212void TextEdit_SelectOneLine(int WndNum,int code_pos,BOOL bShowCenter){
    218     extern MDIINFO MdiInfo[MAX_WNDNUM];
    219213
    220214    ///////////////////////
     
    235229void ResetCaretPos(int WndNum,BOOL bInputAndReset){
    236230    extern HANDLE hHeap;
    237     extern MDIINFO MdiInfo[MAX_WNDNUM];
    238231    int x,y;
    239232
     
    465458}
    466459BOOL TextEdit_ScrollCaret(int WndNum,BOOL bScrollOneStep_x,BOOL bShowCenter){
    467     extern MDIINFO MdiInfo[MAX_WNDNUM];
    468460    int x,y;
    469461    BOOL bScroll=0;
     
    537529
    538530void CaretPos_LooseToNatural(int WndNum,int loose_x,int loose_y,POINT *pCaretPos){
    539     extern MDIINFO MdiInfo[MAX_WNDNUM];
    540531    int i,i2,LastPos;
    541532    int x,y;
     
    650641    /////////////////////////////
    651642
    652     extern MDIINFO MdiInfo[MAX_WNDNUM];
    653643
    654644    //ピクセル座標をカーソル座標(文字単位)に変更
     
    664654    ///////////////////////////
    665655
    666     extern MDIINFO MdiInfo[MAX_WNDNUM];
    667656    int i;
    668657    int x,y;
     
    719708    ///////////////////////////
    720709
    721     extern MDIINFO MdiInfo[MAX_WNDNUM];
    722710    int i,i2;
    723711    char *pBuf;
     
    773761    // キャレット移動(上キー)
    774762    ///////////////////////////
    775     extern MDIINFO MdiInfo[MAX_WNDNUM];
    776763
    777764    if(pCaretPos->y==0){
     
    795782    // キャレット移動(下キー)
    796783    ///////////////////////////
    797     extern MDIINFO MdiInfo[MAX_WNDNUM];
    798784
    799785    //上下のキャレット移動時には、左右方向の位置を保持する
     
    812798    // キャレット移動(PageUpキー)
    813799    ///////////////////////////////
    814     extern MDIINFO MdiInfo[MAX_WNDNUM];
    815800
    816801    if(pCaretPos->y==0){
     
    839824    // キャレット移動(PageUpキー)
    840825    ///////////////////////////////
    841     extern MDIINFO MdiInfo[MAX_WNDNUM];
    842826
    843827    //上下のキャレット移動時には、左右方向の位置を保持する
  • trunk/ab5.0/abdev/abdev/ChildWndOnRebar.cpp

    r477 r625  
    4040LRESULT CALLBACK DocComboProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4141    extern WNDPROC OldDocComboProc;
    42     extern MDIINFO MdiInfo[MAX_WNDNUM];
    4342    int i;
    4443    char str[MAX_PATH];
     
    4847            if(HIWORD(wParam)==CBN_SELCHANGE){
    4948                SendMessage(hwnd,CB_GETLBTEXT,SendMessage(hwnd,CB_GETCURSEL,0,0),(long)str);
    50                 for(i=0;i<MAX_WNDNUM;i++){
     49                for(i=0;i<MdiInfo.size();i++){
    5150                    if(lstrcmpi(str,MdiInfo[i].title)==0) break;
    5251                }
     
    181180    extern WNDPROC OldDocComboProc;
    182181    extern HFONT hStatusFont;
    183     extern MDIINFO MdiInfo[MAX_WNDNUM];
    184182    int i,i2;
    185183    HWND hTempWnd;
     
    200198    hTempWnd=GetWindow(hClient,GW_CHILD);
    201199    if(IsWindow(hTempWnd)){
    202         for(i=0,i2=0;i<MAX_WNDNUM;i++){
     200        for(i=0,i2=0;i<MdiInfo.size();i++){
    203201            if(MdiInfo[i].hwnd){
    204202                GetWindowText(MdiInfo[i].hwnd,buffer,MAX_PATH);
  • trunk/ab5.0/abdev/abdev/ClassTree.cpp

    r619 r625  
    444444}
    445445void SetClassTreeFromOneFile(char *lpszFilePath,int iFileNum){
    446     extern MDIINFO MdiInfo[MAX_WNDNUM];
    447446    int WndNum;
    448447    HWND hChild=GetWindow(hClient,GW_CHILD);
    449448    while(hChild){
    450449        WndNum=GetWndNum(hChild);
    451         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    452             if(lstrcmpi(MdiInfo[WndNum].path,lpszFilePath)==0) break;
    453         }
    454         hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     450        if( WndNum != -1 )
     451        {
     452            if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     453                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),lpszFilePath)==0) break;
     454            }
     455            hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     456        }
    455457    }
    456458
  • trunk/ab5.0/abdev/abdev/Common.h

    r624 r625  
    258258struct RAD_UNDOSTATE_NAME{
    259259    std::string name;
    260     std::string HandleName;
    261     char *CallBackName;
    262260};
    263261#define RAD_UNDO_INSERTWND  1
     
    357355    int DocType;
    358356    char *title;
    359     char *path;
     357    std::string path;
    360358
    361359    union{
     
    368366    char *IndentStr;
    369367};
    370 extern MDIINFO MdiInfo[MAX_WNDNUM];
     368extern std::vector<MDIINFO> MdiInfo;
    371369
    372370//RADツールのマウスドラッグ
     
    483481#define EVENTTYPE_MMSYS     2
    484482
    485 //ウィンドウ タイプ
    486 #define WNDTYPE_DEFAULT     0
    487 #define WNDTYPE_MODALDLG    1
    488 #define WNDTYPE_MODELESSDLG 3
    489483
    490484struct NEWPROJECTINFO{
     
    648642char *ReadBuffer( const std::string &path );
    649643char *ReadBuffer_NonErrMsg( const std::string &path );
    650 _int8 WriteBuffer(const std::string &path,char *buffer,int length, bool isEnableError = true);
     644_int8 WriteBuffer(const std::string &path,const char *buffer,int length, bool isEnableError = true);
    651645_int8 WriteBuffer_NonErrMsg(const std::string &path,char *buffer,int length);
    652646void GetRelationalPath(char *path,char *dir);
     
    738732void SetupWindow(HWND hwnd);
    739733BOOL SetRunning(HWND hChild);
    740 BOOL IsNeedCompile(char *FileName,BOOL bDebug);
     734BOOL IsNeedCompile( const std::string &filepath, BOOL bDebug );
    741735std::string GetLastErrorString();
    742736
     
    875869
    876870    void add(char *path);
    877     void insert(char *path);
     871    void insert(const char *path);
    878872
    879873    void ResetFileMenu(CSubMenuEx *pobj_SubMenu,BOOL bOwnerDraw);
     
    969963
    970964//WindowControl.cpp
    971 int GetWndInfoNum(char *name);
    972 ActiveBasic::PM::WindowInfo *GetWndInfo( char *name );
     965int GetWndInfoNum( const std::string &name );
     966ActiveBasic::PM::WindowInfo *GetWndInfo( const std::string &name );
    973967HGLOBAL Rad_GetChildInfoClipboardData(int WndNum,int WndInfoNum);
    974968void Rad_PasteChildInfoClipboardData(int WndNum,HGLOBAL hGlobal);
    975969char *PermutationWndPgmTemplate(char *pBuf,const char *pPjName, char *pWndName, char *pHandleName, char *pProcName);
     970const std::string PermutationWndPgmTemplate( const std::string &templateFilePath, const std::string &projectName, std::string &windowName, std::string &handleName, std::string &procName );
    976971void GetItemClassName(char *buffer,int Control);
    977972void SaveWindowProgram();
     
    10571052
    10581053//MenuProc.cpp
    1059 int GetMenuInfoNum(const char *name);
     1054int GetMenuInfoNum(const std::string &name);
    10601055void HeapMenuDataFree(MENU_INFO *pMenuInfo,int ItemNum,int *NumberOfFreedItem);
    10611056BOOL CALLBACK DlgProject_MenuID_Input(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  • trunk/ab5.0/abdev/abdev/Complement.cpp

    r475 r625  
    388388    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    389389
    390     extern MDIINFO MdiInfo[MAX_WNDNUM];
    391390    extern int font_width,font_height;
    392391    POINT pos;
     
    612611
    613612LRESULT CALLBACK ComplementListViewProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    614     extern MDIINFO MdiInfo[MAX_WNDNUM];
    615613    extern COMPLEMENT_WINDOW_INFO ComplementWndInfo;
    616614    int i,WndNum;
  • trunk/ab5.0/abdev/abdev/Debugger.cpp

    r619 r625  
    251251
    252252        char temporary[MAX_PATH];
    253         sprintf(temporary,"\"%s\",%d",MdiInfo[WndNum].path,MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     253        sprintf(temporary,"\"%s\",%d",MdiInfo[WndNum].path.c_str(),MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    254254
    255255        char temp2[MAX_PATH];
     
    281281//////////////////////////
    282282
    283 CFileBreakPoint::CFileBreakPoint(char *lpszFileName,int iLineNum){
     283CFileBreakPoint::CFileBreakPoint(const char *lpszFileName,int iLineNum){
    284284    this->lpszFileName=(char *)HeapAlloc(hHeap,0,lstrlen(lpszFileName)+1);
    285285    lstrcpy(this->lpszFileName,lpszFileName);
     
    389389    HeapDefaultFree(ppItem);
    390390}
    391 void CDBBreakPoint::insert(char *lpszFileName,int iLineNum){
     391void CDBBreakPoint::insert( const char *lpszFileName,int iLineNum){
    392392    int i;
    393393    for(i=0;i<num;i++){
     
    404404    }
    405405}
    406 void CDBBreakPoint::remove(char *lpszFileName,int iLineNum){
     406void CDBBreakPoint::remove( const char *lpszFileName,int iLineNum){
    407407    int i;
    408408    for(i=0;i<num;i++){
     
    429429    if(WndNum==-1) return;
    430430
    431     if(!IsExistFile(MdiInfo[WndNum].path)) return;
     431    if( !Jenga::Common::Path( MdiInfo[WndNum].path ).IsExistFile() )
     432    {
     433        return;
     434    }
    432435
    433436    int i,i2,sw=0;
    434437    for(i=0;i<num;i++){
    435         if(lstrcmpi(MdiInfo[WndNum].path,ppItem[i]->lpszFileName)==0){
     438        if(lstrcmpi(MdiInfo[WndNum].path.c_str(),ppItem[i]->lpszFileName)==0){
    436439            for(i2=0;i2<ppItem[i]->num;i2++){
    437440                if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==ppItem[i]->piLine[i2]){
     
    446449    if(sw==0){
    447450        //ブレークポイントを追加
    448         insert(MdiInfo[WndNum].path,MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     451        insert(MdiInfo[WndNum].path.c_str(),MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    449452    }
    450453    else{
    451454        //ブレークポイントを削除
    452         remove(MdiInfo[WndNum].path,MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     455        remove(MdiInfo[WndNum].path.c_str(),MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    453456    }
    454457
     
    500503
    501504
    502 CFileBreakPoint *CDBBreakPoint::EnumLines(char *lpszFilePath){
     505CFileBreakPoint *CDBBreakPoint::EnumLines(const char *lpszFilePath){
    503506    int i;
    504507    for(i=0;i<num;i++){
     
    510513}
    511514
    512 void CDBBreakPoint::replace(LPSTR lpszFilePath,LPSTR lpszBuffer,CHARRANGE *pDelRange,CHARRANGE *pRange,LPSTR lpszNewStr){
     515void CDBBreakPoint::replace(const char *lpszFilePath,LPSTR lpszBuffer,CHARRANGE *pDelRange,CHARRANGE *pRange,LPSTR lpszNewStr){
    513516    int i;
    514517    for(i=0;i<num;i++){
  • trunk/ab5.0/abdev/abdev/Debugger.h

    r3 r625  
    5353    int num;
    5454
    55     CFileBreakPoint(char *lpszFileName,int iLineNum);
     55    CFileBreakPoint(const char *lpszFileName,int iLineNum);
    5656    ~CFileBreakPoint();
    5757
     
    7272    ~CDBBreakPoint();
    7373
    74     void insert(char *lpszFileName,int iLineNum);
    75     void remove(char *lpszFileName,int iLineNum);
     74    void insert( const char *lpszFileName,int iLineNum);
     75    void remove( const char *lpszFileName,int iLineNum);
    7676
    7777    void Event_BreakPoint(void);
    7878    void SaveToTempFile(void);
    7979
    80     CFileBreakPoint *EnumLines(char *lpszFilePath);
     80    CFileBreakPoint *EnumLines(const char *lpszFilePath);
    8181
    82     void replace(LPSTR lpszFilePath,LPSTR lpszBuffer,CHARRANGE *pDelRange,CHARRANGE *pRange,LPSTR lpszNewStr);
     82    void replace(const char *lpszFilePath,LPSTR lpszBuffer,CHARRANGE *pDelRange,CHARRANGE *pRange,LPSTR lpszNewStr);
    8383};
  • trunk/ab5.0/abdev/abdev/DocumentAdvice.cpp

    r620 r625  
    179179
    180180#define MEM_SPACE 1024 //強制終了を防ぐためのゆとりスペース
    181             extern MDIINFO MdiInfo[MAX_WNDNUM];
    182             for(i3=0;i3<MAX_WNDNUM;i3++){
     181            for(i3=0;i3<MdiInfo.size();i3++){
    183182                if(MdiInfo[i3].hwnd){
    184                     if(lstrcmpi(temporary,MdiInfo[i3].path)==0) break;
    185                 }
    186             }
    187             if(i3==MAX_WNDNUM){
     183                    if(lstrcmpi(temporary,MdiInfo[i3].path.c_str())==0) break;
     184                }
     185            }
     186            if(i3==MdiInfo.size()){
    188187                //ファイルから開く
    189188                HANDLE fh;
  • trunk/ab5.0/abdev/abdev/DrawBuffer.cpp

    r619 r625  
    193193            if( projectInfo.IsOpened() ){
    194194                pobj_FileBreakPoint=
    195                     projectInfo.pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum].path);
     195                    projectInfo.pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum].path.c_str());
    196196            }
    197197            else{
    198198                extern CDBBreakPoint *pobj_DBBreakPoint;
    199                 pobj_FileBreakPoint=pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum].path);
     199                pobj_FileBreakPoint=pobj_DBBreakPoint->EnumLines(MdiInfo[m_WndNum].path.c_str());
    200200            }
    201201
     
    266266
    267267void TextEdit_DrawBuffer(HDC hdc,int WndNum){
    268     extern MDIINFO MdiInfo[MAX_WNDNUM];
    269268    int i,i2;
    270269    int x,y;
  • trunk/ab5.0/abdev/abdev/DrawWindow.cpp

    r624 r625  
    44
    55void DrawLineInClient(int WndNum,long StartX,long StartY,long EndX,long EndY){
    6     extern MDIINFO MdiInfo[MAX_WNDNUM];
    76    MoveToEx(MdiInfo[WndNum].MdiRadInfo->hMemDC,
    87        StartX+MdiInfo[WndNum].MdiRadInfo->ClientPos.x,
     
    1413}
    1514void DrawRectangleInClient(int WndNum,long left,long top,long right,long bottom,COLORREF RGB_Pen,COLORREF RGB_Brush,BOOL bBrushing){
    16     extern MDIINFO MdiInfo[MAX_WNDNUM];
    1715    HPEN hPen,hOldPen;
    1816    HBRUSH hBrush,hOldBrush;
     
    3634}
    3735void DrawButtonEdge(int WndNum,POINT *pPos,SIZE *pSize){
    38     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3936    HPEN hPen,hOldPen;
    4037
     
    8683}
    8784void DrawItemEdgeByExStyle(int WndNum,int ExStyle,POINT *pPos,SIZE *pSize){
    88     extern MDIINFO MdiInfo[MAX_WNDNUM];
    8985    HPEN hPen,hOldPen;
    9086    RECT rect;
     
    172168}
    173169void DrawScrollBar(int WndNum,DWORD style,BOOL bSwitch,POINT *pPos,SIZE *pSize){
    174     extern MDIINFO MdiInfo[MAX_WNDNUM];
    175170    int i,i2;
    176171    HPEN hPen,hOldPen;
     
    487482}
    488483void DrawUpDownControl(int WndNum,DWORD style,BOOL bSwitch,POINT *pPos,SIZE *pSize){
    489     extern MDIINFO MdiInfo[MAX_WNDNUM];
    490484    int i,i2;
    491485    HPEN hPen,hOldPen;
     
    688682}
    689683void DesigningWindow(int WndNum,HDC hdc,POINT *pBasePos,const ActiveBasic::PM::WindowInfo *pWindowInfo){
    690     extern MDIINFO MdiInfo[MAX_WNDNUM];
    691684    int i,i2,i3,i4;
    692685    double red,green,blue,d_red,d_green,d_blue;
     
    17731766}
    17741767void DrawRadWindow(int WndNum,const ActiveBasic::PM::WindowInfo *pWindowInfo){
    1775     extern MDIINFO MdiInfo[MAX_WNDNUM];
    17761768    HBRUSH hOldBrush;
    17771769    POINT pos;
  • trunk/ab5.0/abdev/abdev/ExtensionLink.cpp

    r475 r625  
    197197}
    198198
    199 COLORREF CExtLink::GetTabColorFromFilePath(char *path){
     199COLORREF CExtLink::GetTabColorFromFilePath( const std::string &filepath )
     200{
    200201    //拡張子を識別し、タブの色を決定
    201202    char szExt[255],*lpszTemp;
    202     _splitpath(path,NULL,NULL,NULL,szExt);
     203    _splitpath(filepath.c_str(),NULL,NULL,NULL,szExt);
    203204    if(szExt[0]=='.') lpszTemp=szExt+1;
    204205    else lpszTemp=szExt;
  • trunk/ab5.0/abdev/abdev/ExtensionLink.h

    r3 r625  
    3131    void ResetListView(HWND hListView);
    3232
    33     COLORREF GetTabColorFromFilePath(char *path);
     33    COLORREF GetTabColorFromFilePath( const std::string &filepath );
    3434};
    3535
  • trunk/ab5.0/abdev/abdev/FileOperation.cpp

    r622 r625  
    5757    return buffer;
    5858}
    59 _int8 WriteBuffer(const std::string &path,char *buffer,int length, bool isEnableError){
     59_int8 WriteBuffer(const std::string &path,const char *buffer,int length, bool isEnableError)
     60{
    6061    HANDLE hFile;
    6162    DWORD dw;
     
    328329
    329330    COLORREF TabColor;
    330     TabColor=pobj_nv->pobj_ExtLink->GetTabColorFromFilePath(OpenFileName);
     331    TabColor=pobj_nv->pobj_ExtLink->GetTabColorFromFilePath( filePath );
    331332
    332333    return NewTextEditWindow(OpenFileName,DocumentType,TabColor);
     
    335336    extern LPSTR IconFileFilter;
    336337    extern HWND hClient,hDocCombo;
    337     extern MDIINFO MdiInfo[MAX_WNDNUM];
    338338    int WndNum,i2;
    339339    char temporary[MAX_PATH],str[MAX_PATH],str2[32];
     
    380380
    381381            //新しいパスをセット
    382             GlobalFree(MdiInfo[WndNum].path);
    383             MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(temporary)+1);
    384             lstrcpy(MdiInfo[WndNum].path,temporary);
     382            MdiInfo[WndNum].path = temporary;
    385383
    386384            //ドキュメント セレクト コンボボックスに挿入
     
    398396        }
    399397        else{
    400             if(MdiInfo[WndNum].path[0]=='\0'){
     398            if(MdiInfo[WndNum].path.empty()){
    401399                //"保存先のファイルを指定してください"
    402400get_file_path:
     
    418416                return 1;
    419417            }
    420             lstrcpy(temporary,MdiInfo[WndNum].path);
     418            lstrcpy(temporary,MdiInfo[WndNum].path.c_str());
    421419        }
    422420
     
    475473            }
    476474            CloseHandle(fh);
    477             GlobalFree(MdiInfo[WndNum].path);
    478             MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(temporary)+1);
    479             lstrcpy(MdiInfo[WndNum].path,temporary);
     475            MdiInfo[WndNum].path = temporary;
    480476            i2=SendMessage(hDocCombo,CB_FINDSTRINGEXACT,0,(long)MdiInfo[WndNum].title);
    481477            SendMessage(hDocCombo,CB_DELETESTRING,i2,0);
     
    489485        }
    490486        else{
    491             if(MdiInfo[WndNum].path[0]=='\0'){
     487            if(MdiInfo[WndNum].path.empty()){
    492488                //"保存先のファイルを指定してください"
    493489                if(!GetFilePathDialog(hOwner,temporary,IconFileFilter,STRING_FILESAVETITLE_DEFAULT,FALSE)) return 0;
     
    495491                return 1;
    496492            }
    497             lstrcpy(temporary,MdiInfo[WndNum].path);
     493            lstrcpy(temporary,MdiInfo[WndNum].path.c_str());
    498494        }
    499495        SaveIconFile(temporary,hChild);
     
    515511
    516512    //「最近使ったファイル」を更新
    517     pobj_nv->pobj_History->insert(MdiInfo[WndNum].path);
     513    pobj_nv->pobj_History->insert(MdiInfo[WndNum].path.c_str());
    518514
    519515    return 1;
  • trunk/ab5.0/abdev/abdev/History.cpp

    r475 r625  
    5757    iNum++;
    5858}
    59 void CHistory::insert(char *path){
     59void CHistory::insert(const char *path){
    6060    //重複チェック
    6161    int i;
  • trunk/ab5.0/abdev/abdev/IconEditor.cpp

    r620 r625  
    2929}
    3030void ResetIconType(int WndNum){
    31     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3231    int i;
    3332    HWND hCombo;
     
    127126void AddIconType(int WndNum,int IconType){
    128127    extern HANDLE hHeap;
    129     extern MDIINFO MdiInfo[MAX_WNDNUM];
    130128    int i,width,BitCount;
    131129
     
    192190}
    193191void DeleteIconType(int WndNum){
    194     extern MDIINFO MdiInfo[MAX_WNDNUM];
    195192    int i;
    196193
     
    241238    extern HANDLE hHeap;
    242239    extern HWND hDocCombo;
    243     extern MDIINFO MdiInfo[MAX_WNDNUM];
    244240    int i,i2,IconNum;
    245241    char str[MAX_PATH],str2[32],*buffer;
     
    257253            i=GetWndNum(hChild);
    258254            if(MdiInfo[i].DocType==WNDTYPE_ICONEDIT){
    259                 if(lstrcmpi(MdiInfo[i].path,filepath)==0) break;
     255                if(lstrcmpi(MdiInfo[i].path.c_str(),filepath)==0) break;
    260256            }
    261257            hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    373369
    374370    //ウィンドウのID登録
    375     for(i=0;i<MAX_WNDNUM;i++){
    376         if(MdiInfo[i].hwnd==0){
    377             MdiInfo[i].hwnd=hChild;
    378             MdiInfo[i].DocType=WNDTYPE_ICONEDIT;
    379             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(str)+1);
    380             lstrcpy(MdiInfo[i].title,str);
    381             if(filepath){
    382                 MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(filepath)+1);
    383                 lstrcpy(MdiInfo[i].path,filepath);
    384             }
    385             else MdiInfo[i].path=(char *)GlobalAlloc(GPTR,1);
    386 
    387             MdiInfo[i].MdiIconEditInfo=(MDIICONEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDIICONEDITINFO));
    388             MdiInfo[i].MdiIconEditInfo->hMain=hMain;
    389             MdiInfo[i].MdiIconEditInfo->hToolDlg=hToolDlg;
    390             MdiInfo[i].MdiIconEditInfo->hButtonsDlg=hButtonsDlg;
    391             MdiInfo[i].MdiIconEditInfo->hColorDlg=hColorDlg;
    392             hdc=GetDC(hMain);
    393             MdiInfo[i].MdiIconEditInfo->memdc=CreateCompatibleDC(hdc);
    394             MdiInfo[i].MdiIconEditInfo->hMemBmp=CreateCompatibleBitmap(hdc,600,400);
    395             SelectObject(MdiInfo[i].MdiIconEditInfo->memdc,MdiInfo[i].MdiIconEditInfo->hMemBmp);
    396             ReleaseDC(hMain,hdc);
    397 
    398             MdiInfo[i].MdiIconEditInfo->SelectLevel=0;
    399 
    400             MdiInfo[i].MdiIconEditInfo->num=IconNum;
    401             MdiInfo[i].MdiIconEditInfo->SelectIconNum=0;
    402             memcpy(MdiInfo[i].MdiIconEditInfo->pIconImage,pImageBuffer,sizeof(DWORD)*IconNum);
    403 
    404             memcpy(MdiInfo[i].MdiIconEditInfo->dwBytesInRes,dwBytesInRes,sizeof(DWORD)*IconNum);
    405 
    406             MdiInfo[i].MdiIconEditInfo->NowTool=IDC_TOOL_PEN;
    407             MdiInfo[i].MdiIconEditInfo->MainColor=RGB(0,0,0);
    408             extern COLORREF TransparentClrRef;
    409             MdiInfo[i].MdiIconEditInfo->SubColor=TransparentClrRef;
    410 
    411             for(i2=0;i2<MdiInfo[i].MdiIconEditInfo->num;i2++){
    412                 MdiInfo[i].MdiIconEditInfo->undo[i2].NowPos=0;
    413                 memset(MdiInfo[i].MdiIconEditInfo->undo[i2].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
    414             }
    415             MdiInfo[i].MdiIconEditInfo->bModify=0;
    416             break;
    417         }
    418     }
     371    MdiInfo.push_back( MDIINFO() );
     372    i = MdiInfo.size()-1;
     373    MdiInfo[i].hwnd=hChild;
     374    MdiInfo[i].DocType=WNDTYPE_ICONEDIT;
     375    MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(str)+1);
     376    lstrcpy(MdiInfo[i].title,str);
     377    if(filepath)
     378    {
     379        MdiInfo[i].path = filepath;
     380    }
     381    else
     382    {
     383        MdiInfo[i].path = "";
     384    }
     385
     386    MdiInfo[i].MdiIconEditInfo=(MDIICONEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDIICONEDITINFO));
     387    MdiInfo[i].MdiIconEditInfo->hMain=hMain;
     388    MdiInfo[i].MdiIconEditInfo->hToolDlg=hToolDlg;
     389    MdiInfo[i].MdiIconEditInfo->hButtonsDlg=hButtonsDlg;
     390    MdiInfo[i].MdiIconEditInfo->hColorDlg=hColorDlg;
     391    hdc=GetDC(hMain);
     392    MdiInfo[i].MdiIconEditInfo->memdc=CreateCompatibleDC(hdc);
     393    MdiInfo[i].MdiIconEditInfo->hMemBmp=CreateCompatibleBitmap(hdc,600,400);
     394    SelectObject(MdiInfo[i].MdiIconEditInfo->memdc,MdiInfo[i].MdiIconEditInfo->hMemBmp);
     395    ReleaseDC(hMain,hdc);
     396
     397    MdiInfo[i].MdiIconEditInfo->SelectLevel=0;
     398
     399    MdiInfo[i].MdiIconEditInfo->num=IconNum;
     400    MdiInfo[i].MdiIconEditInfo->SelectIconNum=0;
     401    memcpy(MdiInfo[i].MdiIconEditInfo->pIconImage,pImageBuffer,sizeof(DWORD)*IconNum);
     402
     403    memcpy(MdiInfo[i].MdiIconEditInfo->dwBytesInRes,dwBytesInRes,sizeof(DWORD)*IconNum);
     404
     405    MdiInfo[i].MdiIconEditInfo->NowTool=IDC_TOOL_PEN;
     406    MdiInfo[i].MdiIconEditInfo->MainColor=RGB(0,0,0);
     407    extern COLORREF TransparentClrRef;
     408    MdiInfo[i].MdiIconEditInfo->SubColor=TransparentClrRef;
     409
     410    for(i2=0;i2<MdiInfo[i].MdiIconEditInfo->num;i2++){
     411        MdiInfo[i].MdiIconEditInfo->undo[i2].NowPos=0;
     412        memset(MdiInfo[i].MdiIconEditInfo->undo[i2].lpData,0,sizeof(BYTE *)*MAX_ICONEDIT_UNDONUM);
     413    }
     414    MdiInfo[i].MdiIconEditInfo->bModify=0;
     415
     416
    419417
    420418    //メモリへ初期描画を行う
     
    449447}
    450448void SaveIconFile(char *filepath,HWND hwnd){
    451     extern MDIINFO MdiInfo[MAX_WNDNUM];
    452449    int i,i2,WndNum;
    453450    char buffer[8192],temporary[MAX_PATH];
     
    534531LRESULT CALLBACK MDIClientWindow_IconEdit(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    535532    extern HWND hDocCombo;
    536     extern MDIINFO MdiInfo[MAX_WNDNUM];
    537533    int i,WndNum;
    538534
  • trunk/ab5.0/abdev/abdev/IconEditor_Color.cpp

    r475 r625  
    77BOOL CALLBACK DlgIconColorProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    88    extern HANDLE hHeap;
    9     extern MDIINFO MdiInfo[MAX_WNDNUM];
    109    extern COLORREF TransparentClrRef;
    1110    int i,i2,WndNum;
  • trunk/ab5.0/abdev/abdev/IconEditor_Main.cpp

    r475 r625  
    1313void LimitRectFormat(int WndNum,RECT *pRect){
    1414    //はみ出した場合は範囲内におさめる
    15     extern MDIINFO MdiInfo[MAX_WNDNUM];
    1615    if(pRect->left<0) pRect->left=0;
    1716    if(pRect->top<0) pRect->top=0;
     
    3332}
    3433void SetZoomedPixel(HDC hdc,int WndNum,int x,int y){
    35     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3634    POINT pos;
    3735
     
    4745}
    4846DWORD GetColorCode(int WndNum,COLORREF ColorRef){
    49     extern MDIINFO MdiInfo[MAX_WNDNUM];
    5047    int i,i2;
    5148    RGBQUAD *pRgbq;
     
    7067    //////////////////////////////////////////////
    7168
    72     extern MDIINFO MdiInfo[MAX_WNDNUM];
    7369    HDC hDC;
    7470    HBITMAP hBmp;
     
    114110    ////////////////////////////////////
    115111
    116     extern MDIINFO MdiInfo[MAX_WNDNUM];
    117112    HDC hDC,hDC2;
    118113    BITMAP Bitmap;
     
    147142
    148143void IconEdit_SelectImage(int WndNum){
    149     extern MDIINFO MdiInfo[MAX_WNDNUM];
    150144    SIZE size;
    151145    HDC hDC;
     
    169163void IconEdit_PasteImage(int WndNum){
    170164    extern HANDLE hHeap;
    171     extern MDIINFO MdiInfo[MAX_WNDNUM];
    172165    int i,i2,i3,x,y,y2,selecting_x,selecting_y;
    173166    DWORD dwRgbq;
     
    299292
    300293void DrawIconToMemBmp(int WndNum,RECT *pRect){
    301     extern MDIINFO MdiInfo[MAX_WNDNUM];
    302294    HPEN hPen,hOldPen;
    303295    HBRUSH hBrush,hOldBrush;
     
    406398
    407399void PixelChange(int WndNum,int x,int y,DWORD ColorCode){
    408     extern MDIINFO MdiInfo[MAX_WNDNUM];
    409400    int i;
    410401    int y2;
     
    467458}
    468459COLORREF IconEdit_GetPixel(int WndNum,int x,int y){
    469     extern MDIINFO MdiInfo[MAX_WNDNUM];
    470460    int i,i2;
    471461    int y2;
     
    525515}
    526516void IconEdit_DrawLine(int WndNum,int x1,int y1,int x2,int y2,DWORD ColorCode){
    527     extern MDIINFO MdiInfo[MAX_WNDNUM];
    528517    int dx,dy,s,step;
    529518
     
    576565}
    577566void IconEdit_FloodFill(int WndNum,int x,int y,COLORREF FilledColor,DWORD ColorCode){
    578     extern MDIINFO MdiInfo[MAX_WNDNUM];
    579567
    580568    if(x<0||y<0) return;
     
    610598}
    611599void IconEdit_DrawEllipse(int WndNum,int x1,int y1,int x2,int y2,DWORD ColorCode){
    612     extern MDIINFO MdiInfo[MAX_WNDNUM];
    613600    RECT rect,rc2;
    614601
     
    680667
    681668void IconEdit_EraseRect(int WndNum,RECT *pRect){
    682     extern MDIINFO MdiInfo[MAX_WNDNUM];
    683669
    684670    //変更情報
     
    698684
    699685void IconEdit_DrawFrame(HWND hwnd,int WndNum,RECT *pRect){
    700     extern MDIINFO MdiInfo[MAX_WNDNUM];
    701686    HDC hdc;
    702687    HPEN hPen,hOldPen;
     
    744729}
    745730void IconEdit_DrawSelectingRect(HDC hdc,int WndNum){
    746     extern MDIINFO MdiInfo[MAX_WNDNUM];
    747731    int i2,i3;
    748732    HPEN hPen,hOldPen;
     
    817801void DrawZoomedBitmap(HDC hdc,int WndNum,POINT *pPos){
    818802    extern HANDLE hHeap;
    819     extern MDIINFO MdiInfo[MAX_WNDNUM];
    820803    int x,y;
    821804    RGBQUAD rgbq;
     
    869852}
    870853int IconEdit_GetStateOfDraggingFrame(int WndNum,int x,int y){
    871     extern MDIINFO MdiInfo[MAX_WNDNUM];
    872854    POINT pos;
    873855    RECT rect;
     
    892874    // 選択されているイメージを表示
    893875
    894     extern MDIINFO MdiInfo[MAX_WNDNUM];
    895876    HDC hDC2;
    896877    SIZE size;
     
    914895}
    915896void TempLine(HDC hdc,int WndNum,int x1,int y1,int x2,int y2,COLORREF ColorRef){
    916     extern MDIINFO MdiInfo[MAX_WNDNUM];
    917897    int dx,dy,s,step;
    918898    HPEN hPen,hOldPen;
     
    977957}
    978958void TempRectangle(HDC hdc,int WndNum,int x1,int y1,int x2,int y2,COLORREF ColorRef,COLORREF FillClrRef,BOOL bFill){
    979     extern MDIINFO MdiInfo[MAX_WNDNUM];
    980959    int x,y;
    981960    HPEN hPen,hOldPen;
     
    10381017}
    10391018void TempEllipse(HDC hdc,int WndNum,int x1,int y1,int x2,int y2,COLORREF ColorRef){
    1040     extern MDIINFO MdiInfo[MAX_WNDNUM];
    10411019    HPEN hPen,hOldPen;
    10421020    HBRUSH hBrush,hOldBrush;
     
    11371115}
    11381116LRESULT CALLBACK IconEditWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    1139     extern MDIINFO MdiInfo[MAX_WNDNUM];
    11401117    int WndNum,dx,dy;
    11411118    BOOL bRedrawMemBmp;
  • trunk/ab5.0/abdev/abdev/IconEditor_Tool.cpp

    r613 r625  
    3232
    3333BOOL CALLBACK DlgIconButtons(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    34     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3534    int WndNum;
    3635    RECT rect;
     
    105104}
    106105BOOL CALLBACK DlgIconType(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    107     extern MDIINFO MdiInfo[MAX_WNDNUM];
    108106    int i,WndNum;
    109107    HWND hList;
     
    180178}
    181179BOOL CALLBACK DlgIconToolProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    182     extern MDIINFO MdiInfo[MAX_WNDNUM];
    183180    int i,WndNum;
    184181
  • trunk/ab5.0/abdev/abdev/IconEditor_UndoRedo.cpp

    r475 r625  
    44
    55void IconEdit_UndoCommand(int WndNum){
    6     extern MDIINFO MdiInfo[MAX_WNDNUM];
    76    int i;
    87    BYTE *pByte;
     
    4039}
    4140void IconEdit_RedoCommand(int WndNum){
    42     extern MDIINFO MdiInfo[MAX_WNDNUM];
    4341    BYTE *pByte;
    4442    ICONEDIT_UNDOSTATE *pUndoState;
     
    6866void IconEdit_NoticeChanging(int WndNum){
    6967    extern HANDLE hHeap;
    70     extern MDIINFO MdiInfo[MAX_WNDNUM];
    7168    int i;
    7269    ICONEDIT_UNDOSTATE *pUndoState;
  • trunk/ab5.0/abdev/abdev/MenuProc.cpp

    r624 r625  
    1111#endif
    1212
    13 int GetMenuInfoNum(const char *name){
     13int GetMenuInfoNum(const std::string &name){
    1414    int i;
    1515    for(i=0;i<projectInfo.NumberOfMenu;i++){
    16         if(lstrcmpi(name,projectInfo.pMenuInfo[i].IdName)==0) return i;
     16        if(lstrcmpi(name.c_str(),projectInfo.pMenuInfo[i].IdName)==0) return i;
    1717    }
    1818    return -1;
     
    6868void Project_Menu_Insert(void){
    6969    extern HANDLE hHeap;
    70     extern MDIINFO MdiInfo[MAX_WNDNUM];
    7170    extern char NewIdName[MAX_PATH];
    7271    int i;
     
    121120    ////////////////////////////////
    122121    // ウィンドウ プロパティを更新
    123     for(i=0;i<MAX_WNDNUM;i++){
     122    for(i=0;i<MdiInfo.size();i++){
    124123        if(MdiInfo[i].hwnd&&MdiInfo[i].DocType==WNDTYPE_RAD){
    125124            if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
     
    132131void Project_Menu_Delete(int MenuInfoNum){
    133132    extern HANDLE hHeap;
    134     extern MDIINFO MdiInfo[MAX_WNDNUM];
    135133    int i;
    136134
    137135    //ウィンドウが開かれている場合は閉じる
    138     for(i=0;i<MAX_WNDNUM;i++){
    139         if(MdiInfo[i].hwnd&&lstrcmpi(projectInfo.pMenuInfo[MenuInfoNum].IdName,MdiInfo[i].path)==0){
     136    for(i=0;i<MdiInfo.size();i++){
     137        if(MdiInfo[i].hwnd&&lstrcmpi(projectInfo.pMenuInfo[MenuInfoNum].IdName,MdiInfo[i].path.c_str())==0){
    140138            SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
    141139            break;
     
    166164    ////////////////////////////////
    167165    // ウィンドウ プロパティを更新
    168     for(i=0;i<MAX_WNDNUM;i++){
     166    for(i=0;i<MdiInfo.size();i++){
    169167        if(MdiInfo[i].hwnd&&MdiInfo[i].DocType==WNDTYPE_RAD){
    170168            if(MdiInfo[i].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
    171                 ChangePropertyWindow(i,GetWndInfoNum(MdiInfo[i].path));
     169                ChangePropertyWindow(i,GetWndInfoNum(MdiInfo[i].path.c_str()));
    172170        }
    173171    }
     
    192190    extern HINSTANCE hInst;
    193191    extern HWND hDocCombo;
    194     extern MDIINFO MdiInfo[MAX_WNDNUM];
    195192    int i;
    196193    HWND hChild,hListWnd,hMenuEdit;
     
    203200        i=GetWndNum(hChild);
    204201        if(MdiInfo[i].DocType==WNDTYPE_MENU){
    205             if(lstrcmpi(MdiInfo[i].path,pMenuInfo->IdName)==0) break;
     202            if(lstrcmpi(MdiInfo[i].path.c_str(),pMenuInfo->IdName)==0) break;
    206203        }
    207204        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    249246        hChild,NULL,hInst,NULL);
    250247
     248
    251249    //ウィンドウのID登録
    252     for(i=0;i<MAX_WNDNUM;i++){
    253         if(MdiInfo[i].hwnd==0){
    254             MdiInfo[i].hwnd=hChild;
    255             MdiInfo[i].DocType=WNDTYPE_MENU;
    256             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pMenuInfo->IdName)+1);
    257             lstrcpy(MdiInfo[i].title,pMenuInfo->IdName);
    258             MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pMenuInfo->IdName)+1);
    259             lstrcpy(MdiInfo[i].path,pMenuInfo->IdName);
    260 
    261 
    262             /////////////////////
    263             //MENU ウィンドウ情報
    264 
    265             MdiInfo[i].MdiMenuInfo=(MDIMENUINFO *)GlobalAlloc(GPTR,sizeof(MDIMENUINFO));
    266 
    267             MdiInfo[i].MdiMenuInfo->hList=hListWnd;
    268 
    269             MdiInfo[i].MdiMenuInfo->hMenuEdit=hMenuEdit;
    270             MdiInfo[i].MdiMenuInfo->hEdit_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_PROJECT_MENUEDIT),hMenuEdit,(DLGPROC)MenuEditDlg);
    271 
    272             SCROLLINFO ScrollInfo;
    273             ScrollInfo.cbSize=sizeof(SCROLLINFO);
    274             ScrollInfo.fMask=SIF_POS;
    275             ScrollInfo.nPos=0;
    276             SetScrollInfo(MdiInfo[i].MdiMenuInfo->hMenuEdit,SB_VERT,&ScrollInfo,1);
    277 
    278             SendMessage(hListWnd,LB_RESETCONTENT,0,0);
    279             SetMenuDataList(hListWnd,pMenuInfo,0);
    280             if(pMenuInfo->NumberOfMenu){
    281                 SendMessage(hListWnd,LB_SETCURSEL,0,0);
    282                 SendMessage(hChild,WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)hListWnd);
    283             }
    284             break;
    285         }
    286     }
     250    MdiInfo.push_back( MDIINFO() );
     251    i = MdiInfo.size()-1;
     252    MdiInfo[i].hwnd=hChild;
     253    MdiInfo[i].DocType=WNDTYPE_MENU;
     254    MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(pMenuInfo->IdName)+1);
     255    lstrcpy(MdiInfo[i].title,pMenuInfo->IdName);
     256    MdiInfo[i].path = pMenuInfo->IdName;
     257
     258
     259    /////////////////////
     260    //MENU ウィンドウ情報
     261
     262    MdiInfo[i].MdiMenuInfo=(MDIMENUINFO *)GlobalAlloc(GPTR,sizeof(MDIMENUINFO));
     263
     264    MdiInfo[i].MdiMenuInfo->hList=hListWnd;
     265
     266    MdiInfo[i].MdiMenuInfo->hMenuEdit=hMenuEdit;
     267    MdiInfo[i].MdiMenuInfo->hEdit_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_PROJECT_MENUEDIT),hMenuEdit,(DLGPROC)MenuEditDlg);
     268
     269    SCROLLINFO ScrollInfo;
     270    ScrollInfo.cbSize=sizeof(SCROLLINFO);
     271    ScrollInfo.fMask=SIF_POS;
     272    ScrollInfo.nPos=0;
     273    SetScrollInfo(MdiInfo[i].MdiMenuInfo->hMenuEdit,SB_VERT,&ScrollInfo,1);
     274
     275    SendMessage(hListWnd,LB_RESETCONTENT,0,0);
     276    SetMenuDataList(hListWnd,pMenuInfo,0);
     277    if(pMenuInfo->NumberOfMenu){
     278        SendMessage(hListWnd,LB_SETCURSEL,0,0);
     279        SendMessage(hChild,WM_COMMAND,MAKELONG(0,LBN_SELCHANGE),(long)hListWnd);
     280    }
     281
    287282
    288283    //ウィンドウ位置を初期化
     
    332327    extern HANDLE hHeap;
    333328    extern HWND hClient,hOwner;
    334     extern MDIINFO MdiInfo[MAX_WNDNUM];
    335329    int i;
    336330    char temporary[MAX_PATH];
     
    744738LRESULT CALLBACK MenuEditWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    745739    extern HINSTANCE hInst;
    746     extern MDIINFO MdiInfo[MAX_WNDNUM];
    747740    int i;
    748741    RECT rect;
     
    797790LRESULT CALLBACK MDIClientWindow_Menu(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    798791    extern HWND hDocCombo;
    799     extern MDIINFO MdiInfo[MAX_WNDNUM];
    800792    int i,i2,i3,WndNum,MenuInfoNum;
    801793    MENU_INFO *pMenuInfo;
  • trunk/ab5.0/abdev/abdev/MessageCallOperation.cpp

    r624 r625  
    3939
    4040    NameLen=pWindowInfo->GetName().size();
    41     CallBackNameLen=lstrlen(pWindowInfo->CallBackName);
    42 
    43     buffer = ReadBuffer( projectInfo.GetWorkDir().GetPath() + pWindowInfo->filepath );
     41    CallBackNameLen=pWindowInfo->GetCallbackName().size();
     42
     43    buffer = ReadBuffer( projectInfo.GetWorkDir().GetPath() + pWindowInfo->GetSourceFileName() );
    4444
    4545    *num=0;
     
    117117                i2+=9;
    118118                while(buffer[i2]==' '||buffer[i2]=='\t') i2++;
    119                 if(memicmp(buffer+i2,pWindowInfo->CallBackName,CallBackNameLen)==0&&
     119                if(memicmp(buffer+i2,pWindowInfo->GetCallbackName().c_str(),CallBackNameLen)==0&&
    120120                    (buffer[i2+CallBackNameLen]==' '||buffer[i2+CallBackNameLen]=='\t'||buffer[i2+CallBackNameLen]=='(')){
    121121                    *pbAlways=1;
     
    129129}
    130130void SelectProcedureOfMessageCall(int WndInfoNum,char *ProcedureName,char *Parameter){
    131     extern MDIINFO MdiInfo[MAX_WNDNUM];
    132131    int i,i2,i3,WndNum;
    133132    char temporary[MAX_PATH],*pBuf;
     
    137136    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    138137
    139     hChild=OpenFileWithExtension( projectInfo.GetWorkDir().GetPath() + pWindowInfo->filepath );
     138    hChild=OpenFileWithExtension( projectInfo.GetWorkDir().GetPath() + pWindowInfo->GetSourceFileName() );
    140139    if(!hChild) return;
    141140    WndNum=GetWndNum(hChild);
     
    216215}
    217216BOOL GetEventProcedureNameFromListView(HWND hList,int WndNum,int WndInfoNum,char *EventName,char *Parameter,DWORD dwEventType){
    218     extern MDIINFO MdiInfo[MAX_WNDNUM];
    219217    int i,MaxCount;
    220218    char temporary[MAX_PATH];
     
    394392}
    395393void SetEventToList(HWND hDlg,DWORD dwEventType){
    396     extern MDIINFO MdiInfo[MAX_WNDNUM];
    397394    int i,i2,WndNum;
    398395    HWND hList;
     
    586583}
    587584BOOL CALLBACK DlgEventCode(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    588     extern MDIINFO MdiInfo[MAX_WNDNUM];
    589585    int WndNum,WndInfoNum,i,i2;
    590586    char temporary[MAX_PATH],temp2[MAX_PATH];
  • trunk/ab5.0/abdev/abdev/ParameterHint.cpp

    r620 r625  
    3838        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    3939
    40         extern MDIINFO MdiInfo[MAX_WNDNUM];
    41         for(i=0;i<MAX_WNDNUM;i++){
     40        for(i=0;i<MdiInfo.size();i++){
    4241            if(MdiInfo[i].hwnd){
    43                 if(lstrcmpi(MdiInfo[i].path,temporary)==0) break;
    44             }
    45         }
    46         if(i==MAX_WNDNUM){
     42                if(lstrcmpi(MdiInfo[i].path.c_str(),temporary)==0) break;
     43            }
     44        }
     45        if(i==MdiInfo.size()){
    4746            //ファイルから開く
    4847            pBuf=ReadBuffer(temporary);
     
    5655    else{
    5756        //単体ソースコードのとき
    58         extern MDIINFO MdiInfo[MAX_WNDNUM];
    5957        int WndNum;
    6058
     
    682680void ShowParameterHint(int WndNum){
    683681    extern HANDLE hHeap;
    684     extern MDIINFO MdiInfo[MAX_WNDNUM];
    685682    extern METHODCHECKINFO MethodCheckInfo;
    686683    int i,i2,i3,IsStr,IsComment,PareNum,iPos;
     
    12381235        extern HINSTANCE hInst;
    12391236        extern METHODCHECKINFO MethodCheckInfo;
    1240         extern MDIINFO MdiInfo[MAX_WNDNUM];
    12411237        HDC hdc,memdc;
    12421238        RECT rect,rc2;
  • trunk/ab5.0/abdev/abdev/ProjectControl.cpp

    r624 r625  
    4242LRESULT CALLBACK TabProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4343    extern HANDLE hHeap;
    44     extern MDIINFO MdiInfo[MAX_WNDNUM];
    4544    extern LPSTR DefFileFilter;
    4645    int i,i2,WndNum;
     
    10571056        windowInfos.push_back( new ActiveBasic::PM::WindowInfo() );
    10581057        windowInfos.back()->SetName( "MainWnd" );
    1059         windowInfos.back()->SetHandleName( "hMainWnd" );
    10601058        windowInfos.back()->pos.x=CW_USEDEFAULT;
    10611059        windowInfos.back()->pos.y=CW_USEDEFAULT;
     
    10771075        windowInfos.back()->SetIconResourceName( "" );
    10781076        windowInfos.back()->SetClassName( "NORMAL" );
    1079         windowInfos.back()->CallBackName="MainWndProc";
    1080         windowInfos.back()->type=WNDTYPE_DEFAULT;
    1081         windowInfos.back()->filepath="MainWnd.ab";
     1077        windowInfos.back()->SetType( ActiveBasic::PM::WindowType::Default );
    10821078        sprintf(temporary,"%s%s.wnd",dir,NewProjectInfo.name);
    10831079
     
    12441240    //////////////////////////////////////////
    12451241    //ワークファイル(*.wrk)をオープン
    1246     extern MDIINFO MdiInfo[MAX_WNDNUM];
    12471242    HTREEITEM hTreeItem;
    12481243    HANDLE hFind;
     
    15711566}
    15721567BOOL ProjectModifyCheck(BOOL bRun){
    1573     extern MDIINFO MdiInfo[MAX_WNDNUM];
    15741568    int i,WndNum,sw;
    15751569    HWND hChild;
     
    16011595                for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){
    16021596                    projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    1603                     if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) sw=1;
     1597                    if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) sw=1;
    16041598                }
    16051599            }
     
    16111605                    lstrcpy(temporary,resourceItem.filepath.c_str());
    16121606                    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    1613                     if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) sw=1;
     1607                    if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) sw=1;
    16141608                }
    16151609            }
     
    16391633}
    16401634void MakeWorkFile(void){
    1641     extern MDIINFO MdiInfo[MAX_WNDNUM];
    16421635    int i,i2,WndNum;
    16431636    char temporary[MAX_PATH],buffer[32767];
     
    16581651            for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){
    16591652                projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    1660                 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     1653                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    16611654                    TextEdit_GetSel(WndNum,&CharRange);
    16621655
     
    16841677            BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
    16851678            {
    1686                 if(lstrcmpi(MdiInfo[WndNum].path,pWindowInfo->GetName().c_str())==0){
    1687                     sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path);
     1679                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),pWindowInfo->GetName().c_str())==0){
     1680                    sprintf(buffer+i2,"rad,%s\r\n",MdiInfo[WndNum].path.c_str());
    16881681                    i2+=lstrlen(buffer+i2);
    16891682                    break;
     
    16931686        else if(MdiInfo[WndNum].DocType==WNDTYPE_MENU){
    16941687            for(i=0;i<projectInfo.NumberOfMenu;i++){
    1695                 if(lstrcmpi(MdiInfo[WndNum].path,projectInfo.pMenuInfo[i].IdName)==0){
    1696                     sprintf(buffer+i2,"menu,%s\r\n",MdiInfo[WndNum].path);
     1688                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),projectInfo.pMenuInfo[i].IdName)==0){
     1689                    sprintf(buffer+i2,"menu,%s\r\n",MdiInfo[WndNum].path.c_str());
    16971690                    i2+=lstrlen(buffer+i2);
    16981691                    break;
     
    17051698                lstrcpy(temporary,resourceItem.filepath.c_str());
    17061699                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    1707                 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     1700                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    17081701                    sprintf(buffer+i2,"icon,%s\r\n",resourceItem.filepath.c_str());
    17091702                    i2+=lstrlen(buffer+i2);
  • trunk/ab5.0/abdev/abdev/RadProc.cpp

    r624 r625  
    88    extern HINSTANCE hInst,hResInst;
    99    extern HWND hDocCombo;
    10     extern MDIINFO MdiInfo[MAX_WNDNUM];
    1110    int i,i2;
    1211    HWND hChild;
     
    1918        i=GetWndNum(hChild);
    2019        if(MdiInfo[i].DocType==WNDTYPE_RAD){
    21             if(lstrcmpi(MdiInfo[i].path,windowInfo.GetName().c_str())==0) break;
     20            if(lstrcmpi(MdiInfo[i].path.c_str(),windowInfo.GetName().c_str())==0) break;
    2221        }
    2322        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    8180    //ウィンドウのID登録
    8281    HDC hdc;
    83     for(i=0;i<MAX_WNDNUM;i++){
    84         if(MdiInfo[i].hwnd==0){
    85             MdiInfo[i].hwnd=hChild;
    86             MdiInfo[i].DocType=WNDTYPE_RAD;
    87             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,windowInfo.GetName().size()+1);
    88             lstrcpy(MdiInfo[i].title,windowInfo.GetName().c_str());
    89             MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,windowInfo.GetName().size()+1);
    90             lstrcpy(MdiInfo[i].path,windowInfo.GetName().c_str());
    91 
    92 
    93             ////////////////////////////
    94             // MDIRADINFO構造体をセット
    95             ////////////////////////////
    96 
    97             MdiInfo[i].MdiRadInfo=(MDIRADINFO *)GlobalAlloc(GPTR,sizeof(MDIRADINFO));
    98 
    99             MdiInfo[i].MdiRadInfo->hTools=hTools;
    100             MdiInfo[i].MdiRadInfo->hProperty=hProperty;
    101             MdiInfo[i].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),hProperty,(DLGPROC)RadProperty_WindowProc);
    102 
    103             SCROLLINFO ScrollInfo;
    104             ScrollInfo.cbSize=sizeof(SCROLLINFO);
    105             ScrollInfo.fMask=SIF_POS;
    106             ScrollInfo.nPos=0;
    107             SetScrollInfo(MdiInfo[i].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
    108 
    109             MdiInfo[i].MdiRadInfo->hRad=hRad;
    110 
    111             MdiInfo[i].MdiRadInfo->hSupport=hSupport;
    112 
    113             hdc=GetDC(hRad);
    114             MdiInfo[i].MdiRadInfo->hBitmap=CreateCompatibleBitmap(hdc,ScreenX*2,ScreenY*2);
    115             MdiInfo[i].MdiRadInfo->hMemDC=CreateCompatibleDC(hdc);
    116             MdiInfo[i].MdiRadInfo->hOldBitmap=
    117                 (HBITMAP)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,MdiInfo[i].MdiRadInfo->hBitmap);
    118             ReleaseDC(hRad,hdc);
    119 
    120             for(i2=0;i2<MAX_RAD_SELITEM;i2++) MdiInfo[i].MdiRadInfo->SelectingItem[i2]=-1;
    121             MdiInfo[i].MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
    122 
    123             //変更情報を初期化
    124             MdiInfo[i].MdiRadInfo->undo.NowPos=0;
    125             memset(MdiInfo[i].MdiRadInfo->undo.Command,0,sizeof(int)*MAX_UNDONUM);
    126 
    127 
    128             DrawRadWindow(i,&windowInfo);
    129 
    130             //サポートダイアログの内容をセット
    131             SetSupportDlgData(i,windowInfo);
    132 
    133             break;
    134         }
    135     }
     82    MdiInfo.push_back( MDIINFO() );
     83    i = MdiInfo.size()-1;
     84
     85    MdiInfo[i].hwnd=hChild;
     86    MdiInfo[i].DocType=WNDTYPE_RAD;
     87    MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,windowInfo.GetName().size()+1);
     88    lstrcpy(MdiInfo[i].title,windowInfo.GetName().c_str());
     89    MdiInfo[i].path = windowInfo.GetName();
     90
     91
     92    ////////////////////////////
     93    // MDIRADINFO構造体をセット
     94    ////////////////////////////
     95
     96    MdiInfo[i].MdiRadInfo=(MDIRADINFO *)GlobalAlloc(GPTR,sizeof(MDIRADINFO));
     97
     98    MdiInfo[i].MdiRadInfo->hTools=hTools;
     99    MdiInfo[i].MdiRadInfo->hProperty=hProperty;
     100    MdiInfo[i].MdiRadInfo->hProp_Dlg=CreateDialog(hResInst,MAKEINTRESOURCE(IDD_RAD_PROP_WINDOW),hProperty,(DLGPROC)RadProperty_WindowProc);
     101
     102    SCROLLINFO ScrollInfo;
     103    ScrollInfo.cbSize=sizeof(SCROLLINFO);
     104    ScrollInfo.fMask=SIF_POS;
     105    ScrollInfo.nPos=0;
     106    SetScrollInfo(MdiInfo[i].MdiRadInfo->hProperty,SB_VERT,&ScrollInfo,1);
     107
     108    MdiInfo[i].MdiRadInfo->hRad=hRad;
     109
     110    MdiInfo[i].MdiRadInfo->hSupport=hSupport;
     111
     112    hdc=GetDC(hRad);
     113    MdiInfo[i].MdiRadInfo->hBitmap=CreateCompatibleBitmap(hdc,ScreenX*2,ScreenY*2);
     114    MdiInfo[i].MdiRadInfo->hMemDC=CreateCompatibleDC(hdc);
     115    MdiInfo[i].MdiRadInfo->hOldBitmap=
     116        (HBITMAP)SelectObject(MdiInfo[i].MdiRadInfo->hMemDC,MdiInfo[i].MdiRadInfo->hBitmap);
     117    ReleaseDC(hRad,hdc);
     118
     119    for(i2=0;i2<MAX_RAD_SELITEM;i2++) MdiInfo[i].MdiRadInfo->SelectingItem[i2]=-1;
     120    MdiInfo[i].MdiRadInfo->ButtonSelect=IDC_TOOL_MOUSE;
     121
     122    //変更情報を初期化
     123    MdiInfo[i].MdiRadInfo->undo.NowPos=0;
     124    memset(MdiInfo[i].MdiRadInfo->undo.Command,0,sizeof(int)*MAX_UNDONUM);
     125
     126    DrawRadWindow(i,&windowInfo);
     127
     128    //サポートダイアログの内容をセット
     129    SetSupportDlgData(i,windowInfo);
     130
    136131
    137132    ShowWindow(hSupport,SW_SHOW);
     
    160155
    161156    extern HANDLE hHeap;
    162     extern MDIINFO MdiInfo[MAX_WNDNUM];
    163157    int i,i2,NewItemNum;
    164158    char temporary[MAX_PATH];
     
    271265void DeleteDlgItem(int WndNum,int WndInfoNum,int ItemNum,BOOL bNoticeChanging){
    272266    extern HANDLE hHeap;
    273     extern MDIINFO MdiInfo[MAX_WNDNUM];
    274267
    275268    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
     
    335328}
    336329void DrawFrame(HWND hwnd,int WndNum,int WndInfoNum,RECT *NewRect,RECT *OldRect,BOOL bLA){
    337     extern MDIINFO MdiInfo[MAX_WNDNUM];
    338330    static int swLineStop;
    339331    int i,sw;
     
    446438}
    447439void GetSelectingRect(int WndNum,int WndInfoNum,int num,RECT *rect){
    448     extern MDIINFO MdiInfo[MAX_WNDNUM];
    449440
    450441    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
     
    466457}
    467458void DrawSelectingRect(HWND hwnd,int WndNum,int WndInfoNum,int ButtonSelect){
    468     extern MDIINFO MdiInfo[MAX_WNDNUM];
    469459    extern RADINFO RadInfo;
    470460    int i,i2,i3;
     
    541531}
    542532void ChangePropertyWindow(int WndNum,int WndInfoNum){
    543     extern MDIINFO MdiInfo[MAX_WNDNUM];
    544533    RECT rect;
    545534    SCROLLINFO ScrollInfo;
     
    603592}
    604593int GetItemNumOnMouse(int WndNum,int WndInfoNum,int x,int y){
    605     extern MDIINFO MdiInfo[MAX_WNDNUM];
    606594    int i;
    607595
     
    648636void SelectItemNumOnMouse(int WndNum,int WndInfoNum,int x,int y){
    649637    //マウス座標をもとにコントロールアイテムを選択
    650     extern MDIINFO MdiInfo[MAX_WNDNUM];
    651638    int i;
    652639
     
    671658}
    672659void SetItemNumOnFrame(int WndNum,int WndInfoNum,RECT *pRect){
    673     extern MDIINFO MdiInfo[MAX_WNDNUM];
    674660    int i,i2,sw;
    675661    RECT rect;
     
    696682}
    697683int GetStateOfDraggingFrame(int WndNum,int WndInfoNum,int x,int y){
    698     extern MDIINFO MdiInfo[MAX_WNDNUM];
    699684    int i;
    700685    RECT rect;
     
    757742}
    758743void ResetScrollbarOfRadEditor(int WndNum,int weight,int height){
    759     extern MDIINFO MdiInfo[MAX_WNDNUM];
    760744    SCROLLINFO ScrollInfo;
    761745    SIZE NeedSize;
     
    791775}
    792776LRESULT CALLBACK RadWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    793     extern MDIINFO MdiInfo[MAX_WNDNUM];
    794777    extern RADINFO RadInfo;
    795778    int i,i2,i3,i4;
     
    19641947}
    19651948void ResizeToRadToolWindows(int WndNum,int weight,int height){
    1966     extern MDIINFO MdiInfo[MAX_WNDNUM];
    19671949    int i,i2;
    19681950    RECT rect;
     
    20021984LRESULT CALLBACK MDIClientWindow_Rad(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    20031985    extern HWND hDocCombo;
    2004     extern MDIINFO MdiInfo[MAX_WNDNUM];
    20051986    int i,WndNum;
    20061987
  • trunk/ab5.0/abdev/abdev/RadSupport.cpp

    r624 r625  
    189189    // サポートダイアログの内容をセット
    190190    ////////////////////////////////////
    191     extern MDIINFO MdiInfo[MAX_WNDNUM];
    192191    extern RADINFO RadInfo;
    193192    char temporary[255];
     
    268267
    269268BOOL CALLBACK DlgRadSupport(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    270     extern MDIINFO MdiInfo[MAX_WNDNUM];
    271269    static BOOL bTimer;
    272270    int i,i3;
  • trunk/ab5.0/abdev/abdev/RadToolsAndPropertyProc.cpp

    r624 r625  
    100100}
    101101BOOL CALLBACK RadToolButtonsProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    102     extern MDIINFO MdiInfo[MAX_WNDNUM];
    103102    int i,i2,WndNum;
    104103    HWND hParent;
     
    198197}
    199198LRESULT CALLBACK RadToolsWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    200     extern MDIINFO MdiInfo[MAX_WNDNUM];
    201199    extern HFONT hStatusFont;
    202200    int i;
     
    352350    extern HANDLE hHeap;
    353351    extern HWND hClient,hOwner;
    354     extern MDIINFO MdiInfo[MAX_WNDNUM];
    355352    int i,i3;
    356353    char temporary[MAX_PATH],temp2[MAX_PATH];
     
    361358                i=GetWndNum(GetWindow(hClient,GW_CHILD));
    362359                ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[i].path);
    363                 sprintf(temporary,"h%s",pWindowInfo->GetName().c_str());
    364                 sprintf(temp2,"%sProc",pWindowInfo->GetName().c_str());
    365                 if( pWindowInfo->GetHandleName() == temporary &&
    366                     lstrcmp(temp2,pWindowInfo->CallBackName)==0){
    367                     SendDlgItemMessage(hwnd,IDC_AUTOSET,BM_SETCHECK,BST_CHECKED,0);
    368                     SendMessage(hwnd,WM_COMMAND,IDC_AUTOSET,0);
    369                 }
    370360                SetDlgItemText(hwnd,IDC_WINDOWNAME,pWindowInfo->GetName().c_str());
    371                 SetDlgItemText(hwnd,IDC_WINDOWHANDLE,pWindowInfo->GetHandleName().c_str());
    372                 SetDlgItemText(hwnd,IDC_WINDOWPROC,pWindowInfo->CallBackName);
     361                SetDlgItemText(hwnd,IDC_WINDOWHANDLE,( "h" + pWindowInfo->GetName() ).c_str());
     362                SetDlgItemText(hwnd,IDC_WINDOWPROC,( pWindowInfo->GetName() + "Proc" ).c_str());
    373363                break;
    374364            }
     
    402392                        names.name = temporary;
    403393
    404                         i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWHANDLE))+1;
    405                         GetDlgItemText(hwnd,IDC_WINDOWHANDLE,temporary,i3);
    406                         names.HandleName = temporary;
    407 
    408                         i3=GetWindowTextLength(GetDlgItem(hwnd,IDC_WINDOWPROC))+1;
    409                         names.CallBackName=(char *)HeapAlloc(hHeap,0,i3);
    410                         GetDlgItemText(hwnd,IDC_WINDOWPROC,names.CallBackName,i3);
    411 
    412                         if( names.name == pWindowInfo->GetName() &&
    413                             pWindowInfo->GetHandleName() == names.HandleName &&
    414                             lstrcmp(names.CallBackName,pWindowInfo->CallBackName)==0){
    415                             HeapDefaultFree(names.CallBackName);
     394                        if( names.name == pWindowInfo->GetName() )
     395                        {
    416396                            SendMessage(hwnd,WM_COMMAND,IDCANCEL,0);
    417397                            return 1;
     
    423403                        //変更情報を更新
    424404                        NoticeNames.name=pWindowInfo->GetName();
    425                         NoticeNames.HandleName=pWindowInfo->GetHandleName();
    426                         NoticeNames.CallBackName=pWindowInfo->CallBackName;
    427405                        Rad_NoticeChanging(i,RAD_UNDO_NAME,SELECT_WINDOW,(DWORD)&NoticeNames);
    428406
    429407                        pWindowInfo->SetName( names.name );
    430                         GlobalFree(MdiInfo[i].path);
    431                         MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,names.name.size()+1);
    432                         lstrcpy(MdiInfo[i].path,names.name.c_str());
    433 
    434                         pWindowInfo->SetHandleName( names.HandleName );
    435 
    436                         HeapDefaultFree(pWindowInfo->CallBackName);
    437                         pWindowInfo->CallBackName=names.CallBackName;
     408                        MdiInfo[i].path = names.name;
    438409
    439410                        EndDialog(hwnd,1);
     
    444415                    return 1;
    445416                case IDC_WINDOWNAME:
    446                     if(HIWORD(wParam)==EN_CHANGE) SendMessage(hwnd,WM_COMMAND,IDC_AUTOSET,0);
    447                     return 1;
    448                 case IDC_AUTOSET:
    449                     if(SendDlgItemMessage(hwnd,IDC_AUTOSET,BM_GETCHECK,0,0)){
    450                         SendDlgItemMessage(hwnd,IDC_WINDOWHANDLE,EM_SETREADONLY,1,0);
    451                         SendDlgItemMessage(hwnd,IDC_WINDOWPROC,EM_SETREADONLY,1,0);
     417                    {
    452418                        GetDlgItemText(hwnd,IDC_WINDOWNAME,temporary,MAX_PATH);
    453419                        if(temporary[0]){
     
    462428                        }
    463429                    }
    464                     else{
    465                         SendDlgItemMessage(hwnd,IDC_WINDOWHANDLE,EM_SETREADONLY,0,0);
    466                         SendDlgItemMessage(hwnd,IDC_WINDOWPROC,EM_SETREADONLY,0,0);
    467                     }
    468430                    return 1;
    469431            }
     
    473435}
    474436BOOL CALLBACK DlgRadProperty_Window_ExStyle(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    475     extern MDIINFO MdiInfo[MAX_WNDNUM];
    476437    int i;
    477438
     
    544505BOOL CALLBACK RadProperty_WindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    545506    extern HANDLE hHeap;
    546     extern MDIINFO MdiInfo[MAX_WNDNUM];
    547507    int i,i3,i4;
    548508    static BOOL bInitial;
     
    568528                    SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_ADDSTRING,0,(long)resourceItem.idName.c_str());
    569529                }
    570                 if(pWindowInfo->type==WNDTYPE_MODALDLG||
    571                     pWindowInfo->type==WNDTYPE_MODELESSDLG){
     530                if( pWindowInfo->IsModalDlg() || pWindowInfo->IsModelessDlg() )
     531                {
    572532                    SendDlgItemMessage(hwnd,IDC_BGCOLOR,CB_SETCURSEL,0,0);
    573533                    EnableWindow(GetDlgItem(hwnd,IDC_BGCOLOR),0);
     
    688648                //////////
    689649                //タイプ
    690                 switch(pWindowInfo->type){
    691                     case WNDTYPE_DEFAULT:
    692                         SendDlgItemMessage(hwnd,IDC_DEFWINDOW,BM_SETCHECK,BST_CHECKED,0);
    693                         break;
    694                     case WNDTYPE_MODALDLG:
    695                         SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_SETCHECK,BST_CHECKED,0);
    696                         break;
    697                     case WNDTYPE_MODELESSDLG:
    698                         SendDlgItemMessage(hwnd,IDC_MODELESSDLG,BM_SETCHECK,BST_CHECKED,0);
    699                         break;
     650                if( pWindowInfo->IsDefaultWindow() )
     651                {
     652                    SendDlgItemMessage(hwnd,IDC_DEFWINDOW,BM_SETCHECK,BST_CHECKED,0);
     653                }
     654                else if( pWindowInfo->IsModalDlg() )
     655                {
     656                    SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_SETCHECK,BST_CHECKED,0);
     657                }
     658                else if( pWindowInfo->IsModelessDlg() )
     659                {
     660                    SendDlgItemMessage(hwnd,IDC_MODELESSDLG,BM_SETCHECK,BST_CHECKED,0);
     661                }
     662                else
     663                {
     664                    throw;
    700665                }
    701666
     
    11151080
    11161081                        //変更情報
    1117                         Rad_NoticeChanging(i,RAD_UNDO_TYPE,SELECT_WINDOW,pWindowInfo->type);
     1082                        Rad_NoticeChanging(i,RAD_UNDO_TYPE,SELECT_WINDOW,(DWORD)pWindowInfo->GetType());
    11181083
    11191084                        if(SendDlgItemMessage(hwnd,IDC_DEFWINDOW,BM_GETCHECK,0,0))
    1120                             pWindowInfo->type=WNDTYPE_DEFAULT;
     1085                        {
     1086                            pWindowInfo->SetType( ActiveBasic::PM::WindowType::Default );
     1087                        }
    11211088                        else if(SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_GETCHECK,0,0))
    1122                             pWindowInfo->type=WNDTYPE_MODALDLG;
     1089                        {
     1090                            pWindowInfo->SetType( ActiveBasic::PM::WindowType::ModalDlg );
     1091                        }
    11231092                        else if(SendDlgItemMessage(hwnd,IDC_MODELESSDLG,BM_GETCHECK,0,0))
    1124                             pWindowInfo->type=WNDTYPE_MODELESSDLG;
     1093                        {
     1094                            pWindowInfo->SetType( ActiveBasic::PM::WindowType::ModelessDlg );
     1095                        }
    11251096                        return 1;
    11261097                    }
     
    11341105BOOL CALLBACK DlgRadProperty_Item_RenameCaption(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    11351106    extern HANDLE hHeap;
    1136     extern MDIINFO MdiInfo[MAX_WNDNUM];
    11371107    int i,i3;
    11381108    char *temporary;
     
    12671237    extern HANDLE hHeap;
    12681238    extern HWND hClient,hOwner;
    1269     extern MDIINFO MdiInfo[MAX_WNDNUM];
    12701239    int i,i3;
    12711240    char *temporary;
     
    13231292BOOL DefaultItemStyles(HWND hwnd,int WndNum,int WndInfoNum,WPARAM wParam){
    13241293    extern HANDLE hHeap;
    1325     extern MDIINFO MdiInfo[MAX_WNDNUM];
    13261294
    13271295    ActiveBasic::PM::WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
     
    13891357}
    13901358BOOL CALLBACK DlgRadProperty_Item_ExStyle(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    1391     extern MDIINFO MdiInfo[MAX_WNDNUM];
    13921359    int i;
    13931360
     
    14511418
    14521419BOOL CALLBACK RadProperty_ButtonProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    1453     extern MDIINFO MdiInfo[MAX_WNDNUM];
    14541420    int i,i2,i3;
    14551421    static BOOL bInitial;
     
    16731639// CHECKBOX プロパティ
    16741640BOOL CALLBACK RadProperty_CheckBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    1675     extern MDIINFO MdiInfo[MAX_WNDNUM];
    16761641    int i,i2,i3;
    16771642    static BOOL bInitial;
     
    19641929}
    19651930BOOL CALLBACK RadProperty_ComboBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    1966     extern MDIINFO MdiInfo[MAX_WNDNUM];
    19671931    int i,i2,i3;
    19681932    static BOOL bInitial;
     
    22322196}
    22332197BOOL CALLBACK RadProperty_EditProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    2234     extern MDIINFO MdiInfo[MAX_WNDNUM];
    22352198    int i,i2,i3;
    22362199    static BOOL bInitial;
     
    25182481
    25192482BOOL CALLBACK RadProperty_GroupBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    2520     extern MDIINFO MdiInfo[MAX_WNDNUM];
    25212483    int i,i2,i3;
    25222484    static BOOL bInitial;
     
    26702632BOOL CALLBACK RadProperty_ImageBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    26712633    extern HANDLE hHeap;
    2672     extern MDIINFO MdiInfo[MAX_WNDNUM];
    26732634    int i,i2,i3;
    26742635    char temporary[MAX_PATH];
     
    30663027// LISTVIEW プロパティ
    30673028BOOL CALLBACK RadProperty_ListViewProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    3068     extern MDIINFO MdiInfo[MAX_WNDNUM];
    30693029    int i,i2,i3;
    30703030    static BOOL bInitial;
     
    33583318}
    33593319BOOL CALLBACK RadProperty_ListBoxProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    3360     extern MDIINFO MdiInfo[MAX_WNDNUM];
    33613320    int i,i2,i3;
    33623321    static BOOL bInitial;
     
    36163575// PROGRESSBAR プロパティ
    36173576BOOL CALLBACK RadProperty_ProgressBarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    3618     extern MDIINFO MdiInfo[MAX_WNDNUM];
    36193577    int i,i2;
    36203578    static BOOL bInitial;
     
    37013659
    37023660BOOL CALLBACK RadProperty_RadioButtonProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    3703     extern MDIINFO MdiInfo[MAX_WNDNUM];
    37043661    int i,i2,i3;
    37053662    static BOOL bInitial;
     
    39353892
    39363893BOOL CALLBACK RadProperty_ScrollBarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    3937     extern MDIINFO MdiInfo[MAX_WNDNUM];
    39383894    int i,i2,i3;
    39393895    static BOOL bInitial;
     
    40203976
    40213977BOOL CALLBACK RadProperty_StaticProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4022     extern MDIINFO MdiInfo[MAX_WNDNUM];
    40233978    int i,i2,i3;
    40243979    static BOOL bInitial;
     
    41514106// TRACKBAR プロパティ
    41524107BOOL CALLBACK RadProperty_TrackBarProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4153     extern MDIINFO MdiInfo[MAX_WNDNUM];
    41544108    int i,i2,i3;
    41554109    static BOOL bInitial;
     
    43044258// TREEVIEW プロパティ
    43054259BOOL CALLBACK RadProperty_TreeViewProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4306     extern MDIINFO MdiInfo[MAX_WNDNUM];
    43074260    int i,i2;
    43084261    static BOOL bInitial;
     
    45164469// UPDOWN プロパティ
    45174470BOOL CALLBACK RadProperty_UpDownProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4518     extern MDIINFO MdiInfo[MAX_WNDNUM];
    45194471    int i,i2,i3;
    45204472    static BOOL bInitial;
     
    46894641
    46904642LRESULT CALLBACK RadPropertyWindow(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    4691     extern MDIINFO MdiInfo[MAX_WNDNUM];
    46924643    int i;
    46934644    RECT rect;
  • trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp

    r624 r625  
    55void Rad_UndoCommand(int WndNum){
    66    extern HINSTANCE hInst;
    7     extern MDIINFO MdiInfo[MAX_WNDNUM];
    87    int i;
    98    DWORD dw;
    10     char *temporary;
    119    RAD_UNDOSTATE *pUndoState;
    1210
     
    4745                names->name = tempStr;
    4846
    49                 GlobalFree(MdiInfo[WndNum].path);
    50                 MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,pWindowInfo->GetName().size()+1);
    51                 lstrcpy(MdiInfo[WndNum].path,pWindowInfo->GetName().c_str());
    52 
    53                 tempStr = pWindowInfo->GetHandleName();
    54                 pWindowInfo->SetHandleName( names->HandleName );
    55                 names->HandleName = tempStr;
    56 
    57                 temporary=pWindowInfo->CallBackName;
    58                 pWindowInfo->CallBackName=names->CallBackName;
    59                 names->CallBackName=temporary;
     47                MdiInfo[WndNum].path = pWindowInfo->GetName();
    6048            }
    6149            else{
     
    195183            break;
    196184        case RAD_UNDO_TYPE:
    197             dw=pWindowInfo->type;
    198             pWindowInfo->type=pUndoState->lpdwData[pUndoState->NowPos];
     185            dw=(DWORD)pWindowInfo->GetType();
     186            pWindowInfo->SetType( (ActiveBasic::PM::WindowType::EnumType)pUndoState->lpdwData[pUndoState->NowPos] );
    199187            pUndoState->lpdwData[pUndoState->NowPos]=dw;
     188
    200189            if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
    201190                ChangePropertyWindow(WndNum,WndInfoNum);
     
    209198void Rad_RedoCommand(int WndNum){
    210199    extern HINSTANCE hInst;
    211     extern MDIINFO MdiInfo[MAX_WNDNUM];
    212200    DWORD dw;
    213     char *temporary;
    214201    RAD_UNDOSTATE *pUndoState;
    215202    ActiveBasic::PM::ChildWindowInfo *pChildInfo;
     
    247234                names->name = tempStr;
    248235
    249                 GlobalFree(MdiInfo[WndNum].path);
    250                 MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,pWindowInfo->GetName().size()+1);
    251                 lstrcpy(MdiInfo[WndNum].path,pWindowInfo->GetName().c_str());
    252 
    253                 tempStr = pWindowInfo->GetHandleName();
    254                 pWindowInfo->SetHandleName( names->HandleName );
    255                 names->HandleName = tempStr;
    256 
    257                 temporary=pWindowInfo->CallBackName;
    258                 pWindowInfo->CallBackName=names->CallBackName;
    259                 names->CallBackName=temporary;
     236                MdiInfo[WndNum].path = pWindowInfo->GetName();
    260237            }
    261238            else{
     
    394371            }
    395372        case RAD_UNDO_TYPE:
    396             dw=pWindowInfo->type;
    397             pWindowInfo->type=pUndoState->lpdwData[pUndoState->NowPos];
     373            dw=(DWORD)pWindowInfo->GetType();
     374            pWindowInfo->SetType( (ActiveBasic::PM::WindowType::EnumType)pUndoState->lpdwData[pUndoState->NowPos] );
    398375            pUndoState->lpdwData[pUndoState->NowPos]=dw;
     376
    399377            if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
    400378                ChangePropertyWindow(WndNum,WndInfoNum);
     
    411389void Rad_DeleteUndoData(int WndNum,int pos){
    412390    extern HANDLE hHeap;
    413     extern MDIINFO MdiInfo[MAX_WNDNUM];
    414391    RAD_UNDOSTATE *pUndoState;
    415392
     
    425402            if(pUndoState->SelectItemNum[pos]==SELECT_WINDOW){
    426403                RAD_UNDOSTATE_NAME *names = (RAD_UNDOSTATE_NAME *)pUndoState->lpdwData[pos];
    427                 HeapDefaultFree(names->CallBackName);
    428404                delete names;
    429405            }
     
    471447void Rad_NoticeChanging(int WndNum,int Command,int SelectItemNum,DWORD dwData){
    472448    extern HANDLE hHeap;
    473     extern MDIINFO MdiInfo[MAX_WNDNUM];
    474449    int i;
    475450    RAD_UNDOSTATE *pUndoState;
     
    510485                RAD_UNDOSTATE_NAME *SaveNames = new RAD_UNDOSTATE_NAME();
    511486                SaveNames->name = names->name;
    512                 SaveNames->HandleName = names->HandleName;
    513                 SaveNames->CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(names->CallBackName)+1);
    514                 lstrcpy(SaveNames->CallBackName,names->CallBackName);
    515487                pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)SaveNames;
    516488            }
  • trunk/ab5.0/abdev/abdev/Replace.cpp

    r619 r625  
    55void TextEdit_ResetWordColor(int WndNum,CHARRANGE *pCharRange,int DocType){
    66    extern HANDLE hHeap;
    7     extern MDIINFO MdiInfo[MAX_WNDNUM];
    87    int i,i2,IsStr;
    98    char *pBuf,*pTemp;
     
    8281void TextEdit_Replace(int WndNum,char *str,BOOL bRedraw){
    8382    extern HANDLE hHeap;
    84     extern MDIINFO MdiInfo[MAX_WNDNUM];
    8583    CHARRANGE Range,DelRange;
    8684
     
    116114    if( projectInfo.IsOpened() ){
    117115        projectInfo.pobj_DBBreakPoint->replace(
    118             MdiInfo[WndNum].path,
     116            MdiInfo[WndNum].path.c_str(),
    119117            MdiInfo[WndNum].pMdiTextEdit->buffer,
    120118            &DelRange,
     
    125123        extern CDBBreakPoint *pobj_DBBreakPoint;
    126124        pobj_DBBreakPoint->replace(
    127             MdiInfo[WndNum].path,
     125            MdiInfo[WndNum].path.c_str(),
    128126            MdiInfo[WndNum].pMdiTextEdit->buffer,
    129127            &DelRange,
     
    190188void TextEdit_ReplaceUpdateUndoData(int WndNum,char *str,BOOL bPaste,BOOL bRedraw){
    191189    extern HANDLE hHeap;
    192     extern MDIINFO MdiInfo[MAX_WNDNUM];
    193190    int Command;
    194191    char *KeyStr,*DelStr;
  • trunk/ab5.0/abdev/abdev/Resource.cpp

    r624 r625  
    161161    ////////////////////////////////
    162162    // ウィンドウ プロパティを更新
    163     extern MDIINFO MdiInfo[MAX_WNDNUM];
    164     for(i2=0;i2<MAX_WNDNUM;i2++){
     163    for(i2=0;i2<MdiInfo.size();i2++){
    165164        if(MdiInfo[i2].hwnd&&MdiInfo[i2].DocType==WNDTYPE_RAD){
    166165            if(MdiInfo[i2].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
     
    269268    ////////////////////////////////
    270269    // ウィンドウ プロパティを更新
    271     extern MDIINFO MdiInfo[MAX_WNDNUM];
    272     for(i2=0;i2<MAX_WNDNUM;i2++){
     270    for(i2=0;i2<MdiInfo.size();i2++){
    273271        if(MdiInfo[i2].hwnd&&MdiInfo[i2].DocType==WNDTYPE_RAD){
    274272            if(MdiInfo[i2].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
     
    304302    ////////////////////////////////
    305303    // ウィンドウ プロパティを更新
    306     extern MDIINFO MdiInfo[MAX_WNDNUM];
    307     for(i2=0;i2<MAX_WNDNUM;i2++){
     304    for(i2=0;i2<MdiInfo.size();i2++){
    308305        if(MdiInfo[i2].hwnd&&MdiInfo[i2].DocType==WNDTYPE_RAD){
    309306            if(MdiInfo[i2].MdiRadInfo->SelectingItem[0]==SELECT_WINDOW)
  • trunk/ab5.0/abdev/abdev/Search.cpp

    r475 r625  
    2727void SetSearchData(HWND hDlg,char *str,_int8 IsBigSmall, bool isWordUnit){
    2828    extern HANDLE hHeap;
    29     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3029    int i,i2,i3,i4,i5,length;
    3130    int WndNum;
     
    8281}
    8382BOOL CALLBACK DlgFindAll(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    84     extern MDIINFO MdiInfo[MAX_WNDNUM];
    8583    int i,WndNum;
    8684
     
    139137}
    140138BOOL StartSearch(HWND hDlg,char *FindString,_int8 IsBigSmall, bool isWordUnit, BOOL IsShowMessage){
    141     extern MDIINFO MdiInfo[MAX_WNDNUM];
    142139    int i;
    143140    char *pBuf,msg[255];
     
    213210BOOL CALLBACK DlgFind(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    214211    extern HANDLE hHeap;
    215     extern MDIINFO MdiInfo[MAX_WNDNUM];
    216212    HWND FindAllDlg;
    217213    int i,WndNum;
     
    314310    extern HANDLE hHeap;
    315311    extern HINSTANCE hInst;
    316     extern MDIINFO MdiInfo[MAX_WNDNUM];
    317312    int i;
    318313    int WndNum;
  • trunk/ab5.0/abdev/abdev/SubOperation.cpp

    r523 r625  
    891891    if(bRedraw){
    892892        //再描画
    893         extern MDIINFO MdiInfo[MAX_WNDNUM];
    894893        int i;
    895         for(i=0;i<MAX_WNDNUM;i++){
     894        for(i=0;i<MdiInfo.size();i++){
    896895            if(MdiInfo[i].hwnd){
    897896                if(IS_DOCUMENT_TEXT(MdiInfo[i].DocType)){
     
    14561455//実行コマンド
    14571456BOOL SetRunning(HWND hChild){
    1458     extern MDIINFO MdiInfo[MAX_WNDNUM];
    14591457    extern LPSTR DefFileFilter;
    14601458    int WndNum;
     
    14741472    WndNum=GetWndNum(hChild);
    14751473    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    1476         if(MdiInfo[WndNum].path[0]=='\0'){
     1474        if(MdiInfo[WndNum].path.empty()){
    14771475            //"保存先のファイルを指定してください"
    14781476            if(!GetFilePathDialog(hOwner,temp2,DefFileFilter,STRING_FILESAVETITLE_DEFAULT,0)) return FALSE;
     
    14851483            }
    14861484            else{
    1487                 if(hFind=FindFirstFile(MdiInfo[WndNum].path,&wfd)){
     1485                if(hFind=FindFirstFile(MdiInfo[WndNum].path.c_str(),&wfd)){
    14881486                    if(hFind==INVALID_HANDLE_VALUE){
    14891487                        if(!SaveDocument(hChild,NULL)) return 0;
     
    14971495}
    14981496
    1499 BOOL IsNeedCompile(char *FileName,BOOL bDebug){
     1497BOOL IsNeedCompile( const std::string &filepath, BOOL bDebug )
     1498{
    15001499    char temporary[MAX_PATH],temp2[MAX_PATH],temp3[MAX_PATH];
    15011500    HANDLE hFind,hFile;
     
    15031502    FILETIME SourceTime,ExeTime;
    15041503
    1505     _splitpath(FileName,temporary,temp2,temp3,NULL);
     1504    _splitpath(filepath.c_str(),temporary,temp2,temp3,NULL);
    15061505    lstrcat(temporary,temp2);
    15071506    lstrcat(temporary,temp3);
     
    15131512    FindClose(hFind);
    15141513
    1515     hFile=CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     1514    hFile=CreateFile(filepath.c_str(),GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    15161515    GetFileTime(hFile,NULL,NULL,&SourceTime);
    15171516    CloseHandle(hFile);
  • trunk/ab5.0/abdev/abdev/TabCtrl.cpp

    r475 r625  
    261261    }
    262262
    263     extern MDIINFO MdiInfo[MAX_WNDNUM];
    264     for(i=0;i<MAX_WNDNUM;i++){
     263    for(i=0;i<MdiInfo.size();i++){
    265264        if(lstrcmpi(ItemText,MdiInfo[i].title)==0) break;
    266265    }
  • trunk/ab5.0/abdev/abdev/TextEditor.cpp

    r475 r625  
    99int GetControlTabSpace(int WndNum,int *piCount){
    1010    if(pobj_nv->bEditor_LineNumber){
    11         extern MDIINFO MdiInfo[MAX_WNDNUM];
    1211
    1312        char *pBuf;
     
    8281}
    8382void SetTextEditWordColor(int WndNum){
    84     extern MDIINFO MdiInfo[MAX_WNDNUM];
    8583    int i,i2,i3,IsStr;
    8684    char str[255];
     
    153151}
    154152void ResetScrollbar(int WndNum,int max_x,int max_y){
    155     extern MDIINFO MdiInfo[MAX_WNDNUM];
    156153    RECT rect;
    157154
     
    215212}
    216213void TextEdit_GetWordCaret(HWND hwnd,int WndNum,POINT *pPos,int *piStart,int *piEnd,BOOL bBeforeAfterFlag){
    217     extern MDIINFO MdiInfo[MAX_WNDNUM];
    218214    int i,start,end;
    219215    char *pBuf;
     
    328324}
    329325void CancelBeforeAutoIndent(int WndNum){
    330     extern MDIINFO MdiInfo[MAX_WNDNUM];
    331326    int i;
    332327
  • trunk/ab5.0/abdev/abdev/TextEditor_EventProc.cpp

    r613 r625  
    3030    extern HANDLE hHeap;
    3131    extern HWND hDocCombo;
    32     extern MDIINFO MdiInfo[MAX_WNDNUM];
    3332    static DWORD dwAutoScroll;
    3433    extern COMPLEMENT_WINDOW_INFO ComplementWndInfo;
  • trunk/ab5.0/abdev/abdev/TextEditor_KeyEvent.cpp

    r475 r625  
    156156
    157157int TextEdit_GetLineIndex(int WndNum,int iPos){
    158     extern MDIINFO MdiInfo[MAX_WNDNUM];
    159158    int i;
    160159    char *pBuf;
  • trunk/ab5.0/abdev/abdev/TextEditor_MouseEvent.cpp

    r475 r625  
    152152    //////////////////////////////
    153153
    154     extern MDIINFO MdiInfo[MAX_WNDNUM];
    155154    int WndNum;
    156155    POINT pos;
  • trunk/ab5.0/abdev/abdev/TextEditor_UndoRedo.cpp

    r475 r625  
    44
    55void TextEdit_UndoCommand(int WndNum){
    6     extern MDIINFO MdiInfo[MAX_WNDNUM];
    76    int i;
    87    TEXTEDIT_UNDOSTATE *pUndoState;
     
    4847}
    4948void TextEdit_RedoCommand(int WndNum){
    50     extern MDIINFO MdiInfo[MAX_WNDNUM];
    5149    TEXTEDIT_UNDOSTATE *pUndoState;
    5250
     
    106104void TextEdit_NoticeChanging(int WndNum,int Command,char *KeyStr,char *DelStr,CHARRANGE *Range,CHARRANGE *DelRange){
    107105    extern HANDLE hHeap;
    108     extern MDIINFO MdiInfo[MAX_WNDNUM];
    109106    int i;
    110107    TEXTEDIT_UNDOSTATE *pUndoState;
  • trunk/ab5.0/abdev/abdev/WebSearch.cpp

    r489 r625  
    590590
    591591
    592     extern MDIINFO MdiInfo[MAX_WNDNUM];
    593592    MdiInfo[WndNum].pMdiTextEdit->pobj_WebResult->add(WndNum,str);
    594593
     
    863862
    864863void CSideWeb::SelChangeEvent(){
    865     extern MDIINFO MdiInfo[MAX_WNDNUM];
    866864    char temporary[MAX_PATH];
    867865
  • trunk/ab5.0/abdev/abdev/WindowControl.cpp

    r624 r625  
    1313#endif
    1414
    15 int GetWndInfoNum(char *name){
     15int GetWndInfoNum( const std::string &name )
     16{
    1617    for( int i=0;i<static_cast<int>(projectInfo.windowInfos.size());i++){
    17         if(lstrcmpi(name,projectInfo.windowInfos[i]->GetName().c_str())==0) return i;
     18        if(lstrcmpi(name.c_str(),projectInfo.windowInfos[i]->GetName().c_str())==0) return i;
    1819    }
    1920    return -1;
    2021}
    21 ActiveBasic::PM::WindowInfo *GetWndInfo( char *name )
     22ActiveBasic::PM::WindowInfo *GetWndInfo( const std::string &name )
    2223{
    2324    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
    2425    {
    25         if(lstrcmpi(name,pWindowInfo->GetName().c_str())==0) return pWindowInfo;
     26        if(lstrcmpi(name.c_str(),pWindowInfo->GetName().c_str())==0) return pWindowInfo;
    2627    }
    2728    return NULL;
     
    6667HGLOBAL Rad_GetChildInfoClipboardData(int WndNum,int WndInfoNum){
    6768    //ChildWindowInfo構造体をクリップボード用データ(pByteが示すバッファ)に変換する
    68     extern MDIINFO MdiInfo[MAX_WNDNUM];
    6969    HGLOBAL hGlobal;
    7070    BYTE *pByte;
     
    141141void Rad_PasteChildInfoClipboardData(int WndNum,HGLOBAL hGlobal){
    142142    //hGlobalに格納されているクリップボードデータをRAD画面に挿入する
    143     extern MDIINFO MdiInfo[MAX_WNDNUM];
    144143    BYTE *pByte;
    145144    int i2,i3,WndInfoNum;
     
    307306
    308307    return pBuf;
     308}
     309const std::string PermutationWndPgmTemplate( const std::string &templateFilePath, const std::string &projectName, const std::string &windowName, const std::string &handleName, const std::string &procName )
     310{
     311    Jenga::Common::SourceTemplate sourceTemplate( templateFilePath );
     312    Jenga::Common::SourceTemplate::Values values;
     313
     314    values.Insert( "#name#", projectName );
     315    values.Insert( "#window#", windowName );
     316    values.Insert( "#handle#", handleName );
     317    values.Insert( "#procedure#", procName );
     318
     319    return sourceTemplate.GetResult( values );
    309320}
    310321
     
    535546    }
    536547    else if(lstrcmp(MessageName,"Create")==0){
    537         if(pWindowInfo->type==WNDTYPE_MODALDLG||pWindowInfo->type==WNDTYPE_MODELESSDLG)
     548        if( pWindowInfo->IsModalDlg() || pWindowInfo->IsModelessDlg() )
     549        {
    538550            sprintf(Command,"%sCase WM_INITDIALOG\r\n",spaces);
    539         else sprintf(Command,"%sCase WM_CREATE\r\n",spaces);
     551        }
     552        else
     553        {
     554            sprintf(Command,"%sCase WM_CREATE\r\n",spaces);
     555        }
    540556        i=lstrlen(Command);
    541557
     
    833849        sprintf(Command+i,"%s\tDim cancel=0 As Integer\r\n",spaces);
    834850        i+=lstrlen(Command+i);
    835         if(bProcedureCall){
     851        if(bProcedureCall)
     852        {
    836853            sprintf(Command+i,"%s\t%s_%s(cancel)\r\n",spaces,pWindowInfo->GetName().c_str(),MessageName);
    837854            i+=lstrlen(Command+i);
    838855        }
    839         if(pWindowInfo->type==WNDTYPE_MODALDLG)
     856
     857        if( pWindowInfo->IsModalDlg() )
     858        {
    840859            sprintf(Command+i,"%s\tIf cancel=0 Then EndDialog(hWnd,0)\r\n",spaces);
     860        }
    841861        else
     862        {
    842863            sprintf(Command+i,"%s\tIf cancel=0 Then DestroyWindow(hWnd)\r\n",spaces);
     864        }
    843865        return WM_CLOSE;
    844866    }
     
    13621384    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
    13631385    {
    1364         if(pWindowInfo->type==WNDTYPE_MODALDLG){
     1386        if( pWindowInfo->IsModalDlg() )
     1387        {
    13651388            if(sw1==0){
    13661389                sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->GetName().c_str());
     
    13881411                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    13891412                    pWindowInfo->GetHandleName().c_str(),
    1390                     pWindowInfo->CallBackName);
     1413                    pWindowInfo->GetCallbackName().c_str());
    13911414            }
    13921415            else{
     
    14611484    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
    14621485    {
    1463         if(pWindowInfo->type==WNDTYPE_MODELESSDLG){
     1486        if( pWindowInfo->IsModelessDlg() )
     1487        {
    14641488            sprintf(buffer+i2,"\tIf lstrcmp(TemplateName,\"%s\")=0 Then\r\n",pWindowInfo->GetName().c_str());
    14651489            i2+=lstrlen(buffer+i2);
     
    14801504                sprintf(buffer+i2,"\t\tSetWindowLongPtr(%s,GWLP_WNDPROC,AddressOf(%s) As LONG_PTR)\r\n",
    14811505                    pWindowInfo->GetHandleName().c_str(),
    1482                     pWindowInfo->CallBackName);
     1506                    pWindowInfo->GetCallbackName().c_str());
    14831507            }
    14841508            else{
     
    15341558    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
    15351559    {
    1536         if(pWindowInfo->type==WNDTYPE_DEFAULT){
     1560        if( pWindowInfo->IsDefaultWindow() )
     1561        {
    15371562            //////////////////////
    15381563            //通常ウィンドウ作成
     
    15581583            i2+=lstrlen(buffer+i2);
    15591584            if(bAvailUserProc[i])
    1560                 sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",pWindowInfo->CallBackName);
     1585                sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(%s)\r\n",pWindowInfo->GetCallbackName().c_str());
    15611586            else sprintf(buffer+i2,"_RadSys_wcl.lpfnWndProc=AddressOf(EventCall_%s)\r\n",pWindowInfo->GetName().c_str());
    15621587            i2+=lstrlen(buffer+i2);
     
    16311656{
    16321657    extern HANDLE hHeap;
    1633     extern MDIINFO MdiInfo[MAX_WNDNUM];
    16341658    int i,i2,size;
    16351659    char *buffer,*temporary;
     
    16381662    buffer=(char *)HeapAlloc(hHeap,0,GENERAL_SIZE*size);
    16391663    i2=0;
    1640     BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, projectInfo.windowInfos )
     1664    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, windowInfos )
    16411665    {
    16421666        sprintf(buffer+i2,"WINDOW:%s\r\n",pWindowInfo->GetName().c_str());
    1643         i2+=lstrlen(buffer+i2);
    1644         sprintf(buffer+i2,"    HANDLE    = %s\r\n",pWindowInfo->GetHandleName().c_str());
    16451667        i2+=lstrlen(buffer+i2);
    16461668        sprintf(buffer+i2,"    POINT     = %d,%d\r\n",pWindowInfo->pos.x,pWindowInfo->pos.y);
     
    16841706        sprintf(buffer+i2,"    CLASS     = \"%s\"\r\n",pWindowInfo->GetClassName().c_str());
    16851707        i2+=lstrlen(buffer+i2);
    1686         sprintf(buffer+i2,"    CALLBACK  = %s\r\n",pWindowInfo->CallBackName);
    1687         i2+=lstrlen(buffer+i2);
    1688         sprintf(buffer+i2,"    TYPE      = %d\r\n",pWindowInfo->type);
    1689         i2+=lstrlen(buffer+i2);
    1690         sprintf(buffer+i2,"    FILEPATH  = %s\r\n",pWindowInfo->filepath);
     1708        sprintf(buffer+i2,"    TYPE      = %d\r\n",(DWORD)pWindowInfo->GetType());
    16911709        i2+=lstrlen(buffer+i2);
    16921710        BOOST_FOREACH( const ActiveBasic::PM::ChildWindowInfo *pChildInfo, pWindowInfo->childWindowInfos )
     
    18871905            }
    18881906            else if(lstrcmpi(temporary,"HANDLE")==0&&i3==1){
    1889                 projectInfo.windowInfos.back()->SetHandleName( temp2 );
     1907                //無視
    18901908            }
    18911909            else if(lstrcmpi(temporary,"POINT")==0&&i3==1){
     
    19771995                }
    19781996            }
    1979             else if(lstrcmpi(temporary,"CALLBACK")==0&&i3==1){
    1980                 projectInfo.windowInfos.back()->CallBackName=(char *)HeapAlloc(hHeap,0,i2+1);
    1981                 lstrcpy(projectInfo.windowInfos.back()->CallBackName,temp2);
     1997            else if(lstrcmpi(temporary,"CALLBACK")==0&&i3==1)
     1998            {
     1999                // 無視
    19822000            }
    19832001
    19842002            //以前のバージョンとの互換用
    1985             else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) projectInfo.windowInfos.back()->type=GetValue(temp2);
    1986 
    1987             else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) projectInfo.windowInfos.back()->type=GetValue(temp2);
    1988             else if(lstrcmpi(temporary,"FILEPATH")==0&&i3==1){
    1989                 projectInfo.windowInfos.back()->filepath=(char *)HeapAlloc(hHeap,0,i2+1);
    1990                 lstrcpy(projectInfo.windowInfos.back()->filepath,temp2);
     2003            else if(lstrcmpi(temporary,"DLGTMP")==0&&i3==1) projectInfo.windowInfos.back()->SetType( (ActiveBasic::PM::WindowType::EnumType)GetValue(temp2) );
     2004
     2005            else if(lstrcmpi(temporary,"TYPE")==0&&i3==1) projectInfo.windowInfos.back()->SetType( (ActiveBasic::PM::WindowType::EnumType)GetValue(temp2) );
     2006            else if(lstrcmpi(temporary,"FILEPATH")==0&&i3==1)
     2007            {
     2008                // 無視
    19912009            }
    19922010            else if(lstrcmpi(temporary,"ITEM")==0&&i3==1){
     
    20822100struct NEW_WINDOW{
    20832101    char name[MAX_PATH];
    2084     char HandleName[MAX_PATH];
    2085     char CallBackName[MAX_PATH];
    2086     BOOL type;
     2102    ActiveBasic::PM::WindowType::EnumType type;
    20872103};
    20882104NEW_WINDOW NewWindow;
     
    20922108        case WM_INITDIALOG:
    20932109            SetPosCenter(hwnd);
    2094             SendDlgItemMessage(hwnd,IDC_AUTOSET,BM_SETCHECK,BST_CHECKED,0);
    2095             SendMessage(hwnd,WM_COMMAND,IDC_AUTOSET,0);
    20962110            SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_SETCHECK,BST_CHECKED,0);
    20972111            break;
     
    21002114                case IDOK:
    21012115                    GetDlgItemText(hwnd,IDC_WINDOWNAME,NewWindow.name,MAX_PATH);
    2102                     GetDlgItemText(hwnd,IDC_WINDOWHANDLE,NewWindow.HandleName,MAX_PATH);
    2103                     GetDlgItemText(hwnd,IDC_WINDOWPROC,NewWindow.CallBackName,MAX_PATH);
    21042116                    if(SendDlgItemMessage(hwnd,IDC_DEFWINDOW,BM_GETCHECK,0,0))
    2105                         NewWindow.type=WNDTYPE_DEFAULT;
     2117                    {
     2118                        NewWindow.type = ActiveBasic::PM::WindowType::Default;
     2119                    }
    21062120                    else if(SendDlgItemMessage(hwnd,IDC_MODALDLG,BM_GETCHECK,0,0))
    2107                         NewWindow.type=WNDTYPE_MODALDLG;
     2121                    {
     2122                        NewWindow.type = ActiveBasic::PM::WindowType::ModalDlg;
     2123                    }
    21082124                    else if(SendDlgItemMessage(hwnd,IDC_MODELESSDLG,BM_GETCHECK,0,0))
    2109                         NewWindow.type=WNDTYPE_MODELESSDLG;
     2125                    {
     2126                        NewWindow.type = ActiveBasic::PM::WindowType::ModelessDlg;
     2127                    }
    21102128                    EndDialog(hwnd,1);
    21112129                    return 1;
     
    21142132                    return 1;
    21152133                case IDC_WINDOWNAME:
    2116                     if(HIWORD(wParam)==EN_CHANGE) SendMessage(hwnd,WM_COMMAND,IDC_AUTOSET,0);
    2117                     return 1;
    2118                 case IDC_AUTOSET:
    2119                     if(SendDlgItemMessage(hwnd,IDC_AUTOSET,BM_GETCHECK,0,0)){
    2120                         SendDlgItemMessage(hwnd,IDC_WINDOWHANDLE,EM_SETREADONLY,1,0);
    2121                         SendDlgItemMessage(hwnd,IDC_WINDOWPROC,EM_SETREADONLY,1,0);
     2134                    if(HIWORD(wParam)==EN_CHANGE)
     2135                    {
    21222136                        GetDlgItemText(hwnd,IDC_WINDOWNAME,temporary,MAX_PATH);
    21232137                        if(temporary[0]){
     
    21312145                            SetDlgItemText(hwnd,IDC_WINDOWPROC,"");
    21322146                        }
    2133                     }
    2134                     else{
    2135                         SendDlgItemMessage(hwnd,IDC_WINDOWHANDLE,EM_SETREADONLY,0,0);
    2136                         SendDlgItemMessage(hwnd,IDC_WINDOWPROC,EM_SETREADONLY,0,0);
    21372147                    }
    21382148                    return 1;
     
    21602170void Project_Window_Insert(void){
    21612171    extern HANDLE hHeap;
    2162     char temporary[MAX_PATH],temp2[1024],*pTemp;
     2172    char temporary[MAX_PATH],temp2[1024];
    21632173
    21642174    if(!DialogBox(hResInst,MAKEINTRESOURCE(IDD_PROJECT_NEWWINDOW),hOwner,(DLGPROC)DlgProject_NewWindow)) return;
     
    21792189            return;
    21802190        }
    2181         if(lstrcmpi(NewWindow.HandleName,pWindowInfo->GetHandleName().c_str())==0){
    2182             //"\"%s\" ハンドルは既にプロジェクト内に存在します。"
    2183             sprintf(temporary,STRING_DUPLICATIONERROR_HANDLE_IN_PROJECT,pWindowInfo->GetHandleName().c_str());
    2184             MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    2185             return;
    2186         }
    2187         if(lstrcmpi(NewWindow.CallBackName,pWindowInfo->CallBackName)==0){
    2188             //"\"%s\" プロシージャは既にプロジェクト内に存在します。"
    2189             sprintf(temporary,STRING_DUPLICATIONERROR_PROC_IN_PROJECT,pWindowInfo->CallBackName);
    2190             MessageBox(hOwner,temporary,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION);
    2191             return;
    2192         }
    21932191    }
    21942192
     
    22022200    //ウィンドウ名
    22032201    projectInfo.windowInfos.back()->SetName( NewWindow.name );
    2204 
    2205     //ハンドル名
    2206     projectInfo.windowInfos.back()->SetHandleName( NewWindow.HandleName );
    22072202
    22082203    //位置情報
     
    22172212    //スタイル
    22182213    switch(NewWindow.type){
    2219         case WNDTYPE_DEFAULT:
     2214        case ActiveBasic::PM::WindowType::Default:
    22202215            //通常ウィンドウ
    22212216            projectInfo.windowInfos.back()->SetStyle( WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX );
    22222217            break;
    2223         case WNDTYPE_MODALDLG:
    2224         case WNDTYPE_MODELESSDLG:
     2218        case ActiveBasic::PM::WindowType::ModalDlg:
     2219        case ActiveBasic::PM::WindowType::ModelessDlg:
    22252220            //ダイアログ テンプレート(最大化、最小化ボタンをなくして、細枠にする)
    22262221            projectInfo.windowInfos.back()->SetStyle( WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU );
     
    22472242    projectInfo.windowInfos.back()->SetClassName( temporary );
    22482243
    2249     //コールバック関数名
    2250     projectInfo.windowInfos.back()->CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(NewWindow.CallBackName)+1);
    2251     lstrcpy(projectInfo.windowInfos.back()->CallBackName,NewWindow.CallBackName);
    2252 
    22532244    //タイプ識別
    2254     projectInfo.windowInfos.back()->type=NewWindow.type;
    2255 
    2256 
    2257     //メッセージ処理ファイル名
    2258     sprintf(temporary,"%s.ab",projectInfo.windowInfos.back()->GetName().c_str());
    2259     projectInfo.windowInfos.back()->filepath=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
    2260     lstrcpy(projectInfo.windowInfos.back()->filepath,temporary);
     2245    projectInfo.windowInfos.back()->SetType( NewWindow.type );
     2246
    22612247
    22622248
     
    22652251    //////////////////////////
    22662252
    2267     //テンプレートを読み込む
    2268     const std::string newWindowTemplateSbpPath = ActiveBasic::Common::Environment::GetAbdevSystemDirPath() + "\\new_window_template.sbp";
    2269     pTemp = ReadBuffer( newWindowTemplateSbpPath );
    2270 
    2271     //#name#をプロジェクト名に置換
    2272     pTemp=PermutationWndPgmTemplate(pTemp,
    2273         projectInfo.GetName().c_str(),
    2274         NewWindow.name,
    2275         NewWindow.HandleName,
    2276         NewWindow.CallBackName);
     2253    // テンプレートを使ってMainWnd.abを生成する
     2254    const std::string resultStr = PermutationWndPgmTemplate(
     2255        ActiveBasic::Common::Environment::GetAbdevSystemDirPath() + "\\new_window_template.sbp",
     2256        projectInfo.GetName(),
     2257        (std::string)NewWindow.name,
     2258        (std::string)"h" + NewWindow.name,
     2259        (std::string)NewWindow.name + "Proc"
     2260    );
    22772261
    22782262    sprintf(temporary,"%s%s.ab",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.windowInfos.back()->GetName().c_str());
    22792263
    22802264    //書き込み
    2281     WriteBuffer(temporary,pTemp,lstrlen(pTemp));
     2265    WriteBuffer(temporary,resultStr.c_str(),resultStr.size());
    22822266    Project_File_Insert(temporary);
    22832267
    2284     HeapDefaultFree(pTemp);
    22852268
    22862269
     
    23092292void Project_Window_Delete(int WndInfoNum){
    23102293    extern HANDLE hHeap;
    2311     extern MDIINFO MdiInfo[MAX_WNDNUM];
    23122294    int i;
    23132295
     
    23152297
    23162298    //ウィンドウが開かれている場合は閉じる
    2317     for(i=0;i<MAX_WNDNUM;i++){
    2318         if(MdiInfo[i].hwnd&&lstrcmpi(pWindowInfo->GetName().c_str(),MdiInfo[i].path)==0){
     2299    for(i=0;i<MdiInfo.size();i++){
     2300        if(MdiInfo[i].hwnd&&lstrcmpi(pWindowInfo->GetName().c_str(),MdiInfo[i].path.c_str())==0){
    23192301            SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
    23202302            break;
    23212303        }
    23222304    }
    2323 
    2324     //ウィンドウ情報のメモリを解放
    2325     HeapDefaultFree(pWindowInfo->filepath);
    2326     HeapDefaultFree(pWindowInfo->CallBackName);
    23272305
    23282306    //子ウィンドウのメモリを解放
  • trunk/ab5.0/abdev/abdev/abdev.cpp

    r624 r625  
    9999    int i;
    100100    if(!IsWindow(hChild)) return -1;
    101     for(i=0;i<MAX_WNDNUM;i++){
     101    for(i=0;i<MdiInfo.size();i++){
    102102        if(hChild==MdiInfo[i].hwnd) break;
    103103    }
    104     if(i==MAX_WNDNUM) i=-1;
     104    if(i==MdiInfo.size()) i=-1;
    105105    return i;
    106106}
     
    119119        projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    120120
    121         if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) return i;
     121        if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) return i;
    122122    }
    123123    return -1;
     
    643643    }
    644644    WndNum=GetWndNum(hChild);
    645     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    646         pobj_MainMenu->EnableItem(IDM_PAGESET,MF_BYCOMMAND|MF_ENABLED);
    647 
    648         pobj_MainMenu->EnableItem(IDM_PREVIEW,MF_BYCOMMAND|MF_ENABLED);
    649 
    650         pobj_MainMenu->EnableItem(IDM_PRINTOUT,MF_BYCOMMAND|MF_ENABLED);
    651     }
    652     else{
    653         pobj_MainMenu->EnableItem(IDM_PAGESET,MF_BYCOMMAND|MF_GRAYED);
    654 
    655         pobj_MainMenu->EnableItem(IDM_PREVIEW,MF_BYCOMMAND|MF_GRAYED);
    656 
    657         pobj_MainMenu->EnableItem(IDM_PRINTOUT,MF_BYCOMMAND|MF_GRAYED);
     645    if( WndNum != -1 )
     646    {
     647        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     648            pobj_MainMenu->EnableItem(IDM_PAGESET,MF_BYCOMMAND|MF_ENABLED);
     649
     650            pobj_MainMenu->EnableItem(IDM_PREVIEW,MF_BYCOMMAND|MF_ENABLED);
     651
     652            pobj_MainMenu->EnableItem(IDM_PRINTOUT,MF_BYCOMMAND|MF_ENABLED);
     653        }
     654        else{
     655            pobj_MainMenu->EnableItem(IDM_PAGESET,MF_BYCOMMAND|MF_GRAYED);
     656
     657            pobj_MainMenu->EnableItem(IDM_PREVIEW,MF_BYCOMMAND|MF_GRAYED);
     658
     659            pobj_MainMenu->EnableItem(IDM_PRINTOUT,MF_BYCOMMAND|MF_GRAYED);
     660        }
    658661    }
    659662}
     
    722725void DuplicateTitleCheck(char *lpszTitle){
    723726    int i;
    724     for(i=0;i<MAX_WNDNUM;i++){
     727    for(i=0;i<MdiInfo.size();i++){
    725728        if(MdiInfo[i].hwnd){
    726729            if(lstrcmpi(MdiInfo[i].title,lpszTitle)==0){
     
    747750            i=GetWndNum(hChild);
    748751            if(IS_DOCUMENT_TEXT(MdiInfo[i].DocType)){
    749                 if(lstrcmpi(MdiInfo[i].path,filepath)==0) break;
     752                if(lstrcmpi(MdiInfo[i].path.c_str(),filepath)==0) break;
    750753            }
    751754            hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     
    890893        hChild,NULL,hInst,NULL);
    891894
     895
    892896    //ウィンドウのID登録
    893     for(i=0;i<MAX_WNDNUM;i++){
    894         if(MdiInfo[i].hwnd==0){
    895             MdiInfo[i].hwnd=hChild;
    896             MdiInfo[i].DocType=DocumentType;
    897             DuplicateTitleCheck(str);
    898             MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(str)+1);
    899             lstrcpy(MdiInfo[i].title,str);
    900             if(filepath){
    901                 MdiInfo[i].path=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(filepath)+1);
    902                 lstrcpy(MdiInfo[i].path,filepath);
    903             }
    904             else{
    905                 MdiInfo[i].path=(char *)GlobalAlloc(GPTR,1);
    906             }
    907 
    908             MdiInfo[i].pMdiTextEdit = new CMdiTextEdit( &MdiInfo[i] );
    909 
    910             MdiInfo[i].pMdiTextEdit->hEdit=hEdit;
    911             MdiInfo[i].pMdiTextEdit->pobj_WebResult=new CWebResult(hChild);
    912             MdiInfo[i].pMdiTextEdit->pobj_Ruler=new CRuler(hChild,i);
    913             MdiInfo[i].pMdiTextEdit->hIcon=shfi.hIcon;
    914             MdiInfo[i].pMdiTextEdit->buffer=buffer;
    915             MdiInfo[i].pMdiTextEdit->pColorRef=(COLORREF *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,sizeof(COLORREF)*lstrlen(buffer));
    916             MdiInfo[i].pMdiTextEdit->iUnderStart=-1;
    917             MdiInfo[i].pMdiTextEdit->iUnderEnd=-1;
    918             MdiInfo[i].pMdiTextEdit->StartCaretPos.x=0;
    919             MdiInfo[i].pMdiTextEdit->StartCaretPos.y=0;
    920             MdiInfo[i].pMdiTextEdit->EndCaretPos.x=0;
    921             MdiInfo[i].pMdiTextEdit->EndCaretPos.y=0;
    922             MdiInfo[i].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    923             MdiInfo[i].pMdiTextEdit->bAutoScroll=0;
    924             MdiInfo[i].pMdiTextEdit->iWidth_ControlTabSpace=
    925                 GetControlTabSpace(i,&MdiInfo[i].pMdiTextEdit->iLineNumberTextCount);
    926             MdiInfo[i].pMdiTextEdit->iCharCode=iCharCode;
    927             MdiInfo[i].pMdiTextEdit->iLfCode=iLfCode;
    928 
    929             MdiInfo[i].IndentStr=0;
    930 
    931             int flag;
    932             if(mdic.style&WS_MAXIMIZE) flag=SIZE_MAXIMIZED;
    933             else flag=0;
    934             SendTextEditResizeEvent(hChild);
    935             break;
    936         }
    937     }
     897    MdiInfo.push_back( MDIINFO() );
     898    i = MdiInfo.size()-1;
     899    MdiInfo[i].hwnd=hChild;
     900    MdiInfo[i].DocType=DocumentType;
     901    MdiInfo[i].title="";
     902    DuplicateTitleCheck(str);
     903    MdiInfo[i].title=(char *)GlobalAlloc(GMEM_FIXED,lstrlen(str)+1);
     904    lstrcpy(MdiInfo[i].title,str);
     905    if(filepath)
     906    {
     907        MdiInfo[i].path = filepath;
     908    }
     909    else
     910    {
     911        MdiInfo[i].path = "";
     912    }
     913
     914    MdiInfo[i].pMdiTextEdit = new CMdiTextEdit( &MdiInfo[i] );
     915
     916    MdiInfo[i].pMdiTextEdit->hEdit=hEdit;
     917    MdiInfo[i].pMdiTextEdit->pobj_WebResult=new CWebResult(hChild);
     918    MdiInfo[i].pMdiTextEdit->pobj_Ruler=new CRuler(hChild,i);
     919    MdiInfo[i].pMdiTextEdit->hIcon=shfi.hIcon;
     920    MdiInfo[i].pMdiTextEdit->buffer=buffer;
     921    MdiInfo[i].pMdiTextEdit->pColorRef=(COLORREF *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,sizeof(COLORREF)*lstrlen(buffer));
     922    MdiInfo[i].pMdiTextEdit->iUnderStart=-1;
     923    MdiInfo[i].pMdiTextEdit->iUnderEnd=-1;
     924    MdiInfo[i].pMdiTextEdit->StartCaretPos.x=0;
     925    MdiInfo[i].pMdiTextEdit->StartCaretPos.y=0;
     926    MdiInfo[i].pMdiTextEdit->EndCaretPos.x=0;
     927    MdiInfo[i].pMdiTextEdit->EndCaretPos.y=0;
     928    MdiInfo[i].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
     929    MdiInfo[i].pMdiTextEdit->bAutoScroll=0;
     930    MdiInfo[i].pMdiTextEdit->iWidth_ControlTabSpace=
     931        GetControlTabSpace(i,&MdiInfo[i].pMdiTextEdit->iLineNumberTextCount);
     932    MdiInfo[i].pMdiTextEdit->iCharCode=iCharCode;
     933    MdiInfo[i].pMdiTextEdit->iLfCode=iLfCode;
     934    MdiInfo[i].IndentStr=0;
     935
     936
     937    int flag;
     938    if(mdic.style&WS_MAXIMIZE) flag=SIZE_MAXIMIZED;
     939    else flag=0;
     940    SendTextEditResizeEvent(hChild);
     941
    938942
    939943    //ワードカラーをセット
    940     if(IS_DOCUMENT_TEXT(DocumentType)) SetTextEditWordColor(i);
     944    if(IS_DOCUMENT_TEXT(DocumentType)) SetTextEditWordColor(MdiInfo.size()-1);
    941945
    942946    //Docコンボボックスに追加
     
    983987
    984988    GlobalFree(MdiInfo[WndNum].title);
    985     GlobalFree(MdiInfo[WndNum].path);
    986989
    987990    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     
    10631066        HeapDefaultFree(MdiInfo[WndNum].MdiIconEditInfo);
    10641067    }
     1068    else
     1069    {
     1070        throw;
     1071    }
     1072
     1073    Jenga::Common::EraseVectorItem<std::vector<MDIINFO>>( MdiInfo, WndNum );
    10651074}
    10661075void ResizeTextEditWnd(HWND hwnd,int cx,int cy){
     
    17111720        if(!TranslateAccelerator(hOwner,hAccel,&msg)){
    17121721            if( projectInfo.IsOpened() ){
    1713                 for(i=0,i2=0;i<MAX_WNDNUM;i++){
     1722                for(i=0,i2=0;i<MdiInfo.size();i++){
    17141723                    if(MdiInfo[i].hwnd&&MdiInfo[i].DocType==WNDTYPE_RAD){
    17151724                        if(IsDialogMessage(MdiInfo[i].MdiRadInfo->hProp_Dlg,&msg)) i2=1;
  • trunk/ab5.0/abdev/abdev/abdev.h

    r624 r625  
    4848HWND hClient;                   //MDIクライアントウィンドウ
    4949HWND hStatusBar;                //ステータスバー
    50 MDIINFO MdiInfo[MAX_WNDNUM];    //MDIドキュメントウィンドウ情報
     50std::vector<MDIINFO> MdiInfo;   //MDIドキュメントウィンドウ情報
    5151
    5252/* メニュー */
  • trunk/ab5.0/abdev/abdev/abdev.vcproj

    r620 r625  
    433433                    >
    434434                </File>
     435                <Filter
     436                    Name="PartialManager"
     437                    >
     438                    <File
     439                        RelativePath=".\src\WindowComponents\PartialManager\TextEditPartialManager.cpp"
     440                        >
     441                    </File>
     442                </Filter>
    435443            </Filter>
    436444            <Filter
     
    27682776            </Filter>
    27692777            <Filter
    2770                 Name="Window Components"
     2778                Name="WindowComponents"
    27712779                >
    27722780                <File
     
    27902798                    >
    27912799                </File>
     2800                <Filter
     2801                    Name="PartialManager"
     2802                    >
     2803                    <File
     2804                        RelativePath=".\include\WindowComponents\PartialManager\PartialManager.h"
     2805                        >
     2806                    </File>
     2807                    <File
     2808                        RelativePath=".\include\WindowComponents\PartialManager\TextEditPartialManager.h"
     2809                        >
     2810                    </File>
     2811                </Filter>
    27922812            </Filter>
    27932813            <Filter
  • trunk/ab5.0/abdev/abdev/include/ProjectManager/WindowManager.h

    r624 r625  
    105105};
    106106typedef std::vector<ChildWindowInfo *> ChildWindowInfos;
     107
     108struct WindowType
     109{
     110    enum EnumType
     111    {
     112        Default = 0,
     113        ModalDlg = 1,
     114        ModelessDlg = 3,
     115    };
     116};
     117
    107118class WindowInfo
    108119    : public WindowInfoBase
    109120{
    110121public:
    111     WindowInfo()
    112         : WindowInfoBase()
    113         , CallBackName( NULL )
    114     {
     122
     123    const std::string GetSourceFileName() const
     124    {
     125        return this->GetName() + ".ab";
    115126    }
    116127
     
    124135    }
    125136
    126     const std::string &GetHandleName() const
    127     {
    128         return handleName;
    129     }
    130     void SetHandleName( const std::string &handleName )
    131     {
    132         this->handleName = handleName;
     137    const std::string GetHandleName() const
     138    {
     139        return "h" + this->GetName();
     140    }
     141
     142    const std::string GetCallbackName() const
     143    {
     144        return this->GetName() + "Proc";
    133145    }
    134146
     
    166178    {
    167179        return !iconResourceName.empty();
     180    }
     181
     182    WindowType::EnumType GetType() const
     183    {
     184        return type;
     185    }
     186    void SetType( WindowType::EnumType type )
     187    {
     188        this->type = type;
     189    }
     190    bool IsDefaultWindow() const
     191    {
     192        return ( type == WindowType::Default );
     193    }
     194    bool IsModalDlg() const
     195    {
     196        return ( type == WindowType::ModalDlg );
     197    }
     198    bool IsModelessDlg() const
     199    {
     200        return ( type == WindowType::ModelessDlg );
    168201    }
    169202
    170203    //ウィンドウデータ
    171204    LOGFONT LogFont;
    172     char *CallBackName;
    173     long type;
    174     char *filepath;
    175205
    176206    //子ウィンドウ管理
     
    186216    int backgroundColor;
    187217    std::string iconResourceName;
     218    WindowType::EnumType type;
    188219};
    189220
     
    211242    {
    212243        WindowInfos::iterator it = this->begin();
    213         for( int i=0; i!=index ;i++, it++ )
     244        int i = 0;
     245        while( i < index )
    214246        {
    215             delete *it;
     247            i ++;
     248            it ++;
    216249        }
    217250        this->erase( it );
  • trunk/ab5.0/abdev/abdev/nkf_class.cpp

    r477 r625  
    156156
    157157BOOL CALLBACK nkfDlgCodeSave(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    158     extern MDIINFO MdiInfo[MAX_WNDNUM];
    159158    static int WndNum;
    160159    HWND hList;
  • trunk/ab5.0/abdev/abdev/src/MainFrame.cpp

    r624 r625  
    316316                mii.dwTypeData=temporary;
    317317                mii.fType=MFT_STRING;
    318                 if(MdiInfo[WndNum].path[0]){
    319                     _splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
     318                if(!MdiInfo[WndNum].path.empty()){
     319                    _splitpath(MdiInfo[WndNum].path.c_str(),NULL,NULL,temporary,temp2);
    320320                    lstrcat(temporary,temp2);
    321321                    lstrcat(temporary," を保存(&S)");
     
    329329                /*「絶対パスをコピー」「フォルダを開く」「ファイルを削除」
    330330                                                コマンドを場合によって無効化にする */
    331                 if(MdiInfo[WndNum].path[0]){
     331                if(!MdiInfo[WndNum].path.empty()){
    332332                    EnableMenuItem(hTabMenu,IDM_PATH_COPY,MF_BYCOMMAND|MF_ENABLED);
    333333                    EnableMenuItem(hTabMenu,IDM_FOLDER_OPEN,MF_BYCOMMAND|MF_ENABLED);
     
    383383        WndNum=GetWndNum(hChild);
    384384        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    385             if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) break;
     385            if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) break;
    386386        }
    387387        hChild=::GetNextWindow(hChild,GW_HWNDNEXT);
     
    548548void MainFrame::OnCmdAllSave( UINT uNotifyCode, int nID, CWindow wndCtl )
    549549{
    550     for( int i=0;i<MAX_WNDNUM;i++){
     550    for( int i=0;i<MdiInfo.size();i++){
    551551        if(MdiInfo[i].hwnd) SaveDocument(MdiInfo[i].hwnd,NULL);
    552552    }
     
    585585    if(!hChild) return;
    586586    int WndNum=GetWndNum(hChild);
    587     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))
     587    if( IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType) )
     588    {
    588589        TextEdit_UndoCommand(WndNum);
    589     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
     590    }
     591    else if( MdiInfo[WndNum].DocType == WNDTYPE_RAD )
     592    {
    590593        Rad_UndoCommand(WndNum);
    591     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)
     594    }
     595    else if( MdiInfo[WndNum].DocType == WNDTYPE_ICONEDIT )
     596    {
    592597        IconEdit_UndoCommand(WndNum);
     598    }
    593599}
    594600
     
    986992        if(!SetRunning(hChild)) return;
    987993        if(IsNeedCompile(MdiInfo[GetWndNum(hChild)].path,1))
    988             sprintf(temporary,"\"%s\" /debug /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     994            sprintf(temporary,"\"%s\" /debug /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    989995        else
    990             sprintf(temporary,"\"%s\" /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     996            sprintf(temporary,"\"%s\" /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    991997
    992998        //ブレークポイントをセーブ
     
    10511057        //単独ソースコード
    10521058        if(!SetRunning(hChild)) return;
    1053         sprintf(temporary,"\"%s\" /debug /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     1059        sprintf(temporary,"\"%s\" /debug /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    10541060    }
    10551061
     
    11651171        //単独ソースコード
    11661172        if(!SetRunning(hChild)) return;
    1167         sprintf(temporary,"\"%s\" /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     1173        sprintf(temporary,"\"%s\" /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    11681174    }
    11691175
     
    12241230
    12251231        //単独ソースコード
    1226         _splitpath(MdiInfo[GetWndNum(hChild)].path,temporary,temp2,temp3,NULL);
     1232        _splitpath(MdiInfo[GetWndNum(hChild)].path.c_str(),temporary,temp2,temp3,NULL);
    12271233        lstrcat(temporary,temp2);
    12281234        lstrcat(temporary,temp3);
     
    14031409    HWND hChild=::GetWindow(hClient,GW_CHILD);
    14041410    int WndNum=GetWndNum(hChild);
    1405     for(int i=0;i<MAX_WNDNUM;i++){
     1411    for(int i=0;i<MdiInfo.size();i++){
    14061412        if(i==WndNum) continue;
    14071413        if(MdiInfo[i].hwnd) SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
     
    14151421
    14161422    //絶対パスをコピー
    1417     HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,lstrlen(MdiInfo[WndNum].path)+1);
     1423    HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,MdiInfo[WndNum].path.size()+1);
    14181424    char *pTemp=(char *)GlobalLock(hGlobal);
    1419     lstrcpy(pTemp,MdiInfo[WndNum].path);
     1425    lstrcpy(pTemp,MdiInfo[WndNum].path.c_str());
    14201426    GlobalUnlock(hGlobal);
    14211427
     
    14331439
    14341440    char temporary[1024], temp2[1024];
    1435     _splitpath(MdiInfo[WndNum].path,temporary,temp2,NULL,NULL);
     1441    _splitpath(MdiInfo[WndNum].path.c_str(),temporary,temp2,NULL,NULL);
    14361442    lstrcat(temporary,temp2);
    14371443
     
    14451451
    14461452    char temporary[1024], temp2[1024];
    1447     _splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
     1453    _splitpath(MdiInfo[WndNum].path.c_str(),NULL,NULL,temporary,temp2);
    14481454    lstrcat(temporary,temp2);
    14491455
     
    14551461    fo.hwnd=m_hWnd;
    14561462    fo.wFunc=FO_DELETE;
    1457     fo.pFrom =MdiInfo[WndNum].path;
     1463    fo.pFrom =MdiInfo[WndNum].path.c_str();
    14581464    fo.pTo="\0";
    14591465    fo.fFlags =FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
  • trunk/ab5.0/abdev/abdev/src/ProjectManager/ProjectManager.cpp

    r624 r625  
    267267void Project::Save()
    268268{
    269     extern MDIINFO MdiInfo[MAX_WNDNUM];
    270269    int i,i2,i3,WndNum;
    271270    char temporary[MAX_PATH],buffer[32767];
     
    284283                for(i=0;i<this->pobj_DBFileInfo->iNum;i++){
    285284                    this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    286                     if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     285                    if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    287286                        SaveDocument(hChild,NULL);
    288287                        break;
     
    297296                    lstrcpy(temporary,resourceItem.filepath.c_str());
    298297                    lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    299                     if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     298                    if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    300299                        SaveDocument(hChild,NULL);
    301300                        break;
     
    533532{
    534533    extern HANDLE hHeap;
    535     extern MDIINFO MdiInfo[MAX_WNDNUM];
    536534    int i,WndNum;
    537535    HWND hChild,hCloseChild;
     
    553551            for(i=0;i<this->pobj_DBFileInfo->iNum;i++){
    554552                this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    555                 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     553                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    556554
    557555                    //変更フラグをオフにする
     
    575573        else if(MdiInfo[WndNum].DocType==WNDTYPE_MENU){
    576574            for(i=0;i<this->NumberOfMenu;i++){
    577                 if(lstrcmp(MdiInfo[WndNum].path,this->pMenuInfo[i].IdName)==0){
     575                if( MdiInfo[WndNum].path == this->pMenuInfo[i].IdName )
     576                {
    578577                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    579578                    break;
     
    585584                lstrcpy(temporary,this->resourceManager.iconResources[i].filepath.c_str());
    586585                lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    587                 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     586                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    588587                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    589588                    break;
     
    602601    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, windowInfos )
    603602    {
    604         HeapDefaultFree(pWindowInfo->CallBackName);
    605         HeapDefaultFree(pWindowInfo->filepath);
    606 
    607603        //子ウィンドウのメモリを解放
    608604        BOOST_FOREACH( ActiveBasic::PM::ChildWindowInfo *pChildWindowInfo, pWindowInfo->childWindowInfos )
  • trunk/ab5.0/abdev/res/res.rc

    r606 r625  
    643643END
    644644
    645 IDD_PROJECT_NEWWINDOW DIALOG  0, 0, 171, 153
     645IDD_PROJECT_NEWWINDOW DIALOGEX 0, 0, 171, 153
    646646STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
    647647CAPTION "新規ウィンドウ"
    648 FONT 9, "MS Pゴシック"
     648FONT 9, "MS Pゴシック", 0, 0, 0x0
    649649BEGIN
    650650    LTEXT           "ウィンドウ名:",IDC_STATIC,13,11,36,8
    651     LTEXT           "ハンドル:",IDC_STATIC,13,60,26,8
    652     LTEXT           "プロシージャ:",IDC_STATIC,13,77,39,8
    653     GROUPBOX        "詳細",IDC_STATIC,7,29,96,64
     651    LTEXT           "ハンドル:",IDC_STATIC,13,54,26,8
     652    LTEXT           "プロシージャ:",IDC_STATIC,13,71,39,8
     653    GROUPBOX        "詳細",IDC_STATIC,7,33,96,56
    654654    GROUPBOX        "タイプ",IDC_STATIC,7,99,157,47
    655655    EDITTEXT        IDC_WINDOWNAME,56,7,40,14,ES_AUTOHSCROLL
    656     CONTROL         "自動設定",IDC_AUTOSET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,42,43,10
    657     EDITTEXT        IDC_WINDOWHANDLE,56,56,40,14,ES_AUTOHSCROLL
    658     EDITTEXT        IDC_WINDOWPROC,56,73,40,14,ES_AUTOHSCROLL
     656    EDITTEXT        IDC_WINDOWHANDLE,56,50,40,14,ES_AUTOHSCROLL | ES_READONLY
     657    EDITTEXT        IDC_WINDOWPROC,56,67,40,14,ES_AUTOHSCROLL | ES_READONLY
    659658    CONTROL         "通常ウィンドウ",IDC_DEFWINDOW,"Button",BS_AUTORADIOBUTTON,13,111,57,10
    660659    CONTROL         "ダイアログ テンプレート(モーダル)",IDC_MODALDLG,"Button",BS_AUTORADIOBUTTON,13,122,117,10
     
    736735END
    737736
    738 IDD_RAD_PROP_WINDOW_RENAME DIALOG  0, 0, 170, 99
     737IDD_RAD_PROP_WINDOW_RENAME DIALOGEX 0, 0, 170, 99
    739738STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
    740739CAPTION "識別設定"
    741 FONT 9, "MS Pゴシック"
     740FONT 9, "MS Pゴシック", 0, 0, 0x0
    742741BEGIN
    743742    LTEXT           "ウィンドウ名:",IDC_STATIC,13,11,36,8
    744     LTEXT           "ハンドル:",IDC_STATIC,13,60,26,8
    745     LTEXT           "プロシージャ:",IDC_STATIC,13,77,39,8
    746     GROUPBOX        "詳細",IDC_STATIC,7,29,96,64
     743    LTEXT           "ハンドル:",IDC_STATIC,13,53,26,8
     744    LTEXT           "プロシージャ:",IDC_STATIC,13,70,39,8
     745    GROUPBOX        "詳細",IDC_STATIC,7,33,96,56
    747746    EDITTEXT        IDC_WINDOWNAME,56,7,40,14,ES_AUTOHSCROLL
    748     CONTROL         "自動設定",IDC_AUTOSET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,42,43,10
    749     EDITTEXT        IDC_WINDOWHANDLE,56,56,40,14,ES_AUTOHSCROLL
    750     EDITTEXT        IDC_WINDOWPROC,56,73,40,14,ES_AUTOHSCROLL
     747    EDITTEXT        IDC_WINDOWHANDLE,56,49,40,14,ES_AUTOHSCROLL | ES_READONLY
     748    EDITTEXT        IDC_WINDOWPROC,56,66,40,14,ES_AUTOHSCROLL | ES_READONLY
    751749    DEFPUSHBUTTON   "OK",IDOK,113,7,50,14
    752750    PUSHBUTTON      "キャンセル",IDCANCEL,113,24,50,14
  • trunk/ab5.0/abdev/res/resource.h

    r606 r625  
    201201#define IDC_WINDOWPROC                  1082
    202202#define IDC_TOOL_HSCROLLBAR             1082
    203 #define IDC_AUTOSET                     1083
    204203#define IDC_TOOL_VSCROLLBAR             1083
    205204#define IDC_TOOL_COMBOBOX               1084
Note: See TracChangeset for help on using the changeset viewer.