📄 wg__window_8cpp-source.html
字号:
00158 {00159 CApplication::Instance()->SetKeyFocus(0);00160 }00161 }00162 CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> <a class="code" href="classwGui_1_1CMessage.html">CMessage</a>(CMessage::APP_PAINT, <a class="code" href="classwGui_1_1CWindow.html#a8">GetAncestor</a>(<a class="code" href="classwGui_1_1CWindow.html#s2s0">PARENT</a>), <span class="keyword">this</span>));00163 }00164 00165 <a name="l00166"></a><a class="code" href="classwGui_1_1CWindow.html#a15">00166</a> <span class="keywordtype">void</span> CWindow::SetWindowText(<span class="keyword">const</span> std::string& sText)00167 {00168 <a class="code" href="classwGui_1_1CWindow.html#n0">m_sWindowText</a> = sText;00169 <a class="code" href="classwGui_1_1CWindow.html#a23">StartDrawProc</a>();00170 }00171 00172 <a name="l00173"></a><a class="code" href="classwGui_1_1CWindow.html#a19">00173</a> <span class="keywordtype">void</span> CWindow::DrawBG(<span class="keywordtype">void</span>)<span class="keyword"> const</span>00174 <span class="keyword"></span>{00175 <a class="code" href="classwGui_1_1CPainter.html">CPainter</a> Painter(<a class="code" href="classwGui_1_1CWindow.html#n6">m_pSDLSurface</a>);00176 Painter.<a class="code" href="classwGui_1_1CPainter.html#a5">DrawRect</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>, <span class="keyword">true</span>, <a class="code" href="classwGui_1_1CWindow.html#n2">m_BGColor</a>, <a class="code" href="classwGui_1_1CWindow.html#n2">m_BGColor</a>);00177 }00178 00179 <a name="l00180"></a><a class="code" href="classwGui_1_1CWindow.html#a20">00180</a> <span class="keywordtype">void</span> CWindow::Draw(<span class="keywordtype">void</span>)<span class="keyword"> const</span>00181 <span class="keyword"></span>{00182 00183 }00184 00185 <a name="l00186"></a><a class="code" href="classwGui_1_1CWindow.html#a21">00186</a> <span class="keywordtype">void</span> CWindow::DrawChildren(<span class="keywordtype">void</span>)<span class="keyword"> const</span>00187 <span class="keyword"></span>{00188 <span class="keywordflow">for</span> (std::list<CWindow*>::const_iterator iter = <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.begin(); iter != <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.end(); ++iter)00189 {00190 (*iter)->DrawProc();00191 }00192 }00193 00194 <a name="l00195"></a><a class="code" href="classwGui_1_1CWindow.html#a22">00195</a> <span class="keywordtype">void</span> CWindow::DrawPostChild(<span class="keywordtype">void</span>)<span class="keyword"> const</span>00196 <span class="keyword"></span>{00197 00198 }00199 00200 <a name="l00201"></a><a class="code" href="classwGui_1_1CWindow.html#a18">00201</a> <span class="keywordtype">void</span> CWindow::DrawProc(<span class="keywordtype">void</span>)<span class="keyword"> const</span>00202 <span class="keyword"></span>{00203 <span class="keywordflow">if</span> (m_bVisible)00204 {00205 <a class="code" href="classwGui_1_1CWindow.html#a19">DrawBG</a>();00206 <a class="code" href="classwGui_1_1CWindow.html#a20">Draw</a>();00207 <a class="code" href="classwGui_1_1CWindow.html#a21">DrawChildren</a>();00208 <a class="code" href="classwGui_1_1CWindow.html#a22">DrawPostChild</a>();00209 }00210 }00211 00212 <a name="l00213"></a><a class="code" href="classwGui_1_1CWindow.html#a23">00213</a> <span class="keywordtype">void</span> CWindow::StartDrawProc(<span class="keywordtype">void</span>)<span class="keyword"> const</span>00214 <span class="keyword"></span>{00215 <span class="keywordflow">if</span> (m_bVisible)00216 {00217 <a class="code" href="classwGui_1_1CWindow.html#a18">DrawProc</a>();00218 SDL_UpdateRect(<a class="code" href="classwGui_1_1CWindow.html#n6">m_pSDLSurface</a>, <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>());00219 }00220 }00221 00222 <a name="l00223"></a><a class="code" href="classwGui_1_1CWindow.html#a24">00223</a> <span class="keywordtype">void</span> CWindow::SetNewParent(<a class="code" href="classwGui_1_1CWindow.html">CWindow</a>* pNewParent)00224 {00225 <span class="keywordflow">if</span> (m_pParentWindow)00226 {00227 <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>-><a class="code" href="classwGui_1_1CWindow.html#b1">DeregisterChildWindow</a>(<span class="keyword">this</span>);00228 }00229 <span class="keywordflow">if</span> (pNewParent)00230 {00231 pNewParent-><a class="code" href="classwGui_1_1CWindow.html#b0">RegisterChildWindow</a>(<span class="keyword">this</span>);00232 <a class="code" href="classwGui_1_1CWindow.html#n6">m_pSDLSurface</a> = pNewParent-><a class="code" href="classwGui_1_1CWindow.html#a8">GetAncestor</a>(<a class="code" href="classwGui_1_1CWindow.html#s2s1">ROOT</a>)-><a class="code" href="classwGui_1_1CWindow.html#n6">m_pSDLSurface</a>;00233 }00234 <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a> = pNewParent;00235 }00236 00237 <a name="l00238"></a><a class="code" href="classwGui_1_1CWindow.html#a25">00238</a> <span class="keywordtype">bool</span> CWindow::OnMouseButtonDown(<a class="code" href="classwGui_1_1CPoint.html">CPoint</a> Point, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Button)00239 {00240 <span class="keywordtype">bool</span> bResult = <span class="keyword">false</span>;00241 00242 <span class="keywordflow">if</span> (<a class="code" href="classwGui_1_1CWindow.html#n7">m_bVisible</a> && (<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a32">HitTest</a>(Point) == CRect::RELPOS_INSIDE))00243 {00244 <span class="keywordflow">for</span> (std::list<CWindow*>::reverse_iterator iter = <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.rbegin(); iter != <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.rend(); ++iter)00245 {00246 bResult = (*iter)->OnMouseButtonDown(Point, Button);00247 <span class="keywordflow">if</span> (bResult)00248 {00249 <span class="keywordflow">break</span>;00250 }00251 }00252 }00253 00254 <span class="keywordflow">return</span> bResult;00255 }00256 00257 <a name="l00258"></a><a class="code" href="classwGui_1_1CWindow.html#a26">00258</a> <span class="keywordtype">bool</span> CWindow::OnMouseButtonUp(<a class="code" href="classwGui_1_1CPoint.html">CPoint</a> Point, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Button)00259 {00260 <span class="keywordtype">bool</span> bResult = <span class="keyword">false</span>;00261 00262 <span class="keywordflow">if</span> (<a class="code" href="classwGui_1_1CWindow.html#n7">m_bVisible</a> && (<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a32">HitTest</a>(Point) == CRect::RELPOS_INSIDE))00263 {00264 <span class="keywordflow">for</span> (std::list<CWindow*>::reverse_iterator iter = <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.rbegin(); iter != <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.rend(); ++iter)00265 {00266 bResult = (*iter)->OnMouseButtonUp(Point, Button);00267 <span class="keywordflow">if</span> (bResult)00268 {00269 <span class="keywordflow">break</span>;00270 }00271 }00272 }00273 00274 <span class="keywordflow">return</span> bResult;00275 }00276 00277 <a name="l00278"></a><a class="code" href="classwGui_1_1CWindow.html#b0">00278</a> <span class="keywordtype">void</span> CWindow::RegisterChildWindow(<a class="code" href="classwGui_1_1CWindow.html">CWindow</a>* pWindow)00279 {00280 <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.push_back(pWindow);00281 }00282 00283 <a name="l00284"></a><a class="code" href="classwGui_1_1CWindow.html#b1">00284</a> <span class="keywordtype">void</span> CWindow::DeregisterChildWindow(<a class="code" href="classwGui_1_1CWindow.html">CWindow</a>* pWindow)00285 {00286 <a class="code" href="classwGui_1_1CWindow.html#n5">m_ChildWindows</a>.remove(pWindow);00287 }00288 00289 <a name="l00290"></a><a class="code" href="classwGui_1_1CWindow.html#a27">00290</a> <span class="keywordtype">bool</span> CWindow::HandleMessage(<a class="code" href="classwGui_1_1CMessage.html">CMessage</a>* pMessage)00291 {00292 <span class="keywordtype">bool</span> bHandled = <span class="keyword">false</span>;00293 00294 <span class="keywordflow">if</span> (pMessage)00295 {00296 <span class="keywordflow">switch</span>(pMessage-><a class="code" href="classwGui_1_1CMessage.html#a2">MessageType</a>())00297 {00298 <span class="keywordflow">case</span> CMessage::APP_PAINT :00299 <span class="keywordflow">if</span> (pMessage-><a class="code" href="classwGui_1_1CMessage.html#a3">Destination</a>() == <span class="keyword">this</span>)00300 {00301 <a class="code" href="classwGui_1_1CWindow.html#a23">StartDrawProc</a>();00302 bHandled = <span class="keyword">true</span>;00303 }00304 <span class="keywordflow">break</span>;00305 <span class="keywordflow">default</span> :00306 <span class="keywordflow">break</span>;00307 }00308 }00309 00310 <span class="keywordflow">return</span> bHandled;00311 }00312 00313 00314 }</pre></div><hr><address style="align: right;"><small>Generated on Sat Oct 25 12:43:26 2003 for wGui by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -