| 34 |
#include <string> |
#include <string> |
| 35 |
#include "GEDCOMParser/FamilyRecord.hh" |
#include "GEDCOMParser/FamilyRecord.hh" |
| 36 |
#include "BakeryGateway/ViewFamilyRecordNoteFactory.hh" |
#include "BakeryGateway/ViewFamilyRecordNoteFactory.hh" |
| 37 |
|
#include "MMIFamilyLink.hh" |
| 38 |
|
#include <iostream> |
| 39 |
|
|
| 40 |
|
#define BUTTON_LEFT 1 |
| 41 |
|
#define BUTTON_RIGHT 3 |
| 42 |
|
|
| 43 |
namespace BakeryGateway { |
namespace BakeryGateway { |
| 44 |
template < class T_FamilyLink > |
template < class T_FamilyLink > |
| 52 |
_during_load(false) |
_during_load(false) |
| 53 |
{}; |
{}; |
| 54 |
protected: |
protected: |
| 55 |
OneFamilyLinkHandler::ReturnHandler_t ButtonPressed(GdkEventButton * event, std::string const * key) |
OneFamilyLinkHandler::PopdownLinkEditionReturnHandler_t RightButtonPressed(GdkEventButton * event, std::string const * src_key) |
| 56 |
{ |
{ |
| 57 |
|
std::cerr << "entering RightButtonPressed " << std::endl; |
| 58 |
|
if (event->button == BUTTON_RIGHT) |
| 59 |
|
{ |
| 60 |
|
MMIFamilyLink * mmi_family_link = getMMIFamilyLink(); |
| 61 |
|
OneFamilyLink * one_family_link = mmi_family_link->getOneFamilyLink(); |
| 62 |
|
LinkEditorMenu_t menus; |
| 63 |
|
MenuItems_t menus_items; |
| 64 |
|
menus_items.push_back(MenuItem_t("New","-1")); |
| 65 |
|
menus_items.push_back(MenuItem_t("Alfred","1")); |
| 66 |
|
menus_items.push_back(MenuItem_t("Jean","2")); |
| 67 |
|
menus.push_back(menus_items); |
| 68 |
|
menus_items.clear(); |
| 69 |
|
menus_items.push_back(MenuItem_t("Thierry","3")); |
| 70 |
|
menus_items.push_back(MenuItem_t("Mathieu","4")); |
| 71 |
|
menus.push_back(menus_items); |
| 72 |
|
menus.push_back(menus_items); |
| 73 |
|
one_family_link->PopupLinkEditorMenu(menus); |
| 74 |
|
} |
| 75 |
|
return 1; |
| 76 |
|
}; |
| 77 |
|
|
| 78 |
|
OneFamilyLinkHandler::NavigationReturnHandler_t LeftButtonPressed(GdkEventButton * event, std::string const * target_key) |
| 79 |
|
{ |
| 80 |
|
|
| 81 |
bool new_win = false; |
bool new_win = false; |
| 82 |
if (event->state & GDK_CONTROL_MASK) |
if (event->button == BUTTON_LEFT) |
| 83 |
{ |
{ |
| 84 |
new_win = true; |
if (event->state & GDK_CONTROL_MASK) |
| 85 |
|
{ |
| 86 |
|
new_win = true; |
| 87 |
|
} |
| 88 |
|
if (*target_key != "") |
| 89 |
|
{ |
| 90 |
|
Navigate(*target_key, new_win); |
| 91 |
|
} |
| 92 |
} |
} |
| 93 |
Navigate(*key, new_win); |
return 1; |
|
return false; |
|
| 94 |
}; |
}; |
| 95 |
|
|
| 96 |
std::string get_name_individual(GEDCOMParser::IndividualRecords_t const &individuals, std::string const &individual_id) const |
std::string get_name_individual(GEDCOMParser::IndividualRecords_t const &individuals, std::string const &individual_id) const |
| 111 |
return *individual_name; |
return *individual_name; |
| 112 |
}; |
}; |
| 113 |
|
|
| 114 |
OneFamilyLinkHandler::SlotHandler_t * getSlotHandler(std::string * individu_id) |
OneFamilyLinkHandler::NavigationSlotHandler_t * getNavigationSlotHandler(std::string * target_individu_id) |
| 115 |
|
{ |
| 116 |
|
return new OneFamilyLinkHandler::NavigationSlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::LeftButtonPressed), target_individu_id)); |
| 117 |
|
}; |
| 118 |
|
|
| 119 |
|
OneFamilyLinkHandler::PopdownLinkEditionSlotHandler_t * getPopdownLinkEditionSlotHandler(std::string * src_individu_id) |
| 120 |
{ |
{ |
| 121 |
return new OneFamilyLinkHandler::SlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::ButtonPressed), individu_id)); |
return new OneFamilyLinkHandler::PopdownLinkEditionSlotHandler_t(SigC::bind(SigC::slot(this, &BakeryGateway::ViewFamilyLink < T_FamilyLink > ::RightButtonPressed), src_individu_id)); |
| 122 |
}; |
}; |
| 123 |
|
|
| 124 |
void ManageFamilyRecordNote(OneFamilyLink * family_link, GEDCOMParser::FamilyRecord * family_record) |
void ManageFamilyRecordNote(OneFamilyLink * family_link, GEDCOMParser::FamilyRecord * family_record) |
| 134 |
bool _during_load; |
bool _during_load; |
| 135 |
virtual void family_added(void) = 0; |
virtual void family_added(void) = 0; |
| 136 |
virtual void family_deleted(int family_index) = 0; |
virtual void family_deleted(int family_index) = 0; |
| 137 |
|
virtual void family_edited(std::string id) = 0; |
| 138 |
|
virtual MMIFamilyLink * getMMIFamilyLink(void) const = 0; |
| 139 |
}; |
}; |
| 140 |
}; |
}; |
| 141 |
|
|