summaryrefslogtreecommitdiff
path: root/vcl/source/control/lstbox.cxx
diff options
context:
space:
mode:
authorXiaofei Zhang <Zhangxiaofei@openoffice.org>2010-11-10 13:50:33 +0800
committerXiaofei Zhang <Zhangxiaofei@openoffice.org>2010-11-10 13:50:33 +0800
commit3491b4ac4fe34cacea5f4d0a4594d4a88cbbe7b2 (patch)
tree8dc60b794b88dd87c965d149c93fa3ac81e3096c /vcl/source/control/lstbox.cxx
parent66e7dc1197e76e686ba731382d032a9a72849959 (diff)
parent95f71183414a50d12cd4bbacf47d711672e63268 (diff)
removetooltypes01: #i112600# resync to DEV300_m92; remove tooltypes from xmloff, linguistic, vcl, svtools, accessibility, fpicker, uui and framework
Diffstat (limited to 'vcl/source/control/lstbox.cxx')
-rw-r--r--vcl/source/control/lstbox.cxx53
1 files changed, 29 insertions, 24 deletions
diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx
index 25cb57c7859b..1c13aef10340 100644
--- a/vcl/source/control/lstbox.cxx
+++ b/vcl/source/control/lstbox.cxx
@@ -44,9 +44,10 @@
#include "tools/debug.hxx"
+#include <vcl/dndevdis.hxx>
+#include <com/sun/star/datatransfer/dnd/XDropTarget.hpp>
-
- // =======================================================================
+// =======================================================================
ListBox::ListBox( WindowType nType ) : Control( nType )
{
@@ -119,6 +120,8 @@ void ListBox::ImplInit( Window* pParent, WinBits nStyle )
Control::ImplInit( pParent, nStyle, NULL );
SetBackground();
+ ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDropTargetListener> xDrop = new DNDEventDispatcher(this);
+
if( nStyle & WB_DROPDOWN )
{
sal_Int32 nLeft, nTop, nRight, nBottom;
@@ -129,14 +132,14 @@ void ListBox::ImplInit( Window* pParent, WinBits nStyle )
IsNativeControlSupported( CTRL_LISTBOX, PART_ENTIRE_CONTROL ) )
{
ImplControlValue aControlValue;
- Region aCtrlRegion( Rectangle( (const Point&)Point(), Size( 20, mnDDHeight ) ) );
- Region aBoundingRgn( aCtrlRegion );
- Region aContentRgn( aCtrlRegion );
+ Rectangle aCtrlRegion( Point( 0, 0 ), Size( 20, mnDDHeight ) );
+ Rectangle aBoundingRgn( aCtrlRegion );
+ Rectangle aContentRgn( aCtrlRegion );
if( GetNativeControlRegion( CTRL_LISTBOX, PART_ENTIRE_CONTROL, aCtrlRegion,
CTRL_STATE_ENABLED, aControlValue, rtl::OUString(),
aBoundingRgn, aContentRgn ) )
{
- sal_Int32 nHeight = aBoundingRgn.GetBoundRect().GetHeight();
+ sal_Int32 nHeight = aBoundingRgn.GetHeight();
if( nHeight > mnDDHeight )
mnDDHeight = static_cast<sal_uInt16>(nHeight);
}
@@ -145,16 +148,19 @@ void ListBox::ImplInit( Window* pParent, WinBits nStyle )
mpFloatWin = new ImplListBoxFloatingWindow( this );
mpFloatWin->SetAutoWidth( sal_True );
mpFloatWin->SetPopupModeEndHdl( LINK( this, ListBox, ImplPopupModeEndHdl ) );
+ mpFloatWin->GetDropTarget()->addDropTargetListener(xDrop);
mpImplWin = new ImplWin( this, (nStyle & (WB_LEFT|WB_RIGHT|WB_CENTER))|WB_NOBORDER );
mpImplWin->SetMBDownHdl( LINK( this, ListBox, ImplClickBtnHdl ) );
mpImplWin->SetUserDrawHdl( LINK( this, ListBox, ImplUserDrawHdl ) );
mpImplWin->Show();
+ mpImplWin->GetDropTarget()->addDropTargetListener(xDrop);
mpBtn = new ImplBtn( this, WB_NOLIGHTBORDER | WB_RECTSTYLE );
ImplInitDropDownButton( mpBtn );
mpBtn->SetMBDownHdl( LINK( this, ListBox, ImplClickBtnHdl ) );
mpBtn->Show();
+ mpBtn->GetDropTarget()->addDropTargetListener(xDrop);
}
@@ -170,6 +176,9 @@ void ListBox::ImplInit( Window* pParent, WinBits nStyle )
mpImplLB->SetPosPixel( Point() );
mpImplLB->Show();
+ mpImplLB->GetDropTarget()->addDropTargetListener(xDrop);
+ mpImplLB->SetDropTraget(xDrop);
+
if ( mpFloatWin )
{
mpFloatWin->SetImplListBox( mpImplLB );
@@ -652,10 +661,10 @@ void ListBox::Resize()
Window *pBorder = GetWindow( WINDOW_BORDER );
ImplControlValue aControlValue;
Point aPoint;
- Region aContent, aBound;
+ Rectangle aContent, aBound;
// use the full extent of the control
- Region aArea( Rectangle(aPoint, pBorder->GetOutputSizePixel()) );
+ Rectangle aArea( aPoint, pBorder->GetOutputSizePixel() );
if ( GetNativeControlRegion( CTRL_LISTBOX, PART_BUTTON_DOWN,
aArea, 0, aControlValue, rtl::OUString(), aBound, aContent) )
@@ -665,8 +674,8 @@ void ListBox::Resize()
aContent.Move( -aPoint.X(), -aPoint.Y() );
// use the themes drop down size for the button
- aOutSz.Width() = aContent.GetBoundRect().Left();
- mpBtn->SetPosSizePixel( aContent.GetBoundRect().Left(), nTop, aContent.GetBoundRect().Right(), (nBottom-nTop) );
+ aOutSz.Width() = aContent.Left();
+ mpBtn->SetPosSizePixel( aContent.Left(), nTop, aContent.Right(), (nBottom-nTop) );
// adjust the size of the edit field
if ( GetNativeControlRegion( CTRL_LISTBOX, PART_SUB_EDIT,
@@ -676,7 +685,6 @@ void ListBox::Resize()
aContent.Move( -aPoint.X(), -aPoint.Y() );
// use the themes drop down size
- Rectangle aContentRect = aContent.GetBoundRect();
if( ! (GetStyle() & WB_BORDER) && ImplGetSVData()->maNWFData.mbNoFocusRects )
{
// no border but focus ring behavior -> we have a problem; the
@@ -684,11 +692,11 @@ void ListBox::Resize()
// let's do the best we can and center vertically, so it doesn't look
// completely wrong.
Size aSz( GetOutputSizePixel() );
- long nDiff = aContentRect.Top() - (aSz.Height() - aContentRect.GetHeight())/2;
- aContentRect.Top() -= nDiff;
- aContentRect.Bottom() -= nDiff;
+ long nDiff = aContent.Top() - (aSz.Height() - aContent.GetHeight())/2;
+ aContent.Top() -= nDiff;
+ aContent.Bottom() -= nDiff;
}
- mpImplWin->SetPosSizePixel( aContentRect.TopLeft(), aContentRect.GetSize() );
+ mpImplWin->SetPosSizePixel( aContent.TopLeft(), aContent.GetSize() );
}
else
mpImplWin->SetSizePixel( aOutSz );
@@ -1327,15 +1335,14 @@ Size ListBox::CalcMinimumSize() const
// see how large the edit area inside is to estimate what is needed for the dropdown
ImplControlValue aControlValue;
Point aPoint;
- Region aContent, aBound;
+ Rectangle aContent, aBound;
Size aTestSize( 100, 20 );
- Region aArea( Rectangle( aPoint, aTestSize ) );
+ Rectangle aArea( aPoint, aTestSize );
if( const_cast<ListBox*>(this)->GetNativeControlRegion(
CTRL_LISTBOX, PART_SUB_EDIT, aArea, 0, aControlValue, rtl::OUString(), aBound, aContent) )
{
// use the themes drop down size
- Rectangle aContentRect = aContent.GetBoundRect();
- aSz.Width() += aTestSize.Width() - aContentRect.GetWidth();
+ aSz.Width() += aTestSize.Width() - aContent.GetWidth();
}
else
aSz.Width() += GetSettings().GetStyleSettings().GetScrollBarSize();
@@ -1347,13 +1354,12 @@ Size ListBox::CalcMinimumSize() const
{
ImplControlValue aControlValue;
Rectangle aRect( Point( 0, 0 ), aSz );
- Region aContent, aBound;
+ Rectangle aContent, aBound;
if( const_cast<ListBox*>(this)->GetNativeControlRegion(
CTRL_LISTBOX, PART_ENTIRE_CONTROL, aRect, 0, aControlValue, rtl::OUString(), aBound, aContent) )
{
- Rectangle aBoundRect( aBound.GetBoundRect() );
- if( aBoundRect.GetHeight() > aSz.Height() )
- aSz.Height() = aBoundRect.GetHeight();
+ if( aBound.GetHeight() > aSz.Height() )
+ aSz.Height() = aBound.GetHeight();
}
}
@@ -1615,7 +1621,6 @@ const Wallpaper& ListBox::GetDisplayBackground() const
}
// =======================================================================
-
MultiListBox::MultiListBox( Window* pParent, WinBits nStyle ) :
ListBox( WINDOW_MULTILISTBOX )
{