//TODO: unfinished
        private OoShapeObserver searchUnregisteredShapeByAccessible(string accName, XAccessibleContext cont)
        {
            Update();
            var obs = searchRegisterdSapeObserverByAccessibleName(accName, cont, false);

            if (obs != null)
            {
                return(obs);
            }

            XDrawPages pages = PagesSupplier.getDrawPages();

            if (pages != null)
            {
                try
                {
                    for (int i = 0; i < pages.getCount(); i++)
                    {
                        var anyPage = pages.getByIndex(i);
                        if (anyPage.hasValue())
                        {
                            var page = anyPage.Value;
                            if (page != null && page is XShapes)
                            {
                                for (int j = 0; j < ((XShapes)page).getCount(); j++)
                                {
                                    var anyShape = ((XShapes)page).getByIndex(j);
                                    if (anyShape.hasValue())
                                    {
                                        var    shape  = anyShape.Value;
                                        string name   = OoUtils.GetStringProperty(shape, "Name");
                                        string UIname = OoUtils.GetStringProperty(shape, "UINameSingular");
                                        string Title  = OoUtils.GetStringProperty(shape, "Title");

                                        //if (accName.Equals(UIname))
                                        //{

                                        //}
                                        //else if (accName.Equals(name))
                                        //{

                                        //}
                                        //else if (accName.Equals(name + " " + Title))
                                        //{

                                        //}
                                        //else
                                        //{

                                        //}
                                    }
                                }
                            }
                        }
                    }
                }
                catch (System.Exception) { }
            }
            return(null);
        }
 /// <summary>
 /// Removes the page from drawing.
 /// </summary>
 /// <param name="drawDocXDrawPages">The draw doc X draw pages.</param>
 /// <param name="xDrawPage">The x draw page.</param>
 public static void RemovePageFromDrawing(XDrawPages drawDocXDrawPages, XDrawPage xDrawPage)
 {
     if (drawDocXDrawPages != null && xDrawPage != null)
     {
         drawDocXDrawPages.remove(xDrawPage);
     }
 }
 /// <summary>
 /// Removes the page at the given index from the drawing.
 /// </summary>
 /// <param name="drawDocXDrawPages">The draw doc X draw pages.</param>
 /// <param name="pageIndex">Index of the page.</param>
 public static void RemovePageFromDrawing(XDrawPages drawDocXDrawPages, int pageIndex)
 {
     var xDrawPage = GetDrawPageByIndex(drawDocXDrawPages, pageIndex);
     if (xDrawPage != null && drawDocXDrawPages != null)
     {
         drawDocXDrawPages.remove(xDrawPage);
     }
 }
 /// <summary>
 /// Create a new page on a drawing at the given index position.
 /// </summary>
 /// <param name="drawDocXDrawPages">The draw doc X draw pages.</param>
 /// <param name="pageIndex">Index of the page.</param>
 /// <returns>the new page or null if not successful.</returns>
 public static XDrawPage InsertNewPageByIndex(XDrawPages drawDocXDrawPages, int pageIndex)
 {
     XDrawPage xDrawPage = drawDocXDrawPages != null ? drawDocXDrawPages.insertNewByIndex(pageIndex) : null;
     return xDrawPage;
 }
        /// <summary>
        /// Obtain a page from a drawing.
        /// </summary>
        /// <param name="drawDocXDrawPages">The draw doc X draw pages.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <returns>the XDrawPage at the given index or null if not successful.</returns>
        public static XDrawPage GetDrawPageByIndex(XDrawPages drawDocXDrawPages, int pageIndex)
        {
            // Now ask the XIndexAccess interface to the drawPages object to get a certain page.
            Object drawPage = drawDocXDrawPages != null ? drawDocXDrawPages.getByIndex(pageIndex) : new Object();

            // Get the right interface to the page.
            var drawPageXDrawPage = drawPage as XDrawPage;

            return drawPageXDrawPage;
        }
 /// <summary>
 /// Gets the count of draw pages.
 /// </summary>
 /// <param name="drawDocXDrawPages">The draw pages container.</param>
 /// <returns></returns>
 public static int GetNumDrawPages(XDrawPages drawDocXDrawPages)
 {
     return drawDocXDrawPages != null ? drawDocXDrawPages.getCount() : 0;
 }