Accessibility/NewArchitecture: Difference between revisions

Jump to navigation Jump to search
Line 118: Line 118:


<pre>
<pre>
class NativeAccessible
/**
* Abstact class.
*/
class GeckoAccBridge
{
{
protected:
protected:
   DOMNodeAccessible* mGeckoAcc;
   DOMNodeAccessible* mGeckoAcc;
};
};
</pre>


class sdnAccessible: public NativeAccessible,
<pre>
/**
* ISimpleDOMNode impl
*/
class sdnAccessible: virtual public GeckoAccBridge,
                     public ISimpleDOMNode
                     public ISimpleDOMNode
{
{
Line 136: Line 144:
   AccessNode* geckoAcc = mGeckoObj;
   AccessNode* geckoAcc = mGeckoObj;
}
}
</pre>


class msaaAccessible : public NativeAccessible,
<pre>
/**
* MSAA accessible.
*/
class msaaAccessible : virtual public GeckoAccBridge,
                       public IAccessible
                       public IAccessible
{
{
Line 145: Line 158:


hresult
hresult
ia2TableAccessible::IATableMethod()
msaaAccessible::IAccessibleMethod()
{
{
   Accessible* geckoAcc = mGeckoObj->AsAccessible();
   Accessible* geckoAcc = mGeckoAcc->AsAccessible();
   geckoAcc->TableMethod();
   geckoAcc->TableMethod();
   return S_OK;
   return S_OK;
}
}
</pre>


class ia2TableAccessible : public IAccessibleTable
<pre>
/**
* IAccessibleTable implementation
*/
class ia2TableAccessible : virtual public GeckoAccBridge,
                          public IAccessibleTable
{
{
public:
public:
Line 169: Line 188:
   return S_OK;
   return S_OK;
}
}
</pre>


class nativeAccessible : public sdnAccessible
<pre>
/**
* Final impl classes for native interfaces.
*/
class nativeDOMNodeAccessible : public sdnAccessible
{
{
};
};


class nativeAccessible : public sdnAccessible,
class nativeAccessible : public nativeDOMNodeAccessible,
                         public msaaAccessible
                         public msaaAccessible,
                        public ia2Accessible
{
{
};
};
Line 183: Line 208:
{
{
};
};
</pre>


<pre>
/**
* Wrappers, used to create proper native class.
*/
class AccessibleWrap: public Accessible
class AccessibleWrap: public Accessible
{
{
public:
public:
   inline NativeAccessible* NativeObject()
   inline GeckoAccBridge* NativeObject()
   {
   {
     if (!mNativeObj || !IsDefunct())
     if (!mNativeObj || !IsDefunct())
Line 209: Line 239:
   }
   }
};
};
</pre>
</pre>


Confirmed users
1,396

edits

Navigation menu