Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hello There,

I'm posting here the git diff of the work I've done till now.
@Kohei Since I do not want to disturb my master branch I'm here
pasting the diff only. Please create a feature branch and apply it, so
that I can clone that branch and commit on that.


diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index a293c22..8019fee 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -31,6 +31,8 @@

 #include <algorithm>

+#include<stdio.h>
+
 #include "scitems.hxx"
 #include <editeng/eeitem.hxx>

@@ -137,10 +139,11 @@ ScInputWindow::ScInputWindow( Window* pParent,
SfxBindings* pBind ) :
 // mit WB_CLIPCHILDREN, sonst Flicker
         ToolBox         ( pParent,
WinBits(WB_BORDER|WB_3DLOOK|WB_CLIPCHILDREN) ),
         aWndPos         ( this ),
+//      maScrollBar     ( this,  WB_VERT | WB_DRAG ),
         aTextWindow     ( this ),
         pInputHdl              ( NULL ),
         pBindings       ( pBind ),
-        aTextOk                        ( ScResId( SCSTR_QHELP_BTNOK ) ),               // nicht 
immer
neu aus Resource
+        aTextOk                        ( ScResId( SCSTR_QHELP_BTNOK ) ),               // not 
always
new from Resource
         aTextCancel            ( ScResId( SCSTR_QHELP_BTNCANCEL ) ),
         aTextSum               ( ScResId( SCSTR_QHELP_BTNSUM ) ),
         aTextEqual             ( ScResId( SCSTR_QHELP_BTNEQUAL ) ),
@@ -161,7 +164,7 @@ ScInputWindow::ScInputWindow( Window* pParent,
SfxBindings* pBind ) :
     }
     DBG_ASSERT( pViewSh, "no view shell for input window" );

-    // Positionsfenster, 3 Buttons, Eingabefenster
+    // Position window, 3 buttons, input window
     InsertWindow    ( 1, &aWndPos, 0,                                                              
  0 );
     InsertSeparator (                                                                              
                      1 );
     InsertItem      ( SID_INPUT_FUNCTION, IMAGE( SID_INPUT_FUNCTION ), 0, 2 );
@@ -169,12 +172,21 @@ ScInputWindow::ScInputWindow( Window* pParent,
SfxBindings* pBind ) :
     InsertItem      ( SID_INPUT_EQUAL,   IMAGE( SID_INPUT_EQUAL ), 0,    4 );
     InsertSeparator (                                                                              
                  5 );
     InsertWindow    ( 7, &aTextWindow, 0,                                 6 );
+//  InsertWindow    ( 8, &maScrollBar, 0,                                 8 );

     aWndPos       .SetQuickHelpText( ScResId( SCSTR_QHELP_POSWND ) );
     aWndPos    .SetHelpId              ( HID_INSWIN_POS );
     aTextWindow.SetQuickHelpText( ScResId( SCSTR_QHELP_INPUTWND ) );
     aTextWindow.SetHelpId              ( HID_INSWIN_INPUT );

+/*
+    maScrollBar.SetPageSize( 1 );
+    maScrollBar.SetVisibleSize( 1 );
+    maScrollBar.SetLineSize( 1 );
+    maScrollBar.SetRange( Range( 0, 1 ) );
+    maScrollBar.SetThumbPos( 10 );
+*/
+
     // kein SetHelpText, die Hilfetexte kommen aus der Hilfe

     SetItemText ( SID_INPUT_FUNCTION, ScResId( SCSTR_QHELP_BTNCALC ) );
@@ -189,6 +201,7 @@ ScInputWindow::ScInputWindow( Window* pParent,
SfxBindings* pBind ) :
     SetHelpId( HID_SC_INPUTWIN );      // fuer die ganze Eingabezeile

     aWndPos            .Show();
+//  maScrollBar .Show();
     aTextWindow        .Show();

     pInputHdl = SC_MOD()->GetInputHdl( pViewSh, false );    // use
own handler even if ref-handler is set
@@ -489,7 +502,11 @@ void ScInputWindow::Resize()
     long nLeft  = aTextWindow.GetPosPixel().X();
     Size aSize  = aTextWindow.GetSizePixel();

-    aSize.Width() = Max( ((long)(nWidth - nLeft - 5)), (long)0 );
+    aSize.Width() = Max( ((long)(nWidth - nLeft - 40)), (long)0 );
+
+    printf("Inside ScInputWindow:Resize()\n");
+    printf("nWidth %ld nLeft %ld aSize.Width%ld \n",nWidth, nLeft,
aSize.Width());
+
     aTextWindow.SetSizePixel( aSize );
     aTextWindow.Invalidate();
 }
@@ -534,10 +551,15 @@ void ScInputWindow::SetPosString( const String& rStr )

 void ScInputWindow::SetTextString( const String& rString )
 {
+    int i = rString.Len();
     if (rString.Len() <= 32767)
+    {
         aTextWindow.SetTextString(rString);
+        printf("%d ScInputWnd:SetTextString(),  if \n",i);
+    }
     else
     {
+        printf("%d ScInputWnd:SetTextString(),  else \n",i);
         String aNew = rString;
         aNew.Erase(32767);
         aTextWindow.SetTextString(aNew);
@@ -705,7 +727,7 @@ void ScInputWindow::DataChanged( const
DataChangedEvent& rDCEvt )
 }

 //========================================================================
-//                                                     Eingabefenster
+//                                                     Input Window
 //========================================================================

 ScTextWnd::ScTextWnd( Window* pParent )
@@ -779,6 +801,8 @@ void ScTextWnd::Paint( const Rectangle& rRec )
             // LayoutMode isn't changed as long as ModifyRTLDefaults
doesn't include SvxFrameDirectionItem
         }

+        printf("ScTextWnd::Paint() nDiff: %ld GOSP height %ld text
height \n",nDiff, GetOutputSizePixel().Height(), LogicToPixel( Size(
0, GetTextHeight() ) ).Height());
+
         DrawText( PixelToLogic( Point( nStartPos, nDiff/2 ) ), aString );
     }
 }
@@ -793,6 +817,8 @@ void ScTextWnd::Resize()

         aSize.Width() -= 2 * TEXT_STARTPOS - 1;

+        printf("ScTextWnd:Resize() width %ld \n",aSize.Width());
+
         pEditView->SetOutputArea(
             PixelToLogic( Rectangle( Point( TEXT_STARTPOS, (nDiff >
0) ? nDiff/2 : 1 ),
                                      aSize ) ) );
@@ -1036,8 +1062,16 @@ void ScTextWnd::StartEditEngine()
         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*TEXT_STARTPOS-4;
         pEditEngine->SetUpdateMode( false );
-        pEditEngine->SetPaperSize( Size( bIsRTL ? USHRT_MAX : THESIZE, 300 ) );
+        pEditEngine->SetPaperSize( PixelToLogic(barSize) );
         pEditEngine->SetWordDelimiters(
                         ScEditUtil::ModifyDelimiters(
pEditEngine->GetWordDelimiters() ) );

diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index 6c3785d..338020a 100644
--- a/sc/source/ui/inc/inputwin.hxx
+++ b/sc/source/ui/inc/inputwin.hxx
@@ -34,6 +34,7 @@
 #include <sfx2/childwin.hxx>
 #include <svl/lstner.hxx>
 #include <vcl/combobox.hxx>
+#include <vcl/scrbar.hxx>
 #include <vcl/window.hxx>
 #include <svtools/transfer.hxx>

@@ -115,7 +116,7 @@ private:

 //========================================================================

-class ScPosWnd : public ComboBox, public SfxListener           // Positionsanzeige
+class ScPosWnd : public ComboBox, public SfxListener           // Position window
 {
 private:
     String                     aPosStr;
@@ -199,6 +200,7 @@ protected:

 private:
     ScPosWnd           aWndPos;
+//  ScrollBar          maScrollBar;
     ScTextWnd          aTextWindow;
     ScInputHandler*    pInputHdl;
     SfxBindings*    pBindings;


Thanks and regards.

-- 
Anurag Jain
Final yr B.Tech CSE
SASTRA University
Thanjavur(T.N.)-613402

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.