MCPcopy Create free account
hub / github.com/dhewm/dhewm3 / OpenFile

Method OpenFile

neo/tools/script/DialogScriptEditor.cpp:228–305  ·  view source on GitHub ↗

================ DialogScriptEditor::OpenFile ================ */

Source from the content-addressed store, hash-verified

226================
227*/
228void 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;

Callers

nothing calls this directly

Calls 15

vaFunction · 0.85
AllowPathNamesMethod · 0.80
ExtractFileExtensionMethod · 0.80
LoadKeyWordsFromFileMethod · 0.80
SetToolTipCallbackMethod · 0.80
SetStringColorMethod · 0.80
ReadFileMethod · 0.80
FreeFileMethod · 0.80
ReplaceMethod · 0.80
SetFocusMethod · 0.80

Tested by

no test coverage detected