diff options
Diffstat (limited to 'sw/source/ui/ribbar/inputwin.cxx')
-rw-r--r-- | sw/source/ui/ribbar/inputwin.cxx | 881 |
1 files changed, 881 insertions, 0 deletions
diff --git a/sw/source/ui/ribbar/inputwin.cxx b/sw/source/ui/ribbar/inputwin.cxx new file mode 100644 index 000000000000..0aafb4a53d0a --- /dev/null +++ b/sw/source/ui/ribbar/inputwin.cxx @@ -0,0 +1,881 @@ +/************************************************************************* + * + * $RCSfile: inputwin.cxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:14:46 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifdef PRECOMPILED +#include "ui_pch.hxx" +#endif + +#pragma hdrstop + +#ifndef _GEN_HXX //autogen +#include <tools/gen.hxx> +#endif +#ifndef _SFXIMGMGR_HXX //autogen +#include <sfx2/imgmgr.hxx> +#endif +#ifndef _SFXVIEWFRM_HXX //autogen +#include <sfx2/viewfrm.hxx> +#endif +#ifndef _SFXDISPATCH_HXX //autogen +#include <sfx2/dispatch.hxx> +#endif +#ifndef _SVX_RULER_HXX //autogen +#include <svx/ruler.hxx> +#endif +#ifndef _ZFORLIST_HXX //autogen +#include <svtools/zforlist.hxx> +#endif + + +#include "swtypes.hxx" +#include "cmdid.h" +#include "swmodule.hxx" +#include "wrtsh.hxx" +#include "view.hxx" +#include "calc.hxx" +#include "inputwin.hxx" +#include "fldbas.hxx" +#include "fldmgr.hxx" +#include "frmfmt.hxx" +#include "cellatr.hxx" +#include "edtwin.hxx" +#include "helpid.h" + +// nur fuers UpdateRange - Box in dem der gestackte Cursor sthet loeschen +#include "pam.hxx" +#include "doc.hxx" + +#include "swundo.hxx" +#include "ribbar.hrc" +#include "inputwin.hrc" + + +SFX_IMPL_POS_CHILDWINDOW( SwInputChild, FN_EDIT_FORMULA, SFX_OBJECTBAR_OBJECT ) + +//================================================================== + +SwInputWindow::SwInputWindow( Window* pParent ) + : ToolBox( pParent , SW_RES( RID_TBX_FORMULA )), + aEdit( this, WB_3DLOOK|WB_TABSTOP|WB_BORDER|WB_NOHIDESELECTION), + aPos( this, SW_RES(ED_POS)), + aPopMenu( SW_RES(MN_CALC_POPUP)), + pMgr(0), + pView(0), + pWrtShell(0), + aAktTableName(aEmptyStr) +{ + bFirst = bDoesUndo = TRUE; + bActive = bIsTable = bDelSel = bResetUndo = bCallUndo = FALSE; + + FreeResource(); + SFX_APP()->GetImageManager()->RegisterToolBox(this); + + pView = ::GetActiveView(); + pWrtShell = pView ? pView->GetWrtShellPtr() : 0; + + InsertWindow( ED_POS, &aPos, 0, 0); + InsertSeparator ( 1 ); + InsertSeparator (); + InsertWindow( ED_FORMULA, &aEdit); + SetHelpId(ED_FORMULA, HID_EDIT_FORMULA); + + SfxImageManager* pManager = SFX_IMAGEMANAGER(); + SetItemImage( FN_FORMULA_CALC, pManager->GetImage(FN_FORMULA_CALC )); + SetItemImage( FN_FORMULA_CANCEL, pManager->GetImage(FN_FORMULA_CANCEL )); + SetItemImage( FN_FORMULA_APPLY, pManager->GetImage(FN_FORMULA_APPLY )); + + Size aSizeTbx = CalcWindowSizePixel(); + Size aSize = GetSizePixel(); + aSize.Height() = aSizeTbx.Height(); + SetSizePixel( aSize ); + Size aPosSize = aPos.GetSizePixel(); + Size aEditSize = aEdit.GetSizePixel(); + aPosSize.Height() = aEditSize.Height() = GetItemRect(FN_FORMULA_CALC).GetHeight() - 2; + + Point aPosPos = aPos.GetPosPixel(); + Point aEditPos= aEdit.GetPosPixel(); + aPosPos.Y() = aEditPos.Y() = GetItemRect( FN_FORMULA_CALC ).TopLeft().Y() + 1; + aPos.SetPosSizePixel( aPosPos, aPosSize ); + aEdit.SetPosSizePixel( aEditPos, aEditSize ); + + aPopMenu.SetSelectHdl(LINK( this, SwInputWindow, MenuHdl )); +} + +//================================================================== + +__EXPORT SwInputWindow::~SwInputWindow() +{ + SFX_APP()->GetImageManager()->ReleaseToolBox(this); + //Lineale aufwecken + if(pView) + { + pView->GetHLineal()->SetActive( TRUE ); + if( pView->GetVLineal()) + pView->GetVLineal()->SetActive( TRUE ); + } + if ( pMgr ) + delete pMgr; + if(pWrtShell) + pWrtShell->EndSelTblCells(); + + if( bResetUndo ) + { + DelBoxCntnt(); + pWrtShell->DoUndo( bDoesUndo ); + if(bCallUndo) + pWrtShell->Undo(); + SwEditShell::SetUndoActionCount( nActionCnt ); + } +} + +//================================================================== + +void __EXPORT SwInputWindow::Resize() +{ + ToolBox::Resize(); + + long nWidth = GetSizePixel().Width(); + long nLeft = aEdit.GetPosPixel().X(); + Size aEditSize = aEdit.GetSizePixel(); + + aEditSize.Width() = Max( ((long)(nWidth - nLeft - 5)), (long)0 ); + aEdit.SetSizePixel( aEditSize ); + aEdit.Invalidate(); +} + +//================================================================== + +void SwInputWindow::Show() +{ + bIsTable = FALSE; + //Lineale anhalten + if(pView) + { + pView->GetHLineal()->SetActive( FALSE ); + if( pView->GetVLineal()) + pView->GetVLineal()->SetActive( FALSE ); + + DBG_ASSERT(pWrtShell, "Keine WrtShell!") + // Cursor in Tabelle + bIsTable = pWrtShell->IsCrsrInTbl() ? TRUE : FALSE; + + if( bFirst ) + pWrtShell->SelTblCells( LINK( this, SwInputWindow, + SelTblCellsNotify) ); + if( bIsTable ) + { + const String& rPos = pWrtShell->GetBoxNms(); + USHORT nPos = 0; + short nSrch = -1; + while( (nPos = rPos.Search( ':',nPos + 1 ) ) != STRING_NOTFOUND ) + nSrch = (short) nPos; + aPos.SetText( rPos.Copy( ++nSrch ) ); + aAktTableName = pWrtShell->GetTableFmt()->GetName(); + } + else + aPos.SetText(SW_RESSTR(STR_FORMULA)); + + // Aktuelles Feld bearbeiten + ASSERT(pMgr == 0, FieldManager nicht geloescht.); + pMgr = new SwFldMgr; + + // JP 13.01.97: Formel soll immer mit einem "=" beginnen, hier + // also setzen + String sEdit( '=' ); + if( pMgr->GetCurFld() && TYP_FORMELFLD == pMgr->GetCurTypeId() ) + { + sEdit += pMgr->GetCurFldPar2(); + } + else if( bFirst ) + { + if( bIsTable ) + { + bResetUndo = TRUE; + nActionCnt = SwEditShell::GetUndoActionCount(); + SwEditShell::SetUndoActionCount( nActionCnt + 1 ); + + bDoesUndo = pWrtShell->DoesUndo(); + if( !bDoesUndo ) + pWrtShell->DoUndo( TRUE ); + + if( !pWrtShell->SwCrsrShell::HasSelection() ) + { + pWrtShell->MoveSection( fnSectionCurr, fnSectionStart ); + pWrtShell->SetMark(); + pWrtShell->MoveSection( fnSectionCurr, fnSectionEnd ); + } + if( pWrtShell->SwCrsrShell::HasSelection() ) + { + pWrtShell->StartUndo( UNDO_DELETE ); + pWrtShell->Delete(); + if( 0 != pWrtShell->EndUndo( UNDO_DELETE )) + bCallUndo = TRUE; + } + pWrtShell->DoUndo( FALSE ); + + SfxItemSet aSet( pWrtShell->GetAttrPool(), RES_BOXATR_FORMULA, RES_BOXATR_FORMULA ); + if( pWrtShell->GetTblBoxFormulaAttrs( aSet )) + sEdit += ((SwTblBoxFormula&)aSet.Get( RES_BOXATR_FORMULA )).GetFormula(); + } + } + + if( bFirst ) + { + // WrtShell Flags richtig setzen + pWrtShell->SttSelect(); + pWrtShell->EndSelect(); + } + + bFirst = FALSE; + + aEdit.SetModifyHdl( LINK( this, SwInputWindow, ModifyHdl )); + + aEdit.SetText( sEdit ); + aEdit.SetSelection( Selection( sEdit.Len(), sEdit.Len() ) ); + sOldFml = sEdit; + + aEdit.Invalidate(); + aEdit.Update(); + aEdit.GrabFocus(); + // UserInterface fuer die Eingabe abklemmen + + pView->GetEditWin().LockKeyInput(TRUE); + pView->GetViewFrame()->GetDispatcher()->Lock(TRUE); + pWrtShell->Push(); + } + ToolBox::Show(); +} +//================================================================== + +IMPL_LINK( SwInputWindow, MenuHdl, Menu *, pMenu ) +{ +static const char * __READONLY_DATA aStrArr[] = { + sCalc_Phd, + sCalc_Sqrt, + sCalc_Or, + sCalc_Xor, + sCalc_And, + sCalc_Not, + sCalc_Eq, + sCalc_Neq, + sCalc_Leq, + sCalc_Geq, + sCalc_L, + sCalc_G, + sCalc_Sum, + sCalc_Mean, + sCalc_Min, + sCalc_Max, + sCalc_Sin, + sCalc_Cos, + sCalc_Tan, + sCalc_Asin, + sCalc_Acos, + sCalc_Atan, + sCalc_Pow, + "|", + sCalc_Round +}; + + USHORT nId = pMenu->GetCurItemId(); + if ( nId <= MN_CALC_ROUND ) + { + String aTmp( String::CreateFromAscii(aStrArr[nId - 1]) ); + aTmp += ' '; + aEdit.ReplaceSelected( aTmp ); + } + return 0; +} + +//================================================================== + + +void __EXPORT SwInputWindow::Click( ) +{ + USHORT nCurID = GetCurItemId(); + EndSelection(); // setzt CurItemId zurueck ! + switch ( nCurID ) + { + case FN_FORMULA_CALC : + { + Point aBL = GetItemRect( FN_FORMULA_CALC ).BottomLeft(); + Point aPt(aBL.X(), aBL.Y()); +#ifdef VCL + aPopMenu.Execute( this, aPt ); +#else + aPt = OutputToScreenPixel( aPt ); + aPopMenu.Execute( aPt ); +#endif + } + break; + case FN_FORMULA_CANCEL: + { + CancelFormula(); + } + break; + case FN_FORMULA_APPLY: + { + ApplyFormula(); + } + break; + } +} + +//================================================================== + +void SwInputWindow::ApplyFormula() +{ + pView->GetViewFrame()->GetDispatcher()->Lock(FALSE); + pView->GetEditWin().LockKeyInput(FALSE); + if( bResetUndo ) + { + DelBoxCntnt(); + pWrtShell->DoUndo( bDoesUndo ); + SwEditShell::SetUndoActionCount( nActionCnt ); + if( bCallUndo ) + pWrtShell->Undo(); + bResetUndo = FALSE; + } + pWrtShell->Pop( FALSE ); + + // JP 13.01.97: Formel soll immer mit einem "=" beginnen, hier + // also wieder entfernen + BOOL bIsFormula = FALSE; + String sEdit( aEdit.GetText() ); + sEdit.EraseLeadingChars().EraseTrailingChars(); + if( sEdit.Len() && '=' == sEdit.GetChar( 0 ) ) + { + sEdit.Erase( 0, 1 ); + bIsFormula = TRUE; + } + + pWrtShell->StartAllAction(); + if( bDelSel && pWrtShell->HasSelection() ) + { + pWrtShell->StartUndo( UNDO_START ); + pWrtShell->DelRight(); + } + else + { + pWrtShell->EnterStdMode(); + bDelSel = FALSE; + } + + if( !bDelSel && pMgr->GetCurFld() && TYP_FORMELFLD == pMgr->GetCurTypeId() ) + pMgr->UpdateCurFld( pMgr->GetCurFld()->GetFormat(), aEmptyStr, sEdit ); + else if( sEdit.Len() ) + { + if( bIsTable ) + { + SfxItemSet aSet( pWrtShell->GetAttrPool(), RES_BOXATR_FORMULA, RES_BOXATR_FORMULA ); + aSet.Put( SwTblBoxFormula( sEdit )); + pWrtShell->SetTblBoxFormulaAttrs( aSet ); + pWrtShell->UpdateTable(); + } + else + { + SvNumberFormatter* pFormatter = pWrtShell->GetNumberFormatter(); + ULONG nSysNumFmt = pFormatter->GetFormatIndex( NF_NUMBER_STANDARD, LANGUAGE_SYSTEM); + pMgr->InsertFld(TYP_FORMELFLD, GSE_FORMULA, aEmptyStr, sEdit, nSysNumFmt); + } + } + + if( bDelSel ) + pWrtShell->EndUndo( UNDO_END ); + pWrtShell->EndAllAction(); + + pWrtShell->EndSelTblCells(); + pView->GetEditWin().GrabFocus(); + pView->GetViewFrame()->GetDispatcher()->Execute( FN_EDIT_FORMULA, SFX_CALLMODE_ASYNCHRON ); +} + +//================================================================== + +void SwInputWindow::CancelFormula() +{ + if(pView) + { + pView->GetViewFrame()->GetDispatcher()->Lock( FALSE ); + pView->GetEditWin().LockKeyInput(FALSE); + if( bResetUndo ) + { + DelBoxCntnt(); + pWrtShell->DoUndo( bDoesUndo ); + SwEditShell::SetUndoActionCount( nActionCnt ); + if( bCallUndo ) + pWrtShell->Undo(); + bResetUndo = FALSE; + } + pWrtShell->Pop( FALSE ); + + if( bDelSel ) + pWrtShell->EnterStdMode(); + + pWrtShell->EndSelTblCells(); + + pView->GetEditWin().GrabFocus(); + } + pView->GetViewFrame()->GetDispatcher()->Execute( FN_EDIT_FORMULA, SFX_CALLMODE_ASYNCHRON); +} +//================================================================== + +IMPL_LINK( SwInputWindow, SelTblCellsNotify, SwWrtShell *, pCaller ) +{ + if(bIsTable) + { + SwFrmFmt* pTblFmt = pCaller->GetTableFmt(); + String sBoxNms( pCaller->GetBoxNms() ); + String sTblNm; + if( pTblFmt && aAktTableName != pTblFmt->GetName() ) + sTblNm = pTblFmt->GetName(); + + aEdit.UpdateRange( sBoxNms, sTblNm ); + + String sNew( aEdit.GetText() ); + if( sNew != sOldFml ) + { + // Die WrtShell ist in der Tabellen Selektion + // dann die Tabellen Selektion wieder aufheben, sonst steht der + // Cursor "im Wald" und das LiveUpdate funktioniert nicht! + pWrtShell->StartAllAction(); + + SwPaM aPam( *pWrtShell->GetStkCrsr()->GetPoint() ); + aPam.Move( fnMoveBackward, fnGoSection ); + aPam.SetMark(); + aPam.Move( fnMoveForward, fnGoSection ); + + pWrtShell->GetDoc()->Delete( aPam ); + pWrtShell->GetDoc()->Insert( aPam, sNew ); + pWrtShell->EndAllAction(); + sOldFml = sNew; + } + } + else + aEdit.GrabFocus(); + return 0; +} + + +void SwInputWindow::SetFormula( const String& rFormula, BOOL bDelFlag ) +{ + String sEdit( '=' ); + if( rFormula.Len() ) + { + if( '=' == rFormula.GetChar( 0 ) ) + sEdit = rFormula; + else + sEdit += rFormula; + } + aEdit.SetText( sEdit ); + aEdit.SetSelection( Selection( sEdit.Len(), sEdit.Len() ) ); + aEdit.Invalidate(); + bDelSel = bDelFlag; +} + + +IMPL_LINK( SwInputWindow, ModifyHdl, InputEdit*, EMPTYARG ) +{ + if( bIsTable && bResetUndo ) + { + pWrtShell->StartAllAction(); + DelBoxCntnt(); + String sNew( aEdit.GetText() ); + pWrtShell->SwEditShell::Insert( sNew ); + pWrtShell->EndAllAction(); + sOldFml = sNew; + } + return 0; +} + + +void SwInputWindow::DelBoxCntnt() +{ + if( bIsTable ) + { + pWrtShell->StartAllAction(); + pWrtShell->ClearMark(); + pWrtShell->Pop( FALSE ); + pWrtShell->Push(); + pWrtShell->MoveSection( fnSectionCurr, fnSectionStart ); + pWrtShell->SetMark(); + pWrtShell->MoveSection( fnSectionCurr, fnSectionEnd ); + pWrtShell->SwEditShell::Delete(); + pWrtShell->EndAllAction(); + } +} + +//================================================================== + +void __EXPORT InputEdit::KeyInput(const KeyEvent& rEvent) +{ + const KeyCode aCode = rEvent.GetKeyCode(); + if(aCode == KEY_RETURN || aCode == KEY_F2 ) + ((SwInputWindow*)GetParent())->ApplyFormula(); + else if(aCode == KEY_ESCAPE ) + ((SwInputWindow*)GetParent())->CancelFormula(); + else + Edit::KeyInput(rEvent); +} + +//================================================================== + +void __EXPORT InputEdit::UpdateRange(const String& rBoxes, + const String& rName ) +{ + if( !rBoxes.Len() ) + { + GrabFocus(); + return; + } + const sal_Unicode cOpen = '<', cClose = '>', + cOpenBracket = '(', cCloseBracket = ')'; + String aPrefix = rName; + if(rName.Len()) + aPrefix += '.'; + String aBoxes = aPrefix; + aBoxes += rBoxes; + Selection aSelection(GetSelection()); + USHORT nSel = (USHORT) aSelection.Len(); + //OS: mit dem folgenden Ausdruck wird sichergestellt, dass im overwrite-Modus + //die selektierte schliessende Klammer nicht geloescht wird + if( nSel && ( nSel > 1 || + GetText().GetChar( (USHORT)aSelection.Min() ) != cClose ) ) + Cut(); + else + aSelection.Max() = aSelection.Min(); + String aActText(GetText()); + const USHORT nLen = aActText.Len(); + if( !nLen ) + { + String aStr(cOpen); + aStr += aBoxes; + aStr += cClose; + SetText(aStr); + USHORT nPos = aStr.Search( cClose ); + ASSERT(nPos < aStr.Len(), Delimiter nicht gefunden.); + ++nPos; + SetSelection( Selection( nPos, nPos )); + } + else + { + BOOL bFound = FALSE; + unsigned char cCh; + USHORT nPos, nEndPos, nStartPos = (USHORT) aSelection.Min(); + if( nStartPos-- ) + { + do { + if( cOpen == (cCh = aActText.GetChar( nStartPos ) ) || + cOpenBracket == cCh ) + { + bFound = cCh == cOpen; + break; + } + } while( nStartPos-- > 0 ); + } + if( bFound ) + { + bFound = FALSE; + nEndPos = nStartPos; + while( nEndPos < nLen ) + { + if( cClose == (cCh = aActText.GetChar( nEndPos )) /*|| + cCh == cCloseBracket*/ ) + { + bFound = TRUE; + break; + } + ++nEndPos; + } + // nur wenn akt. Pos im Breich oder direkt dahinter liegt + if( bFound && !( nStartPos < (USHORT)aSelection.Max() && + (USHORT)aSelection.Max() <= nEndPos + 1 )) + bFound = FALSE; + } + if( bFound ) + { + nPos = ++nStartPos + 1; // wir wollen dahinter + aActText.Erase( nStartPos, nEndPos - nStartPos ); + aActText.Insert( aBoxes, nStartPos ); + nPos += aBoxes.Len(); + } + else + { + String aTmp( (char)cOpen ); + aTmp += aBoxes; + aTmp += (char)cClose; + nPos = (USHORT)aSelection.Min(); + aActText.Insert( aTmp, nPos ); + nPos += aTmp.Len(); + } + if( GetText() != aActText ) + { + SetText( aActText ); + SetSelection( Selection( nPos, nPos ) ); +// GetModifyHdl().Call( this ); + } + } + GrabFocus(); + +} +//================================================================== + + +SwInputChild::SwInputChild(Window* pParent, + USHORT nId, + SfxBindings* , + SfxChildWinInfo* ) : + SfxChildWindow( pParent, nId ) +{ + SwView* pActiveView = GetActiveView(); + pDispatch = pActiveView ? pActiveView->GetViewFrame()->GetDispatcher() : 0; + pWindow = new SwInputWindow( pParent ); + ((SwInputWindow*)pWindow)->Show(); + eChildAlignment = SFX_ALIGN_LOWESTTOP; + +} + + +__EXPORT SwInputChild::~SwInputChild() +{ + if(pDispatch) + pDispatch->Lock(FALSE); +} + + +SfxChildWinInfo __EXPORT SwInputChild::GetInfo() const +{ + SfxChildWinInfo aInfo = SfxChildWindow::GetInfo(); \ + return aInfo; +} + +/*------------------------------------------------------------------------ + + $Log: not supported by cvs2svn $ + Revision 1.88 2000/09/18 16:06:01 willem.vandorp + OpenOffice header added. + + Revision 1.87 2000/09/07 15:59:27 os + change: SFX_DISPATCHER/SFX_BINDINGS removed + + Revision 1.86 2000/07/03 08:54:31 jp + must changes for VCL + + Revision 1.85 2000/04/26 14:56:39 os + GetName() returns const String& + + Revision 1.84 2000/04/18 14:54:44 os + UNICODE + + Revision 1.83 2000/03/03 15:17:03 os + StarView remainders removed + + Revision 1.82 1999/05/18 13:20:16 OS + #66203# Undo im Dtor nur, wenn erforderlich + + + Rev 1.81 18 May 1999 15:20:16 OS + #66203# Undo im Dtor nur, wenn erforderlich + + Rev 1.80 24 Apr 1998 17:22:46 OS + kein KeyInput waehrend die Rechenleiste aktiv ist #49301# + + Rev 1.79 12 Mar 1998 13:33:12 OM + #48084# Formelfeld mit Standardformat einfuegen + + Rev 1.78 22 Jan 1998 20:07:40 JP + CTOR des SwPaM umgestellt + + Rev 1.77 19 Jan 1998 20:08:32 JP + Bug #46705#: Undo nur rufen, wenn etwas geloescht wurde + + Rev 1.76 24 Nov 1997 14:53:58 MA + includes + + Rev 1.75 10 Nov 1997 11:43:12 OS + HelpId fuer Edit #45436# + + Rev 1.74 30 Sep 1997 16:28:22 TJ + + Rev 1.73 19 Sep 1997 13:42:56 OS + Edit mit WB_NOHIDESELECTION #43891# + + Rev 1.72 04 Sep 1997 17:14:02 MA + includes + + Rev 1.71 01 Sep 1997 10:01:24 OS + fuer VCL Window uebergeben + + Rev 1.70 29 Aug 1997 16:52:24 MH + chg: Syntax + + Rev 1.69 29 Aug 1997 15:45:32 OS + PopupMenu::Execute mit Window* fuer VCL + + Rev 1.68 29 Aug 1997 14:20:12 OS + DLL-Umbau + + Rev 1.67 09 Jul 1997 17:36:10 HJS + includes + + Rev 1.66 09 May 1997 09:28:42 JP + Bug #39214#: Formel nur ersetzen, wenn die sich veraendert hat + + Rev 1.65 29 Apr 1997 16:18:50 OM + Unsichtbare Benutzerfelder + + Rev 1.64 09 Apr 1997 16:18:42 MH + chg: header + + Rev 1.63 07 Apr 1997 13:40:48 MH + chg: header + + Rev 1.62 10 Feb 1997 16:26:40 OS + Dispatcher im Childwindow merken + + Rev 1.61 07 Feb 1997 16:41:54 OS + Dispatcher nur noch vom ViewFrame holen + + Rev 1.60 05 Feb 1997 14:32:00 JP + FormatMenu bei Tabellenzellen entfernen + + Rev 1.59 29 Jan 1997 14:47:18 JP + Umstellungen fuers neue Rechnen in Tabellen + + Rev 1.58 21 Jan 1997 13:48:40 JP + Update der Eingabe in die TabellenBox + + Rev 1.57 14 Jan 1997 18:22:28 JP + UpdateRange: Anfang des BoxNamens korrekt suchen + + Rev 1.56 14 Jan 1997 09:50:32 JP + neu: SetFormula; UpdateRange: Crsr hinter die BoxNamen + + Rev 1.55 21 Nov 1996 17:56:44 MA + chg: Kein ResMgr fuer GetImage() + + Rev 1.54 11 Nov 1996 11:11:30 MA + ResMgr + + Rev 1.53 09 Nov 1996 13:51:40 OS + PopupMenu immer im Click + + Rev 1.52 24 Oct 1996 13:36:38 JP + String Umstellung: [] -> GetChar() + + Rev 1.51 10 Oct 1996 10:37:12 OS + Registrierung der Toolbox am SfxImageManager + + Rev 1.50 28 Aug 1996 13:39:28 OS + includes + + Rev 1.49 09 Jul 1996 17:52:42 OM + Alternatives Formatmenue fuer Expressionfields + + Rev 1.48 26 Jun 1996 15:26:42 OS + Aufruf von Dispatcher.Execute an 324 angepasst + + Rev 1.47 10 Jun 1996 18:47:04 HJS + ; vergessen + + Rev 1.46 10 Jun 1996 11:38:08 OS + Reihenfolge Apply und CancelFormula angepasst + + Rev 1.45 09 May 1996 15:34:12 OS + HLineal an der View wird nicht mehr geloescht + + Rev 1.44 26 Apr 1996 10:00:32 SWG + IMPL-Macro getauscht, GetInfo impl. + + Rev 1.43 10 Mar 1996 15:50:22 OS + neu: Round + + Rev 1.42 29 Feb 1996 12:58:30 OS + UpdateRange mit zusaetzlichem Parameter + + Rev 1.41 07 Feb 1996 07:29:20 OS + Linkumstellung: return sollte ans Ende + + Rev 1.40 06 Feb 1996 15:21:16 JP + Link Umstellung 305 + +------------------------------------------------------------------------*/ + + + + + + + + + + + + + + + + + + + + + + |