16 , m_nMaxWidth(m_pParent->get_preferred_size().
Width())
25 m_nMaxWidth = rSize.Width();
38 int nSegments =
aURL.getSegmentCount();
39 m_aSegments[nSegments]->m_xLink->set_sensitive(
false);
76 int nSegments =
aURL.getSegmentCount();
78 size_t nVecSizeRequired = nSegments + 1;
84 for (
int i = nSegments;
i; --
i)
103 aURL.removeSegment();
126 unsigned int nSeparatorWidth =
m_aSegments[0]->m_xSeparator->get_preferred_size().Width();
127 unsigned int nCurrentWidth = 0;
128 unsigned int nLastVisible = nSegments;
135 while( bLeft || bRight )
137 if( nSegments -
i == -1 )
142 unsigned int nIndex = nSegments -
i;
161 if( nSegments +
i ==
static_cast<int>(
m_aSegments.size()) )
164 if(
i != 0 && bRight )
166 unsigned int nIndex = nSegments +
i;
188 m_aSegments[nSegments]->m_xLink->set_sensitive(
false);
214 unsigned int nSeparatorWidth =
m_aSegments[0]->m_xSeparator->get_preferred_size().Width();
218 if( nWidth > nWidthMax )
234 m_sClickedURL = m_aUris[&rLink];
235 return m_aClickHdl.Call(
this);
239 : m_xBuilder(
Application::CreateBuilder(pContainer,
"fps/ui/breadcrumb.ui"))
241 ,
m_xLink(m_xBuilder->weld_link_button(
"link"))
242 , m_xSeparator(m_xBuilder->weld_label(
"label"))
IMPL_LINK(Breadcrumb, SizeAllocHdl, const Size &, rSize, void)
Breadcrumb(weld::Container *pParent)
bool showField(unsigned int nIndex, unsigned int nWidthMax)
void EnableFields(bool bEnable)
weld::Container * m_pParent
SvtBreadcrumbMode m_eMode
void connect_clicked(const Link< Breadcrumb *, bool > &rLink)
void SetMode(SvtBreadcrumbMode eMode)
void SetRootName(const OUString &rURL)
const OUString & GetHdlURL() const
std::map< weld::LinkButton *, OUString > m_aUris
std::vector< std::unique_ptr< BreadcrumbPath > > m_aSegments
Link< Breadcrumb *, bool > m_aClickHdl
void SetURL(const OUString &rURL)
#define LINK(Instance, Class, Member)
Reference< XNameAccess > m_xContainer
BreadcrumbPath(weld::Container *pParent)