Changeset 24 in dev for ProjectEditor/TabCtrl.cpp
- Timestamp:
- Dec 30, 2006, 10:18:01 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ProjectEditor/TabCtrl.cpp
r3 r24 73 73 74 74 75 int CMainTab:: search(char *lpszText){75 int CMainTab::SearchItemIndex( const char *lpszText ){ 76 76 int i2,i3; 77 77 char temporary[MAX_PATH]; … … 86 86 for(i2=0;i2<i3;i2++){ 87 87 TabCtrl_GetItem(hTab,i2,&tcItem); 88 89 //アスタリスクを取り除いて評価する 90 if( tcItem.pszText[ lstrlen( tcItem.pszText ) -1 ] == '*' ){ 91 tcItem.pszText[ lstrlen( tcItem.pszText ) -1 ] = 0; 92 } 93 88 94 if(lstrcmpi(lpszText,tcItem.pszText)==0) break; 89 95 } … … 91 97 92 98 return i2; 99 } 100 void CMainTab::SetItemText( int index, const char *ItemText ){ 101 TC_ITEM tcItem; 102 tcItem.mask=TCIF_TEXT; 103 tcItem.pszText=(LPSTR)ItemText; 104 tcItem.cchTextMax=MAX_PATH; 105 106 TabCtrl_SetItem(hTab,index,&tcItem); 107 } 108 void CMainTab::GetItemText( int index, char *ItemText ){ 109 TC_ITEM tcItem; 110 tcItem.mask = TCIF_TEXT; 111 tcItem.pszText = ItemText; 112 tcItem.cchTextMax = MAX_PATH; 113 TabCtrl_GetItem( hTab, index, &tcItem ); 114 } 115 bool CMainTab::IsModified( int index ){ 116 //アスタリスク表示かどうかを判断する 117 118 //アイテム文字列を取得 119 char ItemText[MAX_PATH]; 120 GetItemText( index, ItemText ); 121 122 if( ItemText[ lstrlen( ItemText ) -1 ] == '*' ){ 123 //アスタリスクがあったとき 124 return true; 125 } 126 127 //その他 128 return false; 93 129 } 94 130 … … 126 162 } 127 163 128 void CMainTab:: insert(char *lpszText,BOOL bResize,COLORREF color){164 void CMainTab::InsertItem( const char *lpszText, bool isResize, COLORREF color ){ 129 165 int sw=0; 130 166 if(TabCtrl_GetItemCount(hTab)==0) sw=1; … … 134 170 TC_ITEM tcItem; 135 171 tcItem.mask=TCIF_TEXT|TCIF_PARAM; 136 tcItem.pszText= lpszText;172 tcItem.pszText=(LPSTR)lpszText; 137 173 tcItem.lParam=color; 138 174 TabCtrl_InsertItem(hTab,0,&tcItem); 139 175 TabCtrl_SetCurSel(hTab,0); 140 176 141 if( bResize){177 if(isResize){ 142 178 if(sw) ResizeOwnerWnd(); 143 179 } 144 180 } 145 181 146 void CMainTab:: delete_item(char *lpszText,BOOL bResize){182 void CMainTab::DeleteItem( const char *lpszText, bool isResize ){ 147 183 int i2; 148 i2= search(lpszText);184 i2=SearchItemIndex(lpszText); 149 185 if(i2==-1) return; 150 186 151 187 TabCtrl_DeleteItem(hTab,i2); 152 188 153 if( bResize){189 if(isResize){ 154 190 if(TabCtrl_GetItemCount(hTab)==0) ResizeOwnerWnd(); 155 191 } 156 192 } 157 193 158 void CMainTab:: reset_item(char *lpszOldText,char *lpszNewText){194 void CMainTab::RenameItem( const char *lpszOldText, const char *lpszNewText ){ 159 195 int i2; 160 i2= search(lpszOldText);196 i2=SearchItemIndex(lpszOldText); 161 197 if(i2==-1) return; 162 198 163 TC_ITEM tcItem; 164 tcItem.mask=TCIF_TEXT; 165 tcItem.pszText=lpszNewText; 166 tcItem.cchTextMax=MAX_PATH; 167 168 TabCtrl_SetItem(hTab,i2,&tcItem); 169 } 170 171 COLORREF CMainTab::GetItemColor(char *lpszText){ 172 int i2,i3; 199 SetItemText( i2, lpszNewText ); 200 } 201 202 void CMainTab::NofityModifyDocument( const char *ItemText ){ 203 //ドキュメントが変更されたとき、アスタリスクを付けて表示する 204 205 //インデックスを取得 206 int index = SearchItemIndex( ItemText ); 207 if( index == -1 ) return; 208 209 //既にアスタリスク表示されていた場合は抜ける 210 if( IsModified( index ) ) return; 211 212 //アスタリスクを付加 173 213 char temporary[MAX_PATH]; 174 175 i3=TabCtrl_GetItemCount(hTab); 176 177 TC_ITEM tcItem; 178 tcItem.mask=TCIF_TEXT|TCIF_PARAM; 179 tcItem.pszText=temporary; 180 tcItem.cchTextMax=MAX_PATH; 181 182 for(i2=0;i2<i3;i2++){ 183 TabCtrl_GetItem(hTab,i2,&tcItem); 184 if(lstrcmpi(lpszText,tcItem.pszText)==0) return tcItem.lParam; 185 } 186 return -1; 214 lstrcpy( temporary, ItemText ); 215 lstrcat( temporary, "*" ); 216 217 //タブアイテムを更新 218 SetItemText( index, temporary ); 219 } 220 void CMainTab::NofityUnModifyDocument( const char *ItemText ){ 221 //ドキュメントが保存されたとき、アスタリスクを非表示にする 222 223 //インデックスを取得 224 int index = SearchItemIndex( ItemText ); 225 if( index == -1 ) return; 226 227 //既にアスタリスクが非表示の場合は抜ける 228 if( ! IsModified( index ) ) return; 229 230 //タブアイテムを更新 231 SetItemText( index, ItemText ); 232 } 233 234 COLORREF CMainTab::GetItemColor( char *ItemText ){ 235 //インデックスを取得 236 int index = SearchItemIndex( ItemText ); 237 if( index == -1 ) return -1; 238 239 TC_ITEM tcItem; 240 tcItem.mask = TCIF_PARAM; 241 TabCtrl_GetItem( hTab, index, &tcItem ); 242 return tcItem.lParam; 187 243 } 188 244 … … 207 263 void CMainTab::MdiActiveEvent(char *lpszText){ 208 264 int i2; 209 i2= search(lpszText);265 i2=SearchItemIndex(lpszText); 210 266 if(i2==-1) return; 211 267
Note:
See TracChangeset
for help on using the changeset viewer.