123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- // EditFrameWnd.cpp : implementation file
- //
- #include "stdafx.h"
- #include "CP_Main.h"
- #include "EditFrameWnd.h"
- #include ".\editframewnd.h"
- #define TIMER_BUTTON_UP 1
- // CEditFrameWnd
- IMPLEMENT_DYNCREATE(CEditFrameWnd, CFrameWnd)
- CEditFrameWnd::CEditFrameWnd()
- {
- m_bAutoMenuEnable = FALSE;
- }
- CEditFrameWnd::~CEditFrameWnd()
- {
- }
- BEGIN_MESSAGE_MAP(CEditFrameWnd, CFrameWnd)
- ON_WM_CREATE()
- ON_WM_DESTROY()
- ON_WM_SIZE()
- ON_COMMAND(ID_BUTTON_SAVE, OnDummy)
- ON_COMMAND(ID_BUTTON_SAVE_ALL, OnDummy)
- ON_COMMAND(ID_BUTTON_CLOSE, OnDummy)
- ON_COMMAND(ID_BUTTON_NEW, OnDummy)
- ON_COMMAND(ID_BUTTON_SAVE_CLOSE_CLIPBOARD, OnDummy)
- ON_WM_SETFOCUS()
- ON_WM_CLOSE()
- ON_WM_NCCALCSIZE()
- ON_WM_NCPAINT()
- ON_WM_NCHITTEST()
- ON_WM_NCLBUTTONDOWN()
- ON_WM_NCLBUTTONUP()
- ON_WM_NCMOUSEMOVE()
- ON_WM_NCLBUTTONDBLCLK()
- ON_WM_WINDOWPOSCHANGING()
- ON_WM_TIMER()
- ON_MESSAGE(WM_DPICHANGED, OnDpiChanged)
- ON_WM_MOVING()
- ON_WM_ENTERSIZEMOVE()
- END_MESSAGE_MAP()
- // CEditFrameWnd message handlers
- int CEditFrameWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
- ModifyStyle(WS_CAPTION|WS_BORDER|WS_OVERLAPPED|0x0000C000|WS_THICKFRAME|WS_DLGFRAME|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX, 0, SWP_DRAWFRAME);
- ModifyStyleEx(WS_EX_CLIENTEDGE, 0, 0);
-
- CString csTitle = theApp.m_Language.GetString("Ditto_Edit", "Ditto Edit");
- m_EditWnd.Create(NULL, csTitle, WS_CHILD, CRect(0, 0, 0, 0), this, 100, NULL);
- m_EditWnd.ShowWindow(SW_SHOW);
- MoveControls();
- m_DittoWindow.DoCreate(this);
- m_DittoWindow.m_bDrawChevron = false;
- m_DittoWindow.SetCaptionColors(g_Opt.m_Theme.CaptionLeft(), g_Opt.m_Theme.CaptionRight(), g_Opt.m_Theme.Border());
- m_DittoWindow.SetCaptionOn(this, CAPTION_TOP, true, g_Opt.m_Theme.GetCaptionSize(), g_Opt.m_Theme.GetCaptionFontSize());
- m_crIcon.SetRect(-2, -15, 15, 0);
- SetWindowText(_T("Ditto Editor"));
- return 0;
- }
- void CEditFrameWnd::OnDestroy()
- {
- CFrameWnd::OnDestroy();
- CRect rect;
- GetWindowRect(&rect);
- CGetSetOptions::SetEditWndSize(rect.Size());
- CGetSetOptions::SetEditWndPoint(rect.TopLeft());
- ::SendMessage(m_hNotifyWnd, WM_EDIT_WND_CLOSING, 0, 0);
- }
- void CEditFrameWnd::OnSize(UINT nType, int cx, int cy)
- {
- CFrameWnd::OnSize(nType, cx, cy);
- MoveControls();
- }
- void CEditFrameWnd::MoveControls()
- {
- if(::IsWindow(m_EditWnd.GetSafeHwnd()))
- {
- CRect cr;
- GetClientRect(cr);
- m_EditWnd.MoveWindow(cr);
- }
- }
- bool CEditFrameWnd::EditIds(CClipIDs &Ids)
- {
- return m_EditWnd.EditIds(Ids);
- }
- BOOL CEditFrameWnd::PreCreateWindow(CREATESTRUCT& cs)
- {
- if(cs.hMenu!=NULL)
- {
- ::DestroyMenu(cs.hMenu); // delete menu if loaded
- cs.hMenu = NULL; // no menu for this window
- }
- WNDCLASS wc;
- wc.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
- wc.lpfnWndProc = AfxWndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = AfxGetInstanceHandle();
- wc.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- wc.hCursor = LoadCursor(NULL, IDC_ARROW);
- wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = _T("Ditto Edit Wnd");
- // Create the QPaste window class
- if (!AfxRegisterClass(&wc))
- return FALSE;
- cs.lpszClass = wc.lpszClassName;
- return CFrameWnd::PreCreateWindow(cs);
- }
- void CEditFrameWnd::OnDummy()
- {
- }
- void CEditFrameWnd::OnSetFocus(CWnd* pOldWnd)
- {
- CFrameWnd::OnSetFocus(pOldWnd);
- m_EditWnd.SetFocus();
- }
- void CEditFrameWnd::OnClose()
- {
- if(m_EditWnd.CloseEdits(true) == false)
- return;
- CFrameWnd::OnClose();
- }
- void CEditFrameWnd::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp)
- {
- CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
- m_DittoWindow.DoNcCalcSize(bCalcValidRects, lpncsp);
- }
- void CEditFrameWnd::OnNcPaint()
- {
- m_DittoWindow.DoNcPaint(this);
- }
- HITTEST_RET CEditFrameWnd::OnNcHitTest(CPoint point)
- {
- UINT Ret = m_DittoWindow.DoNcHitTest(this, point);
- if(Ret == -1)
- return CWnd::OnNcHitTest(point);
- return Ret;
- }
- void CEditFrameWnd::OnNcLButtonDown(UINT nHitTest, CPoint point)
- {
- int buttonPressed = m_DittoWindow.DoNcLButtonDown(this, nHitTest, point);
- if (buttonPressed != 0)
- {
- SetTimer(TIMER_BUTTON_UP, 100, NULL);
- }
- CFrameWnd::OnNcLButtonDown(nHitTest, point);
- }
- void CEditFrameWnd::OnNcLButtonUp(UINT nHitTest, CPoint point)
- {
- if(m_DittoWindow.DoNcLButtonUp(this, nHitTest, point) > 0)
- return;
- KillTimer(TIMER_BUTTON_UP);
- CFrameWnd::OnNcLButtonUp(nHitTest, point);
- }
- void CEditFrameWnd::OnNcMouseMove(UINT nHitTest, CPoint point)
- {
- m_DittoWindow.DoNcMouseMove(this, nHitTest, point);
- CFrameWnd::OnNcMouseMove(nHitTest, point);
- }
- BOOL CEditFrameWnd::PreTranslateMessage(MSG* pMsg)
- {
- m_DittoWindow.DoPreTranslateMessage(pMsg);
- return CFrameWnd::PreTranslateMessage(pMsg);
- }
- bool CEditFrameWnd::CloseAll()
- {
- return m_EditWnd.CloseEdits(true);
- }
- void CEditFrameWnd::OnNcLButtonDblClk(UINT nHitTest, CPoint point)
- {
- CPoint pt(point);
- ScreenToClient(&pt);
- if(m_crIcon.PtInRect(pt))
- {
- CloseAll();
- OnClose();
- return;
- }
- CFrameWnd::OnNcLButtonDblClk(nHitTest, point);
- }
- void CEditFrameWnd::OnWindowPosChanging(WINDOWPOS* lpwndpos)
- {
- CFrameWnd::OnWindowPosChanging(lpwndpos);
- }
- void CEditFrameWnd::OnTimer(UINT_PTR nIDEvent)
- {
- switch (nIDEvent)
- {
- case TIMER_BUTTON_UP:
- {
- if ((GetKeyState(VK_LBUTTON) & 0x100) == 0)
- {
- m_DittoWindow.DoNcLButtonUp(this, 0, CPoint(0, 0));
- KillTimer(TIMER_BUTTON_UP);
- }
- break;
- }
- }
- CWnd::OnTimer(nIDEvent);
- }
- LRESULT CEditFrameWnd::OnDpiChanged(WPARAM wParam, LPARAM lParam)
- {
- int dpi = HIWORD(wParam);
- m_DittoWindow.OnDpiChanged(this, dpi);
- RECT* const prcNewWindow = (RECT*)lParam;
- SetWindowPos(NULL,
- prcNewWindow->left,
- prcNewWindow->top,
- prcNewWindow->right - prcNewWindow->left,
- prcNewWindow->bottom - prcNewWindow->top,
- SWP_NOZORDER | SWP_NOACTIVATE);
- this->Invalidate();
- this->UpdateWindow();
- return TRUE;
- }
- void CEditFrameWnd::OnMoving(UINT fwSide, LPRECT pRect)
- {
- CWnd::OnMoving(fwSide, pRect);
- m_snap.OnSnapMoving(m_hWnd, pRect);
- }
- void CEditFrameWnd::OnEnterSizeMove()
- {
- m_snap.OnSnapEnterSizeMove(m_hWnd);
- CWnd::OnEnterSizeMove();
- }
|