// Configure functionality, style, and display of the search bar
 public void Configure(SearchMode mode, InterfaceOption options)
 {
     // Save in case later use
     searchMode      = mode;
     interfaceOption = options;
     // Interface Configurations
     if ((options & InterfaceOption.ExtendedFunctions) == InterfaceOption.ExtendedFunctions)
     {
         SearchModeComboBox.Visibility = Visibility.Visible;
     }
     if ((options & InterfaceOption.RoudCornerGemBlue) == InterfaceOption.RoudCornerGemBlue)
     {
         SearchTextBox.Style = (Style)FindResource("RoundCornerTextboxStyle");
     }
     if ((options & InterfaceOption.ShowValidationSymbol) == InterfaceOption.ShowValidationSymbol)
     {
         ValidationSymbol.Visibility = Visibility.Visible;
     }
     if ((options & InterfaceOption.ShowEnterTextHere) == InterfaceOption.ShowEnterTextHere)
     {
         SearchTextBox.Text = App.DefaultTextboxText;
     }
     if ((options & InterfaceOption.MultilineEditing) == InterfaceOption.MultilineEditing)
     {
         SearchTextBox.AcceptsReturn = true;
     }
 }
        // Interaction functions: Attach first, then interact within, disable automatically upon losing focus
        internal void Attach(TextBox parentSearchTextBox, SearchMode searchMode, InterfaceOption interfaceOption, List <Document> boundDocuments, SearchComboBoxEnum comboBoxSelection = SearchComboBoxEnum.Local, UsageOption usage = UsageOption.Searcher)  // 0 for local, 1 for web
        {
            // Bookkeping
            ParentSearchTextBox    = parentSearchTextBox;
            this.SearchMode        = searchMode;
            this.InterfaceOption   = interfaceOption;
            this.ComboBoxSelection = comboBoxSelection;
            BoundDocuments         = boundDocuments;

            // Adjust text display
            Configure(searchMode, interfaceOption);
            SearchTextBox.Height = parentSearchTextBox.ActualHeight;
            SearchTextBox.Text   = ParentSearchTextBox.Text;
            //SearchTextBox.CaretIndex = ParentSearchTextBox.CaretIndex;

            // Adjust width
            Width = parentSearchTextBox.ActualWidth;
            // Adjust display location: https://stackoverflow.com/questions/386731/get-absolute-position-of-element-within-the-window-in-wpf
            Point position = parentSearchTextBox.PointToScreen(new Point(0d, 0d));

            Show(position); /* + parentSearchTextBox.ActualHeight*/

            // More bookkeeping
            if (comboBoxSelection == SearchComboBoxEnum.Local && searchMode == SearchMode.Clues)
            {
                oldClues = Clue.CreateCluesFromText(SearchTextBox.Text);
            }
            else
            {
                oldClues = null;
            }
        }
 private void Configure(SearchMode mode, InterfaceOption options)
 {
     // Interface Configurations
     if ((options & InterfaceOption.RoudCornerGemBlue) == InterfaceOption.RoudCornerGemBlue)
     {
         SearchTextBox.Style = (Style)FindResource("RoundCornerTextboxStyle");
     }
     else if ((options & InterfaceOption.HeavilyDecoratedRoudCorner) == InterfaceOption.HeavilyDecoratedRoudCorner)
     {
         SearchTextBox.Style = (Style)FindResource("HeavilyDecoratedRoundCornerTextboxStyle");
     }
     else
     {
         SearchTextBox.Style = (Style)FindResource("MultiLineTextboxStyle");
     }
     if ((options & InterfaceOption.ShowValidationSymbol) == InterfaceOption.ShowValidationSymbol)
     {
         ValidationSymbol.Visibility = Visibility.Visible;
     }
     else
     {
         ValidationSymbol.Visibility = Visibility.Hidden;
     }
     //if ((options & InterfaceOption.ShowEnterTextHere) == InterfaceOption.ShowEnterTextHere) SearchTextBox.Text = App.DefaultTextboxText;
     //else SearchTextBox.Text = string.Empty;
     if ((options & InterfaceOption.MultilineEditing) == InterfaceOption.MultilineEditing)
     {
         SearchTextBox.AcceptsReturn = true;
     }
     else
     {
         SearchTextBox.AcceptsReturn = false;
     }
     if ((options & InterfaceOption.ShowDocumentPreview) == InterfaceOption.ShowDocumentPreview)
     {
         DocumentSelectionPane.Visibility = Visibility.Visible;
     }
     if ((options & InterfaceOption.MultipleDocumentSelection) == InterfaceOption.MultipleDocumentSelection)
     {
         DocumentSelectionPane.SelectionMode = SelectionMode.Multiple;
     }
 }
 public void Configure(double width, SearchMode mode, InterfaceOption options)
 {
     // SearchTextBox.Height = height;
     Width = width;
     Configure(mode, options);
 }