Author: steve_y
Date: Sun Jan  6 09:36:31 2013
New Revision: 1429484

URL: http://svn.apache.org/viewvc?rev=1429484&view=rev
Log:
IA2 migration for toolkit module

Modified:
    openoffice/branches/ia2/main/toolkit/inc/toolkit/awt/vclxwindows.hxx
    openoffice/branches/ia2/main/toolkit/source/awt/vclxaccessiblecomponent.cxx
    openoffice/branches/ia2/main/toolkit/source/awt/vclxtoolkit.cxx
    openoffice/branches/ia2/main/toolkit/source/awt/vclxwindows.cxx

Modified: openoffice/branches/ia2/main/toolkit/inc/toolkit/awt/vclxwindows.hxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/ia2/main/toolkit/inc/toolkit/awt/vclxwindows.hxx?rev=1429484&r1=1429483&r2=1429484&view=diff
==============================================================================
--- openoffice/branches/ia2/main/toolkit/inc/toolkit/awt/vclxwindows.hxx 
(original)
+++ openoffice/branches/ia2/main/toolkit/inc/toolkit/awt/vclxwindows.hxx Sun 
Jan  6 09:36:31 2013
@@ -876,6 +876,10 @@ public:
 class TOOLKIT_DLLPUBLIC VCLXDateField :        public 
::com::sun::star::awt::XDateField,
                                                public VCLXFormattedSpinField
 {
+//IAccessibility2 Impplementaton 2009-----
+protected:
+       virtual ::com::sun::star::uno::Reference< 
::com::sun::star::accessibility::XAccessibleContext > CreateAccessibleContext();
+//-----IAccessibility2 Impplementaton 2009
 public:
                                        VCLXDateField();
                                        ~VCLXDateField();
@@ -922,6 +926,10 @@ public:
 class VCLXTimeField :  public ::com::sun::star::awt::XTimeField,
                                                public VCLXFormattedSpinField
 {
+//IAccessibility2 Impplementaton 2009-----
+protected:
+       virtual ::com::sun::star::uno::Reference< 
::com::sun::star::accessibility::XAccessibleContext > CreateAccessibleContext();
+//-----IAccessibility2 Impplementaton 2009
 public:
                                        VCLXTimeField();
                                        ~VCLXTimeField();

Modified: 
openoffice/branches/ia2/main/toolkit/source/awt/vclxaccessiblecomponent.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/ia2/main/toolkit/source/awt/vclxaccessiblecomponent.cxx?rev=1429484&r1=1429483&r2=1429484&view=diff
==============================================================================
--- openoffice/branches/ia2/main/toolkit/source/awt/vclxaccessiblecomponent.cxx 
(original)
+++ openoffice/branches/ia2/main/toolkit/source/awt/vclxaccessiblecomponent.cxx 
Sun Jan  6 09:36:31 2013
@@ -37,6 +37,10 @@
 #include <toolkit/awt/vclxfont.hxx>
 #include <vcl/dialog.hxx>
 #include <vcl/window.hxx>
+//IAccessibility2 Implementation 2009-----
+//Solution:Need methods in Edit.
+#include <vcl/edit.hxx>
+//-----IAccessibility2 Implementation 2009
 #include <tools/debug.hxx>
 #include <unotools/accessiblestatesethelper.hxx>
 #include <unotools/accessiblerelationsethelper.hxx>
@@ -441,7 +445,9 @@ void VCLXAccessibleComponent::FillAccess
        Window* pWindow = GetWindow();
        if ( pWindow )
        {
+//IAccessibility2 Implementation 2009-----
                Window *pLabeledBy = pWindow->GetAccessibleRelationLabeledBy();
+//-----IAccessibility2 Implementation 2009
                if ( pLabeledBy && pLabeledBy != pWindow )
                {
                        uno::Sequence< uno::Reference< uno::XInterface > > 
aSequence(1);
@@ -456,6 +462,20 @@ void VCLXAccessibleComponent::FillAccess
                        aSequence[0] = pLabelFor->GetAccessible();
                        rRelationSet.AddRelation( 
accessibility::AccessibleRelation( 
accessibility::AccessibleRelationType::LABEL_FOR, aSequence ) );
                }
+//IAccessibility2 Implementation 2009-----
+               Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf();   
+               if ( pMemberOf && pMemberOf != pWindow )
+               {
+                       uno::Sequence< uno::Reference< uno::XInterface > > 
aSequence(1);
+                       aSequence[0] = pMemberOf->GetAccessible();
+                       rRelationSet.AddRelation( 
accessibility::AccessibleRelation( 
accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
+               }
+               uno::Sequence< uno::Reference< uno::XInterface > > 
aFlowToSequence = pWindow->GetAccFlowToSequence();
+               if( aFlowToSequence.getLength() > 0 )
+               {
+                       rRelationSet.AddRelation( 
accessibility::AccessibleRelation( 
accessibility::AccessibleRelationType::CONTENT_FLOWS_TO, aFlowToSequence ) );   
           
+               }
+//-----IAccessibility2 Implementation 2009
        }
 }
 
@@ -504,13 +524,50 @@ void VCLXAccessibleComponent::FillAccess
 
                if ( pWindow->GetStyle() & WB_SIZEABLE )
                        rStateSet.AddState( 
accessibility::AccessibleStateType::RESIZABLE );
-
+//IAccessibility2 Implementation 2009-----
+               // 6. frame doesn't have MOVABLE state
+               // 10. for password text, where is the sensitive state? 
+               if( ( getAccessibleRole() == 
accessibility::AccessibleRole::FRAME ||getAccessibleRole() == 
accessibility::AccessibleRole::DIALOG )&& pWindow->GetStyle() & WB_MOVEABLE )
+                       rStateSet.AddState( 
accessibility::AccessibleStateType::MOVEABLE );
+//-----IAccessibility2 Implementation 2009
         if( pWindow->IsDialog() )
         {
             Dialog *pDlg = static_cast< Dialog* >( pWindow );
             if( pDlg->IsInExecute() )
                            rStateSet.AddState( 
accessibility::AccessibleStateType::MODAL );
         }
+//IAccessibility2 Implementation 2009-----
+        //Solution:If a combobox or list's edit child isn't read-only,EDITABLE 
state
+        //         should be set.
+               if( pWindow && pWindow->GetType() == WINDOW_COMBOBOX )
+               {
+                       if( !( pWindow->GetStyle() & WB_READONLY) ||  
+                           !((Edit*)pWindow)->IsReadOnly() )
+                                       rStateSet.AddState( 
accessibility::AccessibleStateType::EDITABLE );     
+               }
+               
+               Window* pChild = pWindow->GetWindow( WINDOW_FIRSTCHILD );
+               
+               while( pWindow && pChild )
+               {
+                       Window* pWinTemp = pChild->GetWindow( WINDOW_FIRSTCHILD 
);
+                       if( pWinTemp && pWinTemp->GetType() == WINDOW_EDIT )
+                       {
+                               if( !( pWinTemp->GetStyle() & WB_READONLY) || 
+                                       !((Edit*)pWinTemp)->IsReadOnly() )
+                                       rStateSet.AddState( 
accessibility::AccessibleStateType::EDITABLE );
+                               break;  
+                       }
+                       if( pChild->GetType() == WINDOW_EDIT )
+                       {
+                               if( !( pChild->GetStyle() & WB_READONLY) || 
+                                       !((Edit*)pChild)->IsReadOnly())
+                                       rStateSet.AddState( 
accessibility::AccessibleStateType::EDITABLE );
+                               break;  
+                       }
+                       pChild = pChild->GetWindow( WINDOW_NEXT );
+               }
+//-----IAccessibility2 Implementation 2009
        }
        else
        {
@@ -846,6 +903,10 @@ sal_Int32 SAL_CALL VCLXAccessibleCompone
                        else
                                aFont = pWindow->GetFont();
                        nColor = aFont.GetColor().GetColor();
+//IAccessibility2 Implementation 2009-----
+                       if ( nColor == COL_AUTO)
+                               nColor = pWindow->GetTextColor().GetColor();
+//-----IAccessibility2 Implementation 2009
                }
        }
 

Modified: openoffice/branches/ia2/main/toolkit/source/awt/vclxtoolkit.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/ia2/main/toolkit/source/awt/vclxtoolkit.cxx?rev=1429484&r1=1429483&r2=1429484&view=diff
==============================================================================
--- openoffice/branches/ia2/main/toolkit/source/awt/vclxtoolkit.cxx (original)
+++ openoffice/branches/ia2/main/toolkit/source/awt/vclxtoolkit.cxx Sun Jan  6 
09:36:31 2013
@@ -595,6 +595,11 @@ void SAL_CALL VCLXToolkit::disposing()
 
 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > 
VCLXToolkit::createWindow( const ::com::sun::star::awt::WindowDescriptor& 
rDescriptor ) throw(::com::sun::star::lang::IllegalArgumentException, 
::com::sun::star::uno::RuntimeException)
 {
+//IAccessibility2 Implementation 2009-----
+#ifdef WNT
+       CEnableAccessInterface e;
+#endif
+//-----IAccessibility2 Implementation 2009
     return ImplCreateWindow( rDescriptor, WinBits(0) );
 }
 

Modified: openoffice/branches/ia2/main/toolkit/source/awt/vclxwindows.cxx
URL: 
http://svn.apache.org/viewvc/openoffice/branches/ia2/main/toolkit/source/awt/vclxwindows.cxx?rev=1429484&r1=1429483&r2=1429484&view=diff
==============================================================================
--- openoffice/branches/ia2/main/toolkit/source/awt/vclxwindows.cxx (original)
+++ openoffice/branches/ia2/main/toolkit/source/awt/vclxwindows.cxx Sun Jan  6 
09:36:31 2013
@@ -4505,6 +4505,19 @@ VCLXDateField::~VCLXDateField()
 {
 }
 
+//IAccessibility2 Implementation 2009-----
+//change the window type here to match the role
+::com::sun::star::uno::Reference< 
::com::sun::star::accessibility::XAccessibleContext > 
VCLXDateField::CreateAccessibleContext()
+{
+       Window* pWindow = GetWindow();
+       if ( pWindow )
+       {
+               pWindow->SetType( WINDOW_DATEFIELD );
+       }
+       return getAccessibleFactory().createAccessibleContext( this );
+}
+//-----IAccessibility2 Implementation 2009
+
 // ::com::sun::star::uno::XInterface
 ::com::sun::star::uno::Any VCLXDateField::queryInterface( const 
::com::sun::star::uno::Type & rType ) 
throw(::com::sun::star::uno::RuntimeException)
 {
@@ -4846,6 +4859,18 @@ VCLXTimeField::VCLXTimeField()
 VCLXTimeField::~VCLXTimeField()
 {
 }
+//IAccessibility2 Implementation 2009-----
+//change the window type here to match the role
+::com::sun::star::uno::Reference< 
::com::sun::star::accessibility::XAccessibleContext > 
VCLXTimeField::CreateAccessibleContext()
+{
+       Window* pWindow = GetWindow();
+       if ( pWindow )
+       {
+               pWindow->SetType( WINDOW_TIMEFIELD );
+       }
+       return getAccessibleFactory().createAccessibleContext( this );
+}
+//-----IAccessibility2 Implementation 2009
 
 // ::com::sun::star::uno::XInterface
 ::com::sun::star::uno::Any VCLXTimeField::queryInterface( const 
::com::sun::star::uno::Type & rType ) 
throw(::com::sun::star::uno::RuntimeException)


Reply via email to