📄 wg__scrollbar_8cpp-source.html
字号:
00138 Painter.<a class="code" href="classwGui_1_1CPainter.html#a4">DrawVLine</a>(SubRect.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>(), SubRect.<a class="code" href="classwGui_1_1CRect.html#a12">Bottom</a>(), SubRect.<a class="code" href="classwGui_1_1CRect.html#a11">Right</a>(), COLOR_DARKGRAY);00139 }00140 00141 <a name="l00142"></a><a class="code" href="classwGui_1_1CScrollBar.html#a8">00142</a> <span class="keywordtype">void</span> CScrollBar::SetWindowRect(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CRect.html">CRect</a>& WindowRect)00143 {00144 CWindow::SetWindowRect(WindowRect);00145 <span class="comment">// Resposition the thumb rect and the button controls</span>00146 <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>(m_iPosition);00147 <span class="keywordflow">switch</span> (m_ScrollBarType)00148 {00149 <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s0">VERTICAL</a>:00150 {00151 m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a6">SetLeft</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>());00152 m_ThumbRect.<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#a11">Right</a>());00153 m_pBtnUpLeft-><a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a13">TopLeft</a>(),00154 <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a11">Right</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>())));00155 m_pBtnDownRight-><a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(00156 <a class="code" href="classwGui_1_1CPoint.html">CPoint</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#a12">Bottom</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#a16">BottomRight</a>()));00157 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a5">SetTop</a>(m_pBtnUpLeft-><a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() + 1);00158 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</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#a24">Height</a>() - m_pBtnUpLeft-><a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() - 1);00159 <span class="keywordflow">break</span>;00160 }00161 <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s1">HORIZONTAL</a>:00162 {00163 m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a5">SetTop</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>());00164 m_ThumbRect.<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#a12">Bottom</a>());00165 m_pBtnUpLeft-><a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a13">TopLeft</a>(),00166 <a class="code" href="classwGui_1_1CPoint.html">CPoint</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#a24">Height</a>(), <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a12">Bottom</a>())));00167 m_pBtnDownRight-><a class="code" href="classwGui_1_1CWindow.html#a2">SetWindowRect</a>(<a class="code" href="classwGui_1_1CRect.html">CRect</a>(00168 <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>(<a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a11">Right</a>() - <a class="code" href="classwGui_1_1CWindow.html#n1">m_WindowRect</a>.<a class="code" href="classwGui_1_1CRect.html#a24">Height</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#a16">BottomRight</a>()));00169 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</a>.<a class="code" href="classwGui_1_1CRect.html#a6">SetLeft</a>(m_pBtnUpLeft-><a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() + 1);00170 <a class="code" href="classwGui_1_1CWindow.html#n3">m_ClientRect</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#a23">Width</a>() - m_pBtnUpLeft-><a class="code" href="classwGui_1_1CWindow.html#a3">GetWindowRect</a>().<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() - 1);00171 <span class="keywordflow">break</span>;00172 }00173 <span class="keywordflow">default</span>:00174 <span class="keywordflow">throw</span>(<a class="code" href="classwGui_1_1Wg__Ex__App.html">Wg_Ex_App</a>(<span class="stringliteral">"CScrollBar::SetWindowRect: Unrecognized ScrollBar Type."</span>));00175 <span class="keywordflow">break</span>;00176 }00177 }00178 00179 <a name="l00180"></a><a class="code" href="classwGui_1_1CScrollBar.html#a9">00180</a> <span class="keywordtype">void</span> CScrollBar::MoveWindow(<span class="keyword">const</span> <a class="code" href="classwGui_1_1CPoint.html">CPoint</a>& MoveDistance)00181 {00182 CWindow::MoveWindow(MoveDistance);00183 m_ThumbRect = m_ThumbRect + MoveDistance;00184 }00185 00186 <a name="l00187"></a><a class="code" href="classwGui_1_1CScrollBar.html#a10">00187</a> <span class="keywordtype">bool</span> CScrollBar::OnMouseButtonDown(<a class="code" href="classwGui_1_1CPoint.html">CPoint</a> Point, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Button)00188 {00189 <span class="keywordtype">bool</span> bResult = <span class="keyword">false</span>;00190 00191 <span class="keywordflow">if</span> (! CWindow::OnMouseButtonDown(Point, Button) && <a class="code" href="classwGui_1_1CWindow.html#n7">m_bVisible</a> && (m_ThumbRect.<a class="code" href="classwGui_1_1CRect.html#a32">HitTest</a>(Point) == CRect::RELPOS_INSIDE) &&00192 (Button == CMouseMessage::LEFT))00193 {00194 m_bDragging = <span class="keyword">true</span>;00195 bResult = <span class="keyword">true</span>;00196 }00197 00198 <span class="keywordflow">return</span> bResult;00199 }00200 00201 <a name="l00202"></a><a class="code" href="classwGui_1_1CScrollBar.html#a11">00202</a> <span class="keywordtype">bool</span> CScrollBar::HandleMessage(<a class="code" href="classwGui_1_1CMessage.html">CMessage</a>* pMessage)00203 {00204 <span class="keywordtype">bool</span> bHandled = <span class="keyword">false</span>;00205 00206 <span class="keywordflow">if</span> (pMessage)00207 {00208 <span class="keywordflow">switch</span>(pMessage-><a class="code" href="classwGui_1_1CMessage.html#a2">MessageType</a>())00209 {00210 <span class="keywordflow">case</span> CMessage::MOUSE_BUTTONUP:00211 {00212 <a class="code" href="classwGui_1_1CMouseMessage.html">CMouseMessage</a>* pMouseMessage = dynamic_cast<CMouseMessage*>(pMessage);00213 <span class="keywordflow">if</span> (pMouseMessage && m_bDragging && pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m2">Button</a> == CMouseMessage::LEFT)00214 {00215 m_bDragging = <span class="keyword">false</span>;00216 CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> TIntMessage(CMessage::CTRL_VALUECHANGE, <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>, <span class="keyword">this</span>, m_iPosition));00217 bHandled = <span class="keyword">true</span>;00218 }00219 <span class="keywordflow">break</span>;00220 }00221 <span class="keywordflow">case</span> CMessage::MOUSE_MOVE:00222 <span class="keywordflow">if</span> (m_bDragging)00223 {00224 <a class="code" href="classwGui_1_1CMouseMessage.html">CMouseMessage</a>* pMouseMessage = dynamic_cast<CMouseMessage*>(pMessage);00225 <span class="keywordflow">if</span> (pMouseMessage)00226 {00227 <span class="keywordtype">int</span> iOldPosition = m_iPosition;00228 <span class="keywordflow">switch</span> (m_ScrollBarType)00229 {00230 <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s0">VERTICAL</a>:00231 <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>((pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>.<a class="code" href="classwGui_1_1CPoint.html#a7">YPos</a>() - <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a9">Top</a>()) * (m_iMax - m_iMin) / <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a24">Height</a>() + m_iMin);00232 <span class="keywordflow">break</span>;00233 <span class="keywordflow">case</span> <a class="code" href="classwGui_1_1CScrollBar.html#s2s1">HORIZONTAL</a>:00234 <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>((pMouseMessage-><a class="code" href="classwGui_1_1CMouseMessage.html#m0">Point</a>.<a class="code" href="classwGui_1_1CPoint.html#a6">XPos</a>() - <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a10">Left</a>()) * (m_iMax - m_iMin) / <a class="code" href="classwGui_1_1CWindow.html#a5">GetClientRect</a>().<a class="code" href="classwGui_1_1CRect.html#a23">Width</a>() + m_iMin);00235 <span class="keywordflow">break</span>;00236 <span class="keywordflow">default</span>:00237 <span class="keywordflow">throw</span>(<a class="code" href="classwGui_1_1Wg__Ex__App.html">Wg_Ex_App</a>(<span class="stringliteral">"CScrollBar::HandleMessage: Unrecognized ScrollBar Type."</span>));00238 <span class="keywordflow">break</span>;00239 }00240 <span class="keywordflow">if</span> (iOldPosition != m_iPosition)00241 {00242 CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> TIntMessage(CMessage::CTRL_VALUECHANGING, <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>, <span class="keyword">this</span>, m_iPosition));00243 }00244 }00245 }00246 <span class="keywordflow">break</span>;00247 <span class="keywordflow">case</span> CMessage::CTRL_LCLICK:00248 {00249 <span class="keywordflow">if</span> (pMessage-><a class="code" href="classwGui_1_1CMessage.html#a3">Destination</a>() == <span class="keyword">this</span>)00250 {00251 <span class="keywordflow">if</span> (pMessage-><a class="code" href="classwGui_1_1CMessage.html#a4">Source</a>() == m_pBtnUpLeft)00252 {00253 <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>(m_iPosition - 1);00254 bHandled = <span class="keyword">true</span>;00255 }00256 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pMessage-><a class="code" href="classwGui_1_1CMessage.html#a4">Source</a>() == m_pBtnDownRight)00257 {00258 <a class="code" href="classwGui_1_1CScrollBar.html#a5">SetPosition</a>(m_iPosition + 1);00259 bHandled = <span class="keyword">true</span>;00260 }00261 CMessageServer::Instance().QueueMessage(<span class="keyword">new</span> TIntMessage(CMessage::CTRL_VALUECHANGE, <a class="code" href="classwGui_1_1CWindow.html#n4">m_pParentWindow</a>, <span class="keyword">this</span>, m_iPosition));00262 }00263 <span class="keywordflow">break</span>;00264 }00265 <span class="keywordflow">default</span> :00266 bHandled = CWindow::HandleMessage(pMessage);00267 <span class="keywordflow">break</span>;00268 }00269 }00270 00271 <span class="keywordflow">return</span> bHandled;00272 }00273 00274 }00275 </pre></div><hr><address style="align: right;"><small>Generated on Sat Oct 25 12:43:25 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 + -