summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNoel Power <noel.power@novell.com>2011-11-24 19:45:09 +0000
committerNoel Power <noel.power@novell.com>2011-11-24 19:49:15 +0000
commit50171e51373800bfe598e461d551f873aff87f09 (patch)
tree1093f52392c323b4cdd0a8637d3a3f2277abf610 /vcl
parentef3a19eed2dc3aaddf3d48a204eff934b7002055 (diff)
tweak toolbar layout for gsoc formula/input bar & other misc changes
summary: * tweak toolbar layout to layout the toolbar items aligned to top of highest item * make Capture/ReleaseMouse logic much simpler * make resize detection simpler * control toolbar height ( e.g. don't let visible grid area be overrun by toolbar )
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/toolbox.hxx9
-rw-r--r--vcl/source/window/toolbox.cxx17
2 files changed, 25 insertions, 1 deletions
diff --git a/vcl/inc/vcl/toolbox.hxx b/vcl/inc/vcl/toolbox.hxx
index dd482c610d95..8b39005b3fb5 100644
--- a/vcl/inc/vcl/toolbox.hxx
+++ b/vcl/inc/vcl/toolbox.hxx
@@ -160,6 +160,12 @@ enum ToolBoxButtonSize { TOOLBOX_BUTTONSIZE_DONTCARE, TOOLBOX_BUTTONSIZE_SMALL,
// used for internal sizing calculations
enum FloatingSizeMode { FSMODE_AUTO, FSMODE_FAVOURWIDTH, FSMODE_FAVOURHEIGHT };
+// TBX_LAYOUT_NORMAL - traditional layout, items are centered in the toolbar
+// TBX_LAYOUT_TOP - special mode (currently used for calc input/formula bar)
+// where items are aligned with the top of highest item
+// ( currently only valid for docked, single line, horizontal
+// toolbars )
+enum ToolBoxLayoutMode { TBX_LAYOUT_NORMAL, TBX_LAYOUT_TOP };
// -----------
// - ToolBox -
// -----------
@@ -239,6 +245,7 @@ private:
ButtonType meButtonType;
PointerStyle meLastStyle;
WinBits mnWinStyle;
+ ToolBoxLayoutMode meLayoutMode;
Link maClickHdl;
Link maDoubleClickHdl;
Link maActivateHdl;
@@ -606,6 +613,8 @@ public:
void ChangeHighlight( sal_uInt16 nPos );
void SetImageListProvider(vcl::IImageListProvider* _pProvider);
+ ToolBoxLayoutMode GetToolbarLayoutMode();
+ void SetToolbarLayoutMode( ToolBoxLayoutMode eLayout );
};
inline void ToolBox::CheckItem( sal_uInt16 nItemId, sal_Bool bCheck )
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index 13a56487340f..1016301ca157 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -1596,6 +1596,7 @@ void ToolBox::ImplInit( Window* pParent, WinBits nStyle )
meAlign = WINDOWALIGN_TOP;
meLastStyle = POINTER_ARROW;
mnWinStyle = nStyle;
+ meLayoutMode = TBX_LAYOUT_NORMAL;
mnLastFocusItemId = 0;
mnKeyModifier = 0;
mnActivateCount = 0;
@@ -2720,7 +2721,10 @@ void ToolBox::ImplFormat( sal_Bool bResize )
if ( mbHorz )
{
it->maCalcRect.Left() = nX;
- it->maCalcRect.Top() = nY+(nLineSize-aCurrentItemSize.Height())/2;
+ if ( meLayoutMode == TBX_LAYOUT_TOP && mnLines )
+ it->maCalcRect.Top() = nY/2;
+ else
+ it->maCalcRect.Top() = nY+(nLineSize-aCurrentItemSize.Height())/2;
it->maCalcRect.Right() = nX+aCurrentItemSize.Width()-1;
it->maCalcRect.Bottom() = it->maCalcRect.Top()+aCurrentItemSize.Height()-1;
nX += aCurrentItemSize.Width();
@@ -6014,4 +6018,15 @@ void ToolBox::ImplDisableFlatButtons()
#endif
}
+ToolBoxLayoutMode ToolBox::GetToolbarLayoutMode()
+{
+ return meLayoutMode;
+}
+
+void ToolBox::SetToolbarLayoutMode( ToolBoxLayoutMode eLayout )
+{
+ if ( meLayoutMode != eLayout )
+ meLayoutMode = eLayout;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */