📄 wg__view_8cpp-source.html
字号:
<a name="l00088"></a><a class="code" href="classwGui_1_1CView.html#a4">00088</a> <span class="keywordtype">void</span> CView::AttachMenu(<a class="code" href="classwGui_1_1CMenu.html">CMenu</a>* pMenu)00089 {00090 <span class="keyword">delete</span> <a class="code" href="classwGui_1_1CView.html#n2">m_pMenu</a>;00091 <a class="code" href="classwGui_1_1CView.html#n2">m_pMenu</a> = pMenu;00092 <span class="keywordflow">if</span> (m_pMenu)00093 {00094 <a class="code" href="classwGui_1_1CView.html#n2">m_pMenu</a>-><a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(0, 0, <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() - 1, <a class="code" href="classwGui_1_1CView.html#n2">m_pMenu</a>-><a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>()));00095 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a5">SetTop</a>(<a class="code" href="classwGui_1_1CView.html#n2">m_pMenu</a>-><a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() + 1);00096 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a31">ClipTo</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>);00097 }00098 <span class="keywordflow">else</span>00099 {00100 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a> = <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>;00101 }00102 }00103 00104 <a name="l00105"></a><a class="code" href="classwGui_1_1CView.html#a6">00105</a> <span class="keywordtype">void</span> CView::SetWindowText(<span class="keyword">const</span> std::string& sText)00106 {00107 CWindow::SetWindowText(sText);00108 SDL_WM_SetCaption(<a class="code" href="classwGui_1_1CWindow.html#n0">m_sWindowText</a>.c_str(), <span class="stringliteral">""</span>);00109 }00110 00111 <a name="l00112"></a><a class="code" href="classwGui_1_1CView.html#a7">00112</a> <span class="keywordtype">bool</span> CView::HandleMessage(<a class="code" href="classwGui_1_1CMessage.html">CMessage</a>* pMessage)00113 {00114 <span class="keywordtype">bool</span> bHandled = <span class="keyword">false</span>;00115 00116 <span class="keywordflow">if</span> (pMessage)00117 {00118 <span class="keywordflow">switch</span>(pMessage-><a class="code" href="classwGui_1_1CMessage.html#a2">MessageType</a>())00119 {00120 <span class="keywordflow">case</span> CMessage::APP_PAINT :00121 <span class="keywordflow">if</span> (pMessage-><a class="code" href="classwGui_1_1CMessage.html#a3">Destination</a>() == <span class="keyword">this</span> || pMessage-><a class="code" href="classwGui_1_1CMessage.html#a3">Destination</a>() == 0)00122 {00123 <a class="code" href="classwGui_1_1CWindow.html#a23">StartDrawProc</a>();00124 <span class="comment">// if this is a broadcasted message, don't mark it as handled</span>00125 bHandled = (pMessage-><a class="code" href="classwGui_1_1CMessage.html#a3">Destination</a>() == <span class="keyword">this</span>);00126 }00127 <span class="keywordflow">break</span>;00128 <span class="keywordflow">case</span> CMessage::CTRL_RESIZE:00129 {00130 TPointMessage* pResizeMessage = dynamic_cast<TPointMessage*>(pMessage);00131 <span class="keywordflow">if</span> (pResizeMessage && pResizeMessage->Source() == CApplication::Instance())00132 {00133 Uint32 iFlags = SDL_HWSURFACE | SDL_ANYFORMAT;00134 <span class="keywordflow">if</span>(m_bResizable)00135 {00136 iFlags |= SDL_RESIZABLE;00137 }00138 <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a8">SetBottom</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>() + pResizeMessage->Value().YPos());00139 <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a7">SetRight</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>() + pResizeMessage->Value().XPos());00140 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a> = <a class="code" href="classwGui_1_1CRect.html">CRect</a>(0, 0, <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>());00141 <a class="code" href="classwGui_1_1CWindow.html#n6">m_pSDLSurface</a> = SDL_SetVideoMode(<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>(), DEFAULT_BPP, iFlags);00142 <a class="code" href="classwGui_1_1CWindow.html#a23">StartDrawProc</a>();00143 }00144 <span class="keywordflow">break</span>;00145 }00146 <span class="keywordflow">case</span> CMessage::MOUSE_BUTTONDOWN:00147 {00148 <a class="code" href="classwGui_1_1CMouseMessage.html">CMouseMessage</a>* pMouseMessage = dynamic_cast<CMouseMessage*>(pMessage);00149 <span class="keywordflow">if</span> (pMouseMessage && <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a32">HitTest</a>(pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>) == CRect::RELPOS_INSIDE)00150 {00151 <a class="code" href="classwGui_1_1CWindow.html#a25">OnMouseButtonDown</a>(pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>, pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m2">Button</a>);00152 }00153 <span class="keywordflow">break</span>;00154 }00155 <span class="keywordflow">case</span> CMessage::MOUSE_BUTTONUP:00156 {00157 <a class="code" href="classwGui_1_1CMouseMessage.html">CMouseMessage</a>* pMouseMessage = dynamic_cast<CMouseMessage*>(pMessage);00158 <span class="keywordflow">if</span> (pMouseMessage && <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a32">HitTest</a>(pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>) == CRect::RELPOS_INSIDE)00159 {00160 <a class="code" href="classwGui_1_1CWindow.html#a26">OnMouseButtonUp</a>(pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>, pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m2">Button</a>);00161 }00162 <span class="keywordflow">break</span>;00163 }00164 <span class="keywordflow">default</span> :00165 bHandled = CWindow::HandleMessage(pMessage);00166 <span class="keywordflow">break</span>;00167 }00168 }00169 00170 <span class="keywordflow">return</span> bHandled;00171 }00172 00173 }00174 00175 </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 + -