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
9e3820ac
Kaydet (Commit)
9e3820ac
authored
Eyl 11, 2015
tarafından
Noel Grandin
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
convert Link<> to typed
Change-Id: I70d7c7ae4fc68d2f36a00d7c1b6eba71f63872d7
üst
71a83295
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
37 additions
and
49 deletions
+37
-49
svapp.hxx
include/vcl/svapp.hxx
+2
-2
vclevent.hxx
include/vcl/vclevent.hxx
+0
-5
vclxtoolkit.cxx
toolkit/source/awt/vclxtoolkit.cxx
+11
-11
svdata.hxx
vcl/inc/svdata.hxx
+3
-1
svapp.cxx
vcl/source/app/svapp.cxx
+21
-8
vclevent.cxx
vcl/source/app/vclevent.cxx
+0
-22
No files found.
include/vcl/svapp.hxx
Dosyayı görüntüle @
9e3820ac
...
...
@@ -778,7 +778,7 @@ public:
@see AddEventListener, RemoveEventListener, RemoveKeyListener
*/
static
void
AddKeyListener
(
const
Link
<>&
rKeyListener
);
static
void
AddKeyListener
(
const
Link
<
VclWindowEvent
&
,
bool
>&
rKeyListener
);
/** Remove a keypress listener from the application.
...
...
@@ -786,7 +786,7 @@ public:
@see AddEventListener, RemoveEventListener, AddKeyListener
*/
static
void
RemoveKeyListener
(
const
Link
<>&
rKeyListener
);
static
void
RemoveKeyListener
(
const
Link
<
VclWindowEvent
&
,
bool
>&
rKeyListener
);
/** Send event to all VCL application event listeners
...
...
include/vcl/vclevent.hxx
Dosyayı görüntüle @
9e3820ac
...
...
@@ -256,11 +256,6 @@ class VCL_DLLPUBLIC VclEventListeners
{
public
:
void
Call
(
VclSimpleEvent
*
pEvent
)
const
;
// stops notifying when any handler has processed the event
// and returns true in that case
// a handler must return true to signal that it has processed the event
bool
Process
(
VclSimpleEvent
*
pEvent
)
const
;
void
addListener
(
const
Link
<>&
rListener
);
void
removeListener
(
const
Link
<>&
rListener
);
private
:
...
...
toolkit/source/awt/vclxtoolkit.cxx
Dosyayı görüntüle @
9e3820ac
...
...
@@ -161,20 +161,20 @@ class VCLXToolkit : public VCLXToolkit_Impl,
::
cppu
::
OInterfaceContainerHelper
m_aKeyHandlers
;
::
cppu
::
OInterfaceContainerHelper
m_aFocusListeners
;
::
Link
<>
m_aEventListenerLink
;
::
Link
<>
m_aKeyListenerLink
;
::
Link
<
VclWindowEvent
&
,
bool
>
m_aKeyListenerLink
;
bool
m_bEventListener
;
bool
m_bKeyListener
;
DECL_LINK
(
eventListenerHandler
,
::
VclSimpleEvent
const
*
);
DECL_LINK
(
keyListenerHandler
,
::
VclSimpleEvent
const
*
);
DECL_LINK
_TYPED
(
keyListenerHandler
,
::
VclWindowEvent
&
,
bool
);
void
callTopWindowListeners
(
::
VclSimpleEvent
const
*
pEvent
,
void
(
SAL_CALL
css
::
awt
::
XTopWindowListener
::*
pFn
)(
css
::
lang
::
EventObject
const
&
));
long
callKeyHandlers
(
::
VclSimpleEvent
const
*
pEvent
,
bool
bPressed
);
bool
callKeyHandlers
(
::
VclSimpleEvent
const
*
pEvent
,
bool
bPressed
);
void
callFocusListeners
(
::
VclSimpleEvent
const
*
pEvent
,
bool
bGained
);
...
...
@@ -1737,16 +1737,16 @@ IMPL_LINK(VCLXToolkit, eventListenerHandler, ::VclSimpleEvent const *, pEvent)
return
0
;
}
IMPL_LINK
(
VCLXToolkit
,
keyListenerHandler
,
::
VclSimpleEvent
const
*
,
pEvent
)
IMPL_LINK
_TYPED
(
VCLXToolkit
,
keyListenerHandler
,
::
VclWindowEvent
&
,
rEvent
,
bool
)
{
switch
(
pEvent
->
GetId
())
switch
(
rEvent
.
GetId
())
{
case
VCLEVENT_WINDOW_KEYINPUT
:
return
callKeyHandlers
(
p
Event
,
true
);
return
callKeyHandlers
(
&
r
Event
,
true
);
case
VCLEVENT_WINDOW_KEYUP
:
return
callKeyHandlers
(
p
Event
,
false
);
return
callKeyHandlers
(
&
r
Event
,
false
);
}
return
0
;
return
false
;
}
void
VCLXToolkit
::
callTopWindowListeners
(
...
...
@@ -1784,7 +1784,7 @@ void VCLXToolkit::callTopWindowListeners(
}
}
long
VCLXToolkit
::
callKeyHandlers
(
::
VclSimpleEvent
const
*
pEvent
,
bool
VCLXToolkit
::
callKeyHandlers
(
::
VclSimpleEvent
const
*
pEvent
,
bool
bPressed
)
{
css
::
uno
::
Sequence
<
css
::
uno
::
Reference
<
css
::
uno
::
XInterface
>
>
...
...
@@ -1818,7 +1818,7 @@ long VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
{
if
((
bPressed
?
xHandler
->
keyPressed
(
aAwtEvent
)
:
xHandler
->
keyReleased
(
aAwtEvent
)))
return
1
;
return
true
;
}
catch
(
const
css
::
uno
::
RuntimeException
&
rEx
)
{
...
...
@@ -1829,7 +1829,7 @@ long VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
}
}
}
return
0
;
return
false
;
}
void
VCLXToolkit
::
callFocusListeners
(
::
VclSimpleEvent
const
*
pEvent
,
...
...
vcl/inc/svdata.hxx
Dosyayı görüntüle @
9e3820ac
...
...
@@ -101,6 +101,8 @@ public:
virtual
void
ConfigurationChanged
(
utl
::
ConfigurationBroadcaster
*
,
sal_uInt32
)
SAL_OVERRIDE
;
};
typedef
std
::
list
<
Link
<
VclWindowEvent
&
,
bool
>
>
SVAppKeyListeners
;
struct
ImplSVAppData
{
enum
ImeStatusWindowMode
...
...
@@ -113,7 +115,7 @@ struct ImplSVAppData
AllSettings
*
mpSettings
;
// Application settings
LocaleConfigurationListener
*
mpCfgListener
;
VclEventListeners
*
mpEventListeners
;
// listeners for vcl events (eg, extended toolkit)
VclEvent
Listeners
*
mpKeyListeners
;
// listeners for key events only (eg, extended toolkit)
SVAppKey
Listeners
*
mpKeyListeners
;
// listeners for key events only (eg, extended toolkit)
ImplAccelManager
*
mpAccelMgr
;
// Accelerator Manager
OUString
*
mpAppName
;
// Application name
OUString
*
mpAppFileName
;
// Abs. Application FileName
...
...
vcl/source/app/svapp.cxx
Dosyayı görüntüle @
9e3820ac
...
...
@@ -688,19 +688,19 @@ void Application::RemoveEventListener( const Link<>& rEventListener )
pSVData
->
maAppData
.
mpEventListeners
->
removeListener
(
rEventListener
);
}
void
Application
::
AddKeyListener
(
const
Link
<>&
rKeyListener
)
void
Application
::
AddKeyListener
(
const
Link
<
VclWindowEvent
&
,
bool
>&
rKeyListener
)
{
ImplSVData
*
pSVData
=
ImplGetSVData
();
if
(
!
pSVData
->
maAppData
.
mpKeyListeners
)
pSVData
->
maAppData
.
mpKeyListeners
=
new
VclEvent
Listeners
;
pSVData
->
maAppData
.
mpKeyListeners
->
addListener
(
rKeyListener
);
pSVData
->
maAppData
.
mpKeyListeners
=
new
SVAppKey
Listeners
;
pSVData
->
maAppData
.
mpKeyListeners
->
push_back
(
rKeyListener
);
}
void
Application
::
RemoveKeyListener
(
const
Link
<>&
rKeyListener
)
void
Application
::
RemoveKeyListener
(
const
Link
<
VclWindowEvent
&
,
bool
>&
rKeyListener
)
{
ImplSVData
*
pSVData
=
ImplGetSVData
();
if
(
pSVData
->
maAppData
.
mpKeyListeners
)
pSVData
->
maAppData
.
mpKeyListeners
->
remove
Listener
(
rKeyListener
);
pSVData
->
maAppData
.
mpKeyListeners
->
remove
(
rKeyListener
);
}
bool
Application
::
HandleKey
(
sal_uLong
nEvent
,
vcl
::
Window
*
pWin
,
KeyEvent
*
pKeyEvent
)
...
...
@@ -709,11 +709,24 @@ bool Application::HandleKey( sal_uLong nEvent, vcl::Window *pWin, KeyEvent* pKey
VclWindowEvent
aEvent
(
pWin
,
nEvent
,
static_cast
<
void
*>
(
pKeyEvent
)
);
ImplSVData
*
pSVData
=
ImplGetSVData
();
bool
bProcessed
=
false
;
if
(
pSVData
->
maAppData
.
mpKeyListeners
)
bProcessed
=
pSVData
->
maAppData
.
mpKeyListeners
->
Process
(
&
aEvent
)
;
if
(
!
pSVData
->
maAppData
.
mpKeyListeners
)
return
false
;
if
(
pSVData
->
maAppData
.
mpKeyListeners
->
empty
()
)
return
false
;
bool
bProcessed
=
false
;
// Copy the list, because this can be destroyed when calling a Link...
std
::
list
<
Link
<
VclWindowEvent
&
,
bool
>>
aCopy
(
*
pSVData
->
maAppData
.
mpKeyListeners
);
for
(
Link
<
VclWindowEvent
&
,
bool
>&
rLink
:
aCopy
)
{
if
(
rLink
.
Call
(
aEvent
)
)
{
bProcessed
=
true
;
break
;
}
}
return
bProcessed
;
}
...
...
vcl/source/app/vclevent.cxx
Dosyayı görüntüle @
9e3820ac
...
...
@@ -76,28 +76,6 @@ void VclEventListeners::Call( VclSimpleEvent* pEvent ) const
}
}
bool
VclEventListeners
::
Process
(
VclSimpleEvent
*
pEvent
)
const
{
if
(
m_aListeners
.
empty
()
)
return
false
;
bool
bProcessed
=
false
;
// Copy the list, because this can be destroyed when calling a Link...
std
::
list
<
Link
<>>
aCopy
(
m_aListeners
);
std
::
list
<
Link
<>>::
iterator
aIter
(
aCopy
.
begin
()
);
std
::
list
<
Link
<>>::
const_iterator
aEnd
(
aCopy
.
end
()
);
while
(
aIter
!=
aEnd
)
{
if
(
(
*
aIter
).
Call
(
pEvent
)
!=
0
)
{
bProcessed
=
true
;
break
;
}
++
aIter
;
}
return
bProcessed
;
}
void
VclEventListeners
::
addListener
(
const
Link
<>&
rListener
)
{
m_aListeners
.
push_back
(
rListener
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment