$VERSION
=
'0.19'
;
sub
new {
my
$class
=
shift
;
my
$self
=
$class
->SUPER::new(
@_
);
return
undef
unless
defined
$self
;
$self
->{ACTIVEDELAY} = 600;
$self
->cmdHookBefore(
'quit'
,
'selectBlock'
,
$self
);
$self
->cmdHookBefore(
'deferred_open'
,
'selectBlock'
,
$self
);
$self
->cmdHookAfter(
'modified'
,
'activate'
,
$self
);
$self
->cmdHookAfter(
'doc_select'
,
'docSelect'
,
$self
);
return
$self
;
}
sub
activate {
my
$self
=
shift
;
my
$id
=
$self
->{
'active_id'
};
$self
->afterCancel(
$id
)
if
defined
$id
;
$self
->{
'active_id'
} =
$self
->
after
(
$self
->activeDelay, [
'Refresh'
,
$self
]);
}
sub
activeDelay {
my
$self
=
shift
;
$self
->{ACTIVEDELAY} =
shift
if
@_
;
return
$self
->{ACTIVEDELAY}
}
sub
Clear {
}
sub
docSelect {
my
$self
=
shift
;
if
(
exists
$self
->{
'select_block'
}) {
$self
->
after
(100,
sub
{
delete
$self
->{
'select_block'
} });
}
my
$mdi
=
$self
->extGet(
'CoditMDI'
);
return
if
$mdi
->selectDisabled;
$self
->
after
(10,
sub
{
$self
->Refresh(0);
});
}
sub
Refresh {
my
$self
=
shift
;
delete
$self
->{
'active_id'
};
}
sub
selectBlock {
my
$self
=
shift
;
$self
->{
'select_block'
} = 1;
}
sub
Unload {
my
$self
=
shift
;
my
$id
=
$self
->{
'active_id'
};
$self
->afterCancel(
$id
)
if
defined
$id
;
$self
->cmdUnhookBefore(
'quit'
,
'selectBlock'
,
$self
);
$self
->cmdUnhookBefore(
'deferred_open'
,
'selectBlock'
,
$self
);
$self
->cmdUnhookAfter(
'modified'
,
'activate'
,
$self
);
$self
->cmdUnhookAfter(
'doc_select'
,
'docSelect'
,
$self
);
return
$self
->SUPER::Unload
}
1;