$VERSION
=
"0.16"
;
sub
new {
my
$class
=
shift
;
my
$self
=
$class
->SUPER::new(
@_
);
$self
->Require(
'SideBars'
);
my
$args
=
$self
->GetArgsRef;
my
$panel
=
delete
$args
->{
'-selectorpanel'
};
$panel
=
'LEFT'
unless
defined
$panel
;
$self
->addPreConfig(
-documentinterface
=> [
'PASSIVE'
,
undef
,
undef
,
'MDI'
],
-treeiconsize
=> [
'PASSIVE'
],
);
my
$sb
=
$self
->extGet(
'SideBars'
);
$sb
->nbAdd(
'navigator panel'
,
$panel
,
'left'
)
unless
$sb
->nbExists(
'navigator panel'
);
if
(
$sb
->canRotateText) {
$sb
->nbTextSide(
'navigator panel'
,
'bottom'
);
$sb
->nbTextRotate(
'navigator panel'
, 90);
}
$self
->addPostConfig(
'CreateSideBar'
,
$self
,
$panel
);
return
$self
;
}
sub
Add {
my
(
$self
,
$name
) =
@_
;
my
$t
=
$self
->Subwidget(
'NAVTREE'
);
$t
->entryAdd(
$name
);
}
sub
CreateSideBar {
my
(
$self
,
$panel
) =
@_
;
my
$sb
=
$self
->extGet(
'SideBars'
);
my
$page
=
$sb
->pageAdd(
'navigator panel'
,
'Documents'
,
'document-open'
,
undef
,
'Document list'
, 250);
my
$dt
=
$page
->DocumentTree(
-entryselect
=> [
'SelectDocument'
,
$self
],
-diriconcall
=> [
'GetDirIcon'
,
$self
],
-fileiconcall
=> [
'GetFileIcon'
,
$self
],
-saveiconcall
=> [
'GetSaveIcon'
,
$self
],
)->
pack
(
-expand
=> 1,
-fill
=>
'both'
);
$self
->Advertise(
'NAVTREE'
,
$dt
);
}
sub
Delete {
my
(
$self
,
$name
) =
@_
;
$self
->Subwidget(
'NAVTREE'
)->entryDelete(
$name
);
}
sub
EntryModified {
my
(
$self
,
$name
) =
@_
;
$self
->Subwidget(
'NAVTREE'
)->entryModified(
$name
);
}
sub
EntrySaved {
my
(
$self
,
$name
) =
@_
;
$self
->Subwidget(
'NAVTREE'
)->entrySaved(
$name
);
}
sub
GetDirIcon {
my
(
$self
,
$name
) =
@_
;
my
$icon
=
$self
->getArt(
'folder'
,
$self
->configGet(
'-treeiconsize'
));
return
$icon
if
defined
$icon
;
return
$self
->Subwidget(
'NAVTREE'
)->DefaultDirIcon;
}
sub
GetFileIcon {
my
(
$self
,
$name
) =
@_
;
my
$art
=
$self
->extGet(
'Art'
);
if
(
defined
$art
) {
my
$icon
=
$art
->getFileIcon(
$name
,
$self
->configGet(
'-treeiconsize'
));
return
$icon
if
defined
$icon
;
}
return
$self
->Subwidget(
'NAVTREE'
)->DefaultFileIcon;
}
sub
GetSaveIcon {
my
(
$self
,
$name
) =
@_
;
my
$icon
=
$self
->getArt(
'document-save'
);
return
$icon
if
defined
$icon
;
return
$self
->Subwidget(
'NAVTREE'
)->DefaultSaveIcon;
}
sub
SelectDocument {
my
(
$self
,
$name
) =
@_
;
$self
->cmdExecute(
'doc_select'
,
$name
);
}
sub
SelectEntry {
my
(
$self
,
$name
) =
@_
;
$self
->Subwidget(
'NAVTREE'
)->entrySelect(
$name
);
}
1;