================ DialogScriptEditor::OpenFile ================ */
| 226 | ================ |
| 227 | */ |
| 228 | void DialogScriptEditor::OpenFile( const char *fileName ) { |
| 229 | int numLines = 0; |
| 230 | int numCharsPerLine = 0; |
| 231 | int maxCharsPerLine = 0; |
| 232 | idStr scriptText, extension; |
| 233 | CRect rect; |
| 234 | void *buffer; |
| 235 | |
| 236 | scriptEdit.Init(); |
| 237 | scriptEdit.AllowPathNames( false ); |
| 238 | |
| 239 | idStr( fileName ).ExtractFileExtension( extension ); |
| 240 | |
| 241 | if ( extension.Icmp( "script" ) == 0 ) { |
| 242 | InitScriptEvents(); |
| 243 | scriptEdit.SetCaseSensitive( true ); |
| 244 | scriptEdit.LoadKeyWordsFromFile( "editors/script.def" ); |
| 245 | scriptEdit.SetObjectMemberCallback( GetScriptEvents ); |
| 246 | scriptEdit.SetFunctionParmCallback( GetFunctionParms ); |
| 247 | scriptEdit.SetToolTipCallback( GetToolTip ); |
| 248 | } else if ( extension.Icmp( "gui" ) == 0 ) { |
| 249 | scriptEdit.SetStringColor( SRE_COLOR_DARK_CYAN, SRE_COLOR_LIGHT_BROWN ); |
| 250 | scriptEdit.LoadKeyWordsFromFile( "editors/gui.def" ); |
| 251 | } |
| 252 | |
| 253 | if ( fileSystem->ReadFile( fileName, &buffer ) == -1 ) { |
| 254 | return; |
| 255 | } |
| 256 | scriptText = (char *) buffer; |
| 257 | fileSystem->FreeFile( buffer ); |
| 258 | |
| 259 | this->fileName = fileName; |
| 260 | |
| 261 | // clean up new-line crapola |
| 262 | scriptText.Replace( "\r", "" ); |
| 263 | scriptText.Replace( "\n", "\r" ); |
| 264 | scriptText.Replace( "\v", "\r" ); |
| 265 | |
| 266 | scriptEdit.SetText( scriptText ); |
| 267 | |
| 268 | for( const char *ptr = scriptText.c_str(); *ptr; ptr++ ) { |
| 269 | if ( *ptr == '\r' ) { |
| 270 | if ( numCharsPerLine > maxCharsPerLine ) { |
| 271 | maxCharsPerLine = numCharsPerLine; |
| 272 | } |
| 273 | numCharsPerLine = 0; |
| 274 | numLines++; |
| 275 | } else if ( *ptr == '\t' ) { |
| 276 | numCharsPerLine += TAB_SIZE; |
| 277 | } else { |
| 278 | numCharsPerLine++; |
| 279 | } |
| 280 | } |
| 281 | |
| 282 | SetWindowText( va( "Script Editor (%s)", fileName ) ); |
| 283 | |
| 284 | rect.left = initialRect.left; |
| 285 | rect.right = rect.left + maxCharsPerLine * FONT_WIDTH + 32; |
nothing calls this directly
no test coverage detected