C:\home\SVGCats_src\src\MainFrm.h
1|// MainFrm.h : CMainFrame クラスの宣言およびインターフェイスの定義をします。 2|// 3|///////////////////////////////////////////////////////////////////////////// 4| 5|#if !defined(AFX_MAINFRM_H__82900B99_0E7D_42AA_9FBE_736B7ED07789__INCLUDED_) 6|#define AFX_MAINFRM_H__82900B99_0E7D_42AA_9FBE_736B7ED07789__INCLUDED_ 7| 8|#if _MSC_VER > 1000 9|#pragma once 10|#endif // _MSC_VER > 1000 11| 12| 13|#include "ChildView.h" 14|#include "CatsPropBar.h" 15| 16|class CInkPicture; 17| 18|typedef struct _SVGCat_Page SVGCat_Page; 19|class SVGCat_File; 20| 21|class CMainFrame : public CFrameWnd 22|{ 23| 24|public: 25| CMainFrame(); 26| 27| int m_mode; 28| bool m_bStrongCreate; /* 一度生成したら半選択モードにしない */ 29| 30| bool m_bInTray; 31| bool m_bActivated; 32| bool m_bMouseActivated; 33| CSplitterWnd m_wndSplitter; 34| CLeftView* m_Left; 35| HWND m_CaptureArea; 36| int m_CaptureStep; 37| bool m_bVisibleBeforeCapture; 38| int m_bCaptureFormat; /* JPEG=0, PNG=1 */ 39| 40| bool m_bHide; 41| bool m_bViewMode; 42| bool m_bVisiblePropBeforeHideToolBars; 43| bool m_bScopeMode; 44| bool m_bScopeHiding; 45| bool m_bScopeHidingCancel; 46| bool m_bScopeHide; 47| RECT m_OriginalWindowRect; 48| BOOL m_bOriginalWindowZoomed; 49| RECT m_ScopeWindowRect; 50| BOOL m_bScopeWindowZoomed; 51| int m_SplitModeBeforeViewMode; 52| HANDLE m_FileUpdateNotify; 53| time_t m_TimeStampOnTmpClose; 54| 55| CCatsPropBar m_PropBar; 56| bool m_PropBarDisp; 57| int m_PropBarX, m_PropBarY; /* mainwin の右上からの位置差分 */ 58| int m_PropBarDX, m_PropBarDY; /* FloatControlBar で指定する位置と GetWindowRect で得られる位置の差 */ 59| bool m_PropBarIsFloat; /* Load 時のみ使用 */ 60| DWORD m_PropBarStyle; /* Load 時のみ使用 */ 61| 62| bool m_DisableOnSetFocusProp; 63| CToolBar m_CreateBar; 64| CToolBar m_AlignBar; 65| CToolBar m_PenBar; 66| CadPrim* m_PropPrim; 67| ListX m_PropPrims; 68| int m_PropType; /* -2=選択不要, -1=未選択, Text_Box_TypeID, SVGCat_Ink_TypeID など */ 69| UINT m_Timer; 70| IInkStrokes* m_PropStrokes; 71| CString m_KWord; 72| CadPrim* m_FoundPrim; 73| int m_iFoundPage; 74| 75| int m_ClipPageNum; 76| int m_PasteCount; 77| HWND m_NextClipChain; 78| 79| HICON m_AppIcon; 80| UINT m_WM_TaskbarRestart; /* タスクバーが再起動したときに通知されるウィンドウメッセージ */ 81| int m_VisibleOnTray; 82| HMENU m_IconMenu; 83| CMenu m_MainMenu; 84| char m_FolderPathOnOpen[_MAX_PATH]; 85| 86| /* ツールバーで作成する図形のデフォルトデザイン */ 87| CadPrim* m_TextDesign; 88| CadPrim* m_TextRectDesign; 89| CadPrim* m_TextCircleDesign; 90| CadPrim* m_TextRoundRectDesign; 91| CadPrim* m_TextDiamondDesign; 92| CadPrim* m_TextParallelDesign; 93| CadPrim* m_LineDesign; 94| CadPrim* m_ArrowDesign; 95| CadPrim* m_CorneredLineDesign; 96| CadPrim* m_GuideLineArrowDesign; 97| CadPrim* m_GuideLineTextDesign; 98| CadPrim* m_RectDesign; 99| CadPrim* m_CircleDesign; 100| CadPrim* m_RoundRectDesign; 101| CadPrim* m_DiamondDesign; 102| CadPrim* m_RedTextDesign; 103| CadPrim* m_BlueTextDesign; 104| CadPrim* m_TimeStampDesign; 105| CadPrim* m_StrongerDesign; 106| 107| 108| 109| void HideWindow(); 110| void RestoreWindow( bool bOpenWindow, char* loadPath ); 111| void HideToolBars(); 112| void ShowToolBars(); 113| 114| void UpdateWindowText(); 115| void ResetAttr(); 116| void AddToTaskTray(); 117| void RemoveFromTaskTray(); 118| int GetCadPrimMode(); 119| void UpdateCreateToolBar( int id_checked, CToolBar* bar, bool bEnableStrongCreate, 120| bool bDisableResetSelect = false ); 121| void OnFind_sub( int dir ); 122| void ChgPage( int iPage ); 123| void ChgPageByPrims( SVGCat_File* file, ListX* targetPrims ); 124| void MovePage( HTREEITEM srcItem, HTREEITEM dstItem, 125| bool bAfter, bool bChild, bool bAddToUndoBuf ); 126| 127| void SetPropMulti( ListX* prims, IInkStrokes* strokes, int type = -1 ); 128| void ResetProp(); 129| afx_msg void OnDblClickProp(); 130| afx_msg void OnSetFocusProp(); 131| afx_msg void OnCapture2(); 132| void CompressToPng( int w, int h, int w_stride, char* bmp, int bpp, const char* out_path ); 133| void DropFiles( HDROP hDropInfo ); 134| 135| void OnTreeSelchanged(); 136| void OnTreeLButtonDown( UINT nFlags, CPoint point ); 137| void OnTreeBeginDrag( CPoint point ); 138| void OnTreeDragMove( UINT nFlags, CPoint point ); 139| HTREEITEM GetDropTarget( UINT nFlags, CPoint point, 140| bool* bAfter, bool* bChild, bool* bChildTarget ); 141| void OnTreeEndDrag( UINT nFlags, CPoint point ); 142| void OnTreeLButtonUp( UINT nFlags, CPoint point ); 143| void OnTreeRClick(); 144| void EditTitle(); 145| HTREEITEM m_DragItem; 146| CImageList* m_DragImageList; 147| CImageList* m_ImageList; 148| 149| void SetRecentFileMenu(); 150| void OpenRecentFile( int i ); 151| void ReadDefDesign( bool bWarning ); 152| 153| void NoTree(); 154| char* GetLinkURL(); 155| 156| void New(); 157| void OnOpen_sub( const char* folderPathOnOpen, bool bUpdateRecent, 158| bool bUseTemplate ); 159| void Load( const char* path, bool bUpdateRecent ); 160| HTREEITEM LoadTree( CTreeCtrl* tree, SVGCat_Page* page, HTREEITEM parent, HTREEITEM after=TVI_LAST ); 161| int SaveAsImp( const char* defPath, bool bResetSelect, bool bNoConfReadOnly = false, 162| bool bForMail = false ); 163| void SaveToImage( const char* out_path, int mode ); 164| void GetDefaultFName( char* path ); 165| void TakeBackup(); 166| afx_msg void OnDropFiles( HDROP hDropInfo ); 167| void SetDefaultMode(); 168| void SetMode( int mode ); 169| bool IsPenMode(); 170| bool CanPaste( bool bStyle ); 171| 172| HCURSOR m_ArrowCursor; 173| HCURSOR m_CrossCursor; 174| 175|protected: 176| DECLARE_DYNAMIC(CMainFrame) 177| 178|// アトリビュート 179|public: 180| 181|// オペレーション 182|public: 183| 184|// オーバーライド 185| // ClassWizard は仮想関数のオーバーライドを生成します。 186| //{{AFX_VIRTUAL(CMainFrame) 187| public: 188| virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 189| virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo); 190| protected: 191| virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam); 192| virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); 193| virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); 194| //}}AFX_VIRTUAL 195| 196|// インプリメンテーション 197|public: 198| virtual ~CMainFrame(); 199|#ifdef _DEBUG 200| virtual void AssertValid() const; 201| virtual void Dump(CDumpContext& dc) const; 202|#endif 203| 204|public: // コントロール バー用メンバ 205| CToolBar m_wndToolBar; 206| CChildView* m_wndView; 207| 208|// 生成されたメッセージ マップ関数 209|public: 210| //{{AFX_MSG(CMainFrame) 211| afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 212| afx_msg void OnClose(); 213| afx_msg void OnSetFocus(CWnd *pOldWnd); 214| afx_msg void OnSelectMulti(); 215| afx_msg void OnNew(); 216| afx_msg void OnOpen(); 217| afx_msg void OnSaveOv(); 218| afx_msg void OnUpdateSaveOv(CCmdUI* pCmdUI); 219| afx_msg void OnSaveAs(); 220| afx_msg void OnRecent1(); 221| afx_msg void OnRecent2(); 222| afx_msg void OnRecent3(); 223| afx_msg void OnRecent4(); 224| afx_msg void OnLowerPath(); 225| afx_msg void OnUpdateLowerPath(CCmdUI* pCmdUI); 226| afx_msg void OnBackupInterval(); 227| afx_msg void OnTimer(UINT nIDEvent); 228| afx_msg void OnCreateTextParal(); 229| afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI); 230| afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI); 231| afx_msg void OnEditCut(); 232| afx_msg void OnEditCopy(); 233| afx_msg void OnEditPaste(); 234| afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI); 235| afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI); 236| afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI); 237| afx_msg void OnUpdateDel(CCmdUI* pCmdUI); 238| afx_msg void OnUpdateZBottom(CCmdUI* pCmdUI); 239| afx_msg void OnUpdateZDown(CCmdUI* pCmdUI); 240| afx_msg void OnUpdateZTop(CCmdUI* pCmdUI); 241| afx_msg void OnUpdateZUp(CCmdUI* pCmdUI); 242| afx_msg void OnUpdatePrimDown(CCmdUI* pCmdUI); 243| afx_msg void OnUpdatePrimLeft(CCmdUI* pCmdUI); 244| afx_msg void OnUpdatePrimRight(CCmdUI* pCmdUI); 245| afx_msg void OnUpdatePrimUp(CCmdUI* pCmdUI); 246| afx_msg void OnSingleClick(); 247| afx_msg void OnUpdateSingleClick(CCmdUI* pCmdUI); 248| afx_msg void OnWindowColor(); 249| afx_msg void OnUpdateWindowColor(CCmdUI* pCmdUI); 250| afx_msg void OnUpdateZoom100(CCmdUI* pCmdUI); 251| afx_msg void OnUpdateZoom200(CCmdUI* pCmdUI); 252| afx_msg void OnUpdateZoom400(CCmdUI* pCmdUI); 253| afx_msg void OnUpdateZoom800(CCmdUI* pCmdUI); 254| afx_msg void OnUpdateZoomWhole(CCmdUI* pCmdUI); 255| afx_msg void OnUpdateZoomWidth(CCmdUI* pCmdUI); 256| afx_msg void OnPreview(); 257| afx_msg void OnViewPropBar(); 258| afx_msg void OnUpdateViewPropBar(CCmdUI* pCmdUI); 259| afx_msg void OnHelp(); 260| afx_msg void OnHelpSample(); 261| afx_msg void OnHelpSVG(); 262| afx_msg void OnDispHTML(); 263| afx_msg void OnMove(int x, int y); 264| afx_msg void OnCreateBar(); 265| afx_msg void OnUpdateCreateBar(CCmdUI* pCmdUI); 266| afx_msg void OnSelect(); 267| afx_msg void OnRotate(); 268| afx_msg void OnCreateText(); 269| afx_msg void OnCreateTextBox(); 270| afx_msg void OnCreateTextCircle(); 271| afx_msg void OnCreateTextDiamond(); 272| afx_msg void OnCreateTextRound(); 273| afx_msg void OnCreateImage2(); 274| afx_msg void OnCreateLine(); 275| afx_msg void OnCreateArrow(); 276| afx_msg void OnCreateLineCorner(); 277| afx_msg void OnCreateRect(); 278| afx_msg void OnCreateCircle(); 279| afx_msg void OnCreateTransCircle(); 280| afx_msg void OnCreateDiamond(); 281| afx_msg void OnCreateRoundRect(); 282| afx_msg void OnCreateGuideLine(); 283| afx_msg void OnInk(); 284| afx_msg void OnRedInk(); 285| afx_msg void OnMarker(); 286| afx_msg void OnBlueInk(); 287| afx_msg void OnRedMarker(); 288| afx_msg void OnYellowMarker(); 289| afx_msg void OnRope(); 290| afx_msg void OnEraser(); 291| afx_msg void OnAlignBar(); 292| afx_msg void OnUpdateAlignBar(CCmdUI* pCmdUI); 293| afx_msg void OnAlignIntervalHorizontal(); 294| afx_msg void OnAlignIntervalVertical(); 295| afx_msg void OnAlignHorizontal(); 296| afx_msg void OnAlignVertical(); 297| afx_msg void OnAlignLeft(); 298| afx_msg void OnAlignRight(); 299| afx_msg void OnAlignTop(); 300| afx_msg void OnAlignBottom(); 301| afx_msg void OnFitSizeHorizontal(); 302| afx_msg void OnFitSizeVertical(); 303| afx_msg void OnUpdateAlignBottom(CCmdUI* pCmdUI); 304| afx_msg void OnUpdateAlignHorizontal(CCmdUI* pCmdUI); 305| afx_msg void OnUpdateAlignIntervalHorizontal(CCmdUI* pCmdUI); 306| afx_msg void OnUpdateAlignIntervalVertical(CCmdUI* pCmdUI); 307| afx_msg void OnUpdateAlignLeft(CCmdUI* pCmdUI); 308| afx_msg void OnUpdateAlignRight(CCmdUI* pCmdUI); 309| afx_msg void OnUpdateAlignTop(CCmdUI* pCmdUI); 310| afx_msg void OnUpdateAlignVertical(CCmdUI* pCmdUI); 311| afx_msg void OnUpdateFitSizeHorizontal(CCmdUI* pCmdUI); 312| afx_msg void OnUpdateFitSizeVertical(CCmdUI* pCmdUI); 313| afx_msg void OnNextPage(); 314| afx_msg void OnUpdateNextPage(CCmdUI* pCmdUI); 315| afx_msg void OnPrevPage(); 316| afx_msg void OnUpdatePrevPage(CCmdUI* pCmdUI); 317| afx_msg void OnFirstPage(); 318| afx_msg void OnLastPage(); 319| afx_msg void OnNewPage(); 320| afx_msg void OnMakeBackPage(); 321| afx_msg void OnUpdateMakeBackPage(CCmdUI* pCmdUI); 322| afx_msg void OnCreateRedText(); 323| afx_msg void OnCreateBlueText(); 324| afx_msg void OnPenBar(); 325| afx_msg void OnUpdatePenBar(CCmdUI* pCmdUI); 326| afx_msg void OnTaskTray(); 327| afx_msg void OnUpdateTaskTray(CCmdUI* pCmdUI); 328| afx_msg void OnUpdsk(); 329| afx_msg void OnUpdateUpdsk(CCmdUI* pCmdUI); 330| afx_msg void OnAutoSave(); 331| afx_msg void OnUpdateAutoSave(CCmdUI* pCmdUI); 332| afx_msg void OnUpdateLastPage(CCmdUI* pCmdUI); 333| afx_msg void OnUpdateFirstPage(CCmdUI* pCmdUI); 334| afx_msg void OnSaveHtml(); 335| afx_msg void OnRecent5(); 336| afx_msg void OnRecent6(); 337| afx_msg void OnRecent7(); 338| afx_msg void OnRecent8(); 339| afx_msg void OnDelIcon(); 340| afx_msg void OnUpdateNewPage(CCmdUI* pCmdUI); 341| afx_msg void OnNewChildPage(); 342| afx_msg void OnUpdateNewChildPage(CCmdUI* pCmdUI); 343| afx_msg void OnSideByTree(); 344| afx_msg void OnMaxTree(); 345| afx_msg void OnDelPage(); 346| afx_msg void OnUpdateDelPage(CCmdUI* pCmdUI); 347| afx_msg void OnUpdateSideByTree(CCmdUI* pCmdUI); 348| afx_msg void OnOpenBackup(); 349| afx_msg void OnThrowToTrash(); 350| afx_msg void OnRenameOrMove(); 351| afx_msg void OnNewPrevPage(); 352| afx_msg void OnUpdateNewPrevPage(CCmdUI* pCmdUI); 353| afx_msg void OnReadDefDesign(); 354| afx_msg void OnOpenDesign(); 355| afx_msg void OnReadCustomDesign(); 356| afx_msg void OnResetDesign(); 357| afx_msg void OnFind(); 358| afx_msg void OnFindNext(); 359| afx_msg void OnFindBack(); 360| afx_msg void OnNewWindow(); 361| afx_msg void OnUpdateMaxTree(CCmdUI* pCmdUI); 362| afx_msg void OnUpdateFindNext(CCmdUI* pCmdUI); 363| afx_msg void OnUpdateFindBack(CCmdUI* pCmdUI); 364| afx_msg void OnPasteTimeStamp(); 365| afx_msg void OnCreateTimeStamp(); 366| afx_msg void OnUpdateCreateTimeStamp(CCmdUI* pCmdUI); 367| afx_msg void OnEditPageTitle(); 368| afx_msg void OnCopyStyle(); 369| afx_msg void OnPasteStyle(); 370| afx_msg void OnUpdatePasteStyle(CCmdUI* pCmdUI); 371| afx_msg void OnUpdateCopyStyle(CCmdUI* pCmdUI); 372| afx_msg void OnUpdateInk(CCmdUI* pCmdUI); 373| afx_msg void OnUpdateRedInk(CCmdUI* pCmdUI); 374| afx_msg void OnUpdateRedMarker(CCmdUI* pCmdUI); 375| afx_msg void OnUpdateBlueInk(CCmdUI* pCmdUI); 376| afx_msg void OnUpdateMarker(CCmdUI* pCmdUI); 377| afx_msg void OnUpdateYellowMarker(CCmdUI* pCmdUI); 378| afx_msg void OnUpdateRope(CCmdUI* pCmdUI); 379| afx_msg void OnUpdateEraser(CCmdUI* pCmdUI); 380| afx_msg void OnOpenLink(); 381| afx_msg void OnUpdateOpenLink(CCmdUI* pCmdUI); 382| afx_msg void OnOpenCommercial(); 383| afx_msg void OnInputLicense(); 384| afx_msg void OnImportSVG(); 385| afx_msg void OnSaveAsReadOnly(); 386| afx_msg void OnSaveImage(); 387| afx_msg void OnUpdateSaveImage(CCmdUI* pCmdUI); 388| afx_msg void OnDrawClipboard(); 389| afx_msg BOOL OnQueryEndSession(); 390| afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized); 391| afx_msg void OnOpenTemplate(); 392| afx_msg void OnSaveTemplate(); 393| afx_msg void OnSaveForMail(); 394| afx_msg void OnChangeCbChain(HWND hWndRemove, HWND hWndAfter); 395| afx_msg void OnCapture(); 396| afx_msg void OnCreateMatome(); 397| afx_msg void OnViewMode(); 398| afx_msg void OnUpdateViewMode(CCmdUI* pCmdUI); 399| afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 400| afx_msg void OnReload(); 401| afx_msg void OnCloseTaskTray(); 402| afx_msg void OnSaveAsImage(); 403| afx_msg void OnScopeMode(); 404| afx_msg void OnUpdateScopeMode(CCmdUI* pCmdUI); 405| afx_msg void OnSysColorChange(); 406| afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI); 407| afx_msg void OnSize(UINT nType, int cx, int cy); 408| //}}AFX_MSG 409| DECLARE_MESSAGE_MAP() 410|}; 411| 412| 413|void CMainFrame_ShowWindowFunc( CMainFrame* m, bool bShow ); 414|UINT CMainFrame_FileUpdateThread( LPVOID me ); 415| 416| 417|///////////////////////////////////////////////////////////////////////////// 418| 419|//{{AFX_INSERT_LOCATION}} 420|// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。 421| 422| 423| 424|/*********************************************************************** 425| 1. <<< [CMainFrame::m_mode] マウスのモード >>> 426|************************************************************************/ 427|enum { 428| CMainFrame_Select, 429| CMainFrame_SelectMulti, 430| CMainFrame_Rotate, 431| CMainFrame_Zooming, 432| CMainFrame_CreateText, 433| CMainFrame_CreateRedText, 434| CMainFrame_CreateBlueText, 435| CMainFrame_CreateTimeStamp, 436| CMainFrame_CreateTextBox, 437| CMainFrame_CreateTextRound, 438| CMainFrame_CreateTextCircle, 439| CMainFrame_CreateTextDiamond, 440| CMainFrame_CreateTextParal, 441| CMainFrame_CreateLine, 442| CMainFrame_CreateArrow, 443| CMainFrame_CreateLineCorner, 444| CMainFrame_CreateMatome, 445| CMainFrame_CreateGuideLine, 446| CMainFrame_CreateTransCircle, 447| CMainFrame_CreateRect, 448| CMainFrame_CreateRoundRect, 449| CMainFrame_CreateCircle, 450| CMainFrame_CreateDiamond, 451| CMainFrame_CreatePoly, 452| CMainFrame_CreateImage, 453| CMainFrame_UseInk, 454| CMainFrame_UseRedInk, 455| CMainFrame_UseBlueInk, 456| CMainFrame_UseMarker, 457| CMainFrame_UseRedMarker, 458| CMainFrame_UseYellowMarker, 459| CMainFrame_UseRope, 460|}; 461| 462| 463| 464|/*********************************************************************** 465| 2. <<< タイマーイベント識別子 >>> 466|************************************************************************/ 467| 468|#define CMainFrame_Timer_Backup 1 469|#define CMainFrame_Timer_SingleDblClick 2 470|#define CMainFrame_Timer_DrawRope 3 471|#define CMainFrame_Timer_DragScroll 4 472| 473| 474| 475|/*********************************************************************** 476| 3. <<< ユーザ定義ウィンドウメッセージのコード >>> 477|************************************************************************/ 478|#define WM_TRAYICONMESSAGE (WM_USER + 1) 479|#define CMainFrame_Capture2 (WM_USER + 2) 480|#define CMainFrame_Scrolling (WM_USER + 3) 481| 482| 483|/*********************************************************************** 484| 4. <<< [CMainFrame::m_VisibleOnTray] ツールバーの表示非表示の記録 >>> 485|【補足】 486|・タスクトレイに常駐する状態にしたとき、CMainFrame のみ非表示にしても 487| ツールバーは表示されたままになるので、非表示にしますが、復帰するときに 488| 必要となる情報をこれで示します。 489|・And Or を使った論理演算ができるフラグです。 490|************************************************************************/ 491|#define CMainFrame_Visible_MainToolBar 1 492|#define CMainFrame_Visible_PropBar 2 493|#define CMainFrame_Visible_CreateBar 4 494|#define CMainFrame_Visible_AlignBar 8 495|#define CMainFrame_Visible_PenBar 0x10 496| 497| 498| 499|#endif // !defined(AFX_MAINFRM_H__82900B99_0E7D_42AA_9FBE_736B7ED07789__INCLUDED_) 500| 501|