]> SALOME platform Git repositories - modules/hexablock.git/blob - src/HEXABLOCK/Hex.cxx
Salome HOME
First publish of HEXABLOCKcomponant
[modules/hexablock.git] / src / HEXABLOCK / Hex.cxx
1
2 // C++ : La clase principale de Hexa
3
4 #include "Hex.hxx"
5
6 #include "HexDocument.hxx"
7
8 BEGIN_NAMESPACE_HEXA
9
10 // ======================================================== Constructeur
11 Hex::Hex ()
12 {
13 }
14 // ======================================================== Destructeur
15 Hex::~Hex ()
16 {
17    int nbre = liste_documents.size();
18    for (int nd=0 ; nd<nbre ; nd++) 
19        delete liste_documents [nd];
20 }
21 // ======================================================== countDocument
22 int Hex::countDocument ()
23 {
24    return liste_documents.size();
25 }
26 // ======================================================== getDocument
27 Document* Hex::getDocument (int nro)
28 {
29    if (nro<0 || nro>=(int)liste_documents.size())
30       return NULL;
31    
32    return liste_documents [nro];
33 }
34 // ======================================================== removeDocument
35 void Hex::removeDocument (Document* doc)
36 {
37    int nbre = liste_documents.size();
38    for (int nd=0 ; nd<nbre ; nd++) 
39        {
40        if (doc == liste_documents [nd])
41           {
42           liste_documents.erase (liste_documents.begin()+nd);
43           delete doc;
44           return;
45           }
46        }
47                       // Pas trouve dans la liste. On detruit quand meme
48     delete doc;
49 }
50 // ======================================================== addDocument
51 Document* Hex::addDocument ()
52 {
53    char   un_nom [40];
54    cpchar nomdoc = get_temp_name ("HexaTempo%02d.dat", un_nom);
55
56    Document* doc = new Document (nomdoc);
57    
58    liste_documents.push_back (doc);
59    return doc;
60 }
61 // ======================================================== loadDocument
62 Document* Hex::loadDocument (const char* filename)
63 {
64    Document* doc = new Document (filename);
65    
66    liste_documents.push_back (doc);
67    doc->loadXml ();
68    return doc;
69 }
70 END_NAMESPACE_HEXA