LibreOffice Module sc (master)  1
inputhdl.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SC_SOURCE_UI_INC_INPUTHDL_HXX
21 #define INCLUDED_SC_SOURCE_UI_INC_INPUTHDL_HXX
22 
23 #include <global.hxx>
24 #include <address.hxx>
25 #include <tools/solar.h>
26 #include <typedstrdata.hxx>
27 
28 #include <tools/fract.hxx>
29 #include <tools/gen.hxx>
30 #include <tools/link.hxx>
31 #include <vcl/vclptr.hxx>
32 #include <editeng/svxenum.hxx>
33 #include "viewdata.hxx"
34 
35 #include <set>
36 #include <memory>
37 #include <vector>
38 
39 class ScDocument;
40 class ScTabViewShell;
41 class ScInputWindow;
42 class ScPatternAttr;
44 class EditView;
45 class EditTextObject;
46 class ScInputHdlState;
47 class ScRangeFindList;
48 class Timer;
49 class KeyEvent;
50 class CommandEvent;
51 class VclWindowEvent;
52 namespace vcl { class Window; }
53 struct ReferenceMark;
54 struct ESelection;
55 
56 // ScInputHandler
57 
58 class ScInputHandler final
59 {
60 private:
62 
63  std::unique_ptr<ScEditEngineDefaulter> mpEditEngine;
64  EditView* pTableView; // associated active EditView
65  EditView* pTopView; // EditView in the input row
66 
67  std::unique_ptr<ScTypedCaseStrSet> pColumnData;
68  std::unique_ptr<ScTypedCaseStrSet> pFormulaData;
69  std::unique_ptr<ScTypedCaseStrSet> pFormulaDataPara;
70  ScTypedCaseStrSet::const_iterator miAutoPosColumn;
71  ScTypedCaseStrSet::const_iterator miAutoPosFormula;
72 
74  void* nTipVisible;
77  OUString aManualTip;
78  OUString aAutoSearch;
79 
80  OUString aCurrentText;
81 
82  OUString aFormText; // for autopilot function
83  sal_Int32 nFormSelStart; // Selection for autopilot function
84  sal_Int32 nFormSelEnd;
85 
86  sal_Unicode nCellPercentFormatDecSep; // 0:= no percent format, else which decimal separator
87 
88  sal_uInt16 nAutoPar; // autom.parentheses than can be overwritten
89 
92  bool bUseTab:1; // Scrolling possible
93  bool bTextValid:1; // Text is not in edit engine
94  bool bModified:1;
95  bool bSelIsRef:1;
96  bool bFormulaMode:1;
102  bool bInOwnChange:1;
103 
104  bool bProtected:1;
109 
110  Fraction aScaleX; // for ref MapMode
112 
115 
117  std::unique_ptr<SfxItemSet>
119 
120  std::unique_ptr<ScInputHdlState>
122  std::unique_ptr<Timer> pDelayTimer;
123 
124  std::unique_ptr<ScRangeFindList>
126 
127  static bool bAutoComplete; // from app options
128  static bool bOptLoaded;
129  ::std::set< sal_Unicode > maFormulaChar; //fdo 75264
130 
131 private:
132  void UpdateActiveView();
133  void SyncViews( const EditView* pSourceView = nullptr );
144  bool StartTable( sal_Unicode cTyped, bool bFromCommand, bool bInputActivated,
145  ScEditEngineDefaulter* pTopEngine );
146  void RemoveSelection();
147  void UpdateFormulaMode();
148  static void InvalidateAttribs();
149  void ImplCreateEditEngine();
150  DECL_LINK( DelayTimer, Timer*, void );
151  void GetColData();
152  void UseColData();
153  void NextAutoEntry( bool bBack );
154  void UpdateAdjust( sal_Unicode cTyped );
155  void GetFormulaData();
156  void UseFormulaData();
157  void NextFormulaEntry( bool bBack );
158  void PasteFunctionData();
159  void PasteManualTip();
161  void RemoveAdjust();
162  void RemoveRangeFinder();
163  void DeleteRangeFinder();
164  void UpdateParenthesis();
165  void UpdateAutoCorrFlag();
166  void ResetAutoPar();
167  void AutoParAdded();
168  bool CursorAtClosingPar();
169  void SkipClosingPar();
170  bool GetFuncName( OUString& aStart, OUString& aResult ); // fdo75264
171  void ShowArgumentsTip( OUString& rSelText );
172  DECL_LINK( ModifyHdl, LinkParamNone*, void );
173  DECL_LINK( ShowHideTipVisibleParentListener, VclWindowEvent&, void );
174  DECL_LINK( ShowHideTipVisibleSecParentListener, VclWindowEvent&, void );
175 
176 public:
177  ScInputHandler(const ScInputHandler&) = delete;
178  const ScInputHandler& operator=(const ScInputHandler&) = delete;
179 
180  ScInputHandler();
181  ~ScInputHandler();
182 
183  void SetMode( ScInputMode eNewMode, const OUString* pInitText = nullptr,
184  ScEditEngineDefaulter* pTopEngine = nullptr );
185  bool IsInputMode() const { return (eMode != SC_INPUT_NONE); }
186  bool IsEditMode() const { return (eMode != SC_INPUT_NONE &&
187  eMode != SC_INPUT_TYPE); }
188  bool IsTopMode() const { return (eMode == SC_INPUT_TOP); }
189 
190  const OUString& GetEditString();
191  const OUString& GetFormString() const { return aFormText; }
192 
193  const ScAddress& GetCursorPos() const { return aCursorPos; }
194 
195  bool GetTextAndFields( ScEditEngineDefaulter& rDestEngine );
196  void MergeLanguageAttributes( ScEditEngineDefaulter& rDestEngine ) const;
197 
198  bool KeyInput( const KeyEvent& rKEvt, bool bStartEdit );
199  void EnterHandler( ScEnterMode nBlockMode = ScEnterMode::NORMAL );
200  void CancelHandler();
201  void SetReference( const ScRange& rRef, const ScDocument& rDoc );
202  void AddRefEntry();
203 
204  void InputCommand( const CommandEvent& rCEvt );
205 
206  void InsertFunction( const OUString& rFuncName, bool bAddPar = true );
207  void ClearText();
208 
209  void InputSelection( const EditView* pView );
210  void InputChanged( const EditView* pView, bool bFromNotify );
211 
212  void ViewShellGone(const ScTabViewShell* pViewSh);
213  void SetRefViewShell(ScTabViewShell* pRefVsh) {pRefViewSh=pRefVsh;}
214 
215  void NotifyChange( const ScInputHdlState* pState, bool bForce = false,
216  ScTabViewShell* pSourceSh = nullptr,
217  bool bStopEditing = true);
218  void UpdateCellAdjust( SvxCellHorJustify eJust );
219 
220  void ResetDelayTimer(); //BugId 54702
221 
222  void HideTip();
223  void HideTipBelow();
224  void ShowTipCursor();
225  void ShowTip( const OUString& rText ); // at Cursor
226  void ShowTipBelow( const OUString& rText );
227  void ShowFuncList( const ::std::vector< OUString > & rFuncStrVec );
228 
229  void SetRefScale( const Fraction& rX, const Fraction& rY );
230  void UpdateRefDevice();
231 
234  EditView* GetTopView() { return pTopView; }
235 
236  bool DataChanging( sal_Unicode cTyped = 0, bool bFromCommand = false );
237  void DataChanged( bool bFromTopNotify = false, bool bSetModified = true );
238 
239  bool TakesReturn() const { return ( nTipVisible != nullptr ); }
240 
241  bool GetModified() const { return bModified; }
242  void SetModified() { bModified = true; }
243 
244  bool GetSelIsRef() const { return bSelIsRef; }
245  void SetSelIsRef(bool bSet) { bSelIsRef = bSet; }
246 
247  void ShowRefFrame();
248 
250 
251  void UpdateRange( sal_uInt16 nIndex, const ScRange& rNew );
252 
253  // Communication with the autopilot function
254  void InputGetSelection ( sal_Int32& rStart, sal_Int32& rEnd );
255  void InputSetSelection ( sal_Int32 nStart, sal_Int32 nEnd );
256  void InputReplaceSelection ( const OUString& rStr );
257  void InputTurnOffWinEngine();
258 
259  bool IsFormulaMode() const { return bFormulaMode; }
261  void SetInputWindow( ScInputWindow* pNew );
262  void StopInputWinEngine( bool bAll );
263 
264  bool IsInEnterHandler() const { return bInEnterHandler; }
265  bool IsInOwnChange() const { return bInOwnChange; }
266 
267  bool IsModalMode( const SfxObjectShell* pDocSh );
268 
269  void ForgetLastPattern();
270 
271  void UpdateSpellSettings( bool bFromStartTab = false );
272 
273  void FormulaPreview();
274 
275  Size GetTextSize(); // in 1/100mm
276 
277  // actually private, public for SID_INPUT_SUM
278  void InitRangeFinder(const OUString& rFormula);
279 
281  static void SendReferenceMarks( const SfxViewShell* pViewShell,
282  const std::vector<ReferenceMark>& rReferenceMarks );
283 
284  void SetDocumentDisposing( bool b );
285 
286  static void SetAutoComplete(bool bSet) { bAutoComplete = bSet; }
287 
288  static ReferenceMark GetReferenceMark( ScViewData& rViewData, ScDocShell* pDocSh,
289  long nX1, long nX2, long nY1, long nY2,
290  long nTab, const Color& rColor );
291 
292  void LOKPasteFunctionData(const OUString& rFunctionName);
293 };
294 
295 // ScInputHdlState
296 
298 {
299  friend class ScInputHandler;
300 
301 public:
302  ScInputHdlState( const ScAddress& rCurPos,
303  const ScAddress& rStartPos,
304  const ScAddress& rEndPos,
305  const OUString& rString,
306  const EditTextObject* pData );
307  ScInputHdlState( const ScInputHdlState& rCpy );
309 
311  bool operator==( const ScInputHdlState& r ) const;
312 
313  const ScAddress& GetPos() const { return aCursorPos; }
314  const ScAddress& GetStartPos() const { return aStartPos; }
315  const ScAddress& GetEndPos() const { return aEndPos; }
316  const OUString& GetString() const { return aString; }
317  const EditTextObject* GetEditData() const { return pEditData.get(); }
318 
319 private:
323  OUString aString;
324  std::unique_ptr<EditTextObject> pEditData;
325 };
326 
327 #endif
328 
329 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
EditView * pTableView
Definition: inputhdl.hxx:64
SvxCellHorJustify
sal_uInt16 nAutoPar
Definition: inputhdl.hxx:88
void UpdateRange(sal_uInt16 nIndex, const ScRange &rNew)
Definition: inputhdl.cxx:587
bool CursorAtClosingPar()
Definition: inputhdl.cxx:1858
static void SetAutoComplete(bool bSet)
Definition: inputhdl.hxx:286
void CancelHandler()
Definition: inputhdl.cxx:3278
const EditTextObject * GetEditData() const
Definition: inputhdl.hxx:317
void NextAutoEntry(bool bBack)
Definition: inputhdl.cxx:1992
ScTypedCaseStrSet::const_iterator miAutoPosColumn
Definition: inputhdl.hxx:70
void ShowTip(const OUString &rText)
Definition: inputhdl.cxx:1241
bool GetModified() const
Definition: inputhdl.hxx:241
void UpdateCellAdjust(SvxCellHorJustify eJust)
Definition: inputhdl.cxx:4131
sal_Int32 nFormSelStart
Definition: inputhdl.hxx:83
void SetInputWindow(ScInputWindow *pNew)
Definition: inputhdl.cxx:2199
const OUString & GetEditString()
Definition: inputhdl.cxx:4215
void NextFormulaEntry(bool bBack)
Definition: inputhdl.cxx:1521
void SetModified()
Definition: inputhdl.hxx:242
VclPtr< vcl::Window > pTipVisibleParent
Definition: inputhdl.hxx:73
void PasteManualTip()
Definition: inputhdl.cxx:1789
bool IsFormulaMode() const
Definition: inputhdl.hxx:259
void ShowFuncList(const ::std::vector< OUString > &rFuncStrVec)
Definition: inputhdl.cxx:1334
bool DataChanging(sal_Unicode cTyped=0, bool bFromCommand=false)
Definition: inputhdl.cxx:2566
bool IsInputMode() const
Definition: inputhdl.hxx:185
void UpdateParenthesis()
Definition: inputhdl.cxx:2054
const ScAddress & GetPos() const
Definition: inputhdl.hxx:313
sal_uIntPtr sal_uLong
DECL_LINK(DelayTimer, Timer *, void)
void ClearText()
Definition: inputhdl.cxx:3526
void AutoParAdded()
Definition: inputhdl.cxx:1853
VclPtr< vcl::Window > pTipVisibleSecParent
Definition: inputhdl.hxx:75
sal_Int32 nFormSelEnd
Definition: inputhdl.hxx:84
std::unique_ptr< ScInputHdlState > pLastState
Definition: inputhdl.hxx:121
ScAddress aEndPos
Definition: inputhdl.hxx:322
std::unique_ptr< Timer > pDelayTimer
Definition: inputhdl.hxx:122
void ResetAutoPar()
Definition: inputhdl.cxx:1848
void RemoveSelection()
Definition: inputhdl.cxx:2742
void InputSelection(const EditView *pView)
Definition: inputhdl.cxx:4179
void UpdateActiveView()
Definition: inputhdl.cxx:2150
bool bFormulaMode
Definition: inputhdl.hxx:96
void LOKPasteFunctionData(const OUString &rFunctionName)
Definition: inputhdl.cxx:1665
void SetRefViewShell(ScTabViewShell *pRefVsh)
Definition: inputhdl.hxx:213
void ViewShellGone(const ScTabViewShell *pViewSh)
Definition: inputhdl.cxx:2116
bool bCreatingFuncView
Definition: inputhdl.hxx:99
void SetDocumentDisposing(bool b)
Definition: inputhdl.cxx:560
void ShowRefFrame()
Definition: inputhdl.cxx:2709
EditView * GetTableView()
Definition: inputhdl.hxx:233
OUString aCurrentText
Definition: inputhdl.hxx:80
EditView * GetActiveView()
Definition: inputhdl.cxx:2212
OUString aManualTip
Definition: inputhdl.hxx:77
bool operator==(const ScInputHdlState &r) const
Definition: inputhdl.cxx:4396
ScInputHdlState & operator=(const ScInputHdlState &r)
Definition: inputhdl.cxx:4405
sal_uInt16 sal_Unicode
void SkipClosingPar()
Definition: inputhdl.cxx:1874
OUString aAutoSearch
Definition: inputhdl.hxx:78
bool IsInEnterHandler() const
Definition: inputhdl.hxx:264
void DeleteRangeFinder()
Definition: inputhdl.cxx:639
void InputReplaceSelection(const OUString &rStr)
Definition: inputhdl.cxx:4326
void RemoveRangeFinder()
Definition: inputhdl.cxx:2294
const ScInputHandler & operator=(const ScInputHandler &)=delete
void MergeLanguageAttributes(ScEditEngineDefaulter &rDestEngine) const
Definition: inputhdl.cxx:2485
void ImplCreateEditEngine()
Definition: inputhdl.cxx:868
void AddRefEntry()
Definition: inputhdl.cxx:3344
::std::set< sal_Unicode > maFormulaChar
Definition: inputhdl.hxx:129
void ShowTipCursor()
Definition: inputhdl.cxx:1217
ScInputWindow * GetInputWindow()
Definition: inputhdl.hxx:260
ScAddress aCursorPos
Definition: inputhdl.hxx:90
void SyncViews(const EditView *pSourceView=nullptr)
Definition: inputhdl.cxx:2523
SvxCellHorJustify eAttrAdjust
Definition: inputhdl.hxx:108
void ShowArgumentsTip(OUString &rSelText)
Definition: inputhdl.cxx:1057
OUString aFormText
Definition: inputhdl.hxx:82
void InputSetSelection(sal_Int32 nStart, sal_Int32 nEnd)
Definition: inputhdl.cxx:4306
bool bParenthesisShown
Definition: inputhdl.hxx:98
void UpdateFormulaMode()
Definition: inputhdl.cxx:2663
void UpdateSpellSettings(bool bFromStartTab=false)
Definition: inputhdl.cxx:907
static ReferenceMark GetReferenceMark(ScViewData &rViewData, ScDocShell *pDocSh, long nX1, long nX2, long nY1, long nY2, long nTab, const Color &rColor)
Definition: inputhdl.cxx:431
void UpdateLokReferenceMarks()
Definition: inputhdl.cxx:481
std::unique_ptr< EditTextObject > pEditData
Definition: inputhdl.hxx:324
bool IsModalMode(const SfxObjectShell *pDocSh)
Definition: inputhdl.cxx:3336
sal_Unicode nCellPercentFormatDecSep
Definition: inputhdl.hxx:86
void GetFormulaData()
Definition: inputhdl.cxx:963
const OUString & GetString() const
Definition: inputhdl.hxx:316
EditView * GetFuncEditView()
Definition: inputhdl.cxx:4280
bool IsInOwnChange() const
Definition: inputhdl.hxx:265
static bool bOptLoaded
Definition: inputhdl.hxx:128
Describes reference mark to be drawn, position & size in TWIPs.
Definition: output.hxx:62
void GetColData()
Definition: inputhdl.cxx:1901
void EnterHandler(ScEnterMode nBlockMode=ScEnterMode::NORMAL)
Definition: inputhdl.cxx:2901
ScTypedCaseStrSet::const_iterator miAutoPosFormula
Definition: inputhdl.hxx:71
ScInputMode eMode
Definition: inputhdl.hxx:91
std::unique_ptr< ScTypedCaseStrSet > pColumnData
Definition: inputhdl.hxx:67
std::unique_ptr< ScEditEngineDefaulter > mpEditEngine
Edited data in the sheet (when the user clicks into the sheet, and starts writing there)...
Definition: inputhdl.hxx:63
Fraction aScaleY
Definition: inputhdl.hxx:111
std::unique_ptr< ScTypedCaseStrSet > pFormulaDataPara
Definition: inputhdl.hxx:69
void InsertFunction(const OUString &rFuncName, bool bAddPar=true)
Definition: inputhdl.cxx:3479
const OUString & GetFormString() const
Definition: inputhdl.hxx:191
void UseFormulaData()
Definition: inputhdl.cxx:1452
void InputChanged(const EditView *pView, bool bFromNotify)
Definition: inputhdl.cxx:4189
bool GetTextAndFields(ScEditEngineDefaulter &rDestEngine)
Definition: inputhdl.cxx:4235
VclPtr< ScInputWindow > pInputWin
Definition: inputhdl.hxx:61
Size GetTextSize()
Definition: inputhdl.cxx:4226
const ScAddress & GetStartPos() const
Definition: inputhdl.hxx:314
void SetReference(const ScRange &rRef, const ScDocument &rDoc)
Definition: inputhdl.cxx:3377
void InitRangeFinder(const OUString &rFormula)
Definition: inputhdl.cxx:306
void * nTipVisible
Definition: inputhdl.hxx:74
sal_uLong nValidation
Definition: inputhdl.hxx:107
ScTabViewShell * pRefViewSh
Definition: inputhdl.hxx:113
void UpdateAutoCorrFlag()
Definition: inputhdl.cxx:891
ScAddress aStartPos
Definition: inputhdl.hxx:321
bool GetFuncName(OUString &aStart, OUString &aResult)
Definition: inputhdl.cxx:1289
void * nTipVisibleSec
Definition: inputhdl.hxx:76
ScAddress aCursorPos
Definition: inputhdl.hxx:320
ScInputHdlState(const ScAddress &rCurPos, const ScAddress &rStartPos, const ScAddress &rEndPos, const OUString &rString, const EditTextObject *pData)
ScInputHdlState.
Definition: inputhdl.cxx:4374
bool bInRangeUpdate
Definition: inputhdl.hxx:97
Fraction aScaleX
Definition: inputhdl.hxx:110
bool bInEnterHandler
Definition: inputhdl.hxx:100
void InputGetSelection(sal_Int32 &rStart, sal_Int32 &rEnd)
Methods for FunctionAutoPilot: InputGetSelection, InputSetSelection, InputReplaceSelection, InputGetFormulaStr.
Definition: inputhdl.cxx:4274
const ScAddress & GetCursorPos() const
Definition: inputhdl.hxx:193
std::unique_ptr< ScRangeFindList > pRangeFindList
Definition: inputhdl.hxx:125
bool TakesReturn() const
Definition: inputhdl.hxx:239
bool KeyInput(const KeyEvent &rKEvt, bool bStartEdit)
Definition: inputhdl.cxx:3554
void StopInputWinEngine(bool bAll)
Definition: inputhdl.cxx:2204
void ResetDelayTimer()
Definition: inputhdl.cxx:4137
static void SendReferenceMarks(const SfxViewShell *pViewShell, const std::vector< ReferenceMark > &rReferenceMarks)
Definition: inputhdl.cxx:268
bool IsEditMode() const
Definition: inputhdl.hxx:186
void NotifyChange(const ScInputHdlState *pState, bool bForce=false, ScTabViewShell *pSourceSh=nullptr, bool bStopEditing=true)
Definition: inputhdl.cxx:3937
static bool bAutoComplete
Definition: inputhdl.hxx:127
std::unique_ptr< ScTypedCaseStrSet > pFormulaData
Definition: inputhdl.hxx:68
void DataChanged(bool bFromTopNotify=false, bool bSetModified=true)
Definition: inputhdl.cxx:2578
bool StartTable(sal_Unicode cTyped, bool bFromCommand, bool bInputActivated, ScEditEngineDefaulter *pTopEngine)
Definition: inputhdl.cxx:2309
const ScPatternAttr * pLastPattern
Definition: inputhdl.hxx:116
void HideTipBelow()
Definition: inputhdl.cxx:1035
void UpdateAdjust(sal_Unicode cTyped)
Definition: inputhdl.cxx:2227
void ShowTipBelow(const OUString &rText)
Definition: inputhdl.cxx:1265
EditView * pTopView
Definition: inputhdl.hxx:65
static void InvalidateAttribs()
Definition: inputhdl.cxx:2757
ScEnterMode
Definition: global.hxx:229
void InputTurnOffWinEngine()
Definition: inputhdl.cxx:4357
bool GetSelIsRef() const
Definition: inputhdl.hxx:244
bool bCommandErrorShown
Definition: inputhdl.hxx:101
void UpdateRefDevice()
Definition: inputhdl.cxx:839
void UseColData()
Definition: inputhdl.cxx:1922
void FormulaPreview()
Definition: inputhdl.cxx:1765
void SetMode(ScInputMode eNewMode, const OUString *pInitText=nullptr, ScEditEngineDefaulter *pTopEngine=nullptr)
Definition: inputhdl.cxx:2792
ScRangeFindList * GetRangeFindList()
Definition: inputhdl.hxx:249
void PasteFunctionData()
Definition: inputhdl.cxx:1638
std::unique_ptr< SfxItemSet > pEditDefaults
Definition: inputhdl.hxx:118
void RemoveAdjust()
Definition: inputhdl.cxx:2278
bool IsTopMode() const
Definition: inputhdl.hxx:188
void SetSelIsRef(bool bSet)
Definition: inputhdl.hxx:245
ScInputMode
Definition: global.hxx:368
EditView * GetTopView()
Definition: inputhdl.hxx:234
void InputCommand(const CommandEvent &rCEvt)
Definition: inputhdl.cxx:3828
void ForgetLastPattern()
Definition: inputhdl.cxx:2218
bool mbDocumentDisposing
Definition: inputhdl.hxx:106
ScTabViewShell * pActiveViewSh
Definition: inputhdl.hxx:114
OUString aString
Definition: inputhdl.hxx:323
const ScAddress & GetEndPos() const
Definition: inputhdl.hxx:315
void SetRefScale(const Fraction &rX, const Fraction &rY)
Definition: inputhdl.cxx:825
bool bLastIsSymbol
Definition: inputhdl.hxx:105