AddType.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. // AddType.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "cp_main.h"
  5. #include "AddType.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CAddType dialog
  13. CAddType::CAddType(CWnd* pParent /*=NULL*/)
  14. : CDialog(CAddType::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CAddType)
  17. m_eCustomType = _T("");
  18. //}}AFX_DATA_INIT
  19. }
  20. void CAddType::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CAddType)
  24. DDX_Control(pDX, IDC_LIST2, m_lbOnClipboard);
  25. DDX_Control(pDX, IDC_LIST1, m_lbDefaultTypes);
  26. DDX_Text(pDX, IDC_EDIT1, m_eCustomType);
  27. DDV_MaxChars(pDX, m_eCustomType, 50);
  28. //}}AFX_DATA_MAP
  29. }
  30. BEGIN_MESSAGE_MAP(CAddType, CDialog)
  31. //{{AFX_MSG_MAP(CAddType)
  32. ON_BN_CLICKED(IDC_ADD_1, OnAdd1)
  33. ON_BN_CLICKED(IDC_ADD_2, OnAdd2)
  34. ON_BN_CLICKED(IDC_ADD_3, OnAdd3)
  35. ON_LBN_DBLCLK(IDC_LIST1, OnDblclkList1)
  36. ON_LBN_DBLCLK(IDC_LIST2, OnDblclkList2)
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CAddType message handlers
  41. BOOL CAddType::OnInitDialog()
  42. {
  43. CDialog::OnInitDialog();
  44. m_lbDefaultTypes.AddString("CF_TEXT");
  45. m_lbDefaultTypes.AddString("CF_BITMAP");
  46. m_lbDefaultTypes.AddString("CF_METAFILEPICT");
  47. m_lbDefaultTypes.AddString("CF_SYLK");
  48. m_lbDefaultTypes.AddString("CF_DIF");
  49. m_lbDefaultTypes.AddString("CF_TIFF");
  50. m_lbDefaultTypes.AddString("CF_OEMTEXT");
  51. m_lbDefaultTypes.AddString("CF_DIB");
  52. m_lbDefaultTypes.AddString("CF_PALETTE");
  53. m_lbDefaultTypes.AddString("CF_PENDATA");
  54. m_lbDefaultTypes.AddString("CF_RIFF");
  55. m_lbDefaultTypes.AddString("CF_WAVE");
  56. m_lbDefaultTypes.AddString("CF_UNICODETEXT");
  57. m_lbDefaultTypes.AddString("CF_ENHMETAFILE");
  58. m_lbDefaultTypes.AddString("CF_HDROP");
  59. m_lbDefaultTypes.AddString("CF_LOCALE");
  60. m_lbDefaultTypes.AddString("CF_OWNERDISPLAY");
  61. m_lbDefaultTypes.AddString("CF_DSPTEXT");
  62. m_lbDefaultTypes.AddString("CF_DSPBITMAP");
  63. m_lbDefaultTypes.AddString("CF_DSPMETAFILEPICT");
  64. m_lbDefaultTypes.AddString("CF_DSPENHMETAFILE");
  65. m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(CF_RTF)));
  66. m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(CF_RTFNOOBJS)));
  67. m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(CF_RETEXTOBJ)));
  68. m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat("HTML Format")));
  69. COleDataObject oleData;
  70. if(!oleData.AttachClipboard())
  71. return FALSE;
  72. oleData.BeginEnumFormats();
  73. FORMATETC test;
  74. while(oleData.GetNextFormat(&test))
  75. {
  76. BOOL b = oleData.IsDataAvailable(test.cfFormat);
  77. m_lbOnClipboard.AddString(GetFormatName(test.cfFormat));
  78. }
  79. oleData.Release();
  80. m_lbDefaultTypes.SetFocus();
  81. theApp.m_Language.UpdateOptionSupportedTypesAdd(this);
  82. return FALSE;
  83. }
  84. void CAddType::OnAdd1()
  85. {
  86. m_csSelectedTypes.RemoveAll();
  87. int nCount = m_lbDefaultTypes.GetSelCount();
  88. if(nCount)
  89. {
  90. CString cs;
  91. CArray<int,int> items;
  92. items.SetSize(nCount);
  93. m_lbDefaultTypes.GetSelItems(nCount, items.GetData());
  94. for(int i = 0; i < nCount; i++)
  95. {
  96. m_lbDefaultTypes.GetText(items[i], cs);
  97. m_csSelectedTypes.Add(cs);
  98. }
  99. }
  100. EndDialog(IDOK);
  101. }
  102. void CAddType::OnAdd2()
  103. {
  104. UpdateData();
  105. m_csSelectedTypes.RemoveAll();
  106. m_csSelectedTypes.Add(m_eCustomType);
  107. EndDialog(IDOK);
  108. }
  109. void CAddType::OnAdd3()
  110. {
  111. m_csSelectedTypes.RemoveAll();
  112. int nCount = m_lbOnClipboard.GetSelCount();
  113. if(nCount)
  114. {
  115. CString cs;
  116. CArray<int,int> items;
  117. items.SetSize(nCount);
  118. m_lbOnClipboard.GetSelItems(nCount, items.GetData());
  119. for(int i = 0; i < nCount; i++)
  120. {
  121. m_lbOnClipboard.GetText(items[i], cs);
  122. m_csSelectedTypes.Add(cs);
  123. }
  124. }
  125. EndDialog(IDOK);
  126. }
  127. void CAddType::OnDblclkList1()
  128. {
  129. OnAdd1();
  130. }
  131. void CAddType::OnDblclkList2()
  132. {
  133. OnAdd3();
  134. }