9 |
#include "MMIChildToFamilyLink.hh" |
#include "MMIChildToFamilyLink.hh" |
10 |
#include <libgnome/libgnome.h> |
#include <libgnome/libgnome.h> |
11 |
#include "../string_utility/Converter.hh" |
#include "../string_utility/Converter.hh" |
|
#include <iostream> |
|
|
#include "MMIMenuFamily.hh" |
|
12 |
|
|
13 |
MMIChildToFamilyLink::MMIChildToFamilyLink( |
MMIChildToFamilyLink::MMIChildToFamilyLink( |
14 |
) : MMIChildToFamilyLink_glade(), |
) : MMIFamilyLink(_("Parents")) |
|
_cpt_family(0), |
|
|
_family_added(), |
|
|
_family_deleted() |
|
15 |
{ |
{ |
16 |
_child_to_family_links->pages().clear(); |
return; |
|
button_press_event.connect(slot(this, &MMIChildToFamilyLink::button_pressed)); |
|
|
} |
|
|
|
|
|
SigC::Signal0<void> &MMIChildToFamilyLink::FamilyAdded(void) |
|
|
{ |
|
|
return _family_added; |
|
|
} |
|
|
|
|
|
SigC::Signal1<void, int> &MMIChildToFamilyLink::FamilyDeleted(void) |
|
|
{ |
|
|
return _family_deleted; |
|
|
} |
|
|
|
|
|
int MMIChildToFamilyLink::button_pressed(GdkEventButton * event) |
|
|
{ |
|
|
if (event->button == 3) |
|
|
{ |
|
|
MMIMenuFamily * popup_menu = manage(new MMIMenuFamily()); |
|
|
popup_menu->getAddItem()->activate.connect(slot(this, &MMIChildToFamilyLink::menu_add_activated)); |
|
|
popup_menu->getDeleteItem()->activate.connect(slot(this, &MMIChildToFamilyLink::menu_delete_activated)); |
|
|
guint button = 3; |
|
|
guint32 activate_time = 0; |
|
|
popup_menu->popup(button, activate_time); |
|
|
} |
|
|
return 1; |
|
17 |
} |
} |
18 |
|
|
19 |
void MMIChildToFamilyLink::menu_add_activated(void) |
void MMIChildToFamilyLink::menu_add_activated(void) |
20 |
{ |
{ |
21 |
addChildToFamilyLink("",""); |
addChildToFamilyLink("",""); |
22 |
_family_added.emit(); |
MMIFamilyLink::menu_add_activated(); |
|
return; |
|
|
} |
|
|
|
|
|
void MMIChildToFamilyLink::menu_delete_activated(void) |
|
|
{ |
|
|
int family_index = _child_to_family_links->get_current_page_num(); |
|
|
deleteChildToFamilyLink(); |
|
|
_family_deleted.emit(family_index); |
|
|
return; |
|
|
} |
|
|
|
|
|
void MMIChildToFamilyLink::deleteChildToFamilyLink(void) |
|
|
{ |
|
|
_cpt_family--; |
|
|
Gtk::Notebook_Helpers::PageList pages = _child_to_family_links->pages(); |
|
|
Gtk::Notebook_Helpers::PageList::iterator page_iter = pages.find(_child_to_family_links->get_current()); |
|
|
if (page_iter != pages.end()) |
|
|
{ |
|
|
pages.erase(page_iter); |
|
|
} |
|
23 |
return; |
return; |
24 |
} |
} |
25 |
|
|
26 |
OneChildToFamilyLink * MMIChildToFamilyLink::addChildToFamilyLink(std::string const &father, std::string const &mother, SigC::Slot0<void> * slot_father = 0, SigC::Slot0<void> * slot_mother = 0 ) |
OneChildToFamilyLink * MMIChildToFamilyLink::addChildToFamilyLink(std::string const &father, std::string const &mother, SigC::Slot0<void> * slot_father = 0, SigC::Slot0<void> * slot_mother = 0 ) |
27 |
{ |
{ |
28 |
_cpt_family++; |
_cpt_family++; |
29 |
OneChildToFamilyLink = manage(new class OneChildToFamilyLink(father, mother, slot_father, slot_mother)); |
class OneChildToFamilyLink * OneChildToFamilyLink = manage(new class OneChildToFamilyLink(father, mother, slot_father, slot_mother)); |
30 |
MMIParentsFamilyNote = manage(new class MMIParentsFamilyNote()); |
class MMIParentsFamilyNote * MMIParentsFamilyNote = manage(new class MMIParentsFamilyNote()); |
31 |
|
|
32 |
Gtk::Label *_child_to_family_link1 = manage(new class Gtk::Label(_("Family ") + toString<int>(_cpt_family))); |
Gtk::Label *_child_to_family_link1 = manage(new class Gtk::Label(_("Family ") + toString<int>(_cpt_family))); |
33 |
_child_to_family_link1->set_alignment(0.5, 0.5); |
_child_to_family_link1->set_alignment(0.5, 0.5); |
36 |
Gtk::HBox *hbox24 = manage(new class Gtk::HBox(false, 0)); |
Gtk::HBox *hbox24 = manage(new class Gtk::HBox(false, 0)); |
37 |
hbox24->pack_start(*_child_to_family_link1); |
hbox24->pack_start(*_child_to_family_link1); |
38 |
hbox24->pack_end(*MMIParentsFamilyNote, false, true, 0); |
hbox24->pack_end(*MMIParentsFamilyNote, false, true, 0); |
39 |
_child_to_family_links->pages().push_back(Gtk::Notebook_Helpers::TabElem(*OneChildToFamilyLink, *hbox24)); |
hbox24->show_all(); |
40 |
|
_family_links->pages().push_back(Gtk::Notebook_Helpers::TabElem(*OneChildToFamilyLink, *hbox24)); |
41 |
OneChildToFamilyLink->MMIParentsFamilyNote = MMIParentsFamilyNote; |
OneChildToFamilyLink->MMIParentsFamilyNote = MMIParentsFamilyNote; |
42 |
return OneChildToFamilyLink; |
return OneChildToFamilyLink; |
43 |
} |
} |
44 |
|
|
|
void MMIChildToFamilyLink::Clear(void) |
|
|
{ |
|
|
_child_to_family_links->pages().clear(); |
|
|
_cpt_family = 0; |
|
|
return; |
|
|
} |
|