void StarGeneratorInterface::__Button_Clicked( Button& sender, bool checked ) { if ( sender == GUI->StarDatabase_ToolButton ) { OpenFileDialog d; d.DisableMultipleSelections(); d.SetCaption( "StarGenerator: Select Star Database File" ); if ( d.Execute() ) { instance.starDatabasePath = d.FileName(); GUI->StarDatabase_Edit.SetText( instance.starDatabasePath ); } } else if ( sender == GUI->OutputFile_ToolButton ) { SaveFileDialog d; d.SetCaption( "StarGenerator: Select Output CSV File" ); d.EnableOverwritePrompt(); FileFilter csvFilter; csvFilter.SetDescription( "CSV Text Files" ); csvFilter.AddExtension( ".csv" ); d.Filters().Add( csvFilter ); FileFilter allFilter; allFilter.SetDescription( "Any Files" ); allFilter.AddExtension( "*" ); d.Filters().Add( allFilter ); if ( d.Execute() ) { instance.outputFilePath = d.FileName(); GUI->OutputFile_Edit.SetText( instance.outputFilePath ); } } else if ( sender == GUI->DecSouth_CheckBox ) { if ( checked != (instance.centerDec < 0) ) { instance.centerDec = -instance.centerDec; UpdateDecControls(); } } else if ( sender == GUI->Nonlinear_CheckBox ) { instance.nonlinear = checked; UpdateControls(); } }
bool StandardMainLoop::handleCommandLine( S32 argc, const char **argv ) { // Allow the window manager to process command line inputs; this is // done to let web plugin functionality happen in a fairly transparent way. PlatformWindowManager::get()->processCmdLineArgs(argc, argv); Process::handleCommandLine( argc, argv ); // Set up the command line args for the console scripts... Con::setIntVariable("Game::argc", argc); U32 i; for (i = 0; i < argc; i++) Con::setVariable(avar("Game::argv%d", i), argv[i]); #ifdef TORQUE_PLAYER if(argc > 2 && dStricmp(argv[1], "-project") == 0) { char playerPath[1024]; Platform::makeFullPathName(argv[2], playerPath, sizeof(playerPath)); Platform::setCurrentDirectory(playerPath); argv += 2; argc -= 2; // Re-locate the game:/ asset mount. Torque::FS::Unmount( "game" ); Torque::FS::Mount( "game", Platform::FS::createNativeFS( playerPath ) ); } #endif // Executes an entry script file. This is "main.cs" // by default, but any file name (with no whitespace // in it) may be run if it is specified as the first // command-line parameter. The script used, default // or otherwise, is not compiled and is loaded here // directly because the resource system restricts // access to the "root" directory. #ifdef TORQUE_ENABLE_VFS Zip::ZipArchive *vfs = openEmbeddedVFSArchive(); bool useVFS = vfs != NULL; #endif Stream *mainCsStream = NULL; // The working filestream. FileStream str; const char *defaultScriptName = "main.cs"; bool useDefaultScript = true; // Check if any command-line parameters were passed (the first is just the app name). if (argc > 1) { // If so, check if the first parameter is a file to open. if ( (dStrcmp(argv[1], "") != 0 ) && (str.open(argv[1], Torque::FS::File::Read)) ) { // If it opens, we assume it is the script to run. useDefaultScript = false; #ifdef TORQUE_ENABLE_VFS useVFS = false; #endif mainCsStream = &str; } } if (useDefaultScript) { bool success = false; #ifdef TORQUE_ENABLE_VFS if(useVFS) success = (mainCsStream = vfs->openFile(defaultScriptName, Zip::ZipArchive::Read)) != NULL; else #endif success = str.open(defaultScriptName, Torque::FS::File::Read); #if defined( TORQUE_DEBUG ) && defined (TORQUE_TOOLS) && !defined(TORQUE_DEDICATED) && !defined( _XBOX ) if (!success) { OpenFileDialog ofd; FileDialogData &fdd = ofd.getData(); fdd.mFilters = StringTable->insert("Main Entry Script (main.cs)|main.cs|"); fdd.mTitle = StringTable->insert("Locate Game Entry Script"); // Get the user's selection if( !ofd.Execute() ) return false; // Process and update CWD so we can run the selected main.cs S32 pathLen = dStrlen( fdd.mFile ); FrameTemp<char> szPathCopy( pathLen + 1); dStrcpy( szPathCopy, fdd.mFile ); //forwardslash( szPathCopy ); const char *path = dStrrchr(szPathCopy, '/'); if(path) { U32 len = path - (const char*)szPathCopy; szPathCopy[len+1] = 0; Platform::setCurrentDirectory(szPathCopy); // Re-locate the game:/ asset mount. Torque::FS::Unmount( "game" ); Torque::FS::Mount( "game", Platform::FS::createNativeFS( ( const char* ) szPathCopy ) ); success = str.open(fdd.mFile, Torque::FS::File::Read); if(success) defaultScriptName = fdd.mFile; } } #endif if( !success ) { char msg[1024]; dSprintf(msg, sizeof(msg), "Failed to open \"%s\".", defaultScriptName); Platform::AlertOK("Error", msg); #ifdef TORQUE_ENABLE_VFS closeEmbeddedVFSArchive(); #endif return false; } #ifdef TORQUE_ENABLE_VFS if(! useVFS) #endif mainCsStream = &str; } // This should rarely happen, but lets deal with // it gracefully if it does. if ( mainCsStream == NULL ) return false; U32 size = mainCsStream->getStreamSize(); char *script = new char[size + 1]; mainCsStream->read(size, script); #ifdef TORQUE_ENABLE_VFS if(useVFS) vfs->closeFile(mainCsStream); else #endif str.close(); script[size] = 0; char buffer[1024], *ptr; Platform::makeFullPathName(useDefaultScript ? defaultScriptName : argv[1], buffer, sizeof(buffer), Platform::getCurrentDirectory()); ptr = dStrrchr(buffer, '/'); if(ptr != NULL) *ptr = 0; Platform::setMainDotCsDir(buffer); Platform::setCurrentDirectory(buffer); Con::evaluate(script, false, useDefaultScript ? defaultScriptName : argv[1]); delete[] script; #ifdef TORQUE_ENABLE_VFS closeEmbeddedVFSArchive(); #endif return true; }
void HDRCompositionInterface::__InputImages_Click( Button& sender, bool checked ) { if ( sender == GUI->AddFiles_PushButton ) { OpenFileDialog d; d.EnableMultipleSelections(); d.LoadImageFilters(); d.SetCaption( "HDRComposition: Select Input Images" ); if ( d.Execute() ) { size_type i0 = TreeInsertionIndex( GUI->InputImages_TreeBox ); for ( StringList::const_iterator i = d.FileNames().Begin(); i != d.FileNames().End(); ++i ) instance.images.Insert( instance.images.At( i0++ ), HDRCompositionInstance::ImageItem( *i ) ); UpdateInputImagesList(); UpdateImageSelectionButtons(); } } else if ( sender == GUI->MoveUp_PushButton ) { TreeBox::Node* node = GUI->InputImages_TreeBox.CurrentNode(); if ( node != 0 ) { int idx = GUI->InputImages_TreeBox.ChildIndex( node ); if ( idx > 0 ) { HDRCompositionInstance::ImageItem item = instance.images[idx]; instance.images.Remove( instance.images.At( idx ) ); instance.images.Insert( instance.images.At( idx-1 ), item ); UpdateInputImagesList(); GUI->InputImages_TreeBox.SetCurrentNode( GUI->InputImages_TreeBox[idx-1] ); UpdateImageSelectionButtons(); } } } else if ( sender == GUI->MoveDown_PushButton ) { TreeBox::Node* node = GUI->InputImages_TreeBox.CurrentNode(); if ( node != 0 ) { int idx = GUI->InputImages_TreeBox.ChildIndex( node ); if ( idx < int( instance.images.Length()-1 ) ) { HDRCompositionInstance::ImageItem item = instance.images[idx]; instance.images.Remove( instance.images.At( idx ) ); instance.images.Insert( instance.images.At( idx+1 ), item ); UpdateInputImagesList(); GUI->InputImages_TreeBox.SetCurrentNode( GUI->InputImages_TreeBox[idx+1] ); UpdateImageSelectionButtons(); } } } else if ( sender == GUI->SelectAll_PushButton ) { GUI->InputImages_TreeBox.SelectAllNodes(); UpdateImageSelectionButtons(); } else if ( sender == GUI->InvertSelection_PushButton ) { for ( int i = 0, n = GUI->InputImages_TreeBox.NumberOfChildren(); i < n; ++i ) GUI->InputImages_TreeBox[i]->Select( !GUI->InputImages_TreeBox[i]->IsSelected() ); UpdateImageSelectionButtons(); } else if ( sender == GUI->ToggleSelected_PushButton ) { for ( int i = 0, n = GUI->InputImages_TreeBox.NumberOfChildren(); i < n; ++i ) if ( GUI->InputImages_TreeBox[i]->IsSelected() ) instance.images[i].enabled = !instance.images[i].enabled; UpdateInputImagesList(); UpdateImageSelectionButtons(); } else if ( sender == GUI->RemoveSelected_PushButton ) { HDRCompositionInstance::image_list newImages; for ( int i = 0, n = GUI->InputImages_TreeBox.NumberOfChildren(); i < n; ++i ) if ( !GUI->InputImages_TreeBox[i]->IsSelected() ) newImages.Add( instance.images[i] ); instance.images = newImages; UpdateInputImagesList(); UpdateImageSelectionButtons(); } else if ( sender == GUI->Clear_PushButton ) { instance.images.Clear(); UpdateInputImagesList(); UpdateImageSelectionButtons(); } else if ( sender == GUI->FullPaths_CheckBox ) { UpdateInputImagesList(); UpdateImageSelectionButtons(); } }
void DrizzleIntegrationInterface::__Click( Button& sender, bool checked ) { if ( sender == GUI->AddFiles_PushButton ) { FileFilter drzFiles; drzFiles.SetDescription( "Drizzle Data Files" ); drzFiles.AddExtension( ".drz" ); OpenFileDialog d; d.EnableMultipleSelections(); d.Filters().Clear(); d.Filters().Add( drzFiles ); d.SetCaption( "DrizzleIntegration: Select Drizzle Data Files" ); if ( d.Execute() ) { size_type i0 = TreeInsertionIndex( GUI->InputData_TreeBox ); for ( StringList::const_iterator i = d.FileNames().Begin(); i != d.FileNames().End(); ++i ) m_instance.p_inputData.Insert( m_instance.p_inputData.At( i0++ ), DrizzleIntegrationInstance::DataItem( *i ) ); UpdateInputDataList(); UpdateDataSelectionButtons(); } } else if ( sender == GUI->SelectAll_PushButton ) { GUI->InputData_TreeBox.SelectAllNodes(); UpdateDataSelectionButtons(); } else if ( sender == GUI->InvertSelection_PushButton ) { for ( int i = 0, n = GUI->InputData_TreeBox.NumberOfChildren(); i < n; ++i ) GUI->InputData_TreeBox[i]->Select( !GUI->InputData_TreeBox[i]->IsSelected() ); UpdateDataSelectionButtons(); } else if ( sender == GUI->ToggleSelected_PushButton ) { for ( int i = 0, n = GUI->InputData_TreeBox.NumberOfChildren(); i < n; ++i ) if ( GUI->InputData_TreeBox[i]->IsSelected() ) m_instance.p_inputData[i].enabled = !m_instance.p_inputData[i].enabled; UpdateInputDataList(); UpdateDataSelectionButtons(); } else if ( sender == GUI->RemoveSelected_PushButton ) { DrizzleIntegrationInstance::input_data_list newImages; for ( int i = 0, n = GUI->InputData_TreeBox.NumberOfChildren(); i < n; ++i ) if ( !GUI->InputData_TreeBox[i]->IsSelected() ) newImages.Add( m_instance.p_inputData[i] ); m_instance.p_inputData = newImages; UpdateInputDataList(); UpdateDataSelectionButtons(); } else if ( sender == GUI->Clear_PushButton ) { m_instance.p_inputData.Clear(); UpdateInputDataList(); UpdateDataSelectionButtons(); } else if ( sender == GUI->FullPaths_CheckBox ) { UpdateInputDataList(); UpdateDataSelectionButtons(); } else if ( sender == GUI->InputDirectory_ToolButton ) { GetDirectoryDialog d; d.SetCaption( "DrizzleIntegration: Select Input Directory" ); if ( d.Execute() ) GUI->InputDirectory_Edit.SetText( m_instance.p_inputDirectory = d.Directory() ); } else if ( sender == GUI->EnableRejection_CheckBox ) { m_instance.p_enableRejection = checked; } else if ( sender == GUI->EnableImageWeighting_CheckBox ) { m_instance.p_enableImageWeighting = checked; } else if ( sender == GUI->EnableSurfaceSplines_CheckBox ) { m_instance.p_enableSurfaceSplines = checked; } else if ( sender == GUI->ClosePreviousImages_CheckBox ) { m_instance.p_closePreviousImages = checked; } else if ( sender == GUI->SelectPreview_Button ) { PreviewSelectionDialog d; if ( d.Execute() ) if ( !d.Id().IsEmpty() ) { View view = View::ViewById( d.Id() ); if ( !view.IsNull() ) { m_instance.p_roi = view.Window().PreviewRect( view.Id() ); UpdateROIControls(); } } } }
void GradientsMergeMosaicInterface::__TargetImages_Click( Button& sender, bool checked ) { if ( sender == GUI->AddFiles_PushButton ) { OpenFileDialog d; d.EnableMultipleSelections(); d.LoadImageFilters(); d.SetCaption( "GradientsMergeMosaic: Select Target Frames" ); if ( d.Execute() ) { size_type i0 = TreeInsertionIndex( GUI->TargetImages_TreeBox ); for ( StringList::const_iterator i = d.FileNames().Begin(); i != d.FileNames().End(); ++i ) instance.targetFrames.Insert( instance.targetFrames.At( i0++ ), GradientsMergeMosaicInstance::ImageItem( *i ) ); UpdateTargetImagesList(); UpdateImageSelectionButtons(); } } else if ( sender == GUI->MoveUp_PushButton ) { for (int i=0,n = GUI->TargetImages_TreeBox.NumberOfChildren(); i<n; ++i) { if ( GUI->TargetImages_TreeBox[i]->IsSelected() ) { if(i==0) { // first is selected, we cannot really do something about this break; } else { // swap order with previous one GradientsMergeMosaicInstance::ImageItem tmp=instance.targetFrames[i-1]; instance.targetFrames[i-1]=instance.targetFrames[i]; instance.targetFrames[i]=tmp; GUI->TargetImages_TreeBox[i]->Select(false); GUI->TargetImages_TreeBox[i-1]->Select(true); UpdateTargetImageItem(i); UpdateTargetImageItem(i-1); } } } // FIXME this restores the original selection list, which is just what I dont want. // Added UpdateTargetImageItem() above which is slightly less efficient // UpdateTargetImagesList(); } else if ( sender == GUI->MoveDown_PushButton ) { for (int n = GUI->TargetImages_TreeBox.NumberOfChildren(),i=n-1; i>=0; --i) { if ( GUI->TargetImages_TreeBox[i]->IsSelected() ) { if(i==n-1) { // first is selected, we cannot really do something about this break; } else { // swap order with next one GradientsMergeMosaicInstance::ImageItem tmp=instance.targetFrames[i]; instance.targetFrames[i]=instance.targetFrames[i+1]; instance.targetFrames[i+1]=tmp; GUI->TargetImages_TreeBox[i]->Select(false); GUI->TargetImages_TreeBox[i+1]->Select(true); UpdateTargetImageItem(i); UpdateTargetImageItem(i+1); } } } // FIXME this restores the original selection list, which is just what I dont want. // Added UpdateTargetImageItem() above which is slightly less efficient // UpdateTargetImagesList(); } else if ( sender == GUI->SelectAll_PushButton ) { GUI->TargetImages_TreeBox.SelectAllNodes(); UpdateImageSelectionButtons(); } else if ( sender == GUI->InvertSelection_PushButton ) { for ( int i = 0, n = GUI->TargetImages_TreeBox.NumberOfChildren(); i < n; ++i ) GUI->TargetImages_TreeBox[i]->Select( !GUI->TargetImages_TreeBox[i]->IsSelected() ); UpdateImageSelectionButtons(); } else if ( sender == GUI->ToggleSelected_PushButton ) { for ( int i = 0, n = GUI->TargetImages_TreeBox.NumberOfChildren(); i < n; ++i ) if ( GUI->TargetImages_TreeBox[i]->IsSelected() ) instance.targetFrames[i].enabled = !instance.targetFrames[i].enabled; UpdateTargetImagesList(); UpdateImageSelectionButtons(); } else if ( sender == GUI->RemoveSelected_PushButton ) { GradientsMergeMosaicInstance::image_list newTargets; for ( int i = 0, n = GUI->TargetImages_TreeBox.NumberOfChildren(); i < n; ++i ) if ( !GUI->TargetImages_TreeBox[i]->IsSelected() ) newTargets.Add( instance.targetFrames[i] ); instance.targetFrames = newTargets; UpdateTargetImagesList(); UpdateImageSelectionButtons(); } else if ( sender == GUI->Clear_PushButton ) { instance.targetFrames.Clear(); UpdateTargetImagesList(); UpdateImageSelectionButtons(); } else if ( sender == GUI->FullPaths_CheckBox ) { UpdateTargetImagesList(); UpdateImageSelectionButtons(); } }