static void Changed_cb(IntPtr inst) { try { RecentManager __obj = GLib.Object.GetObject(inst, false) as RecentManager; __obj.OnChanged(); } catch (Exception e) { GLib.ExceptionManager.RaiseUnhandledException(e, false); } }
public MainWindow (): base (MainClass.AppName) { this.Build(); _views = new IGedcomView[] { SummaryViewView, FamilyViewView, IndividualViewView }; _viewActions = new Gtk.Action[] { SummaryViewAction, FamilyViewAction, IndividualViewAction, SourceViewAction, MultimediaViewAction, RepositoryViewAction, PedigreeViewAction, NoteViewAction }; foreach (IGedcomView view in _views) { view.MoreInformation += new EventHandler<IndividualArgs>(OnMoreInformation); view.MoreFamilyInformation += new EventHandler<FamilyArgs>(OnMoreFamilyInformation); view.SpouseSelect += new EventHandler<SpouseSelectArgs>(OnSpouseSelect); view.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnShowSourceCitation); view.SelectNewChild += new EventHandler<IndividualArgs>(OnSelectNewChild); view.SelectNewSpouse += new EventHandler<IndividualArgs>(OnSelectNewSpouse); view.SelectNewNote += new EventHandler<NoteArgs>(OnSelectNewNote); view.ShowScrapBook += new EventHandler<ScrapBookArgs>(OnShowScrapBook); view.ShowName += new EventHandler<IndividualArgs>(OnShowName); view.DeleteIndividual += new EventHandler<IndividualArgs>(OnDeleteIndividual); view.MoreFactInformation += new EventHandler<FactArgs>(OnMoreFactInformation); } SourceViewView.ShowScrapBook += new EventHandler<ScrapBookArgs>(OnShowScrapBook); SourceViewView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnShowSourceCitation); MultimediaViewView.AddFile += new EventHandler<MultimediaFileArgs>(OnMultimediaView_AddFile); MultimediaViewView.OpenFile += new EventHandler<MultimediaFileArgs>(OnMultimediaView_OpenFile); MultimediaViewView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnShowSourceCitation); RepositoryViewView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnShowSourceCitation); NotesViewView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnShowSourceCitation); // FIXME: not working via property in designer show all kicking in? NotesViewView.NoteOnly = true; ViewNotebook.ShowTabs = false; ViewNotebook.Page = 0; _currentView = _views[0]; ViewNotebook.Sensitive = false; Merge.Sensitive = false; Save.Sensitive = false; SaveAs.Sensitive = false; PropertiesAction.Sensitive = false; _viewGroup = View.ActionGroup; _toolsGroup = Tools.ActionGroup; _reportsGroup = Reports.ActionGroup; _defaultGroup = New.ActionGroup; // get all report related actions, make insensitive foreach (Gtk.Action action in _reportsGroup.ListActions()) { action.Sensitive = false; } // get all tools related actions, make insensitive foreach (Gtk.Action action in _toolsGroup.ListActions()) { action.Sensitive = false; } // get all view related actions, make insensitive foreach (Gtk.Action action in _viewGroup.ListActions()) { action.Sensitive = false; } SummaryViewAction.ActionGroup.Sensitive = true; NewIndividual.Sensitive = false; NewMedia.Sensitive = false; NewRepository.Sensitive = false; NewSource.Sensitive = false; NewNote.Sensitive = false; // dropdown actions, not supported by stetic Gtk.UIManager manager = new Gtk.UIManager(); GtkDropDownAction newDropDown = new GtkDropDownAction("New", "New", string.Empty, Gtk.Stock.New); newDropDown.Activated += OnNew_Activated; newDropDown.UIManager = manager; newDropDown.MenuPath = "/newpopup"; manager.InsertActionGroup(_defaultGroup, 0); manager.AddUiFromString("<ui><popup name='newpopup'><menuitem action='NewDatabase'/><menuitem action='NewIndividual'/><menuitem action='NewMedia'/><menuitem action='NewRepository'/><menuitem action='NewSource'/><menuitem action='NewNote'/></popup></ui>"); Gtk.Widget newButton = newDropDown.CreateToolItem(); newDropDown.ConnectProxy(newButton); toolbar1.Insert((Gtk.ToolItem)newButton, 0); // gtk recent actions, not supported by stetic or gtk# 2.10 _recentManager = Gtk.RecentManager.Default; //_recentManager.Limit = 4; // FIXME: don't hardcode max recent file count Gtk.RecentChooserMenu menu = new RecentChooserMenu(_recentManager); menu.LocalOnly = true; menu.SortType = RecentSortType.Mru; Gtk.RecentFilter filter = new RecentFilter(); filter.Name = "GEDCOM files"; filter.AddMimeType("application/x-gedcom"); menu.AddFilter(filter); menu.Filter = filter; menu.ItemActivated += RecentMenu_ItemActivated; _toolbarRecentMenu = menu; GtkDropDownAction recentDropDown = new GtkDropDownAction("Open", "Open", "Open File", Gtk.Stock.Open); recentDropDown.Menu = menu; recentDropDown.Activated += OnOpen_Activated; Gtk.Widget openButton = recentDropDown.CreateToolItem(); recentDropDown.ConnectProxy(openButton); toolbar1.Insert((Gtk.ToolItem)openButton, 1); }
public MainWindow(string dbPath) { recentManager = RecentManager.Default; // retrieve the sort property from settings // (from default settings if the settings file does not exist yet) Widgets.VolumeSortProperty sp; bool desc; GetVolumeSortProperty(out sp, out desc); BuildGui(); windowDeleted = false; lastSuccessfulSearchCriteria = null; SetWindowTitle(null); EnableGui(false); // set the volumeview's sort property // (before filling it with volumes) tvVolumes.SetSortProperty(sp, desc); // create default db on first startup if (!App.Settings.SettingsFileExists()) { // creates (or opens existing) default db and if successful, // sets the db path and calls settings.Save() OpenOrCreateDefaultDB(false); return; } if (dbPath != null) { if (!File.Exists(dbPath)) { MsgDialog.ShowError(this, S._("Error"), S._("Database '{0}' not found."), dbPath); } else { // volumes list will be refreshed asynchronously OpenDB(dbPath, false, true, null); } return; } // reopen recent database dbPath = App.Settings.MostRecentDBPath; if (App.Settings.OpenMostRecentDB && dbPath.Length > 0) { if (!File.Exists(dbPath)) { MsgDialog.ShowError(this, S._("Error"), S._("Database '{0}' not found."), dbPath); // clear path so the error won't occur again on next startup App.Settings.MostRecentDBPath = string.Empty; App.Settings.Save(); } else { // volumes list will be refreshed asynchronously OpenDB(dbPath, false, true, null); } } }