// PaneSamplesWnd.cpp : implementation file // // (c)1998-2025 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "MarkupPad.h" #include "PaneSamplesWnd.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPaneSamplesWnd CPaneSamplesWnd::CPaneSamplesWnd() : m_pPane(NULL) , m_rcMargin(0, 0, 0, 0) { } CPaneSamplesWnd::~CPaneSamplesWnd() { } BEGIN_MESSAGE_MAP(CPaneSamplesWnd, CWnd) //{{AFX_MSG_MAP(CPaneSamplesWnd) ON_WM_PAINT() ON_WM_CREATE() ON_WM_SIZE() //}}AFX_MSG_MAP ON_WM_SETFOCUS() ON_REGISTERED_MESSAGE(WM_REFRESHMETRICS, OnRefreshMetrics) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPaneSamplesWnd message handlers void CPaneSamplesWnd::OnPaint() { CPaintDC dc(this); if (!m_rcMargin.IsRectNull()) { CXTPClientRect rClient(this); theApp.m_csPane.DrawBorders(&dc, rClient, m_pPane); } } int CPaneSamplesWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndTaskPanel.GetSafeHwnd()) { if (!m_wndTaskPanel.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, CRect(0, 0, 0, 0), this, 0)) return FALSE; m_wndTaskPanel.SetOwner(this); // m_wndTaskPanel.GetImageManager()->SetIcons(IDB_TOOLBOXICONS, 0, 0, CSize(16, 16)); m_wndTaskPanel.SetBehaviour(xtpTaskPanelBehaviourExplorer); m_wndTaskPanel.SetTheme(xtpTaskPanelThemeVisualStudio2005); m_wndTaskPanel.SetHotTrackStyle(xtpTaskPanelHighlightItem); m_wndTaskPanel.SetSelectItemOnFocus(TRUE); m_wndTaskPanel.SetSingleSelection(); m_wndTaskPanel.AllowDrag(TRUE); } return 0; } void CPaneSamplesWnd::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); MoveChildren(NULL, &m_wndTaskPanel, cx, cy); } void CPaneSamplesWnd::OnSetFocus(CWnd* /*pOldWnd*/) { m_wndTaskPanel.SetFocus(); } LRESULT CPaneSamplesWnd::OnRefreshMetrics(WPARAM wParam, LPARAM /*lParam*/) { RefreshMetrics((int)wParam); return 0; } void CPaneSamplesWnd::RefreshMetrics(int nTheme) { UNUSED_ALWAYS(nTheme); m_wndTaskPanel.SetTheme(xtpTaskPanelThemeOffice2016); // XTP_SAFE_CALL1(m_wndTaskPanel.GetImageManager(), SetIcons(m_nToolboxIcons, 0, 0, CSize(16, // 16))); CXTPClientRect rClient(this); MoveChildren(NULL, &m_wndTaskPanel, rClient.Width(), rClient.Height()); } void CPaneSamplesWnd::MoveChildren(CXTPToolBar* pToolBar, CWnd* pChildWnd, int cx, int cy) { int x = m_rcMargin.left; int y = m_rcMargin.top; cx -= (x + m_rcMargin.right); cy -= (y + m_rcMargin.bottom); if (pToolBar->GetSafeHwnd()) { CSize sz = pToolBar->CalcDockingLayout(cx, LM_HORZDOCK | LM_HORZ | LM_COMMIT); pToolBar->MoveWindow(x, y, cx, sz.cy); pToolBar->Invalidate(FALSE); y += sz.cy; cy -= sz.cy; } if (pChildWnd->GetSafeHwnd()) { pChildWnd->MoveWindow(x, y, cx, cy); pChildWnd->Invalidate(FALSE); } } void CPaneSamplesWnd::ResetToolboxItems() { m_wndTaskPanel.GetGroups()->Clear(FALSE); CXTPTaskPanelGroup* pFolder = m_wndTaskPanel.AddGroup(ID_PANE_SAMPLES_MARKUP); if (pFolder) { int id = 0; CFileFind finder; BOOL bWorking = finder.FindFile(theApp.m_MarkupsPath + _T("*.xaml")); while (bWorking) { bWorking = finder.FindNextFile(); CString strPath = finder.GetFilePath(); CXTPTaskPanelGroupItem* item = pFolder->AddLinkItem(id, finder.GetFileName(), finder.GetFilePath()); item->AllowDrag(FALSE); item->AllowDrop(FALSE); id++; } } }