Commits

Anonymous committed ca67928

accia2bridge: new module winaccessibility, which is the UAA-IA2 bridge. Taken from CWS oo31ia2 with minor modifications, still seeing this as a black-box

  • Participants
  • Parent commits 4c76c41

Comments (0)

Files changed (137)

File winaccessibility/inc/AccComponentEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCCOMPONENTEVENTLISTENER_HXX
+#define __ACCCOMPONENTEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+/**
+ * AccComponentEventListener is inherited from AccEventListener. It handles the evnets
+ * generated by component controls. The accessible roles are: CHECK_BOX, ICON, LABEL, 
+ * MENU_ITEM, PUSH_BUTTON, RADIO_BUTTON, SCROLL_BAR, SEPARATOR, TOGGLE_BUTTON, TOOL_TIP, SPIN_BOX. 
+ * It defines the procedure of specific event handling related with components and provides 
+ * the detailed support for some related methods. 
+ */
+class AccComponentEventListener: public AccEventListener
+{
+private:
+    static FILE *output, *output2, *output3, *outacc;//used for debugging
+public:
+    AccComponentEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccComponentEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for value changed event
+    virtual void SAL_CALL handleValueChangedEvent(Any oldValue, Any newValue);
+
+    //for action changed event
+    virtual void SAL_CALL handleActionChangedEvent();
+
+    //for text changed event
+    virtual void SAL_CALL handleTextChangedEvent(Any oldValue, Any newValue);
+
+    //for caret changed event
+    virtual void SAL_CALL handleCaretChangedEvent(Any oldValue, Any newValue);
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+    virtual void SAL_CALL fireStatePropertyChange(short state, bool set
+                                                     );
+    virtual void SAL_CALL fireStateFocusdChange(bool enable);
+
+    void handleSelectionChangedEvent();
+
+    //add TEXT_SELECTION_CHANGED event
+    void handleTextSelectionChangedEvent();
+};
+
+#endif

File winaccessibility/inc/AccContainerEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCCONTAINEREVENTLISTENERHXX
+#define __ACCCONTAINEREVENTLISTENERHXX
+
+#include <stdio.h>
+#include "AccEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccContainerEventListener is inherited from AccEventListener. It handles the evnets
+ * generated by container controls. The accessible roles are: CANVAS, COMBO_BOX, DOCUMENT, 
+ * EMBEDDED_OBJECT, END_NOTE, FILLER, FOOTNOTE, FOOTER, GRAPHIC, HEADER, LAYERED_PANE, 
+ * MENU_BAR, POPUP_MENU, OPTION_PANE, PAGE_TAB, PAGE_TAB_LIST, PANEL, SCROLL_PANE, SPLIT_PANE, 
+ * STATUS_BAR, TABLE_CELL, TEXT_FRAME, TOOL_BAR, VIEW_PORT.
+ * It defines the procedure of specific event handling related with containsers and provides 
+ * the detailed support for some related methods.  
+ */
+class AccContainerEventListener: public AccEventListener
+{
+public:
+    AccContainerEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccContainerEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for child changed event
+    virtual void SAL_CALL handleChildChangedEvent(Any oldValue, Any newValue);
+
+    //for selection changed event
+    virtual void SAL_CALL handleSelectionChangedEvent(const Any &oldValue, const Any &newValue);
+
+    //for all children changed event
+    virtual void SAL_CALL handleAllChildrenChangedEvent();
+
+    //for text changed event
+    virtual void SAL_CALL handleTextChangedEvent(Any oldValue, Any newValue);
+    virtual void SAL_CALL handleStateChangedEvent(Any oldValue, Any newValue);
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    //for value changed event
+    virtual void SAL_CALL handleValueChangedEvent(Any oldValue, Any newValue);
+
+    //state changed
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+    virtual void SAL_CALL fireStatePropertyChange(short state, bool set
+                                                     );
+    virtual void SAL_CALL fireStateFocusdChange(bool enable);
+    virtual bool SAL_CALL IsEditable(Reference<com::sun::star::accessibility::XAccessibleContext> xContext);
+
+    // update all children's state
+    void SAL_CALL UpdateAllChildrenState( com::sun::star::accessibility::XAccessible* pXAccessible );
+
+    bool NotifyChildEvent(short nWinEvent,const Any &Value);
+
+    virtual void handleSelectionChangedAddEvent(const Any &oldValue, const Any &newValue);
+    virtual void handleSelectionChangedRemoveEvent(const Any &oldValue, const Any &newValue);
+    virtual void handleSelectionChangedWithinEvent(const Any &oldValue, const Any &newValue);
+
+    virtual void handlePageChangedEvent (const Any &oldValue, const Any &newValue);
+
+    virtual void handleSectionChangedEvent (const Any &oldValue, const Any &newValue);
+    virtual void handleColumnChangedEvent (const Any &oldValue, const Any &newValue);
+	//IAccessibility2 Implementation 2009-----
+	//for name changed event
+    virtual void SAL_CALL handleNameChangedEvent(Any name);
+	//-----IAccessibility2 Implementation 2009
+};
+
+#endif

File winaccessibility/inc/AccDescendantManagerEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCDESCENDANTMANAGEREVENTLISTENER_HXX
+#define __ACCDESCENDANTMANAGEREVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccComponentEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccDescendantManagerEventListener is inherited from AccComponentEventListener. It handles 
+ * the evnets generated by active descendant controls. They are: TREE, LIST, and TABLE. 
+ * It defines the procedure of specific event handling related with active descendant components 
+ * and provides the detailed support for some related methods. 
+ */
+class AccDescendantManagerEventListener: public AccComponentEventListener
+{
+protected:
+    ::com::sun::star::accessibility::XAccessible* pActiveDescendant;
+public:
+    AccDescendantManagerEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccDescendantManagerEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for selection changed event
+    virtual void SAL_CALL handleSelectionChangedEvent(Any oldValue, Any newValue);
+
+    //for child changed event
+    virtual void SAL_CALL handleChildChangedEvent (Any oldValue, Any newValue);
+
+    virtual void SAL_CALL handleChildChangedNoFocusEvent(Any oldValue, Any newValue);
+
+    bool NotifyChildEvent(short nWinEvent,const Any &Value);
+
+    virtual void handleSelectionChangedAddEvent(const Any &oldValue, const Any &newValue);
+    virtual void handleSelectionChangedRemoveEvent(const Any &oldValue, const Any &newValue);
+    virtual void handleSelectionChangedWithinEvent(const Any &oldValue, const Any &newValue);
+};
+
+#endif

File winaccessibility/inc/AccDialogEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCDIALOGEVENTLISTENER_HXX
+#define __ACCDIALOGEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccDialogEventListener is inherited from AccEventListener. It handles the evnets
+ * generated by Dialogs. The accessible role is: DIALOG.
+ * It defines the procedure of specific event handling related with dialogs and provides 
+ * the detailed support for some related methods.  
+ */
+class AccDialogEventListener: public AccEventListener
+{
+public:
+    AccDialogEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccDialogEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for child changed event
+    virtual void SAL_CALL handleChildChangedEvent (Any oldValue, Any newValue);
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    //state changed
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+    //virtual void SAL_CALL fireStatePropertyChange(short state, bool set);
+    //virtual void SAL_CALL fireStateFocusdChange(bool enable);
+
+};
+
+#endif

File winaccessibility/inc/AccEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCEVENTLISTENER_HXX
+#define __ACCEVENTLISTENER_HXX
+
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <cppuhelper/weak.hxx>
+#include <vos/mutex.hxx>
+
+class AccObjectManagerAgent;
+using namespace ::com::sun::star::uno;
+/**
+ * AccEventListener is the general event listener for all controls. It defines the
+ * procedure of all the event handling and provides the basic support for some simple
+ * methods. 
+ */
+class AccEventListener:
+            public com::sun::star::accessibility::XAccessibleEventListener,
+            public ::cppu::OWeakObject
+{
+private:
+    oslInterlockedCount m_refcount;
+protected:
+    //accessible owner's pointer
+    com::sun::star::accessibility::XAccessible* pAccessible;
+    //agent pointer for objects' manager
+    AccObjectManagerAgent* pAgent;
+    //disposed state indicator
+    bool  m_isDisposed;
+    mutable ::vos::OMutex aRemoveMutex;
+public:
+    AccEventListener( com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for name changed event
+    virtual void SAL_CALL handleNameChangedEvent(Any name);
+
+    //for description changed event
+    virtual void SAL_CALL handleDescriptionChangedEvent(Any desc);
+
+    //for state changed event
+    virtual void SAL_CALL handleStateChangedEvent (Any oldValue, Any newValue);
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+    virtual void SAL_CALL fireStatePropertyChange(short state, bool set
+                                                     );
+    virtual void SAL_CALL fireStateFocusdChange(bool enable);
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for interface
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL acquire() throw ();
+    virtual void SAL_CALL release() throw ();
+    //get the accessible role of pAccessible
+    virtual short SAL_CALL getRole();
+    //get the accessible parent's role
+    virtual short SAL_CALL getParentRole();
+public:
+    void removeMeFromBroadcaster();
+};
+
+#endif

File winaccessibility/inc/AccFrameEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCFRAMEEVENTLISTENER_HXX
+#define __ACCFRAMEEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccFrameEventListener is inherited from AccEventListener. It handles the evnets
+ * generated by Dialogs. The accessible roles are: FRAME and ROOT_PANE.
+ * It defines the procedure of specific event handling related with frames and provides 
+ * the detailed support for some related methods.  
+ */
+class AccFrameEventListener: public AccEventListener
+{
+public:
+    AccFrameEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccFrameEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for child changed event
+    virtual void SAL_CALL handleChildChangedEvent(Any oldValue, Any newValue);
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    //state changed
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+    //virtual void SAL_CALL fireStatePropertyChange(short state, bool set);
+    //virtual void SAL_CALL fireStateFocusdChange(bool enable);
+
+};
+
+#endif

File winaccessibility/inc/AccListEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCLISTEVENTLISTENER_HXX
+#define __ACCLISTEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccDescendantManagerEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccListEventListener is inherited from AccDescendantManagerEventListener. It handles 
+ * the evnets generated by tree controls. The accessible role is: LIST.
+ * It defines the procedure of specific event handling related with list components 
+ * and provides the detailed support for some related methods. 
+ */
+class AccListEventListener: public AccDescendantManagerEventListener
+{
+private:
+    bool shouldDeleteChild;
+public:
+    AccListEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccListEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+    //for active descendant changed event
+    virtual void SAL_CALL handleActiveDescendantChangedEvent(Any oldValue, Any newValue);
+    //for value changed event
+    virtual void SAL_CALL handleValueChangedEvent(Any oldValue, Any newValue);
+};
+
+#endif

File winaccessibility/inc/AccMenuEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCMENUEVENTLISTENER_HXX
+#define __ACCMENUEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccComponentEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccMenuEventListener is inherited from AccComponentEventListener. It handles the evnets
+ * generated by container controls. The accessible role is: MENU
+ * It defines the procedure of specific event handling related with menus and provides 
+ * the detailed support for some related methods.  
+ */
+class AccMenuEventListener: public AccComponentEventListener
+{
+public:
+    AccMenuEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccMenuEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for child changed event
+    virtual void SAL_CALL handleChildChangedEvent (Any oldValue, Any newValue);
+
+    //for selection changed event
+    virtual void SAL_CALL handleSelectionChangedEvent();
+
+    //for state changed event
+    virtual void SAL_CALL fireStatePropertyChange(short state, bool set );
+};
+
+#endif

File winaccessibility/inc/AccObject.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCOBJECT_HXX
+#define __ACCOBJECT_HXX
+
+#include <vector>
+#include <map>
+#include <oleacc.h>
+#include <windows.h>
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+
+#include "accHelper.hxx"
+#include  "UAccCOM.h"
+
+class AccEventListener;
+class AccObjectManagerAgent;
+class AccObject;
+
+typedef std::map< const long, AccObject*,ltstr4 > IAccSelectionList;
+typedef std::vector<AccObject *> IAccChildList;
+
+
+class AccObject
+{
+private:
+
+    short				m_accRole;
+    long				m_resID;
+    HWND				m_pParantID;
+    sal_Bool				m_bShouldDestroy; //avoid access COM interface when acc object is deleted
+    IMAccessible*		m_pIMAcc;
+    AccObject*			m_pParentObj;
+    IAccChildList		m_childrenList;
+    AccEventListener*	m_accListener;
+    IAccSelectionList	m_selectionList;
+
+    ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > m_xAccRef;
+    ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessibleAction > m_xAccActionRef;
+    ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessibleContext > m_xAccContextRef;
+
+    sal_Bool ImplInitilizeCreateObj();//create COM object
+
+    void UpdateActionDesc();
+    void UpdateRole();
+
+    DWORD GetMSAAStateFromUNO(short xState);//translate state from UNO to MSAA value
+    ::com::sun::star::accessibility::XAccessibleSelection* GetXAccessibleSelection();
+    void GetExpandedState(sal_Bool* isExpandable, sal_Bool* isExpanded);
+    ::rtl::OUString GetMAccessibleValueFromAny(::com::sun::star::uno::Any pAny);
+
+public:
+
+    AccObject ( ::com::sun::star::accessibility::XAccessible* pXAcc = NULL,AccObjectManagerAgent* pAgent = NULL ,AccEventListener* accListener=NULL);
+    virtual ~AccObject();
+
+    sal_Bool UpdateAccessibleInfoFromUnoToMSAA(  ); //implement accessible information mapping
+    void UpdateDefaultAction();
+
+    IMAccessible*  GetIMAccessible();	//return COM interface in acc object
+    ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > GetXAccessible();
+
+    void SetResID(long id);//ResID means ChildID in MSAA
+    long GetResID();
+
+
+    void SetParentHWND(HWND hWnd);//need to set top window handle when send event to AT
+    HWND GetParentHWND();
+
+    void SetListener( AccEventListener* Listener );
+    AccEventListener* getListener();
+
+    void SetParentObj(AccObject* pParentAccObj);
+    AccObject* GetParentObj();
+
+    void InsertChild( AccObject* pChild,short pos = LAST_CHILD);
+    void DeleteChild( AccObject* pChild );
+    AccObject* NextChild();
+
+    void NotifyDestroy(sal_Bool ifDelete);
+    sal_Bool  ifShouldDestroy();
+
+    void  DecreaseState(short xState );//call COM interface DecreaseState method
+    void  IncreaseState( short xState );//call COM interface IncreaseState method
+
+    void  SetName( com::sun::star::uno::Any newName);
+    void  SetValue( com::sun::star::uno::Any pAny );
+    void  SetDescription( com::sun::star::uno::Any newDesc );
+    void  SetRole( short Role );
+
+    short GetRole() const;
+
+    void  UpdateState();
+    void  UpdateName();
+    void  UpdateValue();
+    void  UpdateAction();
+    void  UpdateDescription();
+    void  UpdateValidWindow();
+    void  UpdateLocation();
+
+    void  setFocus();
+    void  unsetFocus();
+
+    void  AddSelect(long index, AccObject* accObj);
+    IAccSelectionList& GetSelection();
+    void  setLocalizedResourceString();
+};
+
+#endif

File winaccessibility/inc/AccObjectContainerEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _ACCOBJECTCONTAINEREVENTLISTENER_HXX
+#define _ACCOBJECTCONTAINEREVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccContainerEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccObjectContainerEventListener is inherited from AccContainerEventListener. It handles the evnets
+ * generated by container controls. The accessible role is: SHAPE
+ * It defines the procedure of specific event handling related with shapes and provides 
+ * the detailed support for some related methods.  
+ */
+class AccObjectContainerEventListener: public AccContainerEventListener
+{
+public:
+    AccObjectContainerEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccObjectContainerEventListener();
+
+    //overwrite handleStateChangedEvent()
+    virtual void SAL_CALL handleStateChangedEvent (Any oldValue, Any newValue);
+    //for visible data changed event, for shapes, the visiabledatachanged should be mapped to LOCATION_CHANGED
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+};
+
+#endif

File winaccessibility/inc/AccObjectManagerAgent.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCOBJECTMANAGERAGENT_HXX
+#define __ACCOBJECTMANAGERAGENT_HXX
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_HPP_
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#endif
+
+struct IMAccessible;
+struct IAccessible;
+class AccObjectWinManager;
+
+/****************************************************************
+AccObjectMangerAgent is used for manaing AccObjects,which encapsulates
+platform differences,and call AccObjectWinManager for Windows platform. To do for
+Linux platform
+*****************************************************************/
+class AccObjectManagerAgent
+{
+private:
+
+    AccObjectWinManager* pWinManager;
+
+public:
+
+    AccObjectManagerAgent();
+    virtual ~AccObjectManagerAgent();
+
+    virtual unsigned char InsertAccObj( com::sun::star::accessibility::XAccessible* pXAcc,
+                                        com::sun::star::accessibility::XAccessible* pParentXAcc,
+                                        long pWnd=0);
+    virtual void GetIAccessibleFromResID(long childID,IMAccessible**);
+    virtual unsigned char GetIAccessibleFromXAccessible(com::sun::star::accessibility::XAccessible* pXAcc, IAccessible** ppIA);
+
+    virtual void DeleteAccObj( com::sun::star::accessibility::XAccessible* pXAcc );
+    virtual IMAccessible*  GetIMAccByXAcc(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    unsigned char NotifyAccEvent( short pEvent = 0, com::sun::star::accessibility::XAccessible* pXAcc = 0 );
+
+    unsigned char InsertChildrenAccObj( com::sun::star::accessibility::XAccessible* pXAcc,
+                                        long pWnd=0);
+    void DeleteChildrenAccObj( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void  DecreaseState( com::sun::star::accessibility::XAccessible* pXAcc,unsigned short pState );
+    void  IncreaseState( com::sun::star::accessibility::XAccessible* pXAcc,unsigned short pState );
+    void  UpdateState( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void  UpdateLocation( com::sun::star::accessibility::XAccessible* pXAcc,
+                          long Top = 0,long left = 0,long width = 0,long height = 0 );
+    void  UpdateAction( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void  UpdateValue( com::sun::star::accessibility::XAccessible* pXAcc );
+    void  UpdateValue( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any );
+
+    void  UpdateAccName( com::sun::star::accessibility::XAccessible* pXAcc,	com::sun::star::uno::Any newName);
+    void  UpdateAccName( com::sun::star::accessibility::XAccessible* pXAcc);
+
+    void  UpdateDescription( com::sun::star::accessibility::XAccessible* pXAcc,	com::sun::star::uno::Any newDesc );
+    void  UpdateDescription( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void NotifyDestroy(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    com::sun::star::accessibility::XAccessible* GetParentXAccessible(
+        com::sun::star::accessibility::XAccessible* pXAcc );
+    short GetParentRole(com::sun::star::accessibility::XAccessible* pXAcc );
+    unsigned short IsContainer(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    void SaveTopWindowHandle(long hWnd, com::sun::star::accessibility::XAccessible* pXAcc);
+
+    void UpdateChildState(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    bool IsSpecialToolboItem(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    short GetRole(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    com::sun::star::accessibility::XAccessible* GetAccDocByAccTopWin( com::sun::star::accessibility::XAccessible* pXAcc );
+    bool IsTopWinAcc( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    bool IsStateManageDescendant(com::sun::star::accessibility::XAccessible* pXAcc);
+};
+
+#endif

File winaccessibility/inc/AccObjectWinManager.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCOBJECTWINMANAGER_HXX
+#define __ACCOBJECTWINMANAGER_HXX
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_HPP_
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#endif
+#include <map>
+#include <windows.h>
+#include <vos/mutex.hxx>
+#include "ResIDGenerator.hxx"
+#include "UAccCOM2.h"
+
+class ResIDGenerator;
+class AccObjectManagerAgent;
+class AccEventListener;
+class AccObject;
+
+/*******************************************************************
+AccObjectWinManager complete the functions:
+1. Insert, delete,query,update Acc objects
+2. Create, delete,fire AccEventLister, the lifecycle of AccEventListener is as same as 
+   Acc Object
+ 3.Return COM interface for AT,by the call back in salframe
+ 4.Pass accessible information to Acc objects
+ *******************************************************************/
+class AccObjectWinManager
+{
+    friend class AccObjectManagerAgent;
+
+private:
+    struct ltstr1
+    {
+        bool operator()(const void*  s1, const void*  s2) const
+        {
+            return long(s1)<long(s2);
+        }
+    };
+    struct ltstr2
+    {
+        bool operator()(const HWND  s1, const HWND  s2) const
+        {
+            return long(s1)<long(s2);
+        }
+    };
+    struct ltstr3
+    {
+        bool operator()(const long  s1, const long  s2) const
+        {
+            return long(s1)<long(s2);
+        }
+    };
+    typedef std::map< void*, AccObject,ltstr1 > XIdToAccObjHash;
+    typedef std::map< HWND,void*,ltstr2 > XHWNDToXAccHash;
+    typedef std::map< const long, AccObject*,ltstr3 > XResIdToAccObjHash;
+
+    typedef std::map< const long, com::sun::star::accessibility::XAccessible*,ltstr3 > XHWNDToDocumentHash;
+
+
+    //XAccessible to AccObject
+    XIdToAccObjHash  XIdAccList;
+
+    //HWND to All XAccessible pointer
+    XHWNDToXAccHash  HwndXAcc;
+
+    //id_Child to AccObject
+    XResIdToAccObjHash XResIdAccList;
+
+    //for file name support
+    XHWNDToDocumentHash XHWNDDocList;
+
+    com::sun::star::accessibility::XAccessible* oldFocus;
+
+    AccObjectManagerAgent*	 pAgent;
+    static AccObjectWinManager* me;
+    ResIDGenerator ResIdGen;
+    mutable ::vos::OMutex aDeleteMutex;
+    mutable ::vos::OMutex aNotifyMutex;
+    mutable ::vos::OMutex maATInterfaceMutex;
+
+    AccObjectWinManager(AccObjectManagerAgent* Agent=NULL);
+	bool m_bBridgeRegistered;
+
+private:
+    long ImpleGenerateResID();
+    AccObject* GetAccObjByXAcc( com::sun::star::accessibility::XAccessible* pXAcc);
+
+    com::sun::star::accessibility::XAccessible* GetXAccByAccObj(AccObject* pAccObj);
+
+    AccObject* GetTopWindowAccObj(HWND hWnd);
+
+    com::sun::star::accessibility::XAccessible* GetAccDocByHWND( long pWnd );
+
+    void       DeleteAccListener( AccObject* pAccObj );
+    void       InsertAccChildNode(AccObject* pCurObj,AccObject* pParentObj,HWND pWnd);
+    void       DeleteAccChildNode(AccObject* pChild);
+    void       DeleteFromHwndXAcc(com::sun::star::accessibility::XAccessible* pXAcc );
+    int  UpdateAccSelection(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    AccEventListener* createAccEventListener(com::sun::star::accessibility::XAccessible* pXAcc, AccObjectManagerAgent* Agent);
+public:
+    virtual ~AccObjectWinManager();
+    sal_Bool InsertAccObj( com::sun::star::accessibility::XAccessible* pXAcc,com::sun::star::accessibility::XAccessible* pParentXAcc,HWND pWnd);
+    sal_Bool InsertChildrenAccObj( com::sun::star::accessibility::XAccessible* pXAcc,HWND pWnd=0);
+    void DeleteAccObj( com::sun::star::accessibility::XAccessible* pXAcc );
+    void DeleteChildrenAccObj(com::sun::star::accessibility::XAccessible* pAccObj);
+
+public:
+    static  AccObjectWinManager* CreateAccObjectWinManagerInstance(AccObjectManagerAgent* Agent);
+
+public:
+
+    sal_Bool NotifyAccEvent( com::sun::star::accessibility::XAccessible* pXAcc,short state = 0 );
+
+    long Get_ToATInterface( HWND hWnd, long lParam, long wParam);
+
+    void  DecreaseState( com::sun::star::accessibility::XAccessible* pXAcc,unsigned short pState );
+    void  IncreaseState( com::sun::star::accessibility::XAccessible* pXAcc,unsigned short pState );
+    void  UpdateState( com::sun::star::accessibility::XAccessible* pXAcc );
+    void  SetLocation( com::sun::star::accessibility::XAccessible* pXAcc,
+                       long Top = 0,long left = 0,long width = 0,long height = 0);
+
+    void  SetValue( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any pAny );
+    void  UpdateValue( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void  SetAccName( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any newName);
+    void  UpdateAccName( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void  SetDescription( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any newDesc );
+    void UpdateDescription( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void  SetRole( com::sun::star::accessibility::XAccessible* pXAcc, long Role );
+
+    void  UpdateAccFocus( com::sun::star::accessibility::XAccessible* newFocus );
+    void  UpdateAction( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    sal_Bool IsContainer( com::sun::star::accessibility::XAccessible* pAccessible );
+
+    IMAccessible* GetIMAccByXAcc( com::sun::star::accessibility::XAccessible* pXAcc );
+    IMAccessible* GetIAccessibleFromResID(long resID);
+
+    void NotifyDestroy( com::sun::star::accessibility::XAccessible* pXAcc );
+    com::sun::star::accessibility::XAccessible* GetParentXAccessible( com::sun::star::accessibility::XAccessible* pXAcc );
+    short GetParentRole( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    void SaveTopWindowHandle(HWND hWnd, com::sun::star::accessibility::XAccessible* pXAcc);
+
+    void UpdateChildState(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    bool IsSpecialToolboItem(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    short GetRole(com::sun::star::accessibility::XAccessible* pXAcc);
+
+    com::sun::star::accessibility::XAccessible* GetAccDocByAccTopWin( com::sun::star::accessibility::XAccessible* pXAcc );
+    bool IsTopWinAcc( com::sun::star::accessibility::XAccessible* pXAcc );
+
+    bool IsStateManageDescendant(com::sun::star::accessibility::XAccessible* pAccessible);
+
+};
+
+#endif

File winaccessibility/inc/AccParagraphEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCPARAGRAPHEVENTLISTENER_HXX
+#define __ACCPARAGRAPHEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccContainerEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccParagraphEventListener is inherited from AccContainerEventListener. It handles the evnets
+ * generated by container controls. The accessible roles are: PARAGRAPH and HEADING.
+ * It defines the procedure of specific event handling related with text containsers and provides 
+ * the detailed support for some related methods.  
+ */
+class AccParagraphEventListener: public AccContainerEventListener
+{
+public:
+    AccParagraphEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccParagraphEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for caret changed event
+    virtual void SAL_CALL handleCaretChangedEvent(Any oldValue, Any newValue);
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+
+    //add TEXT_SELECTION_CHANGED event
+    void handleTextSelectionChangedEvent();
+};
+
+#endif

File winaccessibility/inc/AccResource.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _ACCRESOURCE_HXX
+#define _ACCRESOURCE_HXX
+
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+
+class SimpleResMgr;
+
+#define ACC_RES_STRING(id) ResourceManager::loadString(id)
+
+//==================================================================
+//= ResourceManager
+//= handling ressources within the FormLayer library
+//==================================================================
+class ResourceManager
+{
+    static SimpleResMgr*	m_pImpl;
+
+private:
+    // no instantiation allowed
+    ResourceManager()
+    { }
+    ~ResourceManager()
+    { }
+
+    // we'll instantiate one static member of the following class, which, in it's dtor,
+    // ensures that m_pImpl will be deleted
+    class EnsureDelete
+    {
+    public:
+        EnsureDelete()
+        { }
+        ~EnsureDelete();
+    };
+    friend class EnsureDelete;
+
+protected:
+    static void ensureImplExists();
+
+public:
+    /** loads the string with the specified resource id from the FormLayer resource file
+    */
+    static ::rtl::OUString loadString(sal_uInt16 _nResId);
+};
+
+
+#endif

File winaccessibility/inc/AccTableEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCTABLEEVENTLISTENER_HXX
+#define __ACCTABLEEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccDescendantManagerEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccTableEventListener is inherited from AccDescendantManagerEventListener. It handles 
+ * the evnets generated by tree controls. The accessible role is: TABLE.
+ * It defines the procedure of specific event handling related with table components 
+ * and provides the detailed support for some related methods. 
+ */
+class AccTableEventListener: public AccDescendantManagerEventListener
+{
+public:
+    AccTableEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccTableEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+    //for active descendant changed event
+    virtual void SAL_CALL handleActiveDescendantChangedEvent(Any oldValue, Any newValue);
+
+	void SAL_CALL handleTableModelChangeEvent(Any newValue);
+
+};
+
+#endif

File winaccessibility/inc/AccTextComponentEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCTEXTCOMPONENTEVENTLISTENER_HXX
+#define __ACCTEXTCOMPONENTEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccComponentEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccTextComponentEventListener is inherited from AccComponentEventListener. It handles the evnets
+ * generated by container controls. The accessible role is: TEXT 
+ * It defines the procedure of specific event handling related with text components and provides 
+ * the detailed support for some related methods.  
+ */
+class AccTextComponentEventListener: public AccComponentEventListener
+{
+public:
+    AccTextComponentEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccTextComponentEventListener();
+
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+
+};
+
+#endif

File winaccessibility/inc/AccTopWindowListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCTOPWINDOWLISTENER_HXX
+#define __ACCTOPWINDOWLISTENER_HXX
+
+#include <com/sun/star/awt/XTopWindowListener.hpp>
+#include <com/sun/star/awt/XExtendedToolkit.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <cppuhelper/weak.hxx>
+
+#include  "AccObjectManagerAgent.hxx"
+
+/**
+ * AccEventListener is the general event listener for all top windows. The top windows defined
+ * in UNO are: FRAME, WINDOW, DIALOG, MENU, TOOLTIP.
+ * It implements the methods of XTopWindowListener and the most important method is windowOpened().
+ * In this method, all the accessible objects (including COM object and Uno objects) are created and
+ * cached into bridge managers, and they are monitored by listeners for later accessible evnet handling.
+ */
+class AccTopWindowListener:
+            public com::sun::star::awt::XTopWindowListener,
+            public ::cppu::OWeakObject
+
+{
+private:
+    AccObjectManagerAgent accManagerAgent;
+    oslInterlockedCount m_refcount;
+public:
+    AccTopWindowListener();
+    virtual ~AccTopWindowListener();
+    virtual void SAL_CALL windowOpened( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL windowClosing( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL windowClosed( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL windowMinimized( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL windowNormalized( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL windowActivated( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL windowDeactivated( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
+    virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
+    virtual void SAL_CALL acquire(  ) throw ();
+    virtual void SAL_CALL release(  ) throw ();
+    virtual void AddAllListeners(com::sun::star::accessibility::XAccessible* pAccessible,com::sun::star::accessibility::XAccessible* pParentXAcc,HWND pWND );
+    //for On-Demand load.
+    virtual void handleWindowOpened( com::sun::star::accessibility::XAccessible* pAccessible );
+};
+
+#endif

File winaccessibility/inc/AccTreeEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __ACCTREEEVENTLISTENER_HXX
+#define __ACCTREEEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccDescendantManagerEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+
+/**
+ * AccTreeEventListener is inherited from AccDescendantManagerEventListener. It handles 
+ * the evnets generated by tree controls. The accessible role is: TREE.
+ * It defines the procedure of specific event handling related with tree components 
+ * and provides the detailed support for some related methods. 
+ */
+class AccTreeEventListener: public AccDescendantManagerEventListener
+{
+public:
+    AccTreeEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccTreeEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+    //for active descendant changed event
+    virtual void SAL_CALL handleActiveDescendantChangedEvent(Any oldValue, Any newValue);
+};
+
+#endif

File winaccessibility/inc/AccWindowEventListener.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+ 
+#ifndef __ACCWINDOWEVENTLISTENER_HXX
+#define __ACCWINDOWEVENTLISTENER_HXX
+
+#include <stdio.h>
+#include "AccEventListener.hxx"
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+using namespace ::com::sun::star::uno;
+/**
+ * AccWindowEventListener is inherited from AccEventListener. It handles the events
+ * generated by Dialogs. The accessible role is: WINDOW.
+ * It defines the procedure of specific event handling related with windows and provides 
+ * the detailed support for some related methods.  
+ */
+class AccWindowEventListener: public AccEventListener
+{
+public:
+    AccWindowEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
+    virtual ~AccWindowEventListener();
+
+    //AccessibleEventListener
+    virtual void SAL_CALL notifyEvent( const ::com::sun::star::accessibility::AccessibleEventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+    //for child changed event
+    virtual void SAL_CALL handleChildChangedEvent (Any oldValue, Any newValue);
+
+    //for visible data changed event
+    virtual void SAL_CALL handleVisibleDataChangedEvent();
+
+    //for bound rect changed event
+    virtual void SAL_CALL handleBoundrectChangedEvent();
+
+    //state changed
+    virtual void SAL_CALL setComponentState(short state, bool enable);
+
+};
+
+#endif

File winaccessibility/inc/ResIDGenerator.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+ 
+#ifndef __RESIDGENERATOR_HXX
+#define __RESIDGENERATOR_HXX
+
+#define PRIMARY_RESID 0x00000001
+#include <deque>
+
+//ResID i.e. MSAA child ID,
+//this class is responsible for generating a child ID
+class ResIDGenerator
+{
+private:
+
+    long min;
+    long max;
+    std::deque<long> subList;
+
+public:
+
+    ResIDGenerator( long minNum = PRIMARY_RESID,long maxNum = PRIMARY_RESID);
+    long GenerateNewResID();
+    void SetSub(long number)
+    {
+        subList.push_back(number);
+    };
+    virtual ~ResIDGenerator();
+
+};
+
+inline ResIDGenerator::ResIDGenerator( long minNum ,long maxNum )
+{
+    min = minNum;
+    max = maxNum;
+}
+
+#endif

File winaccessibility/inc/UAccCOM2.h

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __UACCCOM2_H
+#define __UACCCOM2_H
+
+// Just a wrapper header for disabling this warning....
+
+#pragma warning( disable: 4917 )  /* a GUID can only be associated with a class, interface or namespace */
+#include "UAccCOM.h"
+
+#endif

File winaccessibility/inc/accHelper.hxx

+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright IBM Corporation 2010.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify