Rev 177 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "../StdAfx.h"#include "MultiForm.h"#include "Form1.h"#include "SaveDialog.h"namespace Creator {bool MultiForm::LoadPackage(CMultiSpkFile *base, System::String ^filename){m_bLoading = true;m_sFilename = filename;CyString sFile = CyStringFromSystemString(filename);if ( !base ){m_pPackage = NULL;//m_pP->OpenPackage(sFile, &error);if ( !m_pPackage )return false;}elsem_pPackage = base;if ( !m_pPackage->GetFilename().Empty() )m_pTabPage->Text = SystemStringFromCyString(CFileIO(m_pPackage->GetFilename()).GetFilename());elsem_pTabPage->Text = SystemStringFromCyString(CFileIO(sFile).GetFilename());m_pPackage->SetChanged(false);this->Text = filename;this->UpdateView();m_pPackage->SetChanged(false);m_bLoading = false;return true;}void MultiForm::UpdateView(){this->textBox1->Text = SystemStringFromCyString(m_pPackage->GetName());this->UpdatePackages();}void MultiForm::UpdatePackages(){this->listView1->Items->Clear();for ( SMultiSpkFile *ms = m_pPackage->GetFileList()->First(); ms; ms = m_pPackage->GetFileList()->Next() ){if ( ms->bRemove ) continue;ListViewItem ^item = gcnew ListViewItem();switch (ms->iType){case TYPE_SPK:item->ImageKey = "standard";item->Text = "Package";break;case TYPE_XSP:item->ImageKey = "ship";item->Text = "Ship";break;default:item->ImageKey = "normal";item->Text = "Base";break;}this->listView1->Items->Add(item);item->SubItems->Add(SystemStringFromCyString(ms->sScriptName));item->SubItems->Add(SystemStringFromCyString(ms->sScriptAuthor));item->SubItems->Add(SystemStringFromCyString(ms->sScriptVersion));item->SubItems->Add(SystemStringFromCyString(ms->sName));item->SubItems->Add(SystemStringFromCyString(SPK::GetSizeString(ms->lSize)));item->Checked = ms->bOn;}this->listView1->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);((Form1 ^)this->MdiParent)->UpdateStatus();}void MultiForm::SaveAs(){if ( !this->CheckSave() )return;SaveFileDialog ^ofd = gcnew SaveFileDialog();ofd->Filter = "Multi Package Files (*.spk)|*.spk";ofd->AddExtension = true;CyString filename = m_pPackage->GetFilename();if ( filename.Empty() )filename = m_pPackage->GetName();filename = filename.FindReplace("/", "\\");ofd->FileName = SystemStringFromCyString(filename);ofd->FilterIndex = 1;ofd->RestoreDirectory = true;if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK ){m_pPackage->SetFilename(CyStringFromSystemString(ofd->FileName));m_sFilename = ofd->FileName;m_pTabPage->Text = SystemStringFromCyString(CFileIO(m_pPackage->GetFilename()).GetFilename());m_pMenuItem->Text = m_pTabPage->Text;this->Save();}}void MultiForm::Save(){if ( !this->CheckSave() )return;if ( m_pPackage->GetFilename().Empty() ){this->SaveAs();return;}SaveDialog ^save = gcnew SaveDialog(m_pPackage, SystemStringFromCyString(m_pPackage->GetFilename()));if ( save->ShowDialog(this) == Windows::Forms::DialogResult::Cancel )return;m_pPackage->SetChanged(false);this->UpdateChanged();MessageBox::Show("Package: " + SystemStringFromCyString(m_pPackage->GetFilename()) + "\nHas been saved!", "Saved", MessageBoxButtons::OK, MessageBoxIcon::Information);}bool MultiForm::CheckSave(){if ( m_pPackage->GetName().Empty() ){MessageBox::Show(this, "You must specify a package name", "Invalid Entry", MessageBoxButtons::OK, MessageBoxIcon::Stop);return false;}return true;}};