Hi Noel,
Please review the patch I'm sending here. I did not have luck getting
the control shown up. Please guide me what I'm missing ?
Thanks and regards
--
Anurag Jain
Final yr B.Tech CSE
SASTRA University
Thanjavur(T.N.)-613402
diff --cc sc/source/ui/app/inputwin.cxx
index 0fed037,edffb0a..0000000
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@@ -140,7 -140,7 +140,7 @@@ ScInputWindow::ScInputWindow( Window* p
ToolBox ( pParent, WinBits(WB_BORDER|WB_3DLOOK|WB_CLIPCHILDREN) ),
aWndPos ( this ),
// maScrollBar ( this, WB_VERT | WB_DRAG ),
-- aTextWindow ( this ),
++ aBarGroup ( this ),
pInputHdl ( NULL ),
pBindings ( pBind ),
aTextOk ( ScResId( SCSTR_QHELP_BTNOK ) ), // not
always new from Resource
@@@ -171,13 -171,13 +171,13 @@@
InsertItem ( SID_INPUT_SUM, IMAGE( SID_INPUT_SUM ), 0, 3 );
InsertItem ( SID_INPUT_EQUAL, IMAGE( SID_INPUT_EQUAL ), 0, 4 );
InsertSeparator (
5 );
-- InsertWindow ( 7, &aTextWindow, 0, 6 );
++ InsertWindow ( 7, &aBarGroup, 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 );
++// aTextWindow.SetQuickHelpText( ScResId( SCSTR_QHELP_INPUTWND ) );
++// aTextWindow.SetHelpId ( HID_INSWIN_INPUT );
/*
maScrollBar.SetPageSize( 1 );
@@@ -202,7 -202,7 +202,7 @@@
aWndPos .Show();
// maScrollBar .Show();
-- aTextWindow .Show();
++ aBarGroup .Show();
pInputHdl = SC_MOD()->GetInputHdl( pViewSh, false ); // use own handler even if
ref-handler is set
if (pInputHdl)
@@@ -214,7 -214,7 +214,7 @@@
// -> Inhalt des Funktionsautopiloten wieder anzeigen
//! auch Selektion (am InputHdl gemerkt) wieder anzeigen
-- aTextWindow.SetTextString( pInputHdl->GetFormString() );
++ aBarGroup.SetTextString( pInputHdl->GetFormString() );
}
else if ( pInputHdl && pInputHdl->IsInputMode() )
{
@@@ -222,7 -222,7 +222,7 @@@
// (Editieren einer Formel, dann umschalten zu fremdem Dokument/Hilfe),
// wieder den gerade editierten Text aus dem InputHandler anzeigen
-- aTextWindow.SetTextString( pInputHdl->GetEditString() ); // Text anzeigen
++ aBarGroup.SetTextString( pInputHdl->GetEditString() ); // Text anzeigen
if ( pInputHdl->IsTopMode() )
pInputHdl->SetMode( SC_INPUT_TABLE ); // Focus kommt eh nach unten
}
@@@ -365,7 -365,7 +365,7 @@@ void ScInputWindow::Select(
case SID_INPUT_OK:
pScMod->InputEnterHandler();
SetSumAssignMode();
-- aTextWindow.Invalidate(); // sonst bleibt Selektion stehen
++ aBarGroup.Invalidate(); // sonst bleibt Selektion stehen
break;
case SID_INPUT_SUM:
@@@ -472,13 -472,13 +472,13 @@@
case SID_INPUT_EQUAL:
{
-- aTextWindow.StartEditEngine();
++ aBarGroup.StartEditEngine();
if ( pScMod->IsEditMode() ) // nicht, wenn z.B. geschuetzt
{
-- aTextWindow.GrabFocus();
-- aTextWindow.SetTextString( '=' );
++ aBarGroup.GainFocus();
++ aBarGroup.SetTextString( '=' );
-- EditView* pView = aTextWindow.GetEditView();
++ EditView* pView = aBarGroup.GetEditView();
if (pView)
{
pView->SetSelection( ESelection(0,1, 0,1) );
@@@ -496,17 -496,17 +496,7 @@@ void ScInputWindow::Resize(
{
ToolBox::Resize();
-- long nWidth = GetSizePixel().Width();
-- long nLeft = aTextWindow.GetPosPixel().X();
-- Size aSize = aTextWindow.GetSizePixel();
--
-- 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();
++ aBarGroup.Resize();
}
void ScInputWindow::SetFuncString( const String& rString, sal_Bool bDoEdit )
@@@ -514,15 -514,15 +504,15 @@@
//! new method at ScModule to query if function autopilot is open
SfxViewFrame* pViewFrm = SfxViewFrame::Current();
EnableButtons( pViewFrm && !pViewFrm->GetChildWindow( SID_OPENDLG_FUNCTION ) );
-- aTextWindow.StartEditEngine();
++ aBarGroup.StartEditEngine();
ScModule* pScMod = SC_MOD();
if ( pScMod->IsEditMode() )
{
if ( bDoEdit )
-- aTextWindow.GrabFocus();
-- aTextWindow.SetTextString( rString );
-- EditView* pView = aTextWindow.GetEditView();
++ aBarGroup.GainFocus();
++ aBarGroup.SetTextString( rString );
++ EditView* pView = aBarGroup.GetEditView();
if (pView)
{
xub_StrLen nLen = rString.Len();
@@@ -552,7 -552,7 +542,7 @@@ void ScInputWindow::SetTextString( cons
int i = rString.Len();
if (rString.Len() <= 32767)
{
-- aTextWindow.SetTextString(rString);
++ aBarGroup.SetTextString(rString);
// printf("%d ScInputWnd:SetTextString(), if \n",i);
}
else
@@@ -560,7 -560,7 +550,7 @@@
// printf("%d ScInputWnd:SetTextString(), else \n",i);
String aNew = rString;
aNew.Erase(32767);
-- aTextWindow.SetTextString(aNew);
++ aBarGroup.SetTextString(aNew);
}
}
@@@ -614,7 -614,7 +604,7 @@@ void ScInputWindow::SetSumAssignMode(
void ScInputWindow::SetFormulaMode( sal_Bool bSet )
{
aWndPos.SetFormulaMode(bSet);
-- aTextWindow.SetFormulaMode(bSet);
++ aBarGroup.SetFormulaMode(bSet);
}
void ScInputWindow::SetText( const String& rString )
@@@ -629,43 -629,43 +619,43 @@@ String ScInputWindow::GetText() cons
sal_Bool ScInputWindow::IsInputActive()
{
-- return aTextWindow.IsInputActive();
++ return aBarGroup.IsInputActive();
}
EditView* ScInputWindow::GetEditView()
{
-- return aTextWindow.GetEditView();
++ return aBarGroup.GetEditView();
}
void ScInputWindow::MakeDialogEditView()
{
-- aTextWindow.MakeDialogEditView();
++ aBarGroup.MakeDialogEditView();
}
void ScInputWindow::StopEditEngine( sal_Bool bAll )
{
-- aTextWindow.StopEditEngine( bAll );
++// aTextWindow.StopEditEngine( bAll );
}
void ScInputWindow::TextGrabFocus()
{
-- aTextWindow.GrabFocus();
++ aBarGroup.GainFocus();
}
void ScInputWindow::TextInvalidate()
{
-- aTextWindow.Invalidate();
++ aBarGroup.Invalidate();
}
void ScInputWindow::SwitchToTextWin()
{
// used for shift-ctrl-F2
-- aTextWindow.StartEditEngine();
++ aBarGroup.StartEditEngine();
if ( SC_MOD()->IsEditMode() )
{
-- aTextWindow.GrabFocus();
-- EditView* pView = aTextWindow.GetEditView();
++ aBarGroup.GainFocus();
++ EditView* pView = aBarGroup.GetEditView();
if (pView)
{
xub_StrLen nLen = pView->GetEditEngine()->GetTextLen(0);
@@@ -725,11 -725,11 +715,82 @@@ void ScInputWindow::DataChanged( const
}
//========================================================================
++// ScInputBarGroup
++//========================================================================
++
++ScInputBarGroup::ScInputBarGroup(Window* pParent)
++ : Window ( pParent, WinBits(WB_HIDE | WB_BORDER) ),
++ aTextWindow ( this ),
++ maScrollBar ( this, WB_VERT | WB_DRAG ),
++ bIsMultiLine ( false )
++{
++
++ aTextWindow.Show();
++ aTextWindow.SetQuickHelpText( ScResId( SCSTR_QHELP_INPUTWND ) );
++ aTextWindow.SetHelpId ( HID_INSWIN_INPUT );
++
++
++}
++
++ScInputBarGroup::~ScInputBarGroup()
++{
++
++}
++void ScInputBarGroup::SetTextString( const String& rString )
++{
++ aTextWindow.SetTextString(rString);
++}
++
++void ScInputBarGroup::Resize()
++{
++ long nWidth = GetSizePixel().Width();
++ long nLeft = aTextWindow.GetPosPixel().X();
++ Size aSize = aTextWindow.GetSizePixel();
++
++ aSize.Width() = Max( ((long)(nWidth - nLeft - 40)), (long)0 );
++
++ aTextWindow.SetSizePixel( aSize );
++ aTextWindow.Invalidate();
++}
++
++void ScInputBarGroup::GainFocus()
++{
++ aTextWindow.GrabFocus();
++}
++
++
++void ScInputBarGroup::StartEditEngine()
++{
++ aTextWindow.StartEditEngine();
++}
++
++void ScInputBarGroup::MakeDialogEditView()
++{
++ aTextWindow.MakeDialogEditView();
++}
++
++
++EditView* ScInputBarGroup::GetEditView()
++{
++ return aTextWindow.GetEditView();
++}
++
++bool ScInputBarGroup::IsInputActive()
++{
++ return aTextWindow.IsInputActive();
++}
++
++void ScInputBarGroup::SetFormulaMode(bool bSet)
++{
++ aTextWindow.SetFormulaMode(bSet);
++}
++
++//========================================================================
// Input Window
//========================================================================
ScTextWnd::ScTextWnd( Window* pParent )
-- : Window ( pParent, WinBits(WB_HIDE | WB_BORDER) ),
++ : Window ( pParent, WinBits(WB_HIDE | WB_BORDER) ),
DragSourceHelper( this ),
pEditEngine ( NULL ),
pEditView ( NULL ),
diff --git a/sc/source/ui/inc/inputwin.hxx b/sc/source/ui/inc/inputwin.hxx
index 9901ef2..6127115 100644
--- a/sc/source/ui/inc/inputwin.hxx
+++ b/sc/source/ui/inc/inputwin.hxx
@@ -165,16 +165,15 @@ public:
void SetSize(Size aSize);
virtual void Resize();
void InitEditEngine(SfxObjectShell* pObjSh);
-// void GrabFocus();
- void SetFormulaMode(bool bSet);
- void GetFocus();
+ void GainFocus();
+ void SetFormulaMode( bool bSet );
bool IsFocus();
void MakeDialogEditView();
-
+ bool IsInputActive();
private:
- ScrollBar maScrollBar;
ScTextWnd aTextWindow;
+ ScrollBar maScrollBar;
bool bIsMultiLine;
};
@@ -230,7 +229,6 @@ protected:
private:
ScPosWnd aWndPos;
-// ScTextWnd aTextWindow;
ScInputBarGroup aBarGroup;
ScInputHandler* pInputHdl;
SfxBindings* pBindings;
Context
- [Libreoffice] [GSOC][PATCH] Multiline inputbar · Anurag Jain
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.