[Scummvm-cvs-logs] SF.net SVN: scummvm: [28172] tools/branches/gsoc2007-toolsgui

lightcast at users.sourceforge.net lightcast at users.sourceforge.net
Mon Jul 23 02:40:08 CEST 2007


Revision: 28172
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28172&view=rev
Author:   lightcast
Date:     2007-07-22 17:40:06 -0700 (Sun, 22 Jul 2007)

Log Message:
-----------
Extraction panel designed and added.  All needed objects for the entire GUI are now in place, but are not yet functional.  Layout may be changed later.

Modified Paths:
--------------
    tools/branches/gsoc2007-toolsgui/tools_gui.cpp
    tools/branches/gsoc2007-toolsgui/tools_gui.h

Modified: tools/branches/gsoc2007-toolsgui/tools_gui.cpp
===================================================================
--- tools/branches/gsoc2007-toolsgui/tools_gui.cpp	2007-07-23 00:30:18 UTC (rev 28171)
+++ tools/branches/gsoc2007-toolsgui/tools_gui.cpp	2007-07-23 00:40:06 UTC (rev 28172)
@@ -25,10 +25,16 @@
 IMPLEMENT_APP(ToolsGui)
 
 BEGIN_EVENT_TABLE( CompressionPanel, wxPanel )
-	EVT_CHOICE(kToolChoice, CompressionPanel::OnToolChange)
-	EVT_CHOICE(kCompressionChoice, CompressionPanel::OnCompressionChange)
+	EVT_CHOICE(kCompressionToolChoice, CompressionPanel::OnCompressionToolChange)
+	EVT_CHOICE(kCompressionTypeChoice, CompressionPanel::OnCompressionTypeChange)
+	EVT_CHOICE(kCompressionStartButton, CompressionPanel::OnCompressionStart)
 END_EVENT_TABLE()
 
+BEGIN_EVENT_TABLE( ExtractionPanel, wxPanel )
+	EVT_CHOICE(kExtractionToolChoice, ExtractionPanel::OnExtractionToolChange)
+	EVT_CHOICE(kExtractionStartButton, ExtractionPanel::OnExtractionStart)
+END_EVENT_TABLE()
+
 bool ToolsGui::OnInit() {
 	MainFrame *frame = new MainFrame("ScummVM Tools");
 
@@ -45,12 +51,10 @@
 	wxNotebook *mainNotebook = new wxNotebook(this, -1);
 
 	CompressionPanel *compressionTools = new CompressionPanel(mainNotebook);
-	wxPanel *extractionTools = new wxPanel(mainNotebook);
-	wxPanel *scriptTools = new wxPanel(mainNotebook);
+	wxPanel *extractionTools = new ExtractionPanel(mainNotebook);
 
 	mainNotebook->AddPage(compressionTools, "Compression", false, -1);
 	mainNotebook->AddPage(extractionTools, "Extraction", false, -1);
-	mainNotebook->AddPage(scriptTools, "Script", false, -1);
 
 	mainSizer->Add(mainNotebook, 1, wxEXPAND);
 	mainSizer->SetSizeHints(this);
@@ -85,43 +89,45 @@
 	sizer->Add(box, 1, wxEXPAND);
 }
 
+/* ----- Compression ----- */
+
 CompressionOptions::CompressionOptions(wxWindow *parent) : wxPanel(parent) {
-	wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
+	wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
 	this->SetSizer(sizer);
 
 	wxPanel *grid = new wxPanel(this);
-	wxGridSizer *gridSizer = new wxGridSizer(5, 0, 10);
+	wxGridSizer *gridSizer = new wxGridSizer(2, 5, 0, 10);
 	grid->SetSizer(gridSizer);
 
-	wxStaticText *minBitrateLabel = new wxStaticText(grid, -1, "Minimum Bitrate", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_minBitrateChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumValidBitrates, kValidBitrateNames);
+	wxStaticText *minBitrateLabel = new wxStaticText(grid, wxID_ANY, "Minimum Bitrate");
+	_minBitrateChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumValidBitrates, kValidBitrateNames);
 
-	wxStaticText *avgBitrateLabel = new wxStaticText(grid, -1, "Average Bitrate", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_avgBitrateChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumValidBitrates, kValidBitrateNames);
+	wxStaticText *avgBitrateLabel = new wxStaticText(grid, wxID_ANY, "Average Bitrate");
+	_avgBitrateChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumValidBitrates, kValidBitrateNames);
 
-	wxStaticText *maxBitrateLabel = new wxStaticText(grid, -1, "Maximum Bitrate", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_maxBitrateChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumValidBitrates, kValidBitrateNames);
+	wxStaticText *maxBitrateLabel = new wxStaticText(grid, wxID_ANY, "Maximum Bitrate");
+	_maxBitrateChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumValidBitrates, kValidBitrateNames);
 
-	wxStaticText *vbrQualityLabel = new wxStaticText(grid, -1, "VBR Quality", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_vbrQualityChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumValidQuality, kVaildQualityNames);
+	wxStaticText *vbrQualityLabel = new wxStaticText(grid, wxID_ANY, "VBR Quality");
+	_vbrQualityChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumValidQuality, kVaildQualityNames);
 
-	wxStaticText *mpegQualityLabel = new wxStaticText(grid, -1, "MPEG Quality", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_mpegQualityChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumValidQuality, kVaildQualityNames);
+	wxStaticText *mpegQualityLabel = new wxStaticText(grid, wxID_ANY, "MPEG Quality");
+	_mpegQualityChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumValidQuality, kVaildQualityNames);
 
-	wxStaticText *compressionLevelLabel = new wxStaticText(grid, -1, "Compression Level", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_compressionLevelChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumValidCompressionLevels, kVaildCompressionLevels);
+	wxStaticText *compressionLevelLabel = new wxStaticText(grid, wxID_ANY, "Compression Level");
+	_compressionLevelChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumValidCompressionLevels, kVaildCompressionLevels);
 
-	wxStaticText *modeLabel = new wxStaticText(grid, -1, "Compression Mode", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_modeChooser = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumMP3Modes, kMP3ModeNames);
+	wxStaticText *modeLabel = new wxStaticText(grid, wxID_ANY, "Compression Mode");
+	_modeChooser = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumMP3Modes, kMP3ModeNames);
 
-	wxStaticText *blockSizeLabel = new wxStaticText(grid, -1, "Block Size", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_blockSize = new wxChoice(grid, -1, wxDefaultPosition, wxDefaultSize, kNumFLACBlocksize, kFLACBlocksize);
+	wxStaticText *blockSizeLabel = new wxStaticText(grid, wxID_ANY, "Block Size");
+	_blockSize = new wxChoice(grid, wxID_ANY, wxDefaultPosition, wxDefaultSize, kNumFLACBlocksize, kFLACBlocksize);
 
-	wxStaticText *verifyLabel = new wxStaticText(grid, -1, "Verify", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_verifyChooser = new wxCheckBox(grid, -1, "");
+	wxStaticText *verifyLabel = new wxStaticText(grid, wxID_ANY, "Verify");
+	_verifyChooser = new wxCheckBox(grid, wxID_ANY, "");
 
-	wxStaticText *silentLabel = new wxStaticText(grid, -1, "Silent", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
-	_silentChooser = new wxCheckBox(grid, -1, "");
+	wxStaticText *silentLabel = new wxStaticText(grid, wxID_ANY, "Silent");
+	_silentChooser = new wxCheckBox(grid, wxID_ANY, "");
 
 	gridSizer->Add(minBitrateLabel, 0, wxALIGN_CENTER);
 	gridSizer->Add(avgBitrateLabel, 0, wxALIGN_CENTER);
@@ -147,10 +153,10 @@
 	gridSizer->Add(_verifyChooser, 0, wxALIGN_CENTER);
 	gridSizer->Add(_silentChooser, 0, wxALIGN_CENTER);
 
-	wxStaticBoxSizer *box = new wxStaticBoxSizer(wxHORIZONTAL, this, "Compression Options");
-	box->Add(grid, 0, wxEXPAND);
+	wxStaticBoxSizer *box = new wxStaticBoxSizer(wxVERTICAL, this, "Compression Options");
+	box->Add(grid, 0, wxALIGN_CENTER);
 
-	sizer->Add(box);
+	sizer->Add(box, 0, wxEXPAND);
 }
 
 CompressionPanel::CompressionPanel(wxWindow *parent) : wxPanel(parent) {
@@ -163,9 +169,9 @@
 	topPanelSizer->AddGrowableCol(1);
 	topPanel->SetSizer(topPanelSizer);
 
-	_toolChooserPanel = new DropDownBox((wxWindow *)topPanel, kToolChoice, "Choose Tool", kNumCompressionTools, kCompressionToolNames);
+	_compressionToolChooserPanel = new DropDownBox((wxWindow *)topPanel, kCompressionToolChoice, "Choose Tool", kNumCompressionTools, kCompressionToolNames);
 	_inputPanel = new IOChooser(topPanel, "Input", "", true);
-	_compressionTypePanel = new DropDownBox(topPanel, kCompressionChoice, "Choose Compression", kNumCompressionTypes, kCompressionTypeNames);
+	_compressionTypePanel = new DropDownBox(topPanel, kCompressionTypeChoice, "Choose Compression", kNumCompressionTypes, kCompressionTypeNames);
 	_outputPanel = new IOChooser(topPanel, "Output", "", true);
 
 	/* Bottom Panel */
@@ -174,14 +180,14 @@
 	bottomPanel->SetSizer(bottomPanelSizer);
 
 	_compressionOptionsPanel = new CompressionOptions(bottomPanel);
-	_startButton = new wxButton(bottomPanel, kStartButton, "START");
+	_startButton = new wxButton(bottomPanel, kCompressionStartButton, "START");
 	_toolOutput = new wxTextCtrl(bottomPanel, -1, "", wxDefaultPosition, wxSize(-1, 300), wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH);
 
-	topPanelSizer->Add(_toolChooserPanel, 1, wxEXPAND);
+	topPanelSizer->Add(_compressionToolChooserPanel, 1, wxEXPAND);
 	topPanelSizer->Add(_inputPanel, 4, wxEXPAND);
 	topPanelSizer->Add(_compressionTypePanel, 1, wxEXPAND);
 	topPanelSizer->Add(_outputPanel, 4, wxEXPAND);
-	bottomPanelSizer->Add(_compressionOptionsPanel, 0, wxALIGN_CENTER | wxBOTTOM, 5);
+	bottomPanelSizer->Add(_compressionOptionsPanel, 0, wxEXPAND | wxBOTTOM, 5);
 	bottomPanelSizer->Add(_startButton, 0, wxEXPAND | wxBOTTOM, 5);
 	bottomPanelSizer->Add(_toolOutput, 1, wxEXPAND);
 
@@ -189,18 +195,106 @@
 	sizer->Add(bottomPanel, 1, wxEXPAND);
 
 	/* Simulate selecting the first tool and MP3 to set up the compression options */
-	_toolChooserPanel->_choice->SetSelection(0);
-	wxCommandEvent toolEvent = wxCommandEvent(wxEVT_COMMAND_CHOICE_SELECTED, kToolChoice);
-	this->OnToolChange(toolEvent);
+	_compressionToolChooserPanel->_choice->SetSelection(0);
+	wxCommandEvent toolEvent = wxCommandEvent(wxEVT_COMMAND_CHOICE_SELECTED, kCompressionToolChoice);
+	this->OnCompressionToolChange(toolEvent);
 
 	_compressionTypePanel->_choice->SetSelection(0);
-	wxCommandEvent compressionEvent = wxCommandEvent(wxEVT_COMMAND_CHOICE_SELECTED, kCompressionChoice);
-	this->OnCompressionChange(compressionEvent);
+	wxCommandEvent compressionEvent = wxCommandEvent(wxEVT_COMMAND_CHOICE_SELECTED, kCompressionTypeChoice);
+	this->OnCompressionTypeChange(compressionEvent);
 }
 
-void CompressionPanel::OnToolChange(wxCommandEvent &event) {
-	wxString selectedTool = this->_toolChooserPanel->_choice->GetStringSelection();
+/* ----- Extraction ----- */
 
+ExtractionOptions::ExtractionOptions(wxWindow *parent) : wxPanel(parent) {
+	wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+	this->SetSizer(sizer);
+
+	wxPanel *grid = new wxPanel(this);
+	wxFlexGridSizer *gridSizer = new wxFlexGridSizer(2, 5, 0, 20);
+	grid->SetSizer(gridSizer);
+
+	wxStaticText *parallactionSmallLabel = new wxStaticText(grid, -1, "Small Archive");
+	_parallactionSmall = new wxCheckBox(grid, -1, "");
+
+	wxStaticText *kyraAmigaLabel = new wxStaticText(grid, -1, "Amiga .PAK File");
+	_kyraAmiga = new wxCheckBox(grid, -1, "");
+
+	wxStaticText *kyraAllFilesLabel = new wxStaticText(grid, -1, "Extract All Files");
+	_kyraAllFiles = new wxCheckBox(grid, -1, "");
+
+	wxStaticText *kyraSingleFileLabel = new wxStaticText(grid, -1, "Extract Single File");
+	_kyraSingleFile = new wxCheckBox(grid, -1, "");
+
+	wxStaticText *kyraFilenameLabel = new wxStaticText(grid, -1, "Filename");
+	_kyraFilename = new wxTextCtrl(grid, -1, "");
+
+	gridSizer->Add(parallactionSmallLabel, 0, wxALIGN_CENTER);
+	gridSizer->Add(kyraAmigaLabel, 0, wxALIGN_CENTER);
+	gridSizer->Add(kyraAllFilesLabel, 0, wxALIGN_CENTER);
+	gridSizer->Add(kyraSingleFileLabel, 0, wxALIGN_CENTER);
+	gridSizer->Add(kyraFilenameLabel, 0, wxALIGN_CENTER);
+
+	gridSizer->Add(_parallactionSmall, 0, wxALIGN_CENTER);
+	gridSizer->Add(_kyraAmiga, 0, wxALIGN_CENTER);
+	gridSizer->Add(_kyraAllFiles, 0, wxALIGN_CENTER);
+	gridSizer->Add(_kyraSingleFile, 0, wxALIGN_CENTER);
+	gridSizer->Add(_kyraFilename, 0, wxALIGN_CENTER);
+
+	wxStaticBoxSizer *box = new wxStaticBoxSizer(wxVERTICAL, this, "Extraction Options");
+	box->Add(grid, 0, wxALIGN_CENTER);
+
+	sizer->Add(box, 0, wxEXPAND);
+}
+
+ExtractionPanel::ExtractionPanel(wxWindow *parent) : wxPanel(parent) {
+	wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+	this->SetSizer(sizer);
+
+	/* Top Panel */
+	wxPanel *topPanel = new wxPanel(this);
+	wxFlexGridSizer *topPanelSizer = new wxFlexGridSizer(3, 2, 0, 5);
+	topPanelSizer->AddGrowableCol(1);
+	topPanel->SetSizer(topPanelSizer);
+
+	_extractionToolChooserPanel = new DropDownBox((wxWindow *)topPanel, kExtractionToolChoice, "Choose Tool", kNumExtractionTools, kExtractionToolNames);
+	_input1Panel = new IOChooser(topPanel, "Input 1", "", true);
+	_input2Panel = new IOChooser(topPanel, "Input 2", "", true);
+	_outputPanel = new IOChooser(topPanel, "Output", "", true);
+
+	/* Bottom Panel */
+	wxPanel *bottomPanel = new wxPanel(this);
+	wxBoxSizer *bottomPanelSizer = new wxBoxSizer(wxVERTICAL);
+	bottomPanel->SetSizer(bottomPanelSizer);
+
+	_extractionOptionsPanel = new ExtractionOptions(bottomPanel);
+	_startButton = new wxButton(bottomPanel, kExtractionStartButton, "START");
+	_toolOutput = new wxTextCtrl(bottomPanel, -1, "", wxDefaultPosition, wxSize(-1, 300), wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH);
+
+	topPanelSizer->Add(_extractionToolChooserPanel, 1, wxEXPAND);
+	topPanelSizer->Add(_input1Panel, 4, wxEXPAND);
+	topPanelSizer->AddStretchSpacer();
+	topPanelSizer->Add(_input2Panel, 4, wxEXPAND);
+	topPanelSizer->AddStretchSpacer();
+	topPanelSizer->Add(_outputPanel, 4, wxEXPAND);
+	bottomPanelSizer->Add(_extractionOptionsPanel, 0, wxEXPAND | wxBOTTOM, 5);
+	bottomPanelSizer->Add(_startButton, 0, wxEXPAND | wxBOTTOM, 5);
+	bottomPanelSizer->Add(_toolOutput, 1, wxEXPAND);
+
+	sizer->Add(topPanel, 0, wxEXPAND);
+	sizer->Add(bottomPanel, 1, wxEXPAND);
+
+	/* Simulate selecting the first tool and MP3 to set up the compression options */
+	_extractionToolChooserPanel->_choice->SetSelection(0);
+	wxCommandEvent toolEvent = wxCommandEvent(wxEVT_COMMAND_CHOICE_SELECTED, kExtractionToolChoice);
+	this->OnExtractionToolChange(toolEvent);
+}
+
+/* ----- Compression Events ----- */
+
+void CompressionPanel::OnCompressionToolChange(wxCommandEvent &event) {
+	wxString selectedTool = this->_compressionToolChooserPanel->_choice->GetStringSelection();
+
 	this->_inputPanel->_browse->Enable(true);
 	this->_inputPanel->_text->Enable(true);
 	this->_outputPanel->_isFileChooser = false;
@@ -263,7 +357,7 @@
 	}
 }
 
-void CompressionPanel::OnCompressionChange(wxCommandEvent &event) {
+void CompressionPanel::OnCompressionTypeChange(wxCommandEvent &event) {
 	wxString selectedCompression = this->_compressionTypePanel->_choice->GetStringSelection();
 
 	if (selectedCompression == "MP3") {
@@ -311,3 +405,130 @@
 		this->_compressionOptionsPanel->_silentChooser->Enable(false);
 	}
 }
+
+void CompressionPanel::OnCompressionStart(wxCommandEvent &event) {
+
+}
+
+/* ----- Extraction Events ----- */
+
+void ExtractionPanel::OnExtractionToolChange(wxCommandEvent &event) {
+	wxString selectedTool = this->_extractionToolChooserPanel->_choice->GetStringSelection();
+
+	this->_input1Panel->_browse->Enable(true);
+	this->_input1Panel->_text->Enable(true);
+	this->_input1Panel->_isFileChooser = true;
+	this->_input2Panel->_isFileChooser = true;
+	this->_outputPanel->_isFileChooser = false;
+
+	if (selectedTool == "extract_agos") {
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_kyra") {
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(true);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(true);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(true);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(true);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_loom_tg16") {
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_mm_apple") {
+		this->_input2Panel->_browse->Enable(true);
+		this->_input2Panel->_text->Enable(true);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_mm_c64") {
+		this->_input2Panel->_browse->Enable(true);
+		this->_input2Panel->_text->Enable(true);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_mm_nes") {
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_parallaction") {
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_outputPanel->_browse->Enable(true);
+		this->_outputPanel->_text->Enable(true);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(true);
+	} else if (selectedTool == "extract_scumm_mac") {
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else if (selectedTool == "extract_zak_c64") {
+		this->_input2Panel->_browse->Enable(true);
+		this->_input2Panel->_text->Enable(true);
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	} else {
+		this->_input1Panel->_browse->Enable(false);
+		this->_input1Panel->_text->Enable(false);
+		this->_input1Panel->_isFileChooser = false;
+		this->_input2Panel->_browse->Enable(false);
+		this->_input2Panel->_text->Enable(false);
+		this->_input2Panel->_isFileChooser = false;
+		this->_outputPanel->_browse->Enable(false);
+		this->_outputPanel->_text->Enable(false);
+		this->_outputPanel->_isFileChooser = false;
+		this->_extractionOptionsPanel->_kyraAllFiles->Enable(false);
+		this->_extractionOptionsPanel->_kyraAmiga->Enable(false);
+		this->_extractionOptionsPanel->_kyraFilename->Enable(false);
+		this->_extractionOptionsPanel->_kyraSingleFile->Enable(false);
+		this->_extractionOptionsPanel->_parallactionSmall->Enable(false);
+	}
+}
+
+void ExtractionPanel::OnExtractionStart(wxCommandEvent &event) {
+
+}

Modified: tools/branches/gsoc2007-toolsgui/tools_gui.h
===================================================================
--- tools/branches/gsoc2007-toolsgui/tools_gui.h	2007-07-23 00:30:18 UTC (rev 28171)
+++ tools/branches/gsoc2007-toolsgui/tools_gui.h	2007-07-23 00:40:06 UTC (rev 28172)
@@ -28,6 +28,9 @@
 #define kNumCompressionTools 12
 wxString kCompressionToolNames[12] = {"compress_agos", "compress_agos (MAC)", "compress_kyra", "compress_queen",  "compress_saga",  "compress_scumm_bun",  "compress_scumm_san",  "compress_scumm_sou",  "compress_sword1",  "compress_sword2",  "compress_touche", "encode_dxa"};
 
+#define kNumExtractionTools 9
+wxString kExtractionToolNames[9] = {"extract_agos", "extract_kyra", "extract_loom_tg16", "extract_mm_apple", "extract_mm_c64", "extract_mm_nes", "extract_parallaction", "extract_scumm_mac", "extract_zak_c64"};
+
 #define kNumCompressionTypes 3
 wxString kCompressionTypeNames[3] = {"MP3", "Vorbis", "FLAC"};
 
@@ -72,6 +75,8 @@
 	bool _isFileChooser;
 };
 
+/* ----- Compression ----- */
+
 class CompressionOptions : public wxPanel {
 public:
 	CompressionOptions(wxWindow *parent);
@@ -92,7 +97,7 @@
 public:
 	CompressionPanel(wxWindow *parent);
 
-	DropDownBox *_toolChooserPanel;
+	DropDownBox *_compressionToolChooserPanel;
 	DropDownBox *_compressionTypePanel;
 	IOChooser *_inputPanel;
 	IOChooser *_outputPanel;
@@ -101,13 +106,54 @@
 	wxTextCtrl *_toolOutput;
 
 	enum {
-		kToolChoice,
-		kCompressionChoice,
-		kStartButton
+		kCompressionToolChoice,
+		kCompressionTypeChoice,
+		kCompressionInputBrowse,
+		kCompressionStartButton
 	} kEventID;
 
-	void OnToolChange(wxCommandEvent &event);
-	void OnCompressionChange(wxCommandEvent &event);
+	void OnCompressionToolChange(wxCommandEvent &event);
+	void OnCompressionTypeChange(wxCommandEvent &event);
+	void OnCompressionStart(wxCommandEvent &event);
 
 	DECLARE_EVENT_TABLE()
 };
+
+/* ----- Extraction ----- */
+
+class ExtractionOptions : public wxPanel {
+public:
+	ExtractionOptions(wxWindow *parent);
+
+	wxCheckBox *_kyraAmiga;
+	wxCheckBox *_kyraAllFiles;
+	wxCheckBox *_kyraSingleFile;
+	wxTextCtrl *_kyraFilename;
+	wxCheckBox *_parallactionSmall;
+};
+
+class ExtractionPanel : public wxPanel {
+public:
+	ExtractionPanel(wxWindow *parent);
+
+	DropDownBox *_extractionToolChooserPanel;
+	IOChooser *_input1Panel;
+	IOChooser *_input2Panel;
+	IOChooser *_outputPanel;
+	ExtractionOptions *_extractionOptionsPanel;
+	wxButton *_startButton;
+	wxTextCtrl *_toolOutput;
+
+	enum {
+		kExtractionToolChoice,
+		kExtractionInput1Browse,
+		kExtractionInput2Browse,
+		kExtractionOutputBrowse,
+		kExtractionStartButton
+	} kEventID;
+
+	void OnExtractionToolChange(wxCommandEvent &event);
+	void OnExtractionStart(wxCommandEvent &event);
+
+	DECLARE_EVENT_TABLE()
+};


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list