00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 #ifndef INC_TEXTOPS
00112 #define INC_TEXTOPS
00113
00114
00115 #include "cutop.h"
00116
00117 class BaseTextClass;
00118 class TextStory;
00119 class TextLine;
00120 class CaretNode;
00121 class AbstractTextChar;
00122 class VisibleTextNode;
00123 class AttrTypeSet;
00124 class AttrTxtLineSpace;
00125 class AttrTxtJustification;
00126
00127
00128
00129
00130
00131
00132
00133 #define OPTOKEN_FITTEXTTOPATH _T("FitTextToPath")
00134 #define OPTOKEN_KERNTEXT _T("Kern")
00135 #define OPTOKEN_AUTOKERNTEXT _T("AutoKerning")
00136 #define OPTOKEN_TEXTSELECTION _T("TextSelect")
00137 #define OPTOKEN_DELETESTORY _T("TextStoryDeletion")
00138 #define OPTOKEN_REVERSESTORYPATH _T("ReverseStoryPath")
00139 #define OPTOKEN_APPLYLEFTJUSTIFY _T("ApplyLeftJustify")
00140 #define OPTOKEN_APPLYCENTREJUSTIFY _T("ApplyCentreJustify")
00141 #define OPTOKEN_APPLYRIGHTJUSTIFY _T("ApplyRightJustify")
00142 #define OPTOKEN_APPLYFULLJUSTIFY _T("ApplyFullJustify")
00143 #define OPTOKEN_TEXTPASTE _T("PasteText")
00144 #define OPTOKEN_TOGGLEPRINTASSHAPES _T("TogglePrintAsShapes")
00145 #define OPTOKEN_TEXTDRAGLEFTPATHINDENT _T("DragLeftPathIndent")
00146 #define OPTOKEN_TEXTDRAGRIGHTPATHINDENT _T("DragRightPathIndent")
00147 #define OPTOKEN_TEXTDRAGLEFTNONPATHINDENT _T("DragLeftNonPathIndent")
00148 #define OPTOKEN_TEXTDRAGRIGHTNONPATHINDENT _T("DragRightNonPathIndent")
00149 #define OPTOKEN_AFFECTFONTCHANGE _T("AffectFontChange")
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168 class OpTextUndoable : public SelOperation
00169 {
00170
00171 CC_DECLARE_DYNCREATE( OpTextUndoable )
00172
00173 public:
00174 OpTextUndoable();
00175
00176 virtual BOOL DoStartTextOp(TextStory* pTextStory, BOOL StartBlobs = TRUE, BOOL EndBlobs = TRUE);
00177 };
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 class OpCreateTextObject : public OpTextUndoable
00191 {
00192
00193 CC_DECLARE_DYNCREATE(OpCreateTextObject);
00194
00195 public:
00196
00197 OpCreateTextObject();
00198
00199 void GetOpName(String_256* OpName);
00200
00201
00202
00203 void DoImmediate( Spread* pSpread, DocCoord Anchor, NodePath* pPath, ClickModifiers ClickMods, DocCoord StoryWidth = DocCoord(MinDocCoord, MinDocCoord));
00204
00205
00206 void DoDrag( Spread* pSpread, DocCoord Anchor, ClickModifiers ClickMods);
00207 void DragPointerMove( DocCoord PointerPos, ClickModifiers ClickMods, Spread* pSpread, BOOL bSolidDrag);
00208 void DragFinished( DocCoord PointerPos, ClickModifiers ClickMods, Spread* pSpread, BOOL Success, BOOL bSolidDrag);
00209 void RenderDragBlobs(DocRect EditPathBBox, Spread* pSpread, BOOL bSolidDrag);
00210
00211 protected:
00212 DocCoord m_CurrentOtherEnd;
00213 DocCoord m_AnchorPoint;
00214 Spread* m_pStartSpread;
00215 };
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229 class OpTextFormat: public OpTextUndoable
00230 {
00231 CC_DECLARE_DYNCREATE( OpTextFormat )
00232
00233 public:
00234 OpTextFormat();
00235
00236
00237
00238 enum InsertStatus {INSERT, OVER};
00239 enum DeleteType {DEL, BACKSPACE};
00240
00241 void DoInsertChar(WCHAR Ch, OpTextFormat::InsertStatus InsStatus);
00242 BOOL DoInsertCharHelper(WCHAR Ch);
00243 void DoDeleteChar(OpTextFormat::DeleteType DelTyp);
00244 void DoSwapCase();
00245 BOOL DoReturn(OpTextFormat::InsertStatus InsStatus);
00246 BOOL DoTab();
00247
00248
00249 void GetOpName(String_256* OpName);
00250
00251
00252 private:
00253 BOOL DoDeleteSelection(TextStory* pTextStory, BOOL ReattachAttributes, BOOL* AllowOpRefused = NULL);
00254 };
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266 class OpFitTextToCurve: public OpTextUndoable
00267 {
00268
00269 CC_DECLARE_DYNCREATE( OpFitTextToCurve )
00270
00271 public:
00272 OpFitTextToCurve();
00273 static BOOL Init();
00274 static OpState GetState(String_256*, OpDescriptor*);
00275 void Do(OpDescriptor*);
00276
00277 private:
00278 static BOOL FindPathAndText(NodeRenderableInk** pPath, TextStory** pStory, UndoableOperation* pOp, UINT32* ID);
00279 };
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290 class OpTextKern: public OpTextUndoable
00291 {
00292
00293 CC_DECLARE_DYNCREATE( OpTextKern )
00294
00295 public:
00296 OpTextKern();
00297 static BOOL Init();
00298 static OpState GetState(String_256*, OpDescriptor*);
00299 virtual void DoWithParam(OpDescriptor*, OpParam* pParam);
00300
00301 virtual void PerformMergeProcessing();
00302
00303 private:
00304
00305 BOOL DoInsertKernWithMerge(VisibleTextNode* TTContextNode, DocCoord& Value);
00306 };
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316 class OpTextAutoKern: public OpTextUndoable
00317 {
00318 CC_DECLARE_DYNCREATE( OpTextAutoKern )
00319
00320 public:
00321 OpTextAutoKern();
00322 static BOOL Init();
00323 static OpState GetState(String_256*, OpDescriptor*);
00324 virtual void DoWithParam(OpDescriptor*, OpParam* pParam);
00325 };
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337 class OpTextPaste: public OpPaste
00338 {
00339 CC_DECLARE_DYNCREATE( OpTextPaste )
00340
00341 public:
00342 OpTextPaste();
00343 static BOOL Init();
00344 static OpState GetState(String_256*, OpDescriptor*);
00345 void Do(OpDescriptor*);
00346
00347 protected:
00348 BOOL DoPasteTextHelper();
00349 BOOL DoPasteText(TextStory *pPasteStory, TextStory *pFocusStory, Range* pPasteRange);
00350 };
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362 class OpTogglePrintTextAsShapes: public Operation
00363 {
00364 CC_DECLARE_DYNCREATE( OpTogglePrintTextAsShapes )
00365
00366 public:
00367 OpTogglePrintTextAsShapes() {};
00368 static BOOL Init();
00369 static OpState GetState(String_256*, OpDescriptor*);
00370 virtual void Do(OpDescriptor*);
00371 };
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383 class OpDeleteTextStory: public SelOperation
00384 {
00385 CC_DECLARE_DYNCREATE( OpDeleteTextStory )
00386
00387 public:
00388 OpDeleteTextStory() {};
00389 static BOOL Init();
00390 static OpState GetState(String_256*, OpDescriptor*);
00391 virtual void DoWithParam(OpDescriptor*, OpParam* pParam);
00392
00393 static BOOL DoActions(UndoableOperation*, TextStory*);
00394
00395 static BOOL RemoveEmptyFocusStory(UndoableOperation* pOp = NULL);
00396
00397 void PerformMergeProcessing();
00398 };
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409 class OpReverseStoryPath: public OpTextUndoable
00410 {
00411 CC_DECLARE_DYNCREATE( OpReverseStoryPath )
00412
00413 public:
00414 OpReverseStoryPath() {};
00415 static BOOL Init();
00416 static OpState GetState(String_256*, OpDescriptor*);
00417 virtual void Do(OpDescriptor*);
00418 };
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430 class OpApplyJustificationToStory: public Operation
00431 {
00432 CC_DECLARE_DYNCREATE( OpApplyJustificationToStory )
00433
00434 public:
00435 OpApplyJustificationToStory() {};
00436 static BOOL Init();
00437 static OpState GetState(String_256*, OpDescriptor*);
00438 };
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449 class OpApplyLeftJustifyToStory: public OpApplyJustificationToStory
00450 {
00451 CC_DECLARE_DYNCREATE( OpApplyLeftJustifyToStory )
00452
00453 public:
00454 OpApplyLeftJustifyToStory() {};
00455 virtual void Do(OpDescriptor*);
00456 };
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467 class OpApplyCentreJustifyToStory: public OpApplyJustificationToStory
00468 {
00469 CC_DECLARE_DYNCREATE( OpApplyCentreJustifyToStory )
00470
00471 public:
00472 OpApplyCentreJustifyToStory() {};
00473 virtual void Do(OpDescriptor*);
00474 };
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485 class OpApplyRightJustifyToStory: public OpApplyJustificationToStory
00486 {
00487 CC_DECLARE_DYNCREATE( OpApplyRightJustifyToStory )
00488
00489 public:
00490 OpApplyRightJustifyToStory() {};
00491 virtual void Do(OpDescriptor*);
00492 };
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503 class OpApplyFullJustifyToStory: public OpApplyJustificationToStory
00504 {
00505 CC_DECLARE_DYNCREATE( OpApplyFullJustifyToStory )
00506
00507 public:
00508 OpApplyFullJustifyToStory() {};
00509 virtual void Do(OpDescriptor*);
00510 };
00511
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00523
00524
00525
00526
00527
00528
00529
00530 class PrePostTextAction : public Action
00531 {
00532
00533 CC_DECLARE_DYNCREATE(PrePostTextAction)
00534
00535 public:
00536 PrePostTextAction();
00537 ~PrePostTextAction();
00538 virtual ActionCode Execute();
00539 static ActionCode Init( Operation* pOp,
00540 ActionList* pActionList,
00541 TextStory* pStory,
00542 BOOL ThisActionReformats,
00543 BOOL ToTail = FALSE);
00544 static BOOL DoFormatStory(UndoableOperation* pUndoOp, TextStory* pStory,
00545 BOOL ToTail = FALSE);
00546
00547
00548 BOOL DoIReformat() { return HasEffect; }
00549
00550 protected:
00551 BOOL HasEffect;
00552 VisibleTextNode* CaretContextNode;
00553 AttachNodeDirection CaretAttachDir;
00554 TextStory* pTextStoryToReformat;
00555 BOOL m_bToTail;
00556
00557 };
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570 class PositionCaretAction : public Action
00571 {
00572
00573 CC_DECLARE_DYNCREATE(PositionCaretAction)
00574
00575 public:
00576 PositionCaretAction();
00577 ~PositionCaretAction();
00578 virtual ActionCode Execute();
00579 static ActionCode Init( Operation* pOp,
00580 ActionList* pActionList,
00581 TextStory* pStory,
00582 BaseTextClass* pAttachNode,
00583 AttachNodeDirection Direction);
00584 static BOOL DoStoreCaretPosition( Operation* pOp, TextStory* pStory);
00585
00586 protected:
00587 static BOOL GetCaretNeighbour(TextStory* pStory, BaseTextClass** pNeighbour, AttachNodeDirection * pDirection);
00588
00589
00590 TextStory* pTextStory;
00591 BaseTextClass* pNearNode;
00592 AttachNodeDirection AttachDirection;
00593 };
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604 class ToggleAutoKerningAction : public Action
00605 {
00606 CC_DECLARE_DYNCREATE(ToggleAutoKerningAction)
00607
00608 public:
00609 ToggleAutoKerningAction();
00610 virtual ActionCode Execute();
00611 static ActionCode Init( Operation* pOp,
00612 ActionList* pActionList,
00613 TextStory* pStory,
00614 BOOL NewIsAutoKerning);
00615
00616 protected:
00617 TextStory* pTextStory;
00618 bool OldIsAutoKerning;
00619 };
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630
00631 const INT32 VERTICALMOVEINSET_NONE = 0xf0000000;
00632 class VerticalInsetStore
00633 {
00634 public:
00635 VerticalInsetStore() {HoldingInset = VERTICALMOVEINSET_NONE; LastInset = VERTICALMOVEINSET_NONE;};
00636
00637 INT32 HoldingInset;
00638 INT32 LastInset;
00639 };
00640
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650 class OpTextCaret: public Operation
00651 {
00652 CC_DECLARE_DYNCREATE(OpTextCaret)
00653
00654 public:
00655 OpTextCaret();
00656 void DoMoveCaretLeft(BOOL WithSelect, BOOL AWord);
00657 void DoMoveCaretRight(BOOL WithSelect, BOOL AWord);
00658 void DoMoveCaretUp(BOOL WithSelect);
00659 void DoMoveCaretDown(BOOL WithSelect);
00660 void DoMoveCaretHome(BOOL WithSelect, BOOL ToStoryStart);
00661 void DoMoveCaretEnd(BOOL WithSelect, BOOL ToStoryEnd);
00662 void DoSelectWordAtCaret();
00663
00664 static VisibleTextNode* GetLineStartCharacter(VisibleTextNode* pCharacter);
00665 static VisibleTextNode* GetLineEndCharacter(VisibleTextNode* pCharacter);
00666
00667 static void SelectStoryCharacters(VisibleTextNode*, VisibleTextNode*, TextStory*, CaretNode*);
00668
00669 protected:
00670 void MoveCaretToSelectionEnd(BOOL MoveToLeft);
00671 void CompleteOperation();
00672 VisibleTextNode* GetCharacterLineChange(VisibleTextNode* pCharacter,
00673 BOOL ToLeftOfChar,
00674 BOOL* NewToLeft,
00675 BOOL MoveUp);
00676
00677
00678 BOOL PreCaretMove();
00679
00680
00681 TextStory* pStory;
00682 CaretNode* pCaret;
00683 VisibleTextNode* pOtherSelEnd;
00684 BOOL SelToRightOfCaret;
00685
00686 static VerticalInsetStore VertInset;
00687 VerticalInsetStore PreviousVerticalInset;
00688 };
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698
00699
00700
00701 class OpTextSelection : public Operation
00702 {
00703
00704 CC_DECLARE_DYNCREATE(OpTextSelection);
00705
00706 public:
00707 enum SelectionPos {TO_LEFT, TO_RIGHT, NOT_NEAR};
00708
00709
00710 OpTextSelection();
00711
00712
00713 BOOL DoDrag( DocCoord Anchor, Spread* pSpread, ClickModifiers ClickMods, Node* ClickNode);
00714 virtual BOOL SnappingDrag() { return FALSE; }
00715
00716
00717 virtual void DragPointerMove( DocCoord PointerPos, ClickModifiers ClickMods, Spread* pSpread, BOOL bSolidDrag);
00718 virtual void DragFinished( DocCoord PointerPos, ClickModifiers ClickMods, Spread* pSpread, BOOL Success, BOOL bSolidDrag);
00719
00720
00721 static BOOL Declare();
00722 static OpState GetState(String_256* Description, OpDescriptor*);
00723 static BOOL Init();
00724
00725
00726 BOOL DoSelectAllText(TextStory* pStory);
00727 BOOL DoSelectLineText();
00728
00729 protected:
00730
00731 BOOL InitialCaretPosition(VisibleTextNode*);
00732 BOOL ExtendSelection(VisibleTextNode*, DocCoord ClickPoint);
00733 BOOL SelectLine();
00734 SelectionPos IsClickToLeftHalfOfChar(AbstractTextChar* pClickChar, DocCoord ClickPoint, BOOL MustChoose);
00735
00736 BOOL GetNewSelEndsOnPath(DocCoord Point, VisibleTextNode** pSelStart, VisibleTextNode** pSelEnd, BOOL*);
00737 BOOL GetNewSelEndsInStory(DocCoord Point, VisibleTextNode** pSelStart, VisibleTextNode** pSelEnd);
00738 BOOL GetNewSelBoundsChars(BOOL, BOOL, VisibleTextNode*, VisibleTextNode**, VisibleTextNode**);
00739
00740
00741 Spread* StartSpread;
00742 DocCoord StartPoint;
00743 TextStory* pSelectionStory;
00744 CaretNode* pCaret;
00745 };
00746
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756 class StorePathIndentAction : public Action
00757 {
00758 CC_DECLARE_DYNCREATE(StorePathIndentAction)
00759
00760 public:
00761 StorePathIndentAction();
00762 ~StorePathIndentAction();
00763 virtual ActionCode Execute();
00764 static ActionCode Init( Operation* pOp, ActionList* pActionList, TextStory* pStory, MILLIPOINT LeftIndent, MILLIPOINT RightIndent, MILLIPOINT StoryWidth);
00765 static BOOL DoStoreIndent( Operation* pOp, ActionList* pActionList, TextStory* pStory);
00766
00767 protected:
00768
00769 TextStory* mpTextStory;
00770 MILLIPOINT mLeftIndentLength;
00771 MILLIPOINT mRightIndentLength;
00772 MILLIPOINT mStoryWidth;
00773 };
00774
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785 class OpDragStoryIndent : public OpTextUndoable
00786 {
00787 CC_DECLARE_DYNAMIC(OpDragStoryIndent);
00788
00789 public:
00790
00791 OpDragStoryIndent();
00792 ~OpDragStoryIndent();
00793
00794
00795 BOOL DoDrag( DocCoord Anchor, Spread* pSpread, ClickModifiers ClickMods, TextStory* pStory);
00796
00797
00798 virtual void DragPointerMove( DocCoord PointerPos, ClickModifiers ClickMods, Spread* pSpread, BOOL bSolidDrag);
00799 virtual void DragFinished( DocCoord PointerPos, ClickModifiers ClickMods, Spread* pSpread, BOOL Success, BOOL bSolidDrag);
00800 virtual void RenderDragBlobs( DocRect, Spread*, BOOL bSolidDrag );
00801
00802
00803 static OpState GetState(String_256* Description, OpDescriptor*);
00804
00805 protected:
00806
00807 virtual DocCoord GetOtherIndent() = 0;
00808 virtual DocCoord GetThisIndent() = 0;
00809 virtual BOOL DoIndentChange() = 0;
00810 virtual DocCoord InternalConstrain(DocCoord Current, ClickModifiers ClickMods) = 0;
00811 virtual BOOL SetCurrentPos(DocCoord MousePos, ClickModifiers ClickMods) = 0;
00812
00813 protected:
00814
00815 void RenderDraggingBlobs( DocRect, Spread* );
00816 static BOOL GetLeftHandLength(DocCoord Coord, NodePath* pPath, MILLIPOINT* pResult);
00817 static BOOL GetRightHandLength(DocCoord Coord, NodePath* pPath, MILLIPOINT* pResult);
00818 BOOL GetLeftHandLength(MILLIPOINT* pResult);
00819 BOOL GetRightHandLength(MILLIPOINT* pResult);
00820
00821
00822 DocCoord mStartPoint;
00823 DocCoord mCurrentBlobPos;
00824 Spread* mpStartSpread;
00825 TextStory* mpDragStory;
00826 NodePath* mpStoryPath;
00827 };
00828
00829
00830
00831
00832
00833
00834
00835
00836
00837 class OpDragStoryPathIndent : public OpDragStoryIndent
00838 {
00839 CC_DECLARE_DYNAMIC(OpDragStoryPathIndent);
00840
00841 public:
00842
00843 OpDragStoryPathIndent() {};
00844 ~OpDragStoryPathIndent() {};
00845
00846 protected:
00847 virtual BOOL SetCurrentPos(DocCoord MousePos, ClickModifiers ClickMods);
00848
00849 };
00850
00851
00852
00853
00854
00855
00856
00857
00858
00859 class OpDragStoryPathLeftIndent : public OpDragStoryPathIndent
00860 {
00861 CC_DECLARE_DYNCREATE(OpDragStoryPathLeftIndent);
00862
00863 public:
00864
00865 OpDragStoryPathLeftIndent() {};
00866 ~OpDragStoryPathLeftIndent() {};
00867
00868 static BOOL Init();
00869
00870 protected:
00871 virtual DocCoord InternalConstrain(DocCoord Current, ClickModifiers ClickMods);
00872
00873 protected:
00874 virtual DocCoord GetOtherIndent();
00875 virtual DocCoord GetThisIndent();
00876 virtual BOOL DoIndentChange();
00877 };
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887 class OpDragStoryPathRightIndent : public OpDragStoryPathIndent
00888 {
00889 CC_DECLARE_DYNCREATE(OpDragStoryPathRightIndent);
00890
00891 public:
00892
00893 OpDragStoryPathRightIndent() {};
00894 ~OpDragStoryPathRightIndent() {};
00895
00896 static BOOL Init();
00897
00898 protected:
00899 virtual DocCoord InternalConstrain(DocCoord Current, ClickModifiers ClickMods);
00900
00901 protected:
00902 virtual DocCoord GetOtherIndent();
00903 virtual DocCoord GetThisIndent();
00904 virtual BOOL DoIndentChange();
00905 };
00906
00907
00908
00909
00910
00911
00912
00913
00914
00915
00916 class OpDragStoryNonPathIndent : public OpDragStoryIndent
00917 {
00918 CC_DECLARE_DYNAMIC(OpDragStoryNonPathIndent);
00919
00920 public:
00921
00922 OpDragStoryNonPathIndent() {};
00923 ~OpDragStoryNonPathIndent() {};
00924
00925 protected:
00926 virtual DocCoord InternalConstrain(DocCoord Current, ClickModifiers ClickMods);
00927 virtual BOOL SetCurrentPos(DocCoord MousePos, ClickModifiers ClickMods);
00928 };
00929
00930
00931
00932
00933
00934
00935
00936
00937
00938 class OpDragStoryNonPathLeftIndent : public OpDragStoryNonPathIndent
00939 {
00940 CC_DECLARE_DYNCREATE(OpDragStoryNonPathLeftIndent);
00941
00942 public:
00943
00944 OpDragStoryNonPathLeftIndent() {};
00945 ~OpDragStoryNonPathLeftIndent() {};
00946
00947 static BOOL Init();
00948
00949 protected:
00950 virtual DocCoord GetOtherIndent();
00951 virtual DocCoord GetThisIndent();
00952 virtual BOOL DoIndentChange();
00953 };
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963 class OpDragStoryNonPathRightIndent : public OpDragStoryNonPathIndent
00964 {
00965 CC_DECLARE_DYNCREATE(OpDragStoryNonPathRightIndent);
00966
00967 public:
00968
00969 OpDragStoryNonPathRightIndent() {};
00970 ~OpDragStoryNonPathRightIndent() {};
00971
00972 static BOOL Init();
00973
00974 protected:
00975 virtual DocCoord GetOtherIndent();
00976 virtual DocCoord GetThisIndent();
00977 virtual BOOL DoIndentChange();
00978 };
00979
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992 class CCAPI OpApplyGlobalAffect : public Operation
00993 {
00994 CC_DECLARE_DYNCREATE( OpApplyGlobalAffect );
00995
00996 protected:
00997 void DoAffectChange(ObjChangeParam* pObjChange, Document* pSearchDoc=NULL);
00998 virtual void AffectNode(Document*, Node*, ObjChangeParam*);
00999 };
01000
01001
01002
01003
01004
01005
01006
01007
01008
01009
01010 class CCAPI OpAffectFontChange : public OpApplyGlobalAffect
01011 {
01012 CC_DECLARE_DYNCREATE( OpAffectFontChange );
01013
01014 public:
01015 static BOOL Init();
01016 static OpState GetState(String_256*, OpDescriptor*);
01017 void DoAffectFontChange();
01018
01019 protected:
01020 virtual void AffectNode(Document*, Node*, ObjChangeParam*);
01021 };
01022
01023
01024 #endif // INC_TEXTOPS