ImportMis.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #include "importmis.h"
  2. #include "..\forms\mainwindow.h"
  3. #include "..\forms\globalParams.h"
  4. extern IRender * pRS;
  5. extern MissionEditor* sMission;
  6. extern TMainWindow* MainWindow;
  7. TImportedMistEditor::TImportedMistEditor(int posX, int posY) : GUIWindow (NULL, posX, posY, 400, 300)
  8. {
  9. bPopupStyle = true;
  10. bAlwaysOnTop = true;
  11. dword dwWinWidth = pRS->GetScreenInfo3D().dwWidth - 10;
  12. dword dwWinHeight = pRS->GetScreenInfo3D().dwHeight - 10;
  13. SetWidth(dwWinWidth);
  14. SetHeight(dwWinHeight);
  15. SetScreenCenter();
  16. listBox = NEW GUIListBox (this, 5, 35, pRS->GetScreenInfo3D().dwWidth-10-15, pRS->GetScreenInfo3D().dwHeight - 10-65);
  17. listBox->FontColor = 0xFF000000;
  18. listBox->pFont->SetName ("arialcyrsmall");
  19. listBox->Items.Clear ();
  20. listBox->MakeFlat (true);
  21. listBox->OnMouseDBLClick = (CONTROL_EVENT)&TImportedMistEditor::OKPressed;
  22. btnOK = NEW GUIButton (this, 10, pRS->GetScreenInfo3D().dwHeight - 36, 100, 20);
  23. btnOK->Glyph->Load ("ok");
  24. btnOK->Caption = "Add";
  25. btnOK->FontColor = 0xFF000000;
  26. btnOK->pFont->SetName ("arialcyrsmall");
  27. btnOK->OnMousePressed = (CONTROL_EVENT)&TImportedMistEditor::OKPressed;
  28. btnOK->FlatButton = true;
  29. btnCancel = NEW GUIButton (this, 115, pRS->GetScreenInfo3D().dwHeight - 36, 100, 20);
  30. btnCancel->Glyph->Load ("cancel");
  31. btnCancel->Caption = "Remove";
  32. btnCancel->FontColor = 0xFF000000;
  33. btnCancel->pFont->SetName ("arialcyrsmall");
  34. btnCancel->OnMousePressed = (CONTROL_EVENT)&TImportedMistEditor::CancelPressed;
  35. btnCancel->FlatButton = true;
  36. btnCancel = NEW GUIButton (this, 115 + 105, pRS->GetScreenInfo3D().dwHeight - 36, 200, 20);
  37. //btnCancel->Glyph->Load ("cancel");
  38. btnCancel->Caption = "Close & Update mission";
  39. btnCancel->FontColor = 0xFF000000;
  40. btnCancel->pFont->SetName ("arialcyrsmall");
  41. btnCancel->OnMousePressed = (CONTROL_EVENT)&TImportedMistEditor::ClosePressed;
  42. btnCancel->FlatButton = true;
  43. array<string> & list = sMission->GetImportList();
  44. for (dword i = 0; i < list.Size(); i++)
  45. {
  46. const char* mName = list[i].c_str();
  47. listBox->Items.Add(mName);
  48. }
  49. }
  50. TImportedMistEditor::~TImportedMistEditor()
  51. {
  52. }
  53. void _cdecl TImportedMistEditor::OKPressed (GUIControl* sender)
  54. {
  55. //Close(NULL);
  56. //тут добавить новую миссию в список...
  57. GUIFileOpen* fo = NEW GUIFileOpen ();
  58. fo->Filters.Add (".xmlz");
  59. fo->FiltersDesc.Add ("Mission zip (Source)");
  60. fo->Filters.Add (".xml");
  61. fo->FiltersDesc.Add ("Mission (Source)");
  62. fo->OnOK = (CONTROL_EVENT)&TImportedMistEditor::NewMissionSelected;
  63. Application->ShowModal (fo);
  64. fo->Filter->SelectItem (1);
  65. fo->MakeFlat(true);
  66. }
  67. void _cdecl TImportedMistEditor::CancelPressed (GUIControl* sender)
  68. {
  69. //Close(NULL);
  70. //тут удалить миссию из списка...
  71. array<string> & list = sMission->GetImportList();
  72. int n = listBox->SelectedLine;
  73. if (n < 0) return;
  74. list.Extract(n);
  75. listBox->Items.Clear();
  76. for (dword i = 0; i < list.Size(); i++)
  77. {
  78. const char* mName = list[i].c_str();
  79. listBox->Items.Add(mName);
  80. }
  81. }
  82. void _cdecl TImportedMistEditor::ClosePressed (GUIControl* sender)
  83. {
  84. MainWindow->RefreshImportedMissions();
  85. Close(NULL);
  86. }
  87. void _cdecl TImportedMistEditor::NewMissionSelected (GUIControl* sender)
  88. {
  89. GUIFileOpen* dialog = (GUIFileOpen*)sender;
  90. string misName = dialog->FileName.GetRelativePath(gp->StartDirectory);
  91. listBox->Items.Add(misName);
  92. array<string> & list = sMission->GetImportList();
  93. list.Add(misName);
  94. }