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;
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice