Accessibility/NewArchitecture: Difference between revisions

Jump to navigation Jump to search
Line 117: Line 117:
Each internal class that its windows object should implement specific set of interfaces is wrapped.
Each internal class that its windows object should implement specific set of interfaces is wrapped.


A generic class that used as a bridge to gecko accessible.
<pre>
<pre>
/**
class NativeObject
* Abstact class.
*/
class GeckoAccBridge
{
{
protected:
protected:
Line 128: Line 126:
</pre>
</pre>


Classes that implement ISimpleDOM interfaces.
<pre>
<pre>
/**
/**
  * ISimpleDOMNode impl
  * ISimpleDOMNode impl
  */
  */
class sdnAccessible: virtual public GeckoAccBridge,
class sdnAccessible: virtual public NativeObject,
                     public ISimpleDOMNode
                     public ISimpleDOMNode
{
{
Line 146: Line 145:
</pre>
</pre>


Class that implement IAccessible interface
<pre>
<pre>
/**
* MSAA accessible.
*/
class msaaAccessible : virtual public GeckoAccBridge,
class msaaAccessible : virtual public GeckoAccBridge,
                       public IAccessible
                       public IAccessible
Line 161: Line 158:
{
{
   Accessible* geckoAcc = mGeckoAcc->AsAccessible();
   Accessible* geckoAcc = mGeckoAcc->AsAccessible();
   geckoAcc->TableMethod();
   geckoAcc->AccessibleMethod();
   return S_OK;
   return S_OK;
}
}
Line 170: Line 167:
  * IAccessibleTable implementation
  * IAccessibleTable implementation
  */
  */
class ia2TableAccessible : virtual public GeckoAccBridge,
class ia2TableAccessible : virtual public NativeObject,
                           public IAccessibleTable
                           public IAccessibleTable
{
{
public:
public:
   // IAccessibleTable
   // IAccessibleTable
   inline TableAccessible* TableAccessible()
   // IAccessibleTable2
  {
    return mGeckoObj->AsTable();
  }
};
};


Line 190: Line 184:
</pre>
</pre>


Final classes that implements native interfaces for specific Gecko accessible classes.
<pre>
<pre>
/**
class NativeDOMNodeAccessible : public sdnAccessible
* Final impl classes for native interfaces.
*/
class nativeDOMNodeAccessible : public sdnAccessible
{
{
};
};


class nativeAccessible : public nativeDOMNodeAccessible,
class NativeAccessible : public NativeDOMNodeAccessible,
                         public msaaAccessible,
                         public msaaAccessible,
                         public ia2Accessible
                         public ia2Accessible
Line 204: Line 196:
};
};


class nativeTableAccessible : public nativeAccessible,
class NativeTableAccessible : public NativeAccessible,
                               public ia2TableAccessible
                               public ia2TableAccessible
{
{
Line 210: Line 202:
</pre>
</pre>


Wrappers for Gecko classes that are used to create proper native class.
<pre>
<pre>
/**
* Wrappers, used to create proper native class.
*/
class AccessibleWrap: public Accessible
class AccessibleWrap: public Accessible
{
{
public:
public:
   inline GeckoAccBridge* NativeObject()
   inline NativeObject* AsNativeObject()
   {
   {
     if (!mNativeObj || !IsDefunct())
     if (!mNativeObj || !IsDefunct())
Line 225: Line 215:


protected:
protected:
   virtual NativeAccessible* CreateNativeAccessible()
   virtual NativeObject* CreateNativeAccessible()
   {
   {
     return new NativeAccessible(this);
     return new NativeAccessible(this);
Line 234: Line 224:
{
{
public:
public:
   virtual NativeAccessible* CreateNativeAccessible()
   virtual NativeObject* CreateNativeAccessible()
   {
   {
     return new NativeTableAccessible(this);
     return new NativeTableAccessible(this);
Confirmed users
1,396

edits

Navigation menu