[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