From 5305ddd8332ebd905ebef3b8365fc0d736858a7a Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Mon, 05 Jul 2004 01:53:09 +0000 Subject: initial commit into svn repository git-svn-id: http://svn.klever.net/kin/dipstick/trunk@1 fe716a7a-6dde-0310-88d9-d003556173a8 --- (limited to 'SelectURLsDlg.cpp') diff --git a/SelectURLsDlg.cpp b/SelectURLsDlg.cpp new file mode 100644 index 0000000..bad1cc2 --- a/dev/null +++ b/SelectURLsDlg.cpp @@ -0,0 +1,164 @@ +// SelectURLsDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "Dipstick.h" +#include "SelectURLsDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CSelectURLsDlg dialog + + +CSelectURLsDlg::CSelectURLsDlg(CWnd* pParent /*=NULL*/) + : CDialog(CSelectURLsDlg::IDD, pParent), m_minSize(0,0) +{ + //{{AFX_DATA_INIT(CSelectURLsDlg) + m_bAdjustInnermost = FALSE; + m_bAdjust = FALSE; + //}}AFX_DATA_INIT +} + + +void CSelectURLsDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CSelectURLsDlg) + DDX_Control(pDX, IDC_DOADJUST, m_AdjustCtl); + DDX_Control(pDX, IDC_ADJUSTINN, m_AdjustInnCtl); + DDX_Control(pDX, IDOK, m_OkCtl); + DDX_Control(pDX, IDCANCEL, m_CancelCtl); + DDX_Control(pDX, IDC_URLS, m_URLsCtl); + DDX_Check(pDX, IDC_ADJUSTINN, m_bAdjustInnermost); + DDX_Check(pDX, IDC_DOADJUST, m_bAdjust); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CSelectURLsDlg, CDialog) + //{{AFX_MSG_MAP(CSelectURLsDlg) + ON_WM_SIZE() + ON_WM_GETMINMAXINFO() + ON_LBN_SELCHANGE(IDC_URLS, OnSelchangeUrls) + ON_WM_HELPINFO() + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CSelectURLsDlg message handlers + +BOOL CSelectURLsDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + +POSITION p = m_URLs.GetHeadPosition(); + while(p){ + CString url = m_URLs.GetNext(p); + ASSERT(!url.IsEmpty()); + m_URLsCtl.AddString(url); + } +CRect rc; + GetWindowRect(rc); + m_minSize.cx = rc.Width(); + m_minSize.cy = rc.Height(); + m_URLsCtl.GetWindowRect(rc); + ScreenToClient(rc); + m_Gap = CSize(rc.left,rc.top); + m_minSize.cy -= rc.Height()-20; + m_URLsCtl.SelItemRange(TRUE,0,m_URLsCtl.GetCount()-1); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void CSelectURLsDlg::OnSize(UINT nType, int cx, int cy) +{ + CDialog::OnSize(nType, cx, cy); + + RecalcLayout(cx,cy); + +} + +void CSelectURLsDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) +{ + CDialog::OnGetMinMaxInfo(lpMMI); + if(m_minSize.cx && m_minSize.cy){ + lpMMI->ptMinTrackSize.x = m_minSize.cx; + lpMMI->ptMinTrackSize.y = m_minSize.cy; + } +} + +void CSelectURLsDlg::RecalcLayout(int cx,int cy) +{ + if(!(m_minSize.cx&&m_minSize.cy)) + return; +CRect rcok, rccan, rcadj, rcadjin, rclist; + m_OkCtl.GetWindowRect(rcok); ScreenToClient(rcok); + m_CancelCtl.GetWindowRect(rccan); ScreenToClient(rccan); + m_AdjustCtl.GetWindowRect(rcadj); ScreenToClient(rcadj); + m_AdjustInnCtl.GetWindowRect(rcadjin); ScreenToClient(rcadjin); + m_URLsCtl.GetWindowRect(rclist); ScreenToClient(rclist); + m_CancelCtl.SetWindowPos(NULL,rccan.left,cy-m_Gap.cy-rccan.Height(),0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS); + m_OkCtl.SetWindowPos(NULL,rcok.left,cy-m_Gap.cy-rcok.Height()-rccan.bottom+rcok.bottom,0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS); + m_AdjustCtl.SetWindowPos(NULL,rcadj.left,cy-m_Gap.cy-rccan.bottom+rcadj.bottom-rcadj.Height(),0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS); + m_AdjustInnCtl.SetWindowPos(NULL,rcadjin.left,cy-m_Gap.cy-rccan.bottom+rcadjin.bottom-rcadjin.Height(),0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS); + m_URLsCtl.SetWindowPos(NULL,rclist.left,rclist.top,cx-m_Gap.cx*2,cy-m_Gap.cy*2-rccan.bottom+rclist.bottom,SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS); +} + +void CSelectURLsDlg::OnSelchangeUrls() +{ + UpdateData(TRUE); + if(!m_bAdjust) + return; + if(m_URLsCtl.GetSelCount()!=1) + return; +INT selection; + VERIFY(m_URLsCtl.GetSelItems(1,&selection)==1); +CCrackURL base; +CString selectedItem; + m_URLsCtl.GetText(selection,selectedItem); + VERIFY(base.Crack(selectedItem)); +CCrackURL item; +int is = m_URLsCtl.GetCount(); + BeginWaitCursor(); + for(int i = 0;i