sfx2/inc/sfx2/templatefolderview.hxx | 5 + sfx2/inc/sfx2/thumbnailview.hxx | 3 sfx2/inc/templatedlg.hxx | 17 ++++ sfx2/source/control/templatefolderview.cxx | 8 ++ sfx2/source/control/thumbnailview.cxx | 19 +++++ sfx2/source/doc/templatedlg.cxx | 107 +++++++++++++++++++++++++++++ 6 files changed, 159 insertions(+)
New commits: commit 9fbe211689e63887178f547dcd0ed0786f527976 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Jun 21 23:21:23 2012 -0430 Trap folder and template state changes in manager dialog. Change-Id: I1e0cb27f31023a7037c20d07bfe830ee1b107d45 diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx index e987535..d2e0359 100644 --- a/sfx2/inc/templatedlg.hxx +++ b/sfx2/inc/templatedlg.hxx @@ -14,6 +14,7 @@ #include <vcl/button.hxx> class TemplateFolderView; +class ThumbnailViewItem; class ToolBox; class SfxTemplateManagerDlg : public ModalDialog @@ -40,6 +41,9 @@ private: DECL_LINK(TBXActionHdl, void*); DECL_LINK(TBXTemplateHdl, void*); + DECL_LINK(TVFolderStateHdl, const ThumbnailViewItem*); + DECL_LINK(TVTemplateStateHdl, const ThumbnailViewItem*); + void OnTemplateCreate (); void OnTemplateImport (); void OnTemplateSearch (); diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index f630fcb..f04532b 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -71,6 +71,9 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) maView->SetColCount(MAX_COLUMN_COUNT); maView->SetLineCount(MAX_LINE_COUNT); + maView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl)); + maView->setTemplateStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl)); + aButtonAll.SetClickHdl(LINK(this,SfxTemplateManagerDlg,ViewAllHdl)); aButtonDocs.SetClickHdl(LINK(this,SfxTemplateManagerDlg,ViewDocsHdl)); aButtonPresents.SetClickHdl(LINK(this,SfxTemplateManagerDlg,ViewPresentsHdl)); @@ -191,6 +194,16 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg,TBXTemplateHdl) return 0; } +IMPL_LINK(SfxTemplateManagerDlg, TVFolderStateHdl, const ThumbnailViewItem*, pItem) +{ + return 0; +} + +IMPL_LINK(SfxTemplateManagerDlg, TVTemplateStateHdl, const ThumbnailViewItem*, pItem) +{ + return 0; +} + void SfxTemplateManagerDlg::OnTemplateCreate () { } commit d9bb62afa64bd503cbbf98c6dac2d1b4b5b82777 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Jun 21 23:17:32 2012 -0430 Add callback handler for templates state change in a folderview. Change-Id: I9cf82a466fbbce52f177bbe729317433ea6663b0 diff --git a/sfx2/inc/sfx2/templatefolderview.hxx b/sfx2/inc/sfx2/templatefolderview.hxx index 7923ebf..6433777 100644 --- a/sfx2/inc/sfx2/templatefolderview.hxx +++ b/sfx2/inc/sfx2/templatefolderview.hxx @@ -42,6 +42,8 @@ public: void filterTemplatesByApp (const FILTER_APPLICATION &eApp); + void setTemplateStateHdl (const Link &aLink) { maTemplateStateHdl = aLink; } + private: virtual void OnSelectionMode (bool bMode); @@ -56,6 +58,7 @@ private: FILTER_APPLICATION meFilterOption; SfxDocumentTemplates *mpDocTemplates; TemplateView *mpItemView; + Link maTemplateStateHdl; }; #endif // TEMPLATEFOLDERVIEW_HXX diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx index 868448a..ac2fa43 100644 --- a/sfx2/source/control/templatefolderview.cxx +++ b/sfx2/source/control/templatefolderview.cxx @@ -371,6 +371,7 @@ void TemplateFolderView::OnItemDblClicked (ThumbnailViewItem *pRegionItem) IMPL_LINK(TemplateFolderView, TVTemplateStateHdl, const ThumbnailViewItem*, pItem) { + maTemplateStateHdl.Call((void*)pItem); return 0; } commit b1089e3ac52e588065d0f9e8105582d7ee433d49 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Jun 21 23:06:18 2012 -0430 Track templateview items that change their state in folderview. Change-Id: Ic9209afe698ff68f97b8d5918bd4d429659553c2 diff --git a/sfx2/inc/sfx2/templatefolderview.hxx b/sfx2/inc/sfx2/templatefolderview.hxx index 1203883..7923ebf 100644 --- a/sfx2/inc/sfx2/templatefolderview.hxx +++ b/sfx2/inc/sfx2/templatefolderview.hxx @@ -48,6 +48,8 @@ private: virtual void OnItemDblClicked (ThumbnailViewItem *pRegionItem); + DECL_LINK(TVTemplateStateHdl, const ThumbnailViewItem*); + private: bool mbFilteredResults; // Flag keep track if overlay has been filtered so folders can get filtered too afterwards diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx index 340e179..868448a 100644 --- a/sfx2/source/control/templatefolderview.cxx +++ b/sfx2/source/control/templatefolderview.cxx @@ -243,6 +243,8 @@ TemplateFolderView::TemplateFolderView ( Window* pParent, const ResId& rResId, b mpItemView->SetSizePixel(GetOutputSizePixel()); mpItemView->SetColCount(3); mpItemView->SetLineCount(2); + + mpItemView->setItemStateHdl(LINK(this,TemplateFolderView,TVTemplateStateHdl)); } TemplateFolderView::~TemplateFolderView() @@ -367,6 +369,11 @@ void TemplateFolderView::OnItemDblClicked (ThumbnailViewItem *pRegionItem) mpItemView->Show(); } +IMPL_LINK(TemplateFolderView, TVTemplateStateHdl, const ThumbnailViewItem*, pItem) +{ + return 0; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit ec3d50549340821acfb1c2dcabb55b1c59c03700 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Jun 21 22:53:14 2012 -0430 Add a handler for item states changes to ThumbnailView. Change-Id: If5f060f59dfdcce6641ed7cfc3cb8200a4475490 diff --git a/sfx2/inc/sfx2/thumbnailview.hxx b/sfx2/inc/sfx2/thumbnailview.hxx index 613a30e..887b504 100644 --- a/sfx2/inc/sfx2/thumbnailview.hxx +++ b/sfx2/inc/sfx2/thumbnailview.hxx @@ -240,6 +240,8 @@ public: void filterItems (const boost::function<bool (const ThumbnailViewItem*) > &func); + void setItemStateHdl (const Link &aLink) { maItemStateHdl = aLink; } + protected: virtual void MouseButtonDown( const MouseEvent& rMEvt ); @@ -338,6 +340,7 @@ protected: bool mbSelectionMode; Color maColor; + Link maItemStateHdl; ThumbnailItemAttributes *mpItemAttrs; drawinglayer::processor2d::BaseProcessor2D *mpProcessor; boost::function<bool (const ThumbnailViewItem*) > maFilterFunc; diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 6d04248..cf4b225 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -322,6 +322,9 @@ void ThumbnailView::CalculateItemPositions () for ( size_t i = 0; i < nItemCount; i++ ) { + if (mItemList[i]->isVisible()) + maItemStateHdl.Call(mItemList[i]); + mItemList[i]->show(false); } @@ -370,6 +373,9 @@ void ThumbnailView::CalculateItemPositions () ImplFireAccessibleEvent( ::com::sun::star::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny ); } + if (!mItemList[i]->isVisible()) + maItemStateHdl.Call(mItemList[i]); + pItem->show(true); pItem->setDrawArea(Rectangle( Point(x,y), Size(mnItemWidth, mnItemHeight) )); pItem->calculateItemsPosition(); @@ -394,6 +400,9 @@ void ThumbnailView::CalculateItemPositions () ImplFireAccessibleEvent( ::com::sun::star::accessibility::AccessibleEventId::CHILD, aOldAny, aNewAny ); } + if (mItemList[i]->isVisible()) + maItemStateHdl.Call(mItemList[i]); + pItem->show(false); } } @@ -567,6 +576,9 @@ IMPL_LINK( ThumbnailView,ImplScrollHdl, ScrollBar*, pScrollBar ) if ( (i >= nFirstItem) && (i < nLastItem) ) { + if (!mItemList[i]->isVisible()) + maItemStateHdl.Call(mItemList[i]); + pItem->show(true); pItem->setDrawArea(Rectangle( Point(x,y), Size(mnItemWidth, mnItemHeight) )); pItem->calculateItemsPosition(); @@ -581,6 +593,9 @@ IMPL_LINK( ThumbnailView,ImplScrollHdl, ScrollBar*, pScrollBar ) } else { + if (mItemList[i]->isVisible()) + maItemStateHdl.Call(mItemList[i]); + pItem->show(false); } } @@ -635,6 +650,8 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) if (!pItem->isHighlighted()) DrawItem(pItem); + + maItemStateHdl.Call(pItem); } else { @@ -644,6 +661,8 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) if (!pItem->isHighlighted()) DrawItem(pItem); + + maItemStateHdl.Call(pItem); } //StartTracking( STARTTRACK_SCROLLREPEAT ); commit 0346baf8bc34d893f4455386a13b46967b3c51b9 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Jun 21 22:20:23 2012 -0430 Create toolbar click handlers and handlers for every action. Change-Id: I718d77479ed9222ec82914e26fe96bedff892e9c diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx index 4859532..e987535 100644 --- a/sfx2/inc/templatedlg.hxx +++ b/sfx2/inc/templatedlg.hxx @@ -36,6 +36,19 @@ private: DECL_LINK(OnClickSelectionMode, ImageButton*); + DECL_LINK(TBXViewHdl, void*); + DECL_LINK(TBXActionHdl, void*); + DECL_LINK(TBXTemplateHdl, void*); + + void OnTemplateCreate (); + void OnTemplateImport (); + void OnTemplateSearch (); + void OnTemplateAction (); + void OnTemplateEdit (); + void OnTemplateProperties (); + void OnTemplateMove (); + void OnTemplateDelete (); + private: PushButton aButtonAll; diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 3d56731..f630fcb 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -57,6 +57,11 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) mpViewBar->SetButtonType(BUTTON_SYMBOLTEXT); mpTemplateBar->SetButtonType(BUTTON_SYMBOLTEXT); + // Set toolbox handlers + mpViewBar->SetClickHdl(LINK(this,SfxTemplateManagerDlg,TBXViewHdl)); + mpActionBar->SetClickHdl(LINK(this,SfxTemplateManagerDlg,TBXActionHdl)); + mpTemplateBar->SetClickHdl(LINK(this,SfxTemplateManagerDlg,TBXTemplateHdl)); + // Set view position below toolbox Point aViewPos = maView->GetPosPixel(); aViewPos.setY(aActionPos.Y() + aActionSize.getHeight() + PADDING_TOOLBAR_VIEW); @@ -129,4 +134,93 @@ IMPL_LINK (SfxTemplateManagerDlg, OnClickSelectionMode, ImageButton*, pButton) return 0; } +IMPL_LINK_NOARG(SfxTemplateManagerDlg,TBXViewHdl) +{ + switch(mpViewBar->GetCurItemId()) + { + case TBI_TEMPLATE_CREATE: + OnTemplateCreate(); + break; + case TBI_TEMPLATE_IMPORT: + OnTemplateImport(); + break; + default: + break; + } + + return 0; +} + +IMPL_LINK_NOARG(SfxTemplateManagerDlg,TBXActionHdl) +{ + switch(mpActionBar->GetCurItemId()) + { + case TBI_TEMPLATE_SEARCH: + OnTemplateSearch(); + break; + case TBI_TEMPLATE_ACTION: + OnTemplateAction(); + break; + default: + break; + } + + return 0; +} + +IMPL_LINK_NOARG(SfxTemplateManagerDlg,TBXTemplateHdl) +{ + switch(mpTemplateBar->GetCurItemId()) + { + case TBI_TEMPLATE_EDIT: + OnTemplateEdit(); + break; + case TBI_TEMPLATE_PROPERTIES: + OnTemplateProperties(); + break; + case TBI_TEMPLATE_MOVE: + OnTemplateMove(); + break; + case TBI_TEMPLATE_DELETE: + OnTemplateDelete(); + break; + default: + break; + } + + return 0; +} + +void SfxTemplateManagerDlg::OnTemplateCreate () +{ +} + +void SfxTemplateManagerDlg::OnTemplateImport () +{ +} + +void SfxTemplateManagerDlg::OnTemplateSearch () +{ +} + +void SfxTemplateManagerDlg::OnTemplateAction () +{ +} + +void SfxTemplateManagerDlg::OnTemplateEdit () +{ +} + +void SfxTemplateManagerDlg::OnTemplateProperties () +{ +} + +void SfxTemplateManagerDlg::OnTemplateMove () +{ +} + +void SfxTemplateManagerDlg::OnTemplateDelete () +{ +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits