Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
        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
            }
        }
Example #5
0
        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);
        }