summaryrefslogtreecommitdiff
path: root/sfx2/source/control/templateabstractview.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/source/control/templateabstractview.cxx')
-rw-r--r--sfx2/source/control/templateabstractview.cxx135
1 files changed, 47 insertions, 88 deletions
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index b202fb614299..ff39a2562ebf 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -10,9 +10,9 @@
#include <sfx2/templateabstractview.hxx>
#include <comphelper/processfactory.hxx>
-#include <sfx2/sfxresid.hxx>
#include <sfx2/templatecontaineritem.hxx>
#include <sfx2/templateviewitem.hxx>
+#include <sfx2/sfxresid.hxx>
#include <tools/urlobj.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <vcl/pngread.hxx>
@@ -71,80 +71,27 @@ bool ViewFilter_Application::operator () (const ThumbnailViewItem *pItem)
if (pTempItem)
return isValid(pTempItem->getPath());
- TemplateContainerItem *pContainerItem = const_cast<TemplateContainerItem*>(dynamic_cast<const TemplateContainerItem*>(pItem));
- if (pContainerItem)
- {
- std::vector<TemplateItemProperties> &rTemplates = pContainerItem->maTemplates;
-
- size_t nVisCount = 0;
-
- // Clear thumbnails
- pContainerItem->maPreview1.Clear();
- pContainerItem->maPreview2.Clear();
- pContainerItem->maPreview3.Clear();
- pContainerItem->maPreview4.Clear();
-
- for (size_t i = 0, n = rTemplates.size(); i < n && pContainerItem->HasMissingPreview(); ++i)
- {
- if (isValid(rTemplates[i].aPath))
- {
- ++nVisCount;
- if ( pContainerItem->maPreview1.IsEmpty( ) )
- {
- pContainerItem->maPreview1 = TemplateAbstractView::scaleImg(rTemplates[i].aThumbnail,
- TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75,
- TEMPLATE_THUMBNAIL_MAX_HEIGHT*0.75);
- }
- else if ( pContainerItem->maPreview2.IsEmpty() )
- {
- pContainerItem->maPreview2 = TemplateAbstractView::scaleImg(rTemplates[i].aThumbnail,
- TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75,
- TEMPLATE_THUMBNAIL_MAX_HEIGHT*0.75);
- }
- else if ( pContainerItem->maPreview3.IsEmpty() )
- {
- pContainerItem->maPreview3 = TemplateAbstractView::scaleImg(rTemplates[i].aThumbnail,
- TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75,
- TEMPLATE_THUMBNAIL_MAX_HEIGHT*0.75);
- }
- else if ( pContainerItem->maPreview4.IsEmpty() )
- {
- pContainerItem->maPreview4 = TemplateAbstractView::scaleImg(rTemplates[i].aThumbnail,
- TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75,
- TEMPLATE_THUMBNAIL_MAX_HEIGHT*0.75);
- }
- }
- }
- }
return true;
}
TemplateAbstractView::TemplateAbstractView (vcl::Window *pParent, WinBits nWinStyle, bool bDisableTransientChildren)
: ThumbnailView(pParent,nWinStyle,bDisableTransientChildren),
mnCurRegionId(0),
+ maSelectedItem(nullptr),
mnThumbnailWidth(TEMPLATE_THUMBNAIL_MAX_WIDTH),
mnThumbnailHeight(TEMPLATE_THUMBNAIL_MAX_HEIGHT),
- maAllButton(VclPtr<PushButton>::Create(this, SfxResId(BTN_ALL_TEMPLATES))),
- maFTName(VclPtr<FixedText>::Create(this, SfxResId(FT_NAME)))
+ maPosition(0,0)
{
- maAllButton->Hide();
- maAllButton->SetStyle(maAllButton->GetStyle() | WB_FLATBUTTON);
- maAllButton->SetClickHdl(LINK(this,TemplateAbstractView,ShowRootRegionHdl));
- maFTName->Hide();
}
TemplateAbstractView::TemplateAbstractView(vcl::Window *pParent)
: ThumbnailView(pParent),
mnCurRegionId(0),
+ maSelectedItem(nullptr),
mnThumbnailWidth(TEMPLATE_THUMBNAIL_MAX_WIDTH),
mnThumbnailHeight(TEMPLATE_THUMBNAIL_MAX_HEIGHT),
- maAllButton(VclPtr<PushButton>::Create(this, SfxResId(BTN_ALL_TEMPLATES))),
- maFTName(VclPtr<FixedText>::Create(this, SfxResId(FT_NAME)))
+ maPosition(0,0)
{
- maAllButton->Hide();
- maAllButton->SetStyle(maAllButton->GetStyle() | WB_FLATBUTTON);
- maAllButton->SetClickHdl(LINK(this,TemplateAbstractView,ShowRootRegionHdl));
- maFTName->Hide();
}
TemplateAbstractView::~TemplateAbstractView()
@@ -154,8 +101,6 @@ TemplateAbstractView::~TemplateAbstractView()
void TemplateAbstractView::dispose()
{
- maAllButton.disposeAndClear();
- maFTName.disposeAndClear();
ThumbnailView::dispose();
}
@@ -187,7 +132,6 @@ void TemplateAbstractView::insertItems(const std::vector<TemplateItemProperties>
std::vector<ThumbnailViewItem*> aItems(rTemplates.size());
for (size_t i = 0, n = rTemplates.size(); i < n; ++i )
{
- //TODO: CHECK IF THE ITEM IS A FOLDER OR NOT
const TemplateItemProperties *pCur = &rTemplates[i];
TemplateViewItem *pChild = new TemplateViewItem(*this, pCur->nId);
@@ -215,16 +159,58 @@ void TemplateAbstractView::updateThumbnailDimensions(long itemMaxSize)
mnThumbnailHeight = itemMaxSize;
}
+
+void TemplateAbstractView::MouseButtonDown( const MouseEvent& rMEvt )
+{
+ if (rMEvt.IsRight())
+ {
+ size_t nPos = ImplGetItem(rMEvt.GetPosPixel());
+ Point aPosition (rMEvt.GetPosPixel());
+ maPosition = aPosition;
+ ThumbnailViewItem* pItem = ImplGetItem(nPos);
+ const TemplateViewItem *pViewItem = dynamic_cast<const TemplateViewItem*>(pItem);
+
+ if(pViewItem)
+ {
+ maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
+ maRightClickHdl.Call(pItem);
+ }
+ }
+
+ ThumbnailView::MouseButtonDown(rMEvt);
+}
+
+
void TemplateAbstractView::setOpenRegionHdl(const Link<void*,void> &rLink)
{
maOpenRegionHdl = rLink;
}
+void TemplateAbstractView::setRightClickHdl(const Link<ThumbnailViewItem*,void> &rLink)
+{
+ maRightClickHdl = rLink;
+}
+
void TemplateAbstractView::setOpenTemplateHdl(const Link<ThumbnailViewItem*,void> &rLink)
{
maOpenTemplateHdl = rLink;
}
+void TemplateAbstractView::setEditTemplateHdl(const Link<ThumbnailViewItem*,void> &rLink)
+{
+ maEditTemplateHdl = rLink;
+}
+
+void TemplateAbstractView::setDeleteTemplateHdl(const Link<ThumbnailViewItem*,void> &rLink)
+{
+ maDeleteTemplateHdl = rLink;
+}
+
+void TemplateAbstractView::setDefaultTemplateHdl(const Link<ThumbnailViewItem*,void> &rLink)
+{
+ maDefaultTemplateHdl = rLink;
+}
+
BitmapEx TemplateAbstractView::scaleImg (const BitmapEx &rImg, long width, long height)
{
BitmapEx aImg = rImg;
@@ -271,11 +257,6 @@ BitmapEx TemplateAbstractView::fetchThumbnail (const OUString &msURL, long width
return TemplateAbstractView::scaleImg(ThumbnailView::readThumbnail(msURL), width, height);
}
-IMPL_LINK_NOARG_TYPED(TemplateAbstractView, ShowRootRegionHdl, Button*, void)
-{
- showRootRegion();
-}
-
void TemplateAbstractView::OnItemDblClicked (ThumbnailViewItem *pItem)
{
//Check if the item is a TemplateContainerItem (Folder) or a TemplateViewItem (File)
@@ -284,10 +265,8 @@ void TemplateAbstractView::OnItemDblClicked (ThumbnailViewItem *pItem)
if ( pContainerItem )
{
// Fill templates
-
mnCurRegionId = pContainerItem->mnRegionId+1;
maCurRegionName = pContainerItem->maTitle;
- maFTName->SetText(maCurRegionName);
showRegion(pItem);
}
else
@@ -296,24 +275,4 @@ void TemplateAbstractView::OnItemDblClicked (ThumbnailViewItem *pItem)
}
}
-void TemplateAbstractView::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect)
-{
- ThumbnailView::Paint(rRenderContext, rRect);
-
- Rectangle aRect(rRect.TopLeft(),
- Point(rRect.BottomRight().X(),
- mnHeaderHeight));
-
- drawinglayer::primitive2d::Primitive2DContainer aSeq(1);
- aSeq[0] = drawinglayer::primitive2d::Primitive2DReference(
- new PolyPolygonColorPrimitive2D(B2DPolyPolygon(::tools::Polygon(aRect).getB2DPolygon()),
- maFillColor.getBColor()));
-
- const drawinglayer::geometry::ViewInformation2D aNewViewInfos;
- std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(
- drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(rRenderContext, aNewViewInfos));
-
- pProcessor->process(aSeq);
-}
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */