⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minigui 体系结构之四 图形抽象层和输入抽象层及 native engine 的实现(一).htm

📁 minigui--面向实时嵌入式系统的图形用户界面。此文档介绍了miniguide体系结构。
💻 HTM
📖 第 1 页 / 共 4 页
字号:
 310                     }
 311                     caps_off = 1 - make;
 312                 break;
 313
 314                 case SCANCODE_NUMLOCK:
 315                     if (make && num_off) {
 316                         numlock = 1 - numlock;
 317                         leds = slock | (numlock << 1) | (capslock << 2);
 318                         IAL_SetLeds (leds);
 319                         status = (DWORD)leds << 16;
 320                     }
 321                     num_off = 1 - make;
 322                 break;
 323
 324                 case SCANCODE_SCROLLLOCK:
 325                     if (make & slock_off) {
 326                         slock = 1 - slock;
 327                         leds = slock | (numlock << 1) | (capslock << 2);
 328                         IAL_SetLeds (leds);
 329                         status = (DWORD)leds << 16;
 330                     }
 331                     slock_off = 1 - make;
 332                     break;
 333
 334                 case SCANCODE_LEFTCONTROL:
 335                     control1 = make;
 336                     break;
 337
 338                 case SCANCODE_RIGHTCONTROL:
 339                     control2 = make;
 340                     break;
 341
 342                 case SCANCODE_LEFTSHIFT:
 343                     shift1 = make;
 344                     break;
 345
 346                 case SCANCODE_RIGHTSHIFT:
 347                     shift2 = make;
 348                     break;
 349
 350                 case SCANCODE_LEFTALT:
 351                     alt1 = make;
 352                     break;
 353
 354                 case SCANCODE_RIGHTALT:
 355                     alt2 = make;
 356                     break;
 357
 358             }
 359
 360             status &= 0xFFFFF0C0;
 361
 362             status |= (DWORD)((capslock << 8) |
 363                              (numlock << 7)   |
 364                              (slock << 6)     |
 365                              (control1 << 5)  |
 366                              (control2 << 4)  |
 367                              (alt1 << 3)      |
 368                              (alt2 << 2)      |
 369                              (shift1 << 1)    |
 370                              (shift2));
 371
 372             // Mouse button status
 373             if (oldbutton & IAL_MOUSE_LEFTBUTTON)
 374                 status |= 0x00000100;
 375             else if (oldbutton & IAL_MOUSE_RIGHTBUTTON)
 376                 status |= 0x00000200;
 377         }
 378         ke->status = status;
 379         SHAREDRES_SHIFTSTATUS = status;
 380         memcpy (oldkeystate, keystate, NR_KEYS);
 381         memcpy (&old_lwe, lwe, sizeof (LWEVENT));
 382         return 1;
 383     }
 384
 385     old_lwe.type = 0;
 386     return 0;
 387
 388 mouseret:
 389     status &= 0xFFFFF0FF;
 390     oldbutton = button;
 391     if (oldbutton & IAL_MOUSE_LEFTBUTTON)
 392         status |= 0x00000100;
 393     if (oldbutton & IAL_MOUSE_RIGHTBUTTON)
 394         status |= 0x00000200;
 395     me->status = status;
 396     SHAREDRES_SHIFTSTATUS = status;
 397     memcpy (&old_lwe, lwe, sizeof (LWEVENT));
 398     return 1;
 399 }
#endif
</PRE></TD></TR></TBODY></TABLE>
      <P>从这段代码中可以看出,对定点设备来讲,比如鼠标或者触摸屏,MiniGUI 
      能够自动识别移动信息,也能够自动识别用户的单击和双击事件。这样,底层引擎只需提供位置信息和当前的按键状态信息就可以了。对类似键盘的东西,MiniGUI 
      也能够自动进行重复处理。当一个按键按下一段时间之后,MiniGUI 将连续发送该按键的消息给上层处理。对特定的嵌入式系统来讲,可以将某些按键映射为 
      PC 的某些键盘键,上层只需处理这些键盘键消息的按下和释放即可。这样,嵌入式系统上的某些键的功能就可以在 PC 上进行模拟了。</P>
      <P align=right><I><B>(待续)</B></I></P><A id=resources name=resources></A>
      <P><STRONG class=subhead>资源</STRONG></P>
      <UL>
        <LI><B>Linux 图形相关资源</B> 
        <LI style="LIST-STYLE-TYPE: none">
        <UL>
          <LI><A href="http://www.ggi-project.org/">GGI</A> - The GGI Project 
          <LI><A href="http://www.svgalib.org/">svgalib</A> - The Old Linux 
          Console Graphics Library 
          <LI><A href="http://www.devolution.com/~slouken/SDL/">SDL</A> - Simple 
          DirectMedia Layer - linux, BeOS, DirectX ... <FONT color=#ff0000>very 
          COOL</FONT> 
          <LI><A href="http://www.hut.fi/~hmallat/xfb/">xfb</A> - Linux 
          Framebuffer Accelerator 
          <LI><A href="http://www.tutok.sk/fastgl/">OpenGUI</A> - OpenGUI is a 
          high-Level C/C++ graphics &amp; windowing library built upon a fast, 
          low-level x86 asm graphics kernel. </LI></UL>
        <LI><B>MiniGUI 资源</B> 
        <LI style="LIST-STYLE-TYPE: none">
        <UL>
          <LI><A href="http://www.minigui.org/">MiniGUI 主页</A> 
          <LI><A href="ftp://ftp.minigui.org/pub/minigui">MiniGUI FTP 站点</A> 
          </LI></UL>
        <LI><B>MiniGUI 邮件列表</B> 
        <LI style="LIST-STYLE-TYPE: none">
        <UL>
          <LI>发信:<A 
          href="mailto:minigui-devel@egroups.com">minigui-devel@egroups.com</A> 
          <LI>订阅:<A 
          href="mailto:minigui-devel-subscribe@egroups.com">minigui-devel-subscribe@egroups.com</A> 

          <LI>解除订阅:<A 
          href="mailto:minigui-devel-unsubscribe@egroups.com">minigui-devel-unsubscribe@egroups.com</A> 
          </LI></UL></LI></UL><A id=author name=author></A>
      <P><STRONG class=subhead>关于作者</STRONG><BR>魏永明(ymwei@minigui.org),男,27 
      岁,工学硕士,现任蓝点软件(深圳)有限公司北京研发中心技术主管。国内最有影响的自由软件项目之一-- MiniGUI 
      的创始人以及主要开发人员。著有《Linux 实用教程》与《学用 Linux 与 Windows NT》,并主持翻译了《Red Hat Linux 
      奥秘》、《Linux 编程宝典》 等大量优秀的 Linux 技术著作。是清华大学 AKA Linux 编程技术系列讲座的主讲人。</P><BR><!--end of paper--></TD>
    <TD vAlign=top width=5><IMG height=1 alt="" 
      src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
    width=5></TD></TR>
  <TR vAlign=top height=5>
    <TD vAlign=top width=5></TD>
    <TD vAlign=top width=5><!-- rate article form -->
      <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
        <TBODY>
        <TR>
          <TD width="100%" height=1><SPACER height="1" type="block" /></TD></TR>
        <TR>
          <TD width="100%" bgColor=#cc6633 height=3><IMG height=3 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=150></TD></TR>
        <TR>
          <TD width="100%" bgColor=#333333 height=1><IMG height=1 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=150></TD></TR>
        <TR>
          <TD width="100%" bgColor=#000000 height=1><IMG height=1 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=150></TD></TR>
        <TR>
          <TD width="100%" bgColor=#ffffff height=5><IMG height=5 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=150></TD></TR>
        <TR vAlign=top>
          <TD>
            <FORM 
            action=/developerWorks/cn/cnratings.nsf/RateArticle?CreateDocument 
            method=post><INPUT type=hidden 
            value="MiniGUI 体系结构之四图形抽象层和输入抽象层及 Native Engine 的实现(一)" 
            name=ArticleTitle> <INPUT type=hidden value=Linux name=Zone> <INPUT 
            type=hidden value=/developerWorks/cn/thankyou/feedback-linux.html 
            name=RedirectURL> <FONT face="HELVETICA, HELV, ARIAL" size=-1><B><A 
            id=rating name=rating>您对这篇文章的看法如何?</A></B></FONT> 
            <P></P>
            <TABLE cellSpacing=0 cellPadding=0 width=570 border=0>
              <TBODY>
              <TR vAlign=top>
                <TD><INPUT type=radio value=5 name=Rating><FONT 
                  face="HELVETICA, HELV, ARIAL" size=-1>真棒!</FONT></TD>
                <TD><INPUT type=radio value=4 name=Rating><FONT 
                  face="HELVETICA, HELV, ARIAL" size=-1>好文章</FONT></TD>
                <TD><INPUT type=radio value=3 name=Rating><FONT 
                  face="HELVETICA, HELV, ARIAL" size=-1>一般,尚可</FONT></TD>
                <TD><INPUT type=radio value=2 name=Rating><FONT 
                  face="HELVETICA, HELV, ARIAL" size=-1>需提高</FONT></TD>
                <TD><INPUT type=radio value=1 name=Rating><FONT 
                  face="HELVETICA, HELV, ARIAL" 
            size=-1>太差!</FONT></TD></TR></TBODY></TABLE><BR><FONT 
            face="HELVETICA, HELV, ARIAL" size=-1><B>意见?</B></FONT><BR><TEXTAREA name=Comments rows=3 wrap=virtual cols=52></TEXTAREA><BR><BR><INPUT type=submit value=提交反馈意见></FORM></TD></TR></TBODY></TABLE><!-- end rate article form --></TD>
    <TD vAlign=top width=5></TD></TR>
  <TR vAlign=top height=5>
    <TD></TD>
    <TD></TD>
    <TD></TD></TR></TBODY></TABLE><!-- end content --></TD></TR></TABLE><!-- ---------------footer------------------- -->
<TABLE cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TR>
    <TD align=right width="100%" colSpan=2 height=30>(c) Copyright IBM Corp. 
      2001, (c) Copyright IBM China 2001, All Right Reserved</TD></TR>
  <TR>
    <TD width=150>
      <TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
        <TBODY>
        <TR bgColor=#000000>
          <TD align=middle width=49><A class=nav style="COLOR: #ffffff" 
            href="http://www.ibm.com/privacy/"><FONT face="Arial, sans-serif" 
            color=#ffffff size=-1>隐私</FONT></A></TD>
          <TD width=1 bgColor=#959595><IMG height=20 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=1 border=0></TD>
          <TD align=middle width=49><A class=nav style="COLOR: #ffffff" 
            href="http://www.ibm.com/legal/"><FONT face="Arial, sans-serif" 
            color=#ffffff size=-1>法律</FONT></A></TD>
          <TD width=1 bgColor=#959595><IMG height=20 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=1 border=0></TD>
          <TD align=middle width=49><A class=nav style="COLOR: #ffffff" 
            href="http://www.cn.ibm.com/Main.nsf/HTMLS/aboutibm&amp;contactus"><FONT 
            face="Arial, sans-serif" color=#ffffff size=-1>联系</FONT></A></TD>
          <TD width=1 bgColor=#959595><IMG height=21 alt="" 
            src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" 
            width=1 border=0></TD></TR></TBODY></TABLE></TD>
    <TD width="100%" bgColor=#000000><IMG height=1 alt="" 
      src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/c.gif" width=1 
      border=0></TD></TR></TBODY></TABLE>
<SCRIPT language=JavaScript1.2 
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files/stats.js" 
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG height=1 alt="" 
src="D:\新建文件夹\MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(一).files\c(2).gif" 
width=1 border=0></NOSCRIPT> </BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -