protected virtual void OnFamilyMoreView_MoreFactInformation (object sender, FactArgs e)
		{
			if (MoreFactInformation != null)
			{
				MoreFactInformation(this, e);
			}
		}
Beispiel #2
0
	protected void OnMoreFactInformation(object sender, FactArgs e)
	{
		FactDetailDialog factDetailDialog = new FactDetailDialog();
		
		if (sender is Gtk.Dialog)
		{
			factDetailDialog.TransientFor = (Gtk.Window)sender;
		}
		else
		{
			factDetailDialog.TransientFor = this;
		}
		
		factDetailDialog.Database = _database;
		factDetailDialog.Record = e.Event;
		
		factDetailDialog.Response += OnMoreFactInformation_Response;
		factDetailDialog.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnShowSourceCitation);
		factDetailDialog.ShowScrapBook += new EventHandler<ScrapBookArgs>(OnShowScrapBook);
		factDetailDialog.SelectNewNote += new System.EventHandler<Gedcom.UI.Common.NoteArgs>(OnSelectNewNote);
		
		factDetailDialog.Run();
	}
Beispiel #3
0
		public FactView()
		{
			this.Build();
					
			FactTypeCombo.Clear();
			
			Gtk.CellRendererText rend = new Gtk.CellRendererText();
			rend.Ellipsize = Pango.EllipsizeMode.End;
			FactTypeCombo.PackStart(rend, true);
			FactTypeCombo.SetAttributes(rend, "text", EventModel.Columns.Readable);
									
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-index";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-edit";
			buttonCol.PackStart(butRend,true);
			
			Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			nameCol.Title = "Type";
			nameCol.PackStart(rend,true);
			nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventName));
			
			Gtk.TreeViewColumn dateCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			dateCol.Title = "Date";
			dateCol.PackStart(rend,true);
			dateCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventDate));
			dateCol.SortColumnId = 0;
			
			FactsTreeView.AppendColumn(buttonCol);
			FactsTreeView.AppendColumn(nameCol);
			FactsTreeView.AppendColumn(dateCol);
			
			_eventListModel = new EventListModel();
			// we need more complicated filtering than just the event type so
			// hookup to the event
			_eventListModel.FilterGedcomEvent += new EventHandler<EventListModel.FilterArgs>(FilterEvents);
			
			FactsTreeView.Model = _eventListModel;
			
			Gtk.TreeSelection selection = FactsTreeView.Selection;
			selection.Mode = Gtk.SelectionMode.Browse;
			selection.Changed += new EventHandler(OnFactSelection_Changed);
			
			_moreInfoArgs = new FactArgs();
		}
Beispiel #4
0
		protected virtual void OnResiTreeView_ButtonPressEvent (object o, Gtk.ButtonPressEventArgs e)
		{
			Gdk.EventButton ev = e.Event;
			
			if (ev.Button == 1)
			{
				int x = (int)ev.X;
				int y = (int)ev.Y;
				Gtk.TreePath path;
				
				if (ResiTreeView.GetPathAtPos(x, y, out path))
				{
					Gtk.TreeViewColumn buttonCol = ResiTreeView.Columns[0];
					if (x < buttonCol.Width)
					{
						Gtk.TreeIter iter;
						Gtk.CellRenderer[] rends = buttonCol.CellRenderers;
						
						if (_eventListModel.GetIter(out iter, path))
						{
							GedcomEvent resiEv = (GedcomEvent)_eventListModel.GetValue(iter, 0);
														
							int i = 0;
							bool buttonClicked = false;
							foreach (GtkCellRendererButton rend in rends)
							{
								if (x >= rend.X && x <= rend.X + rend.Width)
								{
									buttonClicked = true;
									break;
								}
								i ++;
							}
							if (buttonClicked)
							{
								switch (i)
								{
									// source citation column
									case 0:
										if (ShowSourceCitation != null)
										{
											SourceCitationArgs args = new SourceCitationArgs();
											args.Record = resiEv;
											ShowSourceCitation(this,args);
										}
										break;
									// remove column
									case 1:
										if (resiEv == _resi)
										{
											ClearView();
										}
										
										if (resiEv is Gedcom.GedcomIndividualEvent)
										{
											GedcomIndividualEvent indiEv = (GedcomIndividualEvent)resiEv;
											
											GedcomIndividualRecord indi = indiEv.IndiRecord;
											indi.Events.Remove(indiEv);
										}
										else if (resiEv is Gedcom.GedcomFamilyEvent)
										{
											GedcomFamilyEvent famEv = (GedcomFamilyEvent )resiEv;
											
											GedcomFamilyRecord fam = famEv.FamRecord;
											fam.Events.Remove(famEv);	
										}
										
										if (EventRemoved != null)
										{
											EventRemoved(this, EventArgs.Empty);
										}
													
										_eventListModel.Remove(ref iter);
																										
										break;
									// more info column
									case 2:
										FactArgs args = new FactArgs();
										args.Event = resiEv;
									
										SaveView();
									
										if (MoreFactInformation != null)
										{
											MoreFactInformation(this, args);	
										}
										break;
								}
							}
						}
					}
				}
			}
		}
Beispiel #5
0
		protected virtual void OnAddressMoreButton_Clicked(object sender, System.EventArgs e)
		{
			if (MoreFactInformation != null && _resi != null)
			{
				FactArgs args = new FactArgs();
				args.Event = _resi;
				
				MoreFactInformation(this, args);
			}
		}
Beispiel #6
0
		protected virtual void OnAddressView_MoreFactInformation (object sender, FactArgs e)
		{
			SaveView();
			
			if (MoreFactInformation != null)
			{
				MoreFactInformation(this, e);
			}
		}