免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 967 | 回复: 0
打印 上一主题 下一主题

基于nanowm定制自已的窗体任务管理器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-12 21:05 |只看该作者 |倒序浏览
最近要为公司定制基于nano-X的图形系统,首要任务是要定制nano-X中的窗体任务管理器,我就以nano-X 0.91 full version中的nanowm源码为基础,进行定制。
     一. 概述
            nanowm在nano-X图形系统中的主要任务是提供对多个客户端窗体的集中管理,主要是对客户窗体进行边框绘制、及对客户窗体操作进行处理,如窗体的关闭,移动,放大、缩小等,还可以对窗体的外观进行定制,如改变窗体的标题文本、大小、前景或背景颜色或窗体边框的颜色,类似于window平台的主题定制。
     二. 源码分析
           好了,大理论我也说不太清楚,还是分析源代码吧^_^
          1.   源码文件列表  
          nanowm的源代码在microwindows-0.91full\src\demos\nanowm\下,下面是该目录下的文件列表:
               Actions.c     此文件实现的几个函数主要是用于客户窗体的在被HID设备down、up、move的时候对窗体进行处理
               Clients.c    此文件实现的几个函数主要是用于客户窗体的子窗体的绘画,及窗体的新建、缩放、消毁。
               Events.c    此文件实现的函数主要提供对mouse,keyboard的事件进行处理,如mouse的down, up, move。 keyboard的down,up等。
               Nanowm.c    nanow窗体任务管理的主函数main,里面有个while loop. 派遣各种窗体的各种事件及mouse,keyboard事件。
               Nanowm.h    nanowm窗体任务管理头文件,里面有一些重要的数据结构。
               Root.c    只有一个函数root_create(...),用于创建nanowm的desktop.
               Wlist.c    文件实现的函数主要用于对窗体在窗体链表中进行查找、删除等操作。
         还有一几个文件,如Makefile文件,run.sh文件。(未完)
    2.     nanowm的入口在nanowm.c文件中,该文件的全部代码如下:
/*
* NanoWM - Window Manager for Nano-X
*
* Copyright (C) 2000 Greg Haerr
* Copyright (C) 2000 Alex Holden
* Parts based on npanel.c Copyright (C) 1999 Alistair Riddoch.
*/
#include
#include
#define MWINCLUDECOLORS    // 以后需要用到MW开头的系统预定颜色宏
#include "nano-X.h"    // nano-X图形系统核心头文件
/* Uncomment this if you want debugging output from this file */
/*#define DEBUG*/
#include "nanowm.h"    // nanowm的头文件,包含几个数据结构和函数原型定义
GR_SCREEN_INFO si;      // 屏幕结构,在nano-X.h中定义,其实是MWSCREENINFO结构
int main(int argc, char *argv[])
{
GR_EVENT event;
GR_WM_PROPERTIES props;   // 窗体属性结构
win window;
if(GrOpen()

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94328/showart_1898756.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP