1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
| #include "mainframe.h"
#include "difftoolkit.h"
DiffToolKit DiffToolKit;
BEGIN_EVENT_TABLE(MainFrame,wxFrame)
EVT_BUTTON(ID_BTN_PARCOURIR, MainFrame::OnParcourir)
EVT_BUTTON(ID_BTN_CHARGER, MainFrame::OnCharge)
EVT_BUTTON(ID_BTN_CHANGER, MainFrame::OnChanger)
EVT_MENU(ID_MENU_PARCOURIR, MainFrame::OnParcourir)
EVT_MENU(ID_MENU_QUIT, MainFrame::OnQuit)
EVT_MENU(ID_MENU_ABOUT, MainFrame::OnAbout)
END_EVENT_TABLE()
MainFrame::MainFrame() : wxFrame(NULL,wxID_ANY,_T("DiffToolKit")) {
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
/* Déclaration des trois cadres : le principal et le Cardre Haut et Bas */
wxFlexGridSizer *Principal = new wxFlexGridSizer(0, 1, 0, 0);
wxStaticBoxSizer *CadreHaut = new wxStaticBoxSizer(wxVERTICAL, this, _T("Sakexe :"));
wxStaticBoxSizer *CadreBas = new wxStaticBoxSizer(wxVERTICAL, this, _T("Modifier le titre du sakexe :"));
/* La partie pour le menu */
menuFichier = new wxMenu;
menuBarre = new wxMenuBar();
menuFichier->Append(ID_MENU_PARCOURIR, _T("Ouvrir "));
menuFichier->AppendSeparator();
menuFichier->Append(ID_MENU_QUIT, _T("Quitter "));
menuBarre->Append(menuFichier, _T("&Fichier"));
menuFichier = new wxMenu;
menuFichier->Append(ID_MENU_ABOUT, _T("A propos "));
menuBarre->Append(menuFichier, _T("&Aide"));
SetMenuBar(menuBarre);
/* Le cadre du haut */
wxBoxSizer *CadreParcourir = new wxBoxSizer(wxHORIZONTAL);
wxStaticText *TexteParcourir = new wxStaticText(this, wxID_ANY, _T("Chemin vers le Sakexe :"));
cheminParcourir = new wxTextCtrl(this, wxID_ANY, _T(""), wxDefaultPosition, wxSize(300, -1));
btnParcourir = new wxButton(this, ID_BTN_PARCOURIR, _T("Parcourir"), wxDefaultPosition, wxSize(100,-1));
btnCharger = new wxButton(this, ID_BTN_CHARGER, _T("Charger"), wxDefaultPosition, wxSize(100, -1));
cheminParcourir->SetLabel(_T("Gloubi"));
CadreParcourir->Add(TexteParcourir, 0, wxEXPAND|wxTOP|wxRIGHT, 11);
CadreParcourir->Add(cheminParcourir, 1, wxTOP, 8);
CadreParcourir->Add(btnParcourir, 0, wxLEFT|wxTOP, 5);
CadreHaut->Add(CadreParcourir, 0, wxEXPAND|wxLEFT, 5);
CadreHaut->Add(btnCharger, 0, wxCENTRE, 0);
Principal->Add(CadreHaut, 1, wxEXPAND|wxALL, 5);
/* Le cadre du bas */
wxTextValidator validator(wxFILTER_INCLUDE_CHAR_LIST);
wxArrayString allowed_chars;
for (int i = 32; i < 126; i++) allowed_chars.Add(wxString::Format(_T("%c"), i));
validator.SetIncludes(allowed_chars);
wxBoxSizer *NomActuel = new wxBoxSizer(wxHORIZONTAL);
wxStaticText *NomActuelTexte = new wxStaticText(this, wxID_ANY, _T("L'ancien nom du sakexe :"));
NomActuelReponse = new wxStaticText(this, wxID_ANY, _T("Veuillez sélectionner un sakexe à charger."));
wxBoxSizer *NouveauNom = new wxBoxSizer(wxHORIZONTAL);
wxStaticText *NouveauNomTexte = new wxStaticText(this, wxID_ANY, _T("Le nouveau nom du sakexe :"));
NouveauNomReponse = new wxTextCtrl(this, wxID_ANY, _T(""), wxDefaultPosition, wxSize(300, -1), 0, validator);
btnChanger = new wxButton(this, ID_BTN_CHANGER, _T("Changer"), wxDefaultPosition, wxSize(100, -1));
NomActuel->Add(NomActuelTexte, 0, wxALL, 5);
NomActuel->Add(NomActuelReponse, 0, wxALL, 5);
NouveauNomReponse->SetMaxLength(SAKEXE_LENGHT);
CadreBas->Add(NomActuel, 1, wxEXPAND);
NouveauNom->Add(NouveauNomTexte, 0, wxTOP, 8);
NouveauNom->Add(NouveauNomReponse, 0, wxLEFT|wxRIGHT|wxTOP, 5);
CadreBas->Add(NouveauNom, 0, wxLEFT|wxBOTTOM, 5);
btnChanger->Enable(FALSE);
CadreBas->Add(btnChanger, 0, wxCENTRE|wxTOP, 2);
Principal->Add(CadreBas, 1, wxALL|wxEXPAND, 5);
SetSizer(Principal);
Principal->SetSizeHints(this);
}
MainFrame::~MainFrame() { }
void MainFrame::OnParcourir(wxCommandEvent &event) {
wxString nomfichier = wxFileSelector(_T("Ouvrir") , _T(""), _T(""), _T(""), _T("Sakexe (*.exe)|*.exe|All Files|*.*"), wxOPEN);
cheminParcourir->SetValue(nomfichier);
}
void MainFrame::OnQuit(wxCommandEvent &event) {
Close();
}
void MainFrame::OnCharge(wxCommandEvent &event) {
std::string fileName;
fileName = cheminParcourir->GetValue().mb_str();
if (!DiffToolKit.setFileName(fileName)) {
wxMessageBox(_T("Problème lors du chargement du fichier."));
return;
}
if (!DiffToolKit.readPos()) {
wxMessageBox(_T("Problème lors du chargement du fichier."));
return;
}
if (!DiffToolKit.readOldName()) {
wxMessageBox(_T("Problème lors du chargement du fichier."));
return;
}
btnChanger->Enable(TRUE);
std::string OName = DiffToolKit.getSakexeOldName();
wxString OldName = wxString(OName.c_str(), wxConvUTF8);
NomActuelReponse->SetLabel(OldName);
}
void MainFrame::OnChanger(wxCommandEvent &event) {
if (NouveauNomReponse->GetValue().size() == 0) {
wxMessageBox(_T("Veuillez rentrer un nouveau nom pour le sakexe." + NouveauNomReponse->GetValue()));
return;
}
std::string newName;
newName.erase();
newName = NouveauNomReponse->GetValue().mb_str();
DiffToolKit.setNewName(newName);
if (!DiffToolKit.writeNewName()) {
wxMessageBox(_T("Problème lors de l'écriture dans le sakexe."));
return;
}
if (!DiffToolKit.readOldName()) {
wxMessageBox(_T("Problème lors du chargement du fichier."));
return;
}
std::string OName = DiffToolKit.getSakexeOldName();
wxString OldName = wxString(OName.c_str(), wxConvUTF8);
NomActuelReponse->SetLabel(OldName);
}
void MainFrame::OnAbout(wxCommandEvent &event) {
wxMessageBox(_T("DiffToolKit.\nCopie interdite.\n\nAuteur : Atikae\nVersion: 0.1Beta\n\nPour me contacter : atikae@gmail.com"));
} |
Partager