예제 #1
0
 public unsafe void Visit(cef_domdocument_t *document)
 {
     fixed(cef_domvisitor_t *self = &this)
     {
         ((delegate * unmanaged[Stdcall] < cef_domvisitor_t *, cef_domdocument_t *, void >)visit)(self, document);
     }
 }
예제 #2
0
 private CefDomDocument(cef_domdocument_t *ptr)
 {
     if (ptr == null)
     {
         throw new ArgumentNullException("ptr");
     }
     _self = ptr;
 }
예제 #3
0
 internal static CefDomDocument FromNativeOrNull(cef_domdocument_t *ptr)
 {
     if (ptr == null)
     {
         return(null);
     }
     return(new CefDomDocument(ptr));
 }
예제 #4
0
 public void Dispose()
 {
     if (_self != null)
     {
         Release();
         _self = null;
     }
     GC.SuppressFinalize(this);
 }
예제 #5
0
 public void Dispose()
 {
     if (_self != null)
     {
         Release();
         _self = null;
     }
     GC.SuppressFinalize(this);
 }
예제 #6
0
        /// <summary>
        /// Method executed for visiting the DOM. The document object passed to
        /// this method represents a snapshot of the DOM at the time this method
        /// is executed. DOM objects are only valid for the scope of this method.
        /// Do not keep references to or attempt to access any DOM objects
        /// outside the scope of this method.
        /// </summary>
        private void visit(cef_domvisitor_t *self, cef_domdocument_t *document)
        {
            ThrowIfObjectDisposed();

            var m_document = CefDomDocument.From(document);

            this.Visit(m_document);

            m_document.Dispose();
        }
        private void visit(cef_domvisitor_t *self, cef_domdocument_t *document)
        {
            CheckSelf(self);

            var m_document = CefDomDocument.FromNative(document);

            Visit(m_document);

            m_document.Dispose();
        }
예제 #8
0
        private static unsafe void VisitImpl(cef_domvisitor_t *self, cef_domdocument_t *document)
        {
            var instance = GetInstance((IntPtr)self) as CefDOMVisitor;

            if (instance == null || ((ICefDOMVisitorPrivate)instance).AvoidVisit())
            {
                ReleaseIfNonNull((cef_base_ref_counted_t *)document);
                return;
            }
            instance.Visit(CefDOMDocument.Wrap(CefDOMDocument.Create, document));
        }
예제 #9
0
        public static cef_string_userfree *get_complete_url(cef_domdocument_t *self, cef_string_t *partialURL)
        {
            get_complete_url_delegate d;
            var p = self->_get_complete_url;

            if (p == _p12)
            {
                d = _d12;
            }
            else
            {
                d = (get_complete_url_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_complete_url_delegate));
                if (_p12 == IntPtr.Zero)
                {
                    _d12 = d; _p12 = p;
                }
            }
            return(d(self, partialURL));
        }
예제 #10
0
        public static cef_domnode_t *get_head(cef_domdocument_t *self)
        {
            get_head_delegate d;
            var p = self->_get_head;

            if (p == _p6)
            {
                d = _d6;
            }
            else
            {
                d = (get_head_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_head_delegate));
                if (_p6 == IntPtr.Zero)
                {
                    _d6 = d; _p6 = p;
                }
            }
            return(d(self));
        }
예제 #11
0
        public static CefDomDocumentType get_type(cef_domdocument_t *self)
        {
            get_type_delegate d;
            var p = self->_get_type;

            if (p == _p3)
            {
                d = _d3;
            }
            else
            {
                d = (get_type_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_type_delegate));
                if (_p3 == IntPtr.Zero)
                {
                    _d3 = d; _p3 = p;
                }
            }
            return(d(self));
        }
예제 #12
0
        public static cef_string_userfree *get_selection_as_text(cef_domdocument_t *self)
        {
            get_selection_as_text_delegate d;
            var p = self->_get_selection_as_text;

            if (p == _p10)
            {
                d = _d10;
            }
            else
            {
                d = (get_selection_as_text_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_selection_as_text_delegate));
                if (_p10 == IntPtr.Zero)
                {
                    _d10 = d; _p10 = p;
                }
            }
            return(d(self));
        }
예제 #13
0
        public static cef_string_userfree *get_base_url(cef_domdocument_t *self)
        {
            get_base_url_delegate d;
            var p = self->_get_base_url;

            if (p == _p11)
            {
                d = _d11;
            }
            else
            {
                d = (get_base_url_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_base_url_delegate));
                if (_p11 == IntPtr.Zero)
                {
                    _d11 = d; _p11 = p;
                }
            }
            return(d(self));
        }
예제 #14
0
        public static cef_domnode_t *get_selection_end_node(cef_domdocument_t *self)
        {
            get_selection_end_node_delegate d;
            var p = self->_get_selection_end_node;

            if (p == _pd)
            {
                d = _dd;
            }
            else
            {
                d = (get_selection_end_node_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_selection_end_node_delegate));
                if (_pd == IntPtr.Zero)
                {
                    _dd = d; _pd = p;
                }
            }
            return(d(self));
        }
예제 #15
0
        public static int get_selection_end_offset(cef_domdocument_t *self)
        {
            get_selection_end_offset_delegate d;
            var p = self->_get_selection_end_offset;

            if (p == _pe)
            {
                d = _de;
            }
            else
            {
                d = (get_selection_end_offset_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_selection_end_offset_delegate));
                if (_pe == IntPtr.Zero)
                {
                    _de = d; _pe = p;
                }
            }
            return(d(self));
        }
예제 #16
0
        public static cef_domnode_t *get_element_by_id(cef_domdocument_t *self, cef_string_t *id)
        {
            get_element_by_id_delegate d;
            var p = self->_get_element_by_id;

            if (p == _p8)
            {
                d = _d8;
            }
            else
            {
                d = (get_element_by_id_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_element_by_id_delegate));
                if (_p8 == IntPtr.Zero)
                {
                    _d8 = d; _p8 = p;
                }
            }
            return(d(self, id));
        }
예제 #17
0
        public static int has_selection(cef_domdocument_t *self)
        {
            has_selection_delegate d;
            var p = self->_has_selection;

            if (p == _pa)
            {
                d = _da;
            }
            else
            {
                d = (has_selection_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(has_selection_delegate));
                if (_pa == IntPtr.Zero)
                {
                    _da = d; _pa = p;
                }
            }
            return(d(self));
        }
예제 #18
0
        public static int get_refct(cef_domdocument_t *self)
        {
            get_refct_delegate d;
            var p = self->_base._get_refct;

            if (p == _p2)
            {
                d = _d2;
            }
            else
            {
                d = (get_refct_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_refct_delegate));
                if (_p2 == IntPtr.Zero)
                {
                    _d2 = d; _p2 = p;
                }
            }
            return(d(self));
        }
예제 #19
0
        public static cef_string_userfree *get_title(cef_domdocument_t *self)
        {
            get_title_delegate d;
            var p = self->_get_title;

            if (p == _p7)
            {
                d = _d7;
            }
            else
            {
                d = (get_title_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_title_delegate));
                if (_p7 == IntPtr.Zero)
                {
                    _d7 = d; _p7 = p;
                }
            }
            return(d(self));
        }
예제 #20
0
        public static int release(cef_domdocument_t *self)
        {
            release_delegate d;
            var p = self->_base._release;

            if (p == _p1)
            {
                d = _d1;
            }
            else
            {
                d = (release_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(release_delegate));
                if (_p1 == IntPtr.Zero)
                {
                    _d1 = d; _p1 = p;
                }
            }
            return(d(self));
        }
예제 #21
0
        public static int add_ref(cef_domdocument_t *self)
        {
            add_ref_delegate d;
            var p = self->_base._add_ref;

            if (p == _p0)
            {
                d = _d0;
            }
            else
            {
                d = (add_ref_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(add_ref_delegate));
                if (_p0 == IntPtr.Zero)
                {
                    _d0 = d; _p0 = p;
                }
            }
            return(d(self));
        }
        public static int has_at_least_one_ref(cef_domdocument_t *self)
        {
            has_at_least_one_ref_delegate d;
            var p = self->_base._has_at_least_one_ref;

            if (p == _p3)
            {
                d = _d3;
            }
            else
            {
                d = (has_at_least_one_ref_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(has_at_least_one_ref_delegate));
                if (_p3 == IntPtr.Zero)
                {
                    _d3 = d; _p3 = p;
                }
            }
            return(d(self));
        }
예제 #23
0
 public CefDOMDocument(cef_domdocument_t *instance)
     : base((cef_base_ref_counted_t *)instance)
 {
 }
예제 #24
0
 private CefDomDocument(cef_domdocument_t* ptr)
 {
     if (ptr == null) throw new ArgumentNullException("ptr");
     _self = ptr;
 }
예제 #25
0
 internal static CefDomDocument FromNative(cef_domdocument_t *ptr)
 {
     return(new CefDomDocument(ptr));
 }
 private void visit(cef_domvisitor_t *self, cef_domdocument_t *document)
 {
     CheckSelf(self);
     throw new NotImplementedException(); // TODO: CefDomVisitor.Visit
 }
예제 #27
0
 public unsafe extern void Visit(cef_domdocument_t *document);