Kaydet (Commit) 8f54315f authored tarafından Cédric Bosdonnat's avatar Cédric Bosdonnat

Template Manager: make it sizeable

Change-Id: I14d3c73b714b9cbfefad7adcb02efb790c8a1e5b
üst 15dd189e
...@@ -117,10 +117,10 @@ public: ...@@ -117,10 +117,10 @@ public:
static BitmapEx fetchThumbnail (const OUString &msURL, long width, long height); static BitmapEx fetchThumbnail (const OUString &msURL, long width, long height);
protected:
virtual void Resize(); virtual void Resize();
protected:
virtual void Paint( const Rectangle& rRect ); virtual void Paint( const Rectangle& rRect );
virtual void DrawItem (ThumbnailViewItem *pItem); virtual void DrawItem (ThumbnailViewItem *pItem);
......
...@@ -236,6 +236,8 @@ public: ...@@ -236,6 +236,8 @@ public:
void setItemStateHdl (const Link &aLink) { maItemStateHdl = aLink; } void setItemStateHdl (const Link &aLink) { maItemStateHdl = aLink; }
virtual void Resize();
protected: protected:
virtual void MouseButtonDown( const MouseEvent& rMEvt ); virtual void MouseButtonDown( const MouseEvent& rMEvt );
...@@ -250,8 +252,6 @@ protected: ...@@ -250,8 +252,6 @@ protected:
virtual void LoseFocus(); virtual void LoseFocus();
virtual void Resize();
virtual void StateChanged( StateChangedType nStateChange ); virtual void StateChanged( StateChangedType nStateChange );
virtual void DataChanged( const DataChangedEvent& rDCEvt ); virtual void DataChanged( const DataChangedEvent& rDCEvt );
......
...@@ -52,6 +52,8 @@ private: ...@@ -52,6 +52,8 @@ private:
virtual void MouseButtonDown( const MouseEvent& rMEvt ); virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void Resize ();
DECL_LINK(CloseOverlayHdl, void*); DECL_LINK(CloseOverlayHdl, void*);
DECL_LINK(TBXViewHdl, void*); DECL_LINK(TBXViewHdl, void*);
......
...@@ -275,6 +275,7 @@ BitmapEx TemplateAbstractView::fetchThumbnail (const OUString &msURL, long width ...@@ -275,6 +275,7 @@ BitmapEx TemplateAbstractView::fetchThumbnail (const OUString &msURL, long width
void TemplateAbstractView::Resize() void TemplateAbstractView::Resize()
{ {
mpItemView->SetSizePixel(GetSizePixel()); mpItemView->SetSizePixel(GetSizePixel());
ThumbnailView::Resize();
} }
void TemplateAbstractView::Paint(const Rectangle &rRect) void TemplateAbstractView::Paint(const Rectangle &rRect)
......
...@@ -122,32 +122,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) ...@@ -122,32 +122,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
mpTemplateDefaultMenu->SetSelectHdl(LINK(this,SfxTemplateManagerDlg,DefaultTemplateMenuSelectHdl)); mpTemplateDefaultMenu->SetSelectHdl(LINK(this,SfxTemplateManagerDlg,DefaultTemplateMenuSelectHdl));
mpActionMenu->SetPopupMenu(MNI_ACTION_DEFAULT,mpTemplateDefaultMenu); mpActionMenu->SetPopupMenu(MNI_ACTION_DEFAULT,mpTemplateDefaultMenu);
Size aWinSize = GetOutputSize();
// Fit the tab page control and the toolbars
Size aTabSize = maTabControl.GetSizePixel();
Size aTabPageSize = maTabControl.GetTabPageSizePixel();
Point aToolbarsPos(0, aTabSize.getHeight() - aTabPageSize.getHeight());
mpToolbars->SetPosPixel(aToolbarsPos);
aTabPageSize.setHeight(mpToolbars->GetSizePixel().getHeight() + 3);
maTabControl.SetTabPageSizePixel(aTabPageSize);
// Calculate toolboxs size and positions
Size aViewSize = mpViewBar->CalcMinimumWindowSizePixel();
Size aActionSize = mpActionBar->CalcMinimumWindowSizePixel();
Size aTemplateSize = mpTemplateBar->CalcMinimumWindowSizePixel();
aActionSize.setWidth(3*aActionSize.getWidth());
aViewSize.setWidth(aWinSize.getWidth()-aActionSize.getWidth()-mpViewBar->GetPosPixel().X());
aTemplateSize.setWidth(aWinSize.getWidth());
Point aActionPos = mpActionBar->GetPosPixel();
aActionPos.setX(aWinSize.getWidth() - aActionSize.getWidth());
mpViewBar->SetSizePixel(aViewSize);
mpActionBar->SetPosSizePixel(aActionPos,aActionSize);
mpTemplateBar->SetSizePixel(aTemplateSize);
// Set toolbox styles // Set toolbox styles
mpViewBar->SetButtonType(BUTTON_SYMBOLTEXT); mpViewBar->SetButtonType(BUTTON_SYMBOLTEXT);
mpTemplateBar->SetButtonType(BUTTON_SYMBOLTEXT); mpTemplateBar->SetButtonType(BUTTON_SYMBOLTEXT);
...@@ -164,28 +138,10 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) ...@@ -164,28 +138,10 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
mpActionBar->SetDropdownClickHdl(LINK(this,SfxTemplateManagerDlg,TBXDropdownHdl)); mpActionBar->SetDropdownClickHdl(LINK(this,SfxTemplateManagerDlg,TBXDropdownHdl));
mpTemplateBar->SetClickHdl(LINK(this,SfxTemplateManagerDlg,TBXTemplateHdl)); mpTemplateBar->SetClickHdl(LINK(this,SfxTemplateManagerDlg,TBXTemplateHdl));
mpTemplateBar->SetDropdownClickHdl(LINK(this,SfxTemplateManagerDlg,TBXDropdownHdl)); mpTemplateBar->SetDropdownClickHdl(LINK(this,SfxTemplateManagerDlg,TBXDropdownHdl));
// Set view position below toolbox
Point aViewPos = maView->GetPosPixel();
aViewPos.setY(maTabControl.GetPosPixel().Y() + maTabControl.GetSizePixel().getHeight());
aViewPos.setX(0);
Size aThumbSize(aWinSize.getWidth(), aWinSize.getHeight() - aViewPos.getY());
maView->SetPosSizePixel(aViewPos, aThumbSize);
if (aWinSize.getHeight() < aViewPos.getY() + aThumbSize.getHeight() + PADDING_DLG_BORDER)
aWinSize.setHeight(aViewPos.getY() + aThumbSize.getHeight() + PADDING_DLG_BORDER);
// Set search box position and size
Size aSearchSize = mpSearchEdit->CalcMinimumSize();
aSearchSize.setWidth(aWinSize.getWidth() - 2*PADDING_DLG_BORDER);
mpSearchEdit->SetSizePixel(aSearchSize);
mpSearchEdit->SetPosPixel(Point(PADDING_DLG_BORDER,aViewPos.Y()));
mpSearchEdit->SetUpdateDataHdl(LINK(this,SfxTemplateManagerDlg,SearchUpdateHdl)); mpSearchEdit->SetUpdateDataHdl(LINK(this,SfxTemplateManagerDlg,SearchUpdateHdl));
mpSearchEdit->EnableUpdateData(); mpSearchEdit->EnableUpdateData();
maView->SetStyle(WB_VSCROLL); maView->SetStyle(WB_VSCROLL);
maView->SetSizePixel(aThumbSize);
maView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); maView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH);
maView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, maView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT,
...@@ -198,7 +154,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) ...@@ -198,7 +154,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
maView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl)); maView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl));
// Set online view position and dimensions // Set online view position and dimensions
mpOnlineView->SetPosSizePixel(aViewPos,aThumbSize);
mpOnlineView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); mpOnlineView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH);
mpOnlineView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, mpOnlineView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT,
...@@ -209,7 +164,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) ...@@ -209,7 +164,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
mpOnlineView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl)); mpOnlineView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
mpOnlineView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl)); mpOnlineView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl));
mpSearchView->SetSizePixel(aThumbSize);
mpSearchView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); mpSearchView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH);
mpSearchView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, mpSearchView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT,
...@@ -220,9 +174,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) ...@@ -220,9 +174,6 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
maTabControl.SetActivatePageHdl(LINK(this,SfxTemplateManagerDlg,ActivatePageHdl)); maTabControl.SetActivatePageHdl(LINK(this,SfxTemplateManagerDlg,ActivatePageHdl));
// Set dialog to correct dimensions
SetSizePixel(aWinSize);
mpViewBar->Show(); mpViewBar->Show();
mpActionBar->Show(); mpActionBar->Show();
...@@ -316,6 +267,66 @@ void SfxTemplateManagerDlg::MouseButtonDown( const MouseEvent& rMEvt ) ...@@ -316,6 +267,66 @@ void SfxTemplateManagerDlg::MouseButtonDown( const MouseEvent& rMEvt )
} }
} }
void SfxTemplateManagerDlg::Resize()
{
Size aWinSize = GetSizePixel();
// Fit the tab page control and the toolbars
Size aTabSize = maTabControl.GetSizePixel();
aTabSize.setWidth(aWinSize.getWidth());
maTabControl.SetSizePixel(aTabSize);
Size aTabPageSize = maTabControl.GetTabPageSizePixel();
Point aToolbarsPos(0, aTabSize.getHeight() - aTabPageSize.getHeight());
mpToolbars->SetPosPixel(aToolbarsPos);
aTabPageSize.setHeight(mpToolbars->GetSizePixel().getHeight() + 3);
maTabControl.SetTabPageSizePixel(aTabPageSize);
Size aToolbarsSize = mpToolbars->GetSizePixel();
aToolbarsSize.setWidth(aWinSize.getWidth());
mpToolbars->SetSizePixel(aToolbarsSize);
// Calculate toolboxes size and positions
Size aViewSize = mpViewBar->CalcMinimumWindowSizePixel();
Size aActionSize = mpActionBar->CalcMinimumWindowSizePixel();
Size aTemplateSize = mpTemplateBar->CalcMinimumWindowSizePixel();
aActionSize.setWidth(3*aActionSize.getWidth());
aViewSize.setWidth(aWinSize.getWidth()-aActionSize.getWidth()-mpViewBar->GetPosPixel().X());
aTemplateSize.setWidth(aWinSize.getWidth());
Point aActionPos = mpActionBar->GetPosPixel();
aActionPos.setX(aWinSize.getWidth() - aActionSize.getWidth());
mpViewBar->SetSizePixel(aViewSize);
mpActionBar->SetPosSizePixel(aActionPos,aActionSize);
mpTemplateBar->SetSizePixel(aTemplateSize);
// Set view position below toolbox
Point aViewPos = maView->GetPosPixel();
aViewPos.setY(maTabControl.GetPosPixel().Y() + maTabControl.GetSizePixel().getHeight());
aViewPos.setX(0);
Size aThumbSize(aWinSize.getWidth(), aWinSize.getHeight() - aViewPos.getY());
maView->SetPosSizePixel(aViewPos, aThumbSize);
if (aWinSize.getHeight() < aViewPos.getY() + aThumbSize.getHeight() + PADDING_DLG_BORDER)
aWinSize.setHeight(aViewPos.getY() + aThumbSize.getHeight() + PADDING_DLG_BORDER);
// Set search box position and size
Size aSearchSize = mpSearchEdit->CalcMinimumSize();
aSearchSize.setWidth(aWinSize.getWidth() - 2*PADDING_DLG_BORDER);
mpSearchEdit->SetSizePixel(aSearchSize);
mpSearchEdit->SetPosPixel(Point(PADDING_DLG_BORDER,aViewPos.Y()));
maView->SetSizePixel(aThumbSize);
mpOnlineView->SetPosSizePixel(aViewPos,aThumbSize);
mpSearchView->SetSizePixel(aThumbSize);
mpCurView->Resize();
ModelessDialog::Resize();
}
IMPL_LINK_NOARG(SfxTemplateManagerDlg, CloseOverlayHdl) IMPL_LINK_NOARG(SfxTemplateManagerDlg, CloseOverlayHdl)
{ {
maSelTemplates.clear(); maSelTemplates.clear();
......
...@@ -107,6 +107,7 @@ ModelessDialog DLG_TEMPLATE_MANAGER ...@@ -107,6 +107,7 @@ ModelessDialog DLG_TEMPLATE_MANAGER
SVLook = TRUE; SVLook = TRUE;
Moveable = TRUE; Moveable = TRUE;
Closeable = TRUE; Closeable = TRUE;
Resizeable = TRUE;
Hide = TRUE; Hide = TRUE;
Size = MAP_APPFONT ( 290 , 250 ); Size = MAP_APPFONT ( 290 , 250 );
Text [en-US] = "Template Manager"; Text [en-US] = "Template Manager";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment