author | Michael Krelin <hacker@klever.net> | 2006-02-03 01:05:14 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2006-02-03 01:05:14 (UTC) |
commit | 51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d (patch) (unidiff) | |
tree | a6693752131aaa39e56ebbca841179a8df4230ef /PumpKINDlg.cpp | |
parent | a772d9f284b4c2a909c30ea33a132a487d932600 (diff) | |
download | pumpkin-51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d.zip pumpkin-51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d.tar.gz pumpkin-51d59e6f7f45b8f4a60d2933e50bb8ee0c2ea20d.tar.bz2 |
made main window resizable
git-svn-id: http://svn.klever.net/kin/pumpkin/trunk@146 fe716a7a-6dde-0310-88d9-d003556173a8
-rw-r--r-- | PumpKINDlg.cpp | 84 |
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 | |||
@@ -129,6 +129,10 @@ void 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); |
@@ -156,6 +160,7 @@ BEGIN_MESSAGE_MAP(CPumpKINDlg, CDialog) | |||
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) |
@@ -168,7 +173,8 @@ BEGIN_MESSAGE_MAP(CPumpKINDlg, CDialog) | |||
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 |
173 | END_MESSAGE_MAP() | 179 | END_MESSAGE_MAP() |
174 | 180 | ||
@@ -201,7 +207,6 @@ BOOL CPumpKINDlg::OnInitDialog() | |||
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)); |
@@ -225,6 +230,20 @@ CRect listrc; | |||
225 | 230 | ||
226 | SetupButtons(); | 231 | SetupButtons(); |
227 | 232 | ||
233 | CRect wrci, wrco; | ||
234 | GetWindowRect(&wrco); | ||
235 | GetClientRect(&wrci); | ||
236 | CRect 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 | |||
228 | CRect rc, drc; | 247 | CRect rc, drc; |
229 | GetWindowRect(rc); | 248 | GetWindowRect(rc); |
230 | GetDesktopWindow()->GetWindowRect(drc); | 249 | GetDesktopWindow()->GetWindowRect(drc); |
@@ -2077,3 +2096,64 @@ void CPumpKINDlg::LogLine(LPCTSTR str) | |||
2077 | } | 2096 | } |
2078 | } | 2097 | } |
2079 | } | 2098 | } |
2099 | |||
2100 | void 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 | |||
2109 | void 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 | |||
2116 | void 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 | |||
2150 | void 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 | } | ||