/[ghosts]/ghosts/gedcomviewer/src/BakeryGateway/ViewFamilyLink.hh
ViewVC logotype

Diff of /ghosts/gedcomviewer/src/BakeryGateway/ViewFamilyLink.hh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by cpcp, Wed Mar 26 10:37:36 2003 UTC revision 1.4 by cpcp, Sun Aug 3 19:50:47 2003 UTC
# Line 33  Line 33 
33  #include <sigc++/object.h>  #include <sigc++/object.h>
34  #include <string>  #include <string>
35  #include "GEDCOMParser/FamilyRecord.hh"  #include "GEDCOMParser/FamilyRecord.hh"
36    #include "GEDCOMParser/Predicates/GenericPredicateIndividualRecords.hh"
37    #include "GEDCOMParser/Predicates/PredicateIndividualRecords.hh"
38    #include "GEDCOMParser/Predicates/PredicateIndividualRecordsAdapter.hh"
39  #include "BakeryGateway/ViewFamilyRecordNoteFactory.hh"  #include "BakeryGateway/ViewFamilyRecordNoteFactory.hh"
40  #include "MMIFamilyLink.hh"  #include "MMIFamilyLink.hh"
41  #include <iostream>  #include <iostream>
42    #include <functional>
43    
44  #define BUTTON_LEFT 1  #define BUTTON_LEFT 1
45  #define BUTTON_RIGHT 3  #define BUTTON_RIGHT 3
# Line 52  namespace BakeryGateway { Line 56  namespace BakeryGateway {
56        _during_load(false)        _during_load(false)
57      {};      {};
58    protected:    protected:
59      OneFamilyLinkHandler::PopdownLinkEditionReturnHandler_t RightButtonPressed(GdkEventButton * event, std::string const * src_key)      OneFamilyLinkHandler::PopdownLinkEditionReturnHandler_t RightButtonPressed(GdkEventButton * event, std::string const * src_key, SmartPtr < GEDCOMParser::Predicates::PredicateIndividualRecords > * predicate)
60      {      {
61        std::cerr << "entering RightButtonPressed " << std::endl;        std::cerr << "entering RightButtonPressed " << std::endl;
62        if (event->button == BUTTON_RIGHT)        if (event->button == BUTTON_RIGHT)
63          {          {
64            MMIFamilyLink * mmi_family_link = getMMIFamilyLink();            MMIFamilyLink * mmi_family_link = getMMIFamilyLink();
65            OneFamilyLink * one_family_link = mmi_family_link->getOneFamilyLink();            OneFamilyLink * one_family_link = mmi_family_link->getOneFamilyLink();
66              GEDCOMParser::LineageLinkageGedcom const * const lineage = get_document();
67              GEDCOMParser::IndividualRecords_t individus = lineage->getIndividualRecords();
68            LinkEditorMenu_t menus;            LinkEditorMenu_t menus;
69            MenuItems_t menus_items;            MenuItems_t menus_items;
70            menus_items.push_back(MenuItem_t("New","-1"));            menus_items.push_back(MenuItem_t(_("New"),"-1"));
71            menus_items.push_back(MenuItem_t("Alfred","1"));            if (!(*predicate).Null())
72            menus_items.push_back(MenuItem_t("Jean","2"));              {
73                  std::cerr << "PREDICATE != 0" << std::endl;
74                  GEDCOMParser::Predicates::PredicateIndividualRecordsAdapter adapter((*predicate).getPtr());        
75                  std::cerr << "adapter OK" << std::endl;
76                  GEDCOMParser::IndividualRecords_t::iterator iter = find_if(individus.begin(), individus.end(), adapter);
77                  do
78                    {
79                      std::cerr << "iter OK" << std::endl;
80                      if (iter != individus.end())
81                        {
82                          menus_items.push_back(MenuItem_t((*iter).second->getPersonalNames()[0]->getName(),(*iter).second->getId()));
83                          std::cerr << "menus_item.push_back OK" << std::endl;
84                          iter = find_if(++iter, individus.end(), adapter);
85                        }
86                        }
87                  while (iter != individus.end());
88                }
89              std::cerr << "while OK" << std::endl;
90            menus.push_back(menus_items);            menus.push_back(menus_items);
91              std::cerr << "menus.push_back OK" << std::endl;
92            menus_items.clear();            menus_items.clear();
93            menus_items.push_back(MenuItem_t("Thierry","3"));            menus_items.push_back(MenuItem_t("Thierry","3"));
94            menus_items.push_back(MenuItem_t("Mathieu","4"));            menus_items.push_back(MenuItem_t("Mathieu","4"));
# Line 115  namespace BakeryGateway { Line 139  namespace BakeryGateway {
139      {      {
140        return new OneFamilyLinkHandler::NavigationSlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::LeftButtonPressed), target_individu_id));        return new OneFamilyLinkHandler::NavigationSlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::LeftButtonPressed), target_individu_id));
141      };      };
142      
     OneFamilyLinkHandler::PopdownLinkEditionSlotHandler_t * getPopdownLinkEditionSlotHandler(std::string * src_individu_id)  
     {  
       return new OneFamilyLinkHandler::PopdownLinkEditionSlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::RightButtonPressed), src_individu_id));  
     };  
       
143      void ManageFamilyRecordNote(OneFamilyLink * family_link, GEDCOMParser::FamilyRecord * family_record)      void ManageFamilyRecordNote(OneFamilyLink * family_link, GEDCOMParser::FamilyRecord * family_record)
144      {      {
145        BakeryGateway::ViewFamilyRecordNoteFactory familyrecord_note_factory;            BakeryGateway::ViewFamilyRecordNoteFactory familyrecord_note_factory;    
# Line 130  namespace BakeryGateway { Line 149  namespace BakeryGateway {
149        tmp->set_parent_entity(family_record);                  tmp->set_parent_entity(family_record);          
150        return;        return;
151      };      };
152    
153    
154        virtual OneFamilyLinkHandler::PopdownLinkEditionSlotHandler_t * getPopdownLinkEditionSlotHandler(std::string * src_individu_id, SmartPtr < GEDCOMParser::Predicates::PredicateIndividualRecords > * predicate)
155        {
156          return new OneFamilyLinkHandler::PopdownLinkEditionSlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::RightButtonPressed), src_individu_id, predicate));
157        };
158            
159      bool _during_load;      bool _during_load;
160      virtual void family_added(void) = 0;      virtual void family_added(void) = 0;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26