Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
cebd8de4
Kaydet (Commit)
cebd8de4
authored
Şub 27, 2004
tarafından
Lars Oppermann
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#i25594# event type strings
üst
b2f3066c
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
220 additions
and
139 deletions
+220
-139
characterdata.cxx
unoxml/source/dom/characterdata.cxx
+11
-9
document.cxx
unoxml/source/dom/document.cxx
+50
-8
document.hxx
unoxml/source/dom/document.hxx
+12
-3
element.cxx
unoxml/source/dom/element.cxx
+19
-17
node.cxx
unoxml/source/dom/node.cxx
+20
-17
node.hxx
unoxml/source/dom/node.hxx
+9
-5
processinginstruction.cxx
unoxml/source/dom/processinginstruction.cxx
+4
-3
event.cxx
unoxml/source/events/event.cxx
+3
-2
event.hxx
unoxml/source/events/event.hxx
+9
-5
eventdispatcher.cxx
unoxml/source/events/eventdispatcher.cxx
+72
-60
eventdispatcher.hxx
unoxml/source/events/eventdispatcher.hxx
+4
-4
mutationevent.cxx
unoxml/source/events/mutationevent.cxx
+3
-3
mutationevent.hxx
unoxml/source/events/mutationevent.hxx
+4
-3
No files found.
unoxml/source/dom/characterdata.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: characterdata.cxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:14
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:29
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -59,8 +59,8 @@
*
************************************************************************/
#include <com/sun/star/xml/dom/events/XDocumentEvent.hpp>
#include "characterdata.hxx"
#include "../events/mutationevent.hxx"
namespace
DOM
...
...
@@ -71,12 +71,14 @@ namespace DOM
void
CCharacterData
::
_dispatchEvent
(
const
OUString
&
prevValue
,
const
OUString
&
newValue
)
{
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMCharacterDataModified
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(),
prevValue
,
newValue
,
OUString
(),
(
AttrChangeType
)
0
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
this
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMCharacterDataModified"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMCharacterDataModified"
),
sal_True
,
sal_False
,
Reference
<
XNode
>
(),
prevValue
,
newValue
,
OUString
(),
(
AttrChangeType
)
0
);
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
void
CCharacterData
::
init_characterdata
(
const
xmlNodePtr
aNodePtr
)
...
...
unoxml/source/dom/document.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: document.cxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:14
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:29
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -73,6 +73,7 @@
#include "elementlist.hxx"
#include "domimplementation.hxx"
#include "../events/event.hxx"
#include "../events/mutationevent.hxx"
namespace
DOM
...
...
@@ -512,12 +513,13 @@ namespace DOM
*/
if
(
aNode
.
is
())
{
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMNodeInsertedIntoDocument
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(),
OUString
(),
OUString
(),
OUString
(),
(
AttrChangeType
)
0
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
aNode
,
UNO_QUERY
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMNodeInsertedIntoDocument"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMNodeInsertedIntoDocument"
)
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(),
OUString
(),
OUString
(),
OUString
(),
(
AttrChangeType
)
0
);
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
return
aNode
;
...
...
@@ -530,4 +532,44 @@ namespace DOM
{
return
OUString
();
}
Reference
<
XEvent
>
createEvent
(
const
OUString
&
aType
)
throw
(
RuntimeException
)
{
events
::
CEvent
*
pEvent
=
0
;
if
(
aType
.
compareToAscii
(
"DOMSubtreeModified"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeInserted"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeRemoved"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeRemovedFromDocument"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeInsertedIntoDocument"
)
==
0
||
aType
.
compareToAscii
(
"DOMAttrModified"
)
==
0
||
aType
.
compareToAscii
(
"DOMCharacterDataModified"
)
==
0
)
{
events
::
CMutationEvent
*
pMEvent
=
new
events
::
CMutationEvent
;
pEvent
=
pMEvent
;
}
else
if
(
aType
.
compareToAscii
(
"DOMFocusIn"
)
==
0
||
aType
.
compareToAscii
(
"DOMFocusOut"
)
==
0
||
aType
.
compareToAscii
(
"DOMActivate"
)
==
0
)
{
// XXX UIEvents
throw
RuntimeException
();
}
else
if
(
aType
.
compareToAscii
(
"click"
)
==
0
||
aType
.
compareToAscii
(
"mousedown"
)
==
0
||
aType
.
compareToAscii
(
"mouseup"
)
==
0
||
aType
.
compareToAscii
(
"mouseover"
)
==
0
||
aType
.
compareToAscii
(
"mousemove"
)
==
0
||
aType
.
compareToAscii
(
"mouseout"
)
==
0
)
{
// XXX MouseEvents
throw
RuntimeException
();
}
else
// generic event
{
pEvent
=
new
events
::
CEvent
;
}
return
Reference
<
XEvent
>
(
pEvent
);
}
}
unoxml/source/dom/document.hxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: document.hxx,v $
*
* $Revision: 1.
2
$
* $Revision: 1.
3
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:15
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:29
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -65,12 +65,15 @@
#include <list>
#include <sal/types.h>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/implbase2.hxx>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/xml/dom/XNode.hpp>
#include <com/sun/star/xml/dom/XAttr.hpp>
#include <com/sun/star/xml/dom/XElement.hpp>
#include <com/sun/star/xml/dom/XDOMImplementation.hpp>
#include <com/sun/star/xml/dom/events/XDocumentEvent.hpp>
#include <com/sun/star/xml/dom/events/XEvent.hpp>
#include "node.hxx"
...
...
@@ -80,13 +83,14 @@ using namespace rtl;
using
namespace
com
::
sun
::
star
::
uno
;
using
namespace
com
::
sun
::
star
::
lang
;
using
namespace
com
::
sun
::
star
::
xml
::
dom
;
using
namespace
com
::
sun
::
star
::
xml
::
dom
::
events
;
namespace
DOM
{
typedef
std
::
list
<
Reference
<
XNode
>*
>
nodereflist_t
;
class
CDocument
:
public
cppu
::
ImplInheritanceHelper
1
<
CNode
,
XDocum
ent
>
class
CDocument
:
public
cppu
::
ImplInheritanceHelper
2
<
CNode
,
XDocument
,
XDocumentEv
ent
>
{
friend
class
CNode
;
private
:
...
...
@@ -340,7 +344,11 @@ namespace DOM
return
CNode
::
setPrefix
(
prefix
);
}
// XDocumentEvent
virtual
Reference
<
XEvent
>
createEvent
(
const
OUString
&
eventType
)
throw
(
RuntimeException
);
};
}
#endif
\ No newline at end of file
unoxml/source/dom/element.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: element.cxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:15
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:29
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -314,12 +314,13 @@ namespace DOM
{
// attribute adition event
// dispatch DOMAttrModified event
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMAttrModified
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(
aAttr
,
UNO_QUERY
),
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMAttrModified"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMAttrModified"
),
sal_True
,
sal_False
,
Reference
<
XNode
>
(
aAttr
,
UNO_QUERY
),
OUString
(),
aAttr
->
getValue
(),
aAttr
->
getName
(),
AttrChangeType_ADDITION
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
this
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
return
aAttr
;
}
...
...
@@ -367,13 +368,13 @@ namespace DOM
// dispatch DOMAttrModified event
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMAttrModified
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(
getAttributeNode
(
name
),
UNO_QUERY
),
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMAttrModified"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMAttrModified"
),
sal_True
,
sal_False
,
Reference
<
XNode
>
(
getAttributeNode
(
name
),
UNO_QUERY
),
oldValue
,
value
,
name
,
aChangeType
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
this
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
}
...
...
@@ -436,12 +437,13 @@ namespace DOM
xmlSetNsProp
(
m_aNodePtr
,
pNs
,
xLName
,
xValue
);
}
// dispatch DOMAttrModified event
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMAttrModified
,
sal_True
,
sal_False
,
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMAttrModified"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMAttrModified"
),
sal_True
,
sal_False
,
Reference
<
XNode
>
(
getAttributeNodeNS
(
namespaceURI
,
OUString
((
char
*
)
xLName
,
strlen
((
char
*
)
xLName
),
RTL_TEXTENCODING_UTF8
)),
UNO_QUERY
),
oldValue
,
value
,
qualifiedName
,
aChangeType
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
this
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
else
{
// ambigious ns prefix
...
...
unoxml/source/dom/node.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: node.cxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:16
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:30
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -342,12 +342,13 @@ namespace DOM
// does bubble
if
(
aNode
.
is
())
{
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMNodeInserted
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(
CNode
::
get
(
m_aNodePtr
)),
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMNodeInserted"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMNodeInserted"
)
,
sal_True
,
sal_False
,
Reference
<
XNode
>
(
CNode
::
get
(
m_aNodePtr
)),
OUString
(),
OUString
(),
OUString
(),
(
AttrChangeType
)
0
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
aNode
,
UNO_QUERY
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
return
aNode
;
}
...
...
@@ -711,12 +712,13 @@ namespace DOM
*/
if
(
oldChild
.
is
())
{
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMNodeRemoved
,
sal_True
,
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMNodeRemoved"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMNodeRemoved"
),
sal_True
,
sal_False
,
Reference
<
XNode
>
(
CNode
::
get
(
m_aNodePtr
)),
OUString
(),
OUString
(),
OUString
(),
(
AttrChangeType
)
0
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
oldChild
,
UNO_QUERY
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
}
return
oldChild
;
}
...
...
@@ -765,12 +767,13 @@ namespace DOM
*/
// dispatch DOMSubtreeModified
// target is _this_ node
events
::
CMutationEvent
*
pEvent
=
new
events
::
CMutationEvent
;
pEvent
->
initMutationEvent
(
EventType_DOMSubtreeModified
,
sal_True
,
Reference
<
XDocumentEvent
>
docevent
(
getOwnerDocument
(),
UNO_QUERY
);
Reference
<
XMutationEvent
>
event
(
docevent
->
createEvent
(
OUString
::
createFromAscii
(
"DOMSubtreeModified"
)),
UNO_QUERY
);
event
->
initMutationEvent
(
OUString
::
createFromAscii
(
"DOMSubtreeModified"
),
sal_True
,
sal_False
,
Reference
<
XNode
>
(),
OUString
(),
OUString
(),
OUString
(),
(
AttrChangeType
)
0
);
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
this
);
dispatchEvent
(
Reference
<
XEvent
>
(
static_cast
<
events
::
CEvent
*
>
(
pEvent
)));
dispatchEvent
(
Reference
<
XEvent
>
(
event
,
UNO_QUERY
));
return
aNode
;
}
...
...
@@ -813,7 +816,7 @@ namespace DOM
// --- XEventTarget
void
SAL_CALL
CNode
::
addEventListener
(
EventType
eventType
,
void
SAL_CALL
CNode
::
addEventListener
(
const
OUString
&
eventType
,
const
Reference
<
XEventListener
>&
listener
,
sal_Bool
useCapture
)
throw
(
RuntimeException
)
...
...
@@ -821,7 +824,7 @@ namespace DOM
events
::
CEventDispatcher
::
addListener
(
m_aNodePtr
,
eventType
,
listener
,
useCapture
);
}
void
SAL_CALL
CNode
::
removeEventListener
(
EventType
eventType
,
void
SAL_CALL
CNode
::
removeEventListener
(
const
OUString
&
eventType
,
const
Reference
<
XEventListener
>&
listener
,
sal_Bool
useCapture
)
throw
(
RuntimeException
)
...
...
unoxml/source/dom/node.hxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: node.hxx,v $
*
* $Revision: 1.
3
$
* $Revision: 1.
4
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:16
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:30
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -73,10 +73,14 @@
#include <com/sun/star/xml/dom/XNodeList.hpp>
#include <com/sun/star/xml/dom/XNamedNodeMap.hpp>
#include <com/sun/star/xml/dom/NodeType.hpp>
#include <com/sun/star/xml/dom/events/XEventTarget.hpp>
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/xml/dom/events/XEventTarget.hpp>
#include <com/sun/star/xml/dom/events/XDocumentEvent.hpp>
#include <com/sun/star/xml/dom/events/XEvent.hpp>
#include <com/sun/star/xml/dom/events/XMutationEvent.hpp>
#include <com/sun/star/xml/dom/events/XUIEvent.hpp>
#include <com/sun/star/xml/dom/events/XMouseEvent.hpp>
#include <com/sun/star/xml/dom/DOMException.hpp>
#include <libxml/tree.h>
...
...
@@ -295,12 +299,12 @@ namespace DOM
virtual
sal_Int64
SAL_CALL
getSomething
(
const
Sequence
<
sal_Int8
>&
id
)
throw
(
RuntimeException
);
// --- XEventTarget
virtual
void
SAL_CALL
addEventListener
(
EventType
eventType
,
virtual
void
SAL_CALL
addEventListener
(
const
OUString
&
eventType
,
const
Reference
<
XEventListener
>&
listener
,
sal_Bool
useCapture
)
throw
(
RuntimeException
);
virtual
void
SAL_CALL
removeEventListener
(
EventType
eventType
,
virtual
void
SAL_CALL
removeEventListener
(
const
OUString
&
eventType
,
const
Reference
<
XEventListener
>&
listener
,
sal_Bool
useCapture
)
throw
(
RuntimeException
);
...
...
unoxml/source/dom/processinginstruction.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -2,9 +2,9 @@
*
* $RCSfile: processinginstruction.cxx,v $
*
* $Revision: 1.
2
$
* $Revision: 1.
3
$
*
* last change: $Author: lo $ $Date: 2004-02-2
6 14:43:16
$
* last change: $Author: lo $ $Date: 2004-02-2
7 16:14:30
$
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
...
...
@@ -108,8 +108,9 @@ namespace DOM
}
return
aName
;
}
OUString
SAL_CALL
CProcessingInstruction
::
getNodeValue
()
throw
(
RuntimeException
)
{
return
OUString
();
return
getData
();
}
}
unoxml/source/events/event.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -7,7 +7,7 @@ namespace DOM { namespace events
{
}
EventType
SAL_CALL
CEvent
::
getType
()
throw
(
RuntimeException
)
OUString
SAL_CALL
CEvent
::
getType
()
throw
(
RuntimeException
)
{
return
m_eventType
;
}
...
...
@@ -44,13 +44,14 @@ namespace DOM { namespace events
void
SAL_CALL
CEvent
::
stopPropagation
()
throw
(
RuntimeException
)
{
if
(
m_cancelable
)
m_canceled
=
sal_True
;
}
void
SAL_CALL
CEvent
::
preventDefault
()
throw
(
RuntimeException
)
{
}
void
SAL_CALL
CEvent
::
initEvent
(
EventType
eventTypeArg
,
sal_Bool
canBubbleArg
,
void
SAL_CALL
CEvent
::
initEvent
(
const
OUString
&
eventTypeArg
,
sal_Bool
canBubbleArg
,
sal_Bool
cancelableArg
)
throw
(
RuntimeException
)
{
m_eventType
=
eventTypeArg
;
...
...
unoxml/source/events/event.hxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -34,8 +34,11 @@ friend class CCharacterData;
friend
class
CAttr
;
private
:
sal_Bool
m_canceled
;
protected
:
EventType
m_eventType
;
OUString
m_eventType
;
Reference
<
XEventTarget
>
m_target
;
Reference
<
XEventTarget
>
m_currentTarget
;
//xmlNodePtr m_target;
...
...
@@ -47,8 +50,10 @@ protected:
public
:
CEvent
()
:
m_canceled
(
sal_False
){}
virtual
~
CEvent
();
virtual
EventType
SAL_CALL
getType
()
throw
(
RuntimeException
);
virtual
OUString
SAL_CALL
getType
()
throw
(
RuntimeException
);
virtual
Reference
<
XEventTarget
>
SAL_CALL
getTarget
()
throw
(
RuntimeException
);
virtual
Reference
<
XEventTarget
>
SAL_CALL
getCurrentTarget
()
throw
(
RuntimeException
);
virtual
PhaseType
SAL_CALL
getEventPhase
()
throw
(
RuntimeException
);
...
...
@@ -58,10 +63,9 @@ public:
virtual
void
SAL_CALL
stopPropagation
()
throw
(
RuntimeException
);
virtual
void
SAL_CALL
preventDefault
()
throw
(
RuntimeException
);
virtual
void
SAL_CALL
initEvent
(
EventType
eventTypeArg
,
const
OUString
&
eventTypeArg
,
sal_Bool
canBubbleArg
,
sal_Bool
cancelableArg
)
throw
(
RuntimeException
);
sal_Bool
cancelableArg
)
throw
(
RuntimeException
);
};
}}
#endif
unoxml/source/events/eventdispatcher.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -7,7 +7,7 @@ namespace DOM { namespace events {
TypeListenerMap
CEventDispatcher
::
captureListeners
;
TypeListenerMap
CEventDispatcher
::
targetListeners
;
void
CEventDispatcher
::
addListener
(
xmlNodePtr
pNode
,
EventType
aType
,
const
Reference
<
XEventListener
>&
aListener
,
sal_Bool
bCapture
)
void
CEventDispatcher
::
addListener
(
xmlNodePtr
pNode
,
OUString
aType
,
const
Reference
<
XEventListener
>&
aListener
,
sal_Bool
bCapture
)
{
TypeListenerMap
*
pTMap
=
&
targetListeners
;
if
(
bCapture
)
pTMap
=
&
captureListeners
;
...
...
@@ -26,7 +26,7 @@ namespace DOM { namespace events {
pMap
->
insert
(
ListenerMap
::
value_type
(
pNode
,
aListener
));
}
void
CEventDispatcher
::
removeListener
(
xmlNodePtr
pNode
,
EventType
aType
,
const
Reference
<
XEventListener
>&
aListener
,
sal_Bool
bCapture
)
void
CEventDispatcher
::
removeListener
(
xmlNodePtr
pNode
,
OUString
aType
,
const
Reference
<
XEventListener
>&
aListener
,
sal_Bool
bCapture
)
{
TypeListenerMap
*
pTMap
=
&
targetListeners
;
if
(
bCapture
)
pTMap
=
&
captureListeners
;
...
...
@@ -53,7 +53,7 @@ namespace DOM { namespace events {
}
}
void
CEventDispatcher
::
callListeners
(
xmlNodePtr
pNode
,
EventType
aType
,
const
Reference
<
XEvent
>&
xEvent
,
sal_Bool
bCapture
)
void
CEventDispatcher
::
callListeners
(
xmlNodePtr
pNode
,
OUString
aType
,
const
Reference
<
XEvent
>&
xEvent
,
sal_Bool
bCapture
)
{
TypeListenerMap
*
pTMap
=
&
targetListeners
;
if
(
bCapture
)
pTMap
=
&
captureListeners
;
...
...
@@ -80,81 +80,93 @@ namespace DOM { namespace events {
sal_Bool
CEventDispatcher
::
dispatchEvent
(
xmlNodePtr
aNodePtr
,
const
Reference
<
XEvent
>&
aEvent
)
{
EventType
aType
=
aEvent
->
getType
();
switch
(
aType
)
CEvent
*
pEvent
=
0
;
// pointer to internal event representation
Reference
<
XEvent
>
xEvent
;
// reference to the event being dispatched;
OUString
aType
=
aEvent
->
getType
();
if
(
aType
.
compareToAscii
(
"DOMSubtreeModified"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeInserted"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeRemoved"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeRemovedFromDocument"
)
==
0
||
aType
.
compareToAscii
(
"DOMNodeInsertedIntoDocument"
)
==
0
||
aType
.
compareToAscii
(
"DOMAttrModified"
)
==
0
||
aType
.
compareToAscii
(
"DOMCharacterDataModified"
)
==
0
)
{
case
EventType_DOMSubtreeModified
:
case
EventType_DOMNodeInserted
:
case
EventType_DOMNodeRemoved
:
case
EventType_DOMNodeRemovedFromDocument
:
case
EventType_DOMNodeInsertedIntoDocument
:
case
EventType_DOMAttrModified
:
case
EventType_DOMCharacterDataModified
:
{
Reference
<
XMutationEvent
>
aMEvent
(
aEvent
,
UNO_QUERY
);
// dispatch a mutation event
// we need to clone the event in order to have complete control
// over the implementation
CMutationEvent
*
pEvent
=
new
CMutationEvent
;
pEvent
->
m_target
=
aEvent
->
getTarget
();
pEvent
->
m_currentTarget
=
aEvent
->
getCurrentTarget
();
pEvent
->
m_time
=
aEvent
->
getTimeStamp
();
pEvent
->
initMutationEvent
(
CMutationEvent
*
pMEvent
=
new
CMutationEvent
;
pMEvent
->
initMutationEvent
(
aType
,
aMEvent
->
getBubbles
(),
aMEvent
->
getCancelable
(),
aMEvent
->
getRelatedNode
(),
aMEvent
->
getPrevValue
(),
aMEvent
->
getNewValue
(),
aMEvent
->
getAttrName
(),
aMEvent
->
getAttrChange
());
Reference
<
XEvent
>
xEvent
(
static_cast
<
CEvent
*
>
(
pEvent
));
pEvent
=
pMEvent
;
}
else
// generic event
{
pEvent
=
new
CEvent
;
pEvent
->
initEvent
(
aType
,
aEvent
->
getBubbles
(),
aEvent
->
getCancelable
());
// build the path from target node to the root
NodeVector
captureVector
;
Reference
<
XUnoTunnel
>
aTunnel
(
xEvent
->
getTarget
(),
UNO_QUERY_THROW
);
xmlNodePtr
cur
=
(
xmlNodePtr
)
aTunnel
->
getSomething
(
Sequence
<
sal_Int8
>
());
while
(
cur
!=
NULL
)
{
captureVector
.
push_back
(
cur
);
cur
=
cur
->
parent
;
}
// the caputre vector now holds the node path from target to root
// first we must search for capture listernes in order root to
// to target. after that, any target listeners have to be called
// then bubbeling phase listeners are called in target to root
// order
NodeVector
::
const_iterator
inode
;
}
pEvent
->
m_target
=
Reference
<
XEventTarget
>
(
DOM
::
CNode
::
get
(
aNodePtr
));
pEvent
->
m_currentTarget
=
aEvent
->
getCurrentTarget
();
pEvent
->
m_time
=
aEvent
->
getTimeStamp
();
xEvent
=
Reference
<
XEvent
>
(
static_cast
<
CEvent
*
>
(
pEvent
));
// start at the root
inode
=
captureVector
.
end
();
// build the path from target node to the root
NodeVector
captureVector
;
Reference
<
XUnoTunnel
>
aTunnel
(
xEvent
->
getTarget
(),
UNO_QUERY_THROW
);
xmlNodePtr
cur
=
(
xmlNodePtr
)
aTunnel
->
getSomething
(
Sequence
<
sal_Int8
>
());
while
(
cur
!=
NULL
)
{
captureVector
.
push_back
(
cur
);
cur
=
cur
->
parent
;
}
// the caputre vector now holds the node path from target to root
// first we must search for capture listernes in order root to
// to target. after that, any target listeners have to be called
// then bubbeling phase listeners are called in target to root
// order
NodeVector
::
const_iterator
inode
;
// start at the root
inode
=
captureVector
.
end
();
inode
--
;
if
(
inode
!=
captureVector
.
end
())
{
// capturing phase:
pEvent
->
m_phase
=
PhaseType_CAPTURING_PHASE
;
while
(
inode
!=
captureVector
.
begin
())
{
//pEvent->m_currentTarget = *inode;
pEvent
->
m_currentTarget
=
Reference
<
XEventTarget
>
(
CNode
::
get
(
*
inode
));
callListeners
(
*
inode
,
aType
,
xEvent
,
sal_True
);
if
(
pEvent
->
m_canceled
)
return
sal_True
;
inode
--
;
if
(
inode
!=
captureVector
.
end
())
}
// target phase
pEvent
->
m_phase
=
PhaseType_AT_TARGET
;
callListeners
(
*
inode
,
aType
,
xEvent
,
sal_False
);
if
(
pEvent
->
m_canceled
)
return
sal_True
;
// bubbeling phase
inode
++
;
if
(
aEvent
->
getBubbles
())
{
pEvent
->
m_phase
=
PhaseType_BUBBLING_PHASE
;
while
(
inode
!=
captureVector
.
end
())
{
// capturing phase:
pEvent
->
m_phase
=
PhaseType_CAPTURING_PHASE
;
while
(
inode
!=
captureVector
.
begin
())
{
//pEvent->m_currentTarget = *inode;
pEvent
->
m_currentTarget
=
Reference
<
XEventTarget
>
(
CNode
::
get
(
*
inode
));
callListeners
(
*
inode
,
aType
,
xEvent
,
sal_True
);
inode
--
;
}
// target phase
pEvent
->
m_phase
=
PhaseType_AT_TARGET
;
pEvent
->
m_currentTarget
=
Reference
<
XEventTarget
>
(
CNode
::
get
(
*
inode
));
callListeners
(
*
inode
,
aType
,
xEvent
,
sal_False
);
// bubbeling phase
if
(
pEvent
->
m_canceled
)
return
sal_True
;
inode
++
;
if
(
aEvent
->
getBubbles
())
{
pEvent
->
m_phase
=
PhaseType_BUBBLING_PHASE
;
while
(
inode
!=
captureVector
.
end
())
{
pEvent
->
m_currentTarget
=
Reference
<
XEventTarget
>
(
CNode
::
get
(
*
inode
));
callListeners
(
*
inode
,
aType
,
xEvent
,
sal_False
);
inode
++
;
}
}
}
}
break
;
}
return
sal_True
;
}
...
...
unoxml/source/events/eventdispatcher.hxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -18,7 +18,7 @@ namespace DOM { namespace events
typedef
std
::
vector
<
xmlNodePtr
>
NodeVector
;
typedef
std
::
multimap
<
xmlNodePtr
,
Reference
<
XEventListener
>
>
ListenerMap
;
typedef
std
::
map
<
EventType
,
ListenerMap
*>
TypeListenerMap
;
typedef
std
::
vector
<
ListenerMap
::
value_type
>
ListenerPairVector
;
typedef
std
::
map
<
OUString
,
ListenerMap
*>
TypeListenerMap
;
typedef
std
::
vector
<
ListenerMap
::
value_type
>
ListenerPairVector
;
class
CEventDispatcher
{
...
...
@@ -31,19 +31,19 @@ public:
static
void
addListener
(
xmlNodePtr
pNode
,
EventType
aType
,
OUString
aType
,
const
Reference
<
XEventListener
>&
aListener
,
sal_Bool
bCapture
);
static
void
removeListener
(
xmlNodePtr
pNode
,
EventType
aType
,
OUString
aType
,
const
Reference
<
XEventListener
>&
aListener
,
sal_Bool
bCapture
);
static
void
callListeners
(
xmlNodePtr
pNode
,
EventType
aType
,
OUString
aType
,
const
Reference
<
XEvent
>&
xEvent
,
sal_Bool
bCapture
);
};
...
...
unoxml/source/events/mutationevent.cxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -31,7 +31,7 @@ namespace DOM { namespace events
return
m_attrChangeType
;
}
void
SAL_CALL
CMutationEvent
::
initMutationEvent
(
EventType
typeArg
,
void
SAL_CALL
CMutationEvent
::
initMutationEvent
(
const
OUString
&
typeArg
,
sal_Bool
canBubbleArg
,
sal_Bool
cancelableArg
,
const
Reference
<
XNode
>&
relatedNodeArg
,
const
OUString
&
prevValueArg
,
const
OUString
&
newValueArg
,
const
OUString
&
attrNameArg
,
...
...
@@ -46,7 +46,7 @@ namespace DOM { namespace events
}
// delegate to CEvent, since we are inheriting from CEvent and XEvent
EventType
SAL_CALL
CMutationEvent
::
getType
()
throw
(
RuntimeException
)
OUString
SAL_CALL
CMutationEvent
::
getType
()
throw
(
RuntimeException
)
{
return
CEvent
::
getType
();
}
...
...
@@ -91,7 +91,7 @@ namespace DOM { namespace events
// no effect
}
void
SAL_CALL
CMutationEvent
::
initEvent
(
EventType
eventTypeArg
,
sal_Bool
canBubbleArg
,
void
SAL_CALL
CMutationEvent
::
initEvent
(
const
OUString
&
eventTypeArg
,
sal_Bool
canBubbleArg
,
sal_Bool
cancelableArg
)
throw
(
RuntimeException
)
{
// base initializer
...
...
unoxml/source/events/mutationevent.hxx
Dosyayı görüntüle @
cebd8de4
...
...
@@ -36,7 +36,8 @@ public:
virtual
OUString
SAL_CALL
getNewValue
()
throw
(
RuntimeException
);
virtual
OUString
SAL_CALL
getAttrName
()
throw
(
RuntimeException
);
virtual
AttrChangeType
SAL_CALL
getAttrChange
()
throw
(
RuntimeException
);
virtual
void
SAL_CALL
initMutationEvent
(
EventType
typeArg
,
virtual
void
SAL_CALL
initMutationEvent
(
const
OUString
&
typeArg
,
sal_Bool
canBubbleArg
,
sal_Bool
cancelableArg
,
const
Reference
<
XNode
>&
relatedNodeArg
,
...
...
@@ -46,7 +47,7 @@ public:
AttrChangeType
attrChangeArg
)
throw
(
RuntimeException
);