summaryrefslogtreecommitdiffabout
path: root/PumpKINDlg.cpp
Unidiff
Diffstat (limited to 'PumpKINDlg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--PumpKINDlg.cpp84
1 files changed, 82 insertions, 2 deletions
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp
index 4cb1633..9786ef0 100644
--- a/PumpKINDlg.cpp
+++ b/PumpKINDlg.cpp
@@ -126,12 +126,16 @@ CPumpKINDlg::CPumpKINDlg(CWnd* pParent /*=NULL*/)
126} 126}
127 127
128void CPumpKINDlg::DoDataExchange(CDataExchange* pDX) 128void CPumpKINDlg::DoDataExchange(CDataExchange* pDX)
129{ 129{
130 CDialog::DoDataExchange(pDX); 130 CDialog::DoDataExchange(pDX);
131 //{{AFX_DATA_MAP(CPumpKINDlg) 131 //{{AFX_DATA_MAP(CPumpKINDlg)
132 DDX_Control(pDX, ID_HELP, m_HelpCtl);
133 DDX_Control(pDX, IDC_PUT, m_PutCtl);
134 DDX_Control(pDX, IDC_GET, m_GetCtl);
135 DDX_Control(pDX, IDC_EXIT, m_ExitCtl);
132 DDX_Control(pDX, IDC_LISTENING, m_ListenCtl); 136 DDX_Control(pDX, IDC_LISTENING, m_ListenCtl);
133 DDX_Control(pDX, IDC_ABORT, m_AbortCtl); 137 DDX_Control(pDX, IDC_ABORT, m_AbortCtl);
134 DDX_Control(pDX, IDC_OPTIONS, m_OptionsCtl); 138 DDX_Control(pDX, IDC_OPTIONS, m_OptionsCtl);
135 DDX_Control(pDX, IDC_LOG, m_Log); 139 DDX_Control(pDX, IDC_LOG, m_Log);
136 DDX_Control(pDX, IDC_CONNECTIONS, m_List); 140 DDX_Control(pDX, IDC_CONNECTIONS, m_List);
137 //}}AFX_DATA_MAP 141 //}}AFX_DATA_MAP
@@ -153,25 +157,27 @@ BEGIN_MESSAGE_MAP(CPumpKINDlg, CDialog)
153 ON_NOTIFY(LVN_DELETEITEM, IDC_CONNECTIONS, OnDeleteitemConnections) 157 ON_NOTIFY(LVN_DELETEITEM, IDC_CONNECTIONS, OnDeleteitemConnections)
154 ON_NOTIFY(LVN_INSERTITEM, IDC_CONNECTIONS, OnInsertitemConnections) 158 ON_NOTIFY(LVN_INSERTITEM, IDC_CONNECTIONS, OnInsertitemConnections)
155 ON_NOTIFY(LVN_ITEMCHANGED, IDC_CONNECTIONS, OnItemchangedConnections) 159 ON_NOTIFY(LVN_ITEMCHANGED, IDC_CONNECTIONS, OnItemchangedConnections)
156 ON_BN_CLICKED(IDC_ABORT, OnAbort) 160 ON_BN_CLICKED(IDC_ABORT, OnAbort)
157 ON_WM_CLOSE() 161 ON_WM_CLOSE()
158 ON_COMMAND(ID_TRAY_SHOWPUMPKINWINDOW, OnTrayShowpumpkinwindow) 162 ON_COMMAND(ID_TRAY_SHOWPUMPKINWINDOW, OnTrayShowpumpkinwindow)
163 ON_COMMAND(ID_TRAY_LISTEN, OnTrayListen)
159 ON_COMMAND(ID_TRAY_EXIT, OnTrayExit) 164 ON_COMMAND(ID_TRAY_EXIT, OnTrayExit)
160 ON_COMMAND(ID_TRAY_ABOUTPUMPKIN, OnTrayAboutpumpkin) 165 ON_COMMAND(ID_TRAY_ABOUTPUMPKIN, OnTrayAboutpumpkin)
161 ON_COMMAND(ID_TRAY_FETCHFILE, OnTrayFetchfile) 166 ON_COMMAND(ID_TRAY_FETCHFILE, OnTrayFetchfile)
162 ON_COMMAND(ID_TRAY_HELP, OnTrayHelp) 167 ON_COMMAND(ID_TRAY_HELP, OnTrayHelp)
163 ON_COMMAND(ID_TRAY_OPTIONS, OnTrayOptions) 168 ON_COMMAND(ID_TRAY_OPTIONS, OnTrayOptions)
164 ON_COMMAND(ID_TRAY_SENDFILE, OnTraySendfile) 169 ON_COMMAND(ID_TRAY_SENDFILE, OnTraySendfile)
165 ON_WM_WINDOWPOSCHANGING() 170 ON_WM_WINDOWPOSCHANGING()
166 ON_LBN_SELCHANGE(IDC_LOG, OnSelchangeLog) 171 ON_LBN_SELCHANGE(IDC_LOG, OnSelchangeLog)
167 ON_COMMAND(ID_TRAY_OPENFILESFOLDER, OnTrayOpenfilesfolder) 172 ON_COMMAND(ID_TRAY_OPENFILESFOLDER, OnTrayOpenfilesfolder)
168 ON_WM_DROPFILES() 173 ON_WM_DROPFILES()
169 ON_BN_CLICKED(ID_HELP, OnHelp) 174 ON_BN_CLICKED(ID_HELP, OnHelp)
170 ON_BN_CLICKED(IDC_LISTENING, OnListening) 175 ON_BN_CLICKED(IDC_LISTENING, OnListening)
171 ON_COMMAND(ID_TRAY_LISTEN, OnTrayListen) 176 ON_WM_GETMINMAXINFO()
177 ON_WM_SIZE()
172 //}}AFX_MSG_MAP 178 //}}AFX_MSG_MAP
173END_MESSAGE_MAP() 179END_MESSAGE_MAP()
174 180
175///////////////////////////////////////////////////////////////////////////// 181/////////////////////////////////////////////////////////////////////////////
176// CPumpKINDlg message handlers 182// CPumpKINDlg message handlers
177 183
@@ -198,13 +204,12 @@ BOOL CPumpKINDlg::OnInitDialog()
198 // when the application's main window is not a dialog 204 // when the application's main window is not a dialog
199 SetIcon(m_hIcon, TRUE); // Set big icon 205 SetIcon(m_hIcon, TRUE); // Set big icon
200 SetIcon(m_hIcon, FALSE); // Set small icon 206 SetIcon(m_hIcon, FALSE); // Set small icon
201 207
202 VERIFY(m_Retrier->Create(NULL,"PumpKIN-Retrier",WS_CHILD,CRect(0,0,0,0),this,0)); 208 VERIFY(m_Retrier->Create(NULL,"PumpKIN-Retrier",WS_CHILD,CRect(0,0,0,0),this,0));
203 209
204
205 m_Images.Create(16,16,TRUE,2,1); 210 m_Images.Create(16,16,TRUE,2,1);
206 m_iRRQ = m_Images.Add(AfxGetApp()->LoadIcon(IDI_RRQ)); 211 m_iRRQ = m_Images.Add(AfxGetApp()->LoadIcon(IDI_RRQ));
207 m_iWRQ = m_Images.Add(AfxGetApp()->LoadIcon(IDI_WRQ)); 212 m_iWRQ = m_Images.Add(AfxGetApp()->LoadIcon(IDI_WRQ));
208 ASSERT(m_iRRQ>=0); 213 ASSERT(m_iRRQ>=0);
209 ASSERT(m_iWRQ>=0); 214 ASSERT(m_iWRQ>=0);
210 m_List.SetImageList(&m_Images,LVSIL_NORMAL); 215 m_List.SetImageList(&m_Images,LVSIL_NORMAL);
@@ -222,12 +227,26 @@ CRect listrc;
222 m_List.InsertColumn(4,"tsize",LVCFMT_RIGHT,listrc.Width()/7,subitemTSize); 227 m_List.InsertColumn(4,"tsize",LVCFMT_RIGHT,listrc.Width()/7,subitemTSize);
223 228
224 LogLine(IDS_LOG_START); 229 LogLine(IDS_LOG_START);
225 230
226 SetupButtons(); 231 SetupButtons();
227 232
233CRect wrci, wrco;
234 GetWindowRect(&wrco);
235 GetClientRect(&wrci);
236CRect brc;
237 m_GetCtl.GetWindowRect(&brc); ScreenToClient(&brc);
238 m_rightGapButtons = wrci.right-brc.right;
239 m_List.GetWindowRect(&brc); ScreenToClient(&brc);
240 m_rightGapList = wrci.right-brc.right;
241 m_ListenCtl.GetWindowRect(&brc); ScreenToClient(&brc);
242 m_bottomGapListen = wrci.bottom-brc.bottom;
243 m_Log.GetWindowRect(&brc);ScreenToClient(&brc);
244 m_bottomGapLog = wrci.bottom-brc.bottom;
245 m_MinSize.cx = wrco.Width(); m_MinSize.cy=wrco.Height();
246
228CRect rc, drc; 247CRect rc, drc;
229 GetWindowRect(rc); 248 GetWindowRect(rc);
230 GetDesktopWindow()->GetWindowRect(drc); 249 GetDesktopWindow()->GetWindowRect(drc);
231 SetWindowPos(NULL,drc.right-6-rc.Width(),6,0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER); 250 SetWindowPos(NULL,drc.right-6-rc.Width(),6,0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER);
232 251
233 if(m_bShown) 252 if(m_bShown)
@@ -2074,6 +2093,67 @@ void CPumpKINDlg::LogLine(LPCTSTR str)
2074 LogLineToScreen(tmp); 2093 LogLineToScreen(tmp);
2075 m_lastlogerr=m_LogFile; 2094 m_lastlogerr=m_LogFile;
2076 } 2095 }
2077 } 2096 }
2078 } 2097 }
2079} 2098}
2099
2100void CPumpKINDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
2101{
2102 CDialog::OnGetMinMaxInfo(lpMMI);
2103 if(m_MinSize.cx>0 && m_MinSize.cy>0){
2104 lpMMI->ptMinTrackSize.x = m_MinSize.cx;
2105 lpMMI->ptMinTrackSize.y = m_MinSize.cy;
2106 }
2107}
2108
2109void CPumpKINDlg::OnSize(UINT nType, int cx, int cy)
2110{
2111 CDialog::OnSize(nType, cx, cy);
2112 if(nType==SIZE_RESTORED)
2113 RecalcLayout(cx,cy);
2114}
2115
2116void CPumpKINDlg::RecalcLayout(int,int)
2117{
2118 CRect wrc;
2119 GetClientRect(&wrc);
2120 AdjustButton(m_GetCtl,wrc);
2121 AdjustButton(m_PutCtl,wrc);
2122 AdjustButton(m_AbortCtl,wrc);
2123 AdjustButton(m_HelpCtl,wrc);
2124 AdjustButton(m_ExitCtl,wrc);
2125 AdjustButton(m_OptionsCtl,wrc);
2126 CRect brc;
2127 m_List.GetWindowRect(&brc); ScreenToClient(&brc);
2128 m_List.SetWindowPos(
2129 0,
2130 brc.left, brc.top,
2131 wrc.right-m_rightGapList-brc.left, brc.bottom-brc.top,
2132 SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER|SWP_NOCOPYBITS );
2133 m_Log.GetWindowRect(&brc); ScreenToClient(&brc);
2134 m_Log.SetWindowPos(
2135 0,
2136 brc.left, brc.top,
2137 wrc.right-m_rightGapButtons-brc.left, wrc.bottom-m_bottomGapLog-brc.top,
2138 SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOZORDER|SWP_NOCOPYBITS );
2139 m_ListenCtl.GetWindowRect(&brc); ScreenToClient(&brc);
2140 m_ListenCtl.SetWindowPos(
2141 0,
2142 wrc.right-brc.Width()-m_rightGapButtons, wrc.bottom-brc.Height()-m_bottomGapListen,
2143 0,0,
2144 SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS );
2145 int i = m_Log.GetCount();
2146 if(i!=LB_ERR)
2147 m_Log.SetCurSel(i-1);
2148}
2149
2150void CPumpKINDlg::AdjustButton(CWnd& w,CRect& wrc)
2151{
2152 CRect brc;
2153 w.GetWindowRect(&brc); ScreenToClient(&brc);
2154 w.SetWindowPos(
2155 0,
2156 wrc.right-brc.Width()-m_rightGapButtons, brc.top,
2157 0, 0,
2158 SWP_NOACTIVATE|SWP_NOOWNERZORDER|SWP_NOSIZE|SWP_NOZORDER|SWP_NOCOPYBITS );
2159}