public void Setup() { BasilProject.InitializeForTests(); WritingSystem writingSystem = new WritingSystem(_writingSystemId, new Font(FontFamily.GenericSansSerif, 24)); _papaNameWidget = new WeSayTextBox(writingSystem, null); _papaNameWidget.Text = "John"; _ghostFirstNameWidget = new WeSayTextBox(writingSystem, null); _binding = new GhostBinding<Child>(_papa.Children, "First", writingSystem, _ghostFirstNameWidget); _didNotify = false; //Window w = new Window("test"); //VBox box = new VBox(); //w.Add(box); //box.PackStart(_papaNameWidget); //box.PackStart(_ghostFirstNameWidget); //box.ShowAll(); //w.ShowAll(); _papaNameWidget.Show(); // while (Gtk.Application.EventsPending()) // { Gtk.Application.RunIteration(); } //Application.Run(); _papaNameWidget.Focus(); _ghostFirstNameWidget.Focus(); }
protected virtual void OnGhostBindingLayoutNeeded <T>(GhostBinding <T> sender, IList <T> list, int index, MultiTextControl previouslyGhostedControlToReuse, bool doGoToNextField, EventArgs args) where T : PalasoDataObject, new() { DetailList.SuspendLayout(); var position = _detailList.GetCellPosition(sender.ReferenceControl); var rowIndex = position.Row; _previouslyGhostedControlToReuse = previouslyGhostedControlToReuse; PdoToLayout = list[index]; AddWidgetsAfterGhostTrigger(PdoToLayout, sender.ReferenceControl, doGoToNextField); if (GhostRequestedLayout != null) { GhostRequestedLayout(this, new EventArgs()); } DetailList.ResumeLayout(); if (doGoToNextField) { _detailList.MoveInsertionPoint(rowIndex + 1); } else { _detailList.MoveInsertionPoint(rowIndex); } // For Linux/Mono, merely resuming layout and refreshing doesn't work. ForceLayoutAndRefresh(); }
public void Setup() { BasilProjectTestHelper.InitializeForTests(); _writingSystemId = WritingSystemsIdsForTests.AnalysisIdForTest; IWritingSystemDefinition writingSystem = WritingSystemDefinition.Parse(_writingSystemId); _papaNameWidget = new WeSayTextBox(writingSystem, null); _papaNameWidget.Text = "John"; _ghostFirstNameWidget = new WeSayTextBox(writingSystem, null); _binding = new GhostBinding <Child>(null, _papa.Children, "First", writingSystem, _ghostFirstNameWidget); _didNotify = false; //Window w = new Window("test"); //VBox box = new VBox(); //w.Add(box); //box.PackStart(_papaNameWidget); //box.PackStart(_ghostFirstNameWidget); //box.ShowAll(); //w.ShowAll(); _papaNameWidget.Show(); // while (Gtk.Application.EventsPending()) // { Gtk.Application.RunIteration(); } //Application.Run(); _papaNameWidget.Focus(); _ghostFirstNameWidget.Focus(); }
protected int MakeGhostWidget <T>(PalasoDataObject parent, IList <T> list, string fieldName, string label, string propertyName, bool isHeading, int row) where T : PalasoDataObject, new() { Field field = ActiveViewTemplate.GetField(fieldName); if (field != null && field.Enabled && field.Visibility == CommonEnumerations.VisibilitySetting.Visible) { DetailList.SuspendLayout(); MultiTextControl m = new MultiTextControl(field.WritingSystemIds, new MultiText(), fieldName + "_ghost", false, BasilProject.Project.WritingSystems, field.Visibility, field.IsSpellCheckingEnabled, false, _serviceProvider); if (_columnWidths != null && _columnWidths.Length == 3) { m.Width = _columnWidths[1]; } Control refWidget = DetailList.AddWidgetRow(label, isHeading, m, row, true); foreach (IControlThatKnowsWritingSystem box in m.TextBoxes) { var tb = box as IWeSayTextBox; if (tb != null) { GhostBinding <T> g = MakeGhostBinding(parent, list, propertyName, box.WritingSystem, tb); g.ReferenceControl = refWidget; } } DetailList.ResumeLayout(false); return(1); } else { return(0); //didn't add a row } }
protected GhostBinding <T> MakeGhostBinding <T>(PalasoDataObject parent, IList <T> list, string ghostPropertyName, IWritingSystemDefinition writingSystem, IWeSayTextBox entry) where T : PalasoDataObject, new() { GhostBinding <T> binding = new GhostBinding <T>(parent, list, ghostPropertyName, writingSystem, entry); binding.LayoutNeededAfterMadeReal += OnGhostBindingLayoutNeeded; binding.CurrentItemChanged += _detailList.OnBinding_ChangeOfWhichItemIsInFocus; return(binding); }