MainDlg.cpp 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. // MainDlg.cpp : implementation of the CMainDlg class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "MainDlg.h"
  6. #include "StabtypeControl.h"
  7. #include "CLashConfig.h"
  8. CMainDlg::CMainDlg() : SHostWnd(_T("LAYOUT:XML_MAINWND")), m_base_clash(nullptr)
  9. {
  10. m_bLayoutInited = FALSE;
  11. }
  12. CMainDlg::~CMainDlg()
  13. {
  14. if (m_base_clash)
  15. {
  16. m_base_clash->StopClash();
  17. delete m_base_clash;
  18. m_base_clash = nullptr;
  19. }
  20. }
  21. int CMainDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
  22. {
  23. SetMsgHandled(FALSE);
  24. return 0;
  25. }
  26. BOOL CMainDlg::OnInitDialog(HWND hWnd, LPARAM lParam)
  27. {
  28. m_bLayoutInited = TRUE;
  29. Init();
  30. return 0;
  31. }
  32. void CMainDlg::Init()
  33. {
  34. //FindChildByName2<STabCtrl>(L"tabmain");
  35. if (!m_base_clash)
  36. {
  37. m_base_clash = new CLashConfig();
  38. m_base_clash->InitClash();
  39. m_base_clash->StartClash();
  40. }
  41. SysMode list;
  42. list.id = 0;
  43. list.name = L"系统代理";
  44. list.proxy_mode = PROXY_MODE::sys_mode;
  45. SysMode list1;
  46. list1.id = 1;
  47. list1.name = L"网卡代理";
  48. list1.proxy_mode = PROXY_MODE::tun_mode;
  49. m_sysmode_vctor.push_back(list);
  50. m_sysmode_vctor.push_back(list1);
  51. RouteMode route;
  52. route.id = 0;
  53. route.name = L"智能";
  54. route.route_mode = ROUT_MODE::cn_mode;
  55. RouteMode route2;
  56. route2.id = 1;
  57. route2.name = L"全局";
  58. route2.route_mode = ROUT_MODE::qg_mode;
  59. m_route_vctor.push_back(route);
  60. m_route_vctor.push_back(route2);
  61. StabtypeControl* tabtype = FindChildByName2<StabtypeControl>(L"sysmode");
  62. if (tabtype)
  63. {
  64. for (auto i = 0; i < m_sysmode_vctor.size(); i++)
  65. {
  66. tabtype->ItemCreateChildren(m_sysmode_vctor[i].id, m_sysmode_vctor[i].name,i == 0 ? true : false );
  67. }
  68. if (m_sysmode_vctor.size() > 0)
  69. {
  70. CApp::getSingletonPtr()->SetSysMode(m_sysmode_vctor[0].proxy_mode);
  71. }
  72. tabtype->GetEventSet()->subscribeEvent(EVT_TABTYPE_CONTROL,
  73. Subscriber(&CMainDlg::OnSysModeType, this));
  74. }
  75. StabtypeControl* routetype = FindChildByName2<StabtypeControl>(L"routemode");
  76. if (routetype)
  77. {
  78. for (auto i = 0; i < m_route_vctor.size(); i++)
  79. {
  80. routetype->ItemCreateChildren(m_route_vctor[i].id, m_route_vctor[i].name, i == 0 ? true : false);
  81. }
  82. if (m_route_vctor.size() > 0)
  83. {
  84. CApp::getSingletonPtr()->SetRouteMode(m_route_vctor[0].route_mode);
  85. }
  86. routetype->GetEventSet()->subscribeEvent(EVT_TABTYPE_CONTROL,
  87. Subscriber(&CMainDlg::OnRouteModeType, this));
  88. }
  89. }
  90. void CMainDlg::OnNode()
  91. {
  92. STabCtrl* m_tab_main = FindChildByName2<STabCtrl>(L"tabmain");
  93. if (m_tab_main)
  94. {
  95. m_tab_main->SetCurSel(1);
  96. m_tab_main->Invalidate();
  97. }
  98. }
  99. void CMainDlg::OnBackNode()
  100. {
  101. STabCtrl* m_tab_main = FindChildByName2<STabCtrl>(L"tabmain");
  102. if (m_tab_main)
  103. {
  104. m_tab_main->SetCurSel(0);
  105. m_tab_main->Invalidate();
  106. }
  107. }
  108. bool CMainDlg::OnSysModeType(SOUI::EventArgs* pEvt)
  109. {
  110. SOUI::EventTabtypeControl* pTestControlEvent =
  111. SOUI::sobj_cast<SOUI::EventTabtypeControl>(pEvt);
  112. if (!pTestControlEvent)
  113. {
  114. return false;
  115. }
  116. CApp::getSingletonPtr()->SetSysMode(m_sysmode_vctor[pTestControlEvent->nIndex].proxy_mode);
  117. return true;
  118. }
  119. bool CMainDlg::OnRouteModeType(SOUI::EventArgs* pEvt)
  120. {
  121. SOUI::EventTabtypeControl* pTestControlEvent =
  122. SOUI::sobj_cast<SOUI::EventTabtypeControl>(pEvt);
  123. if (!pTestControlEvent)
  124. {
  125. return false;
  126. }
  127. CApp::getSingletonPtr()->SetRouteMode(m_route_vctor[pTestControlEvent->nIndex].route_mode);
  128. return true;
  129. }
  130. //TODO:消息映射
  131. void CMainDlg::OnClose()
  132. {
  133. OnMinimize();
  134. }
  135. void CMainDlg::OnMaximize()
  136. {
  137. SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE);
  138. }
  139. void CMainDlg::OnRestore()
  140. {
  141. SendMessage(WM_SYSCOMMAND, SC_RESTORE);
  142. }
  143. void CMainDlg::OnMinimize()
  144. {
  145. SendMessage(WM_SYSCOMMAND, SC_MINIMIZE);
  146. }
  147. void CMainDlg::OnCommand(UINT uNotifyCode, int nID, HWND wndCtl) {
  148. if (uNotifyCode == 0)
  149. {
  150. switch (nID)
  151. {
  152. case 6:
  153. {
  154. //CApp::getSingletonPtr()->Is_out(1);
  155. //if (m_clash)
  156. //{
  157. // m_clash->stop();
  158. // m_clash->ClashStop();
  159. // delete m_clash;
  160. // m_clash = nullptr;
  161. //}
  162. //DisableSystemProxy();
  163. //CApp::getSingletonPtr()->KillProcess(L"syscode.exe");
  164. ////CApp::getSingletonPtr()->Is_out(1);
  165. CSimpleWnd::DestroyWindow();
  166. ////PostMessage(WM_CLOSE);
  167. break;
  168. }
  169. default:
  170. break;
  171. }
  172. }
  173. }