[Libreoffice-commits] .: Branch 'feature/calc-multiline-input' - sc/source
Kohei Yoshida
kohei at kemper.freedesktop.org
Mon Aug 22 06:55:23 PDT 2011
sc/source/ui/app/inputwin.cxx | 64 ++++++++++++++++++++++++------------------
sc/source/ui/inc/inputwin.hxx | 3 +
2 files changed, 40 insertions(+), 27 deletions(-)
New commits:
commit 7ac4779c1770ba0bc7982d4ef47253c4b32650b1
Author: Anurag Jain <anuragjainfzd at gmail.com>
Date: Sat Aug 20 23:09:40 2011 +0530
Made Scrollbar to appear and resize improved.
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 3130d54..bff10cb 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -512,10 +512,10 @@ void ScInputWindow::Resize()
}
else
{
- aSize.Height()=33;
+ aSize.Height()=38;
}
SetSizePixel(aSize);
- //Invalidate();
+ Invalidate();
aTextWindow.Resize();
}
else
@@ -759,15 +759,24 @@ void ScInputWindow::SetMultiLineStatus(bool bMode)
ScInputBarGroup::ScInputBarGroup(Window* pParent)
: ScTextWndBase ( pParent, WinBits(WB_HIDE) ),
aMultiTextWnd ( this ),
- aButton ( this)
+ aButton ( this ),
+ aScrollBar ( this, WB_VERT )
{
aMultiTextWnd.Show();
aMultiTextWnd.SetQuickHelpText( ScResId( SCSTR_QHELP_INPUTWND ) );
aMultiTextWnd.SetHelpId ( HID_INSWIN_INPUT );
aButton.SetClickHdl ( LINK( this, ScInputBarGroup, ClickHdl ) );
- aButton.Show();
+ aButton.SetSizePixel(Size(0.5*TBX_WINDOW_HEIGHT,TBX_WINDOW_HEIGHT));
aButton.Enable();
+ aButton.Show();
+
+ aScrollBar.SetSizePixel( Size(0.5*TBX_WINDOW_HEIGHT,TBX_WINDOW_HEIGHT) );
+
+ aScrollBar.SetPageSize( 1 );
+ aScrollBar.SetVisibleSize( 1 );
+ aScrollBar.SetLineSize( 1 );
+ aScrollBar.Show();
}
ScInputBarGroup::~ScInputBarGroup()
@@ -811,9 +820,10 @@ void ScInputBarGroup::Resize()
}
long nWidth = pParent->GetSizePixel().Width();
- Point aPos = GetPosPixel();
+ long nLeft = GetPosPixel().X();
+
Size aSize = GetSizePixel();
- aSize.Width() = Max( ((long)(nWidth - aPos.X() - LEFT_OFFSET)), (long)0 );
+ aSize.Width() = Max( ((long)(nWidth - nLeft - LEFT_OFFSET)), (long)0 );
if(pParent->GetMultiLineStatus())
{
@@ -823,11 +833,12 @@ void ScInputBarGroup::Resize()
{
aSize.Height()=TBX_WINDOW_HEIGHT;
}
- SetPosSizePixel(aPos,aSize);
- Invalidate();
+ SetSizePixel(aSize);
- aButton.SetPosSizePixel(Point(aSize.Width()-3*LEFT_OFFSET,0),Size(0.5*TBX_WINDOW_HEIGHT,TBX_WINDOW_HEIGHT));
+ aButton.SetPosPixel(Point(aSize.Width()-4*LEFT_OFFSET,0));
+ aScrollBar.SetPosPixel(Point(aSize.Width()-2*LEFT_OFFSET,0));
+ Invalidate();
aMultiTextWnd.Resize();
}
@@ -895,6 +906,12 @@ IMPL_LINK( ScInputBarGroup, ClickHdl, PushButton*, pBtn )
return 0;
}
+IMPL_LINK( ScInputBarGroup, Impl_ScrollHdl, ScrollBar*, EMPTYARG )
+{
+
+}
+
+
//========================================================================
// ScMultiTextWnd
//========================================================================
@@ -917,7 +934,8 @@ void ScMultiTextWnd::Paint( const Rectangle& rRec )
{
// We always use edit engine to draw text at all times.
if (!pEditEngine)
- InitEditEngine(SfxObjectShell::Current());
+ //InitEditEngine(SfxObjectShell::Current());
+ StartEditEngine();
if (pEditView)
{
@@ -939,9 +957,10 @@ void ScMultiTextWnd::Resize()
long nWidth = GetParent()->GetSizePixel().Width();
- Point aPos=GetPosPixel();
+ long nLeft = GetPosPixel().X();
+
Size aTextBoxSize = GetSizePixel();
- aTextBoxSize.Width() = Max( ((long)(nWidth - aPos.X() - 3*LEFT_OFFSET)), (long)0 );
+ aTextBoxSize.Width() = Max( ((long)(nWidth - nLeft - 4*LEFT_OFFSET)), (long)0 );
if(pParent->GetMultiLineStatus())
{
@@ -966,7 +985,6 @@ void ScMultiTextWnd::Resize()
else
{
-
aTextBoxSize.Height()=TBX_WINDOW_HEIGHT;
if(pEditView)
{
@@ -977,17 +995,14 @@ void ScMultiTextWnd::Resize()
Point aPos1(TEXT_STARTPOS,nDiff);
Point aPos2(aOutputSize.Width()-5,(aOutputSize.Height() - nDiff));
+
pEditView->SetOutputArea(
PixelToLogic(Rectangle(aPos1, aPos2)));
}
-
}
-
- SetPosSizePixel(aPos,aTextBoxSize);
+ SetSizePixel(aTextBoxSize);
}
-
-
void ScMultiTextWnd::StartEditEngine()
{
// Bei "eigener Modalitaet" (Doc-modale Dialoge) nicht aktivieren
@@ -1067,16 +1082,11 @@ void ScMultiTextWnd::InitEditEngine(SfxObjectShell* pObjSh)
pNew->SetExecuteURL( false );
pEditEngine = pNew;
- Size barSize=GetOutputSizePixel();
-
- long barHeight=barSize.Height();
- long textHeight=LogicToPixel( Size( 0, GetTextHeight() ) ).Height();
- long nDiff = barHeight - textHeight;
-
- barSize.Height()=nDiff+barHeight;
- barSize.Width() -= 2*nTextStartPos-4;
+ Size barSize=GetSizePixel();
+ barSize.Width() -= (2*nTextStartPos-4);
+ printf("bar size width %ld",barSize.Width());
pEditEngine->SetUpdateMode( false );
- pEditEngine->SetPaperSize( PixelToLogic(Size(barSize.Width(),10000)) );
+ pEditEngine->SetPaperSize( PixelToLogic(Size(994-4*LEFT_OFFSET,10000)) );
pEditEngine->SetWordDelimiters(
ScEditUtil::ModifyDelimiters( pEditEngine->GetWordDelimiters() ) );
diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index 98e6c2e..bf1217b 100644
--- a/sc/source/ui/inc/inputwin.hxx
+++ b/sc/source/ui/inc/inputwin.hxx
@@ -35,6 +35,7 @@
#include <svl/lstner.hxx>
#include <vcl/button.hxx>
#include <vcl/combobox.hxx>
+#include <vcl/scrbar.hxx>
#include <vcl/window.hxx>
#include <svtools/transfer.hxx>
@@ -209,9 +210,11 @@ private:
ScMultiTextWnd aMultiTextWnd;
PushButton aButton;
+ ScrollBar aScrollBar;
// bool bIsMultiLine;
DECL_LINK( ClickHdl, PushButton* );
+ DECL_LINK( Impl_ScrollHdl, ScrollBar* );
};
More information about the Libreoffice-commits
mailing list