CN102520946A - 一种基于嵌入式Linux的桌面***的实现方法 - Google Patents
一种基于嵌入式Linux的桌面***的实现方法 Download PDFInfo
- Publication number
- CN102520946A CN102520946A CN2011104089631A CN201110408963A CN102520946A CN 102520946 A CN102520946 A CN 102520946A CN 2011104089631 A CN2011104089631 A CN 2011104089631A CN 201110408963 A CN201110408963 A CN 201110408963A CN 102520946 A CN102520946 A CN 102520946A
- Authority
- CN
- China
- Prior art keywords
- window
- over
- desktop
- module
- change
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
一种基于嵌入式Linux的桌面***及其实现方法,属于计算机嵌入式技术领域。桌面***分为窗口管理器和桌面管理器两大功能模块。窗口管理器模块分为窗口管理、窗口堆栈维护和窗口主题风格变换模块,它的主要功能包括管理应用程序创建的顶层窗口,维护顶层窗口堆栈顺序,对顶层窗口进行外观修饰等。桌面管理器模块分为桌面快捷图标、***托盘模块,可以设计扩展控件来支持多个桌面显示;显示指示特定状态的瞬时图标以及一些消息菜单。它具备以下特点:***结构层次清晰,能对桌面环境的特性进行比较好的支持;***开销较小,***稳定;实现窗口透明效果和动画效果,提供良好的用户操作界面。
Description
技术领域
本发明涉及一种基于嵌入式Linux的桌面***的实现方法,属于计算机嵌入式技术领域。
背景技术
随着嵌入式应用的日益普及,业界对嵌入式操作***用户界面美观性等诸多方面提出了更高的要求,而桌面环境为操作***提供一个更加完善的界面以及大量各类整合工具和应用程序,由于嵌入式***软硬资源的局限性,台式机上成熟、庞大的桌面***不适合应用到嵌入式设备上。在嵌入式设备上研究与实现轻量级的桌面环境具有十分重要的现实意义。如专利号为CN01141429.4、发明名称为“在实时多任务操作***中建立嵌入式图形化用户界面的方法”的专利即属于此列。
目前嵌入式Linux平台的主流GUI(Graphical User Interface,简称GUI,又称图形用户接口)主要包括MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些接口在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同。
MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口***,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口***和图形接口方面功能比较欠缺,与Win32和XWindows窗口***保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C、C++图形窗口接口,它的资源消耗小,可移植性差,不支持多进程。
Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息等)。
传统的GUI虽然对桌面环境所有特性都支持的比较好,但是所带来的***开销非常大,开发周期太长,界面风格不太容易被用户接受。
发明内容
针对现有技术存在的缺陷和不足,本发明提供了一种基于嵌入式Linux的桌面***的实现方法。
本发明的技术方案如下:
一种基于嵌入式Linux的桌面***的实现方法,桌面***用C++语言编写,包括窗口管理器模块和桌面管理器模块两大功能模块;窗口管理器模块包括窗口管理模块、窗口堆栈维护模块和窗口主题风格变换模块,窗口管理模块需要处理的事件包括鼠标左键按下事件、鼠标左键放开事件、窗口变化事件;桌面管理器模块分为桌面快捷图标模块和***托盘模块;嵌入式Linux的桌面***的实现方法如下:
所述的鼠标左键按下事件处理流程如下:
1、开始;
2、检测到鼠标左键按下;
3、设置所点击的窗口属性为活动窗口;
4、保存鼠标相对于活动窗口的位置;
5、结束。
所述的鼠标左键放开事件处理流程如下:
1、开始;
2、检测到鼠标左键放开;
3、判断点击的窗口属性是否为活动窗口,如果是则转入步骤4,如果不是则转入步骤8:
4、判断鼠标点击区域,如果是关闭按钮区域则转入步骤5,如果是最小化按钮区域则转入步骤6,如果是最大化按钮区域则转入步骤7;
5、关闭窗口;
6、最小化窗口;
7、最大化窗口;
8、结束。
所述的窗口变化事件处理流程如下:
1、开始;
2、检测到窗口变化;
3、判断窗口属性是否是活动窗口,如果是则转入步骤4,如果不是则转入步骤10;
4、判断是否是窗口移动,如果是则转入步骤5,如果不是则转入步骤7;
5、根据鼠标移动的大小计算窗口的x、y坐标的位移;
6、根据计算值移动窗口;
7、判断是否是窗口改变大小,如果是则转入步骤8,如果不是则转入步骤10;
8、根据鼠标所在的位置以及鼠标移动的大小计算窗口宽度和高度的位移;
9、根据计算值改变窗口大小;
10、结束。
所述的窗口堆栈维护模块运行步骤如下:
1、开始;
2、用户选择窗口切换;
3、判断是否是全屏窗口,如果是则转入步骤4,如果不是则转入步骤5;
4、隐藏其它窗口;
5、将该窗口提升到最顶端;
6、结束。
所述的窗口主题风格变换模块运行步骤如下:
1、开始;
2、用户选择切换窗口主题风格,触发窗口主题风格变化事件;
3、把用户选择的窗口主题风格映射成字符串;
4、窗口主题风格模块根据接收到的字符串查找对应在风格文件中的风格名字,如果没有查找到则转入步骤8,如果查找到则转入步骤5;
5、根据风格名字查找该类风格需要的图标;
6、查找对应的数据结构;
7、根据数据结构查找图标文件,如果没有查找到则转入步骤8,如果查找到则转入步骤9;
8、加载默认主题风格;
9、加载用户选择的主题风格;
10、切换窗口主题风格;
11、结束。
所述的桌面快捷图标模块运行步骤如下:
1、开始;
2、读取配置文件;
3、创建窗口;
4、根据配置文件中应用程序类型显示图标和文字到桌面;
5、用户点击鼠标,进入事件处理;
6、释放用到的资源;
7、结束。
所述的***托盘模块运行步骤如下:
1、开始;
2、获取管理程序选择区域;
3、设置窗口属性独占屏幕区域;
4、读取应用程序,启动配置文件;
5、接收事件;
6、判断是否是操作码消息,如果是则转入步骤7,如果不是则转入步骤9;
7、读取操作码;
8、开始显示消息菜单;
9、判断是否改变图标显示,如果是则转入步骤10,如果不是则转入步骤11;
10、改变图标显示顺序;
11、结束。
本发明实现了一种基于嵌入式Linux的桌面***,本***开销较小,***稳定,易于维护且提供良好的用户操作界面。
附图说明
图1是桌面***的整体结构框图。
图2是鼠标左键按下事件处理流程图。
图3是鼠标左键放开事件处理流程图。
图4是窗口变化事件处理流程图。
图5是窗口堆栈维护模块处理流程图。
图6是窗口主题风格变换模块处理流程图。
图7是桌面快捷图标模块处理流程图。
图8是***托盘模块处理流程图。
其中,1、应用程序,2、桌面快捷图标模块,3、桌面管理器模块,4、***托盘模块,5、窗口管理模块,6、窗口堆栈维护模块,7、窗口主题风格变换模块,8、窗口管理器模块。
具体实施方式:
下面结合附图和实施例对本发明做进一步说明,但不限于此。
实施例:
一种基于嵌入式Linux的桌面***的实现方法,桌面***的整体结构如图1所示,实现方法流程图如图2-图8所示,桌面***用C++语言编写,包括窗口管理器模块(8)和桌面管理器模块(3)两大功能模块;窗口管理器模块(8)包括窗口管理模块(5)、窗口堆栈维护模块(6)和窗口主题风格变换模块(7),窗口管理模块(5)需要处理的事件包括鼠标左键按下事件、鼠标左键放开事件、窗口变化事件;桌面管理器模块(3)分为桌面快捷图标模块(2)和***托盘模块(4);嵌入式Linux的桌面***的实现方法如下:
所述的鼠标左键按下事件处理流程如下:
1、开始;
2、检测到鼠标左键按下;
3、设置所点击的窗口属性为活动窗口;
4、保存鼠标相对于活动窗口的位置;
5、结束。
所述的鼠标左键放开事件处理流程如下:
1、开始;
2、检测到鼠标左键放开;
3、判断点击的窗口属性是否为活动窗口,如果是则转入步骤4,如果不是则转入步骤8;
4、判断鼠标点击区域,如果是关闭按钮区域则转入步骤5,如果是最小化按钮区域则转入步骤6,如果是最大化按钮区域则转入步骤7;
5、关闭窗口;
6、最小化窗口;
7、最大化窗口;
8、结束。
所述的窗口变化事件处理流程如下:
1、开始;
2、检测到窗口变化;
3、判断窗口属性是否是活动窗口,如果是则转入步骤4,如果不是则转入步骤10;
4、判断是否是窗口移动,如果是则转入步骤5,如果不是则转入步骤7;
5、根据鼠标移动的大小计算窗口的x、y坐标的位移;
6、根据计算值移动窗口;
7、判断是否是窗口改变大小,如果是则转入步骤8,如果不是则转入步骤10;
8、根据鼠标所在的位置以及鼠标移动的大小计算窗口宽度和高度的位移;
9、根据计算值改变窗口大小;
10、结束。
所述的窗口堆栈维护模块运行步骤如下:
1、开始;
2、用户选择窗口切换;
3、判断是否是全屏窗口,如果是则转入步骤4,如果不是则转入步骤5;
4、隐藏其它窗口;
5、将该窗口提升到最顶端;
6、结束。
所述的窗口主题风格变换模块运行步骤如下:
1、开始;
2、用户选择切换窗口主题风格,触发窗口主题风格变化事件;
3、把用户选择的窗口主题风格映射成字符串;
4、窗口主题风格模块根据接收到的字符串查找对应在风格文件中的风格名字,如果没有查找到则转入步骤8,如果查找到则转入步骤5;
5、根据风格名字查找该类风格需要的图标;
6、查找对应的数据结构;
7、根据数据结构查找图标文件,如果没有查找到则转入步骤8,如果查找到则转入步骤9;
8、加载默认主题风格;
9、加载用户选择的主题风格;
10、切换窗口主题风格;
11、结束。
所述的桌面快捷图标模块运行步骤如下:
1、开始;
2、读取配置文件;
3、创建窗口;
4、根据配置文件中应用程序类型显示图标和文字到桌面;
5、用户点击鼠标,进入事件处理;
6、释放用到的资源;
7、结束。
所述的***托盘模块运行步骤如下:
1、开始;
2、获取管理程序选择区域;
3、设置窗口属性独占屏幕区域;
4、读取应用程序,启动配置文件;
5、接收事件;
6、判断是否是操作码消息,如果是则转入步骤7,如果不是则转入步骤9;
7、读取操作码;
8、开始显示消息菜单;
9、判断是否改变图标显示,如果是则转入步骤10,如果不是则转入步骤11;
10、改变图标显示顺序;
11、结束。
Claims (1)
1.一种基于嵌入式Linux的桌面***的实现方法,桌面***用C++语言编写,包括窗口管理器模块和桌面管理器模块两大功能模块;窗口管理器模块包括窗口管理模块、窗口堆栈维护模块和窗口主题风格变换模块,窗口管理模块需要处理的事件包括鼠标左键按下事件、鼠标左键放开事件、窗口变化事件;桌面管理器模块分为桌面快捷图标模块和***托盘模块;其特征在于,嵌入式Linux的桌面***的实现方法如下:
所述的鼠标左键按下事件处理流程如下:
1、开始;
2、检测到鼠标左键按下;
3、设置所点击的窗口属性为活动窗口;
4、保存鼠标相对于活动窗口的位置;
5、结束。
所述的鼠标左键放开事件处理流程如下:
1、开始;
2、检测到鼠标左键放开;
3、判断点击的窗口属性是否为活动窗口,如果是则转入步骤4,如果不是则转入步骤8:
4、判断鼠标点击区域,如果是关闭按钮区域则转入步骤5,如果是最小化按钮区域则转入步骤6,如果是最大化按钮区域则转入步骤7;
5、关闭窗口;
6、最小化窗口;
7、最大化窗口;
8、结束。
所述的窗口变化事件处理流程如下:
1、开始;
2、检测到窗口变化;
3、判断窗口属性是否是活动窗口,如果是则转入步骤4,如果不是则转入步骤10;
4、判断是否是窗口移动,如果是则转入步骤5,如果不是则转入步骤7;
5、根据鼠标移动的大小计算窗口的x、y坐标的位移;
6、根据计算值移动窗口;
7、判断是否是窗口改变大小,如果是则转入步骤8,如果不是则转入步骤10;
8、根据鼠标所在的位置以及鼠标移动的大小计算窗口宽度和高度的位移;
9、根据计算值改变窗口大小;
10、结束。
所述的窗口堆栈维护模块运行步骤如下:
1、开始;
2、用户选择窗口切换;
3、判断是否是全屏窗口,如果是则转入步骤4,如果不是则转入步骤5;
4、隐藏其它窗口;
5、将该窗口提升到最顶端;
6、结束。
所述的窗口主题风格变换模块运行步骤如下:
1、开始;
2、用户选择切换窗口主题风格,触发窗口主题风格变化事件;
3、把用户选择的窗口主题风格映射成字符串;
4、窗口主题风格模块根据接收到的字符串查找对应在风格文件中的风格名字,如果没有查找到则转入步骤8,如果查找到则转入步骤5;
5、根据风格名字查找该类风格需要的图标;
6、查找对应的数据结构;
7、根据数据结构查找图标文件,如果没有查找到则转入步骤8,如果查找到则转入步骤9;
8、加载默认主题风格;
9、加载用户选择的主题风格;
10、切换窗口主题风格;
11、结束。
所述的桌面快捷图标模块运行步骤如下:
1、开始;
2、读取配置文件;
3、创建窗口;
4、根据配置文件中应用程序类型显示图标和文字到桌面;
5、用户点击鼠标,进入事件处理;
6、释放用到的资源;
7、结束。
所述的***托盘模块运行步骤如下:
1、开始;
2、获取管理程序选择区域;
3、设置窗口属性独占屏幕区域;
4、读取应用程序,启动配置文件;
5、接收事件;
6、判断是否是操作码消息,如果是则转入步骤7,如果不是则转入步骤9;
7、读取操作码;
8、开始显示消息菜单;
9、判断是否改变图标显示,如果是则转入步骤10,如果不是则转入步骤11;
10、改变图标显示顺序;
11、结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104089631A CN102520946A (zh) | 2011-12-09 | 2011-12-09 | 一种基于嵌入式Linux的桌面***的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104089631A CN102520946A (zh) | 2011-12-09 | 2011-12-09 | 一种基于嵌入式Linux的桌面***的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102520946A true CN102520946A (zh) | 2012-06-27 |
Family
ID=46291888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104089631A Pending CN102520946A (zh) | 2011-12-09 | 2011-12-09 | 一种基于嵌入式Linux的桌面***的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102520946A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102937859A (zh) * | 2012-10-19 | 2013-02-20 | 山东大学 | 一种基于Android操作***的桌面***的实现方法 |
CN105528240A (zh) * | 2014-09-28 | 2016-04-27 | 福建星网视易信息***有限公司 | 桌面环境实现装置及方法 |
CN108595231A (zh) * | 2018-05-15 | 2018-09-28 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及智能终端 |
CN113535287A (zh) * | 2020-04-17 | 2021-10-22 | 中标软件有限公司 | 一种Linux操作***桌面环境窗口自动排列的方法 |
CN114489605A (zh) * | 2022-03-15 | 2022-05-13 | 浙江云针信息科技有限公司 | 一种云操作***的窗口视图显示方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538273A (zh) * | 2003-02-25 | 2004-10-20 | 便于计算机桌面使用的***和方法 | |
CN101606124A (zh) * | 2007-01-25 | 2009-12-16 | 夏普株式会社 | 多窗口管理装置及程序、存储介质及信息处理装置 |
-
2011
- 2011-12-09 CN CN2011104089631A patent/CN102520946A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538273A (zh) * | 2003-02-25 | 2004-10-20 | 便于计算机桌面使用的***和方法 | |
CN101606124A (zh) * | 2007-01-25 | 2009-12-16 | 夏普株式会社 | 多窗口管理装置及程序、存储介质及信息处理装置 |
Non-Patent Citations (1)
Title |
---|
冯延伟: "嵌入式卓面环境的研究与实现", 《华中科技大学,硕士学位论文》, 14 March 2011 (2011-03-14) * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102937859A (zh) * | 2012-10-19 | 2013-02-20 | 山东大学 | 一种基于Android操作***的桌面***的实现方法 |
CN105528240A (zh) * | 2014-09-28 | 2016-04-27 | 福建星网视易信息***有限公司 | 桌面环境实现装置及方法 |
CN105528240B (zh) * | 2014-09-28 | 2018-12-28 | 福建星网视易信息***有限公司 | 桌面环境实现装置及方法 |
CN108595231A (zh) * | 2018-05-15 | 2018-09-28 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及智能终端 |
CN108595231B (zh) * | 2018-05-15 | 2021-06-15 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及智能终端 |
CN113535287A (zh) * | 2020-04-17 | 2021-10-22 | 中标软件有限公司 | 一种Linux操作***桌面环境窗口自动排列的方法 |
CN114489605A (zh) * | 2022-03-15 | 2022-05-13 | 浙江云针信息科技有限公司 | 一种云操作***的窗口视图显示方法 |
CN114489605B (zh) * | 2022-03-15 | 2022-07-12 | 浙江云针信息科技有限公司 | 一种云操作***的窗口视图显示方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5881824B2 (ja) | タッチスクリーン端末における方法及びタッチスクリーン端末 | |
US10528210B2 (en) | Foreground/background assortment of hidden windows | |
US8869065B2 (en) | Segment ring menu | |
US20120192078A1 (en) | Method and system of mobile virtual desktop and virtual trackball therefor | |
CN103645906B (zh) | 基于固定的界面布局文件实现界面重新布局的方法及*** | |
US20140007008A1 (en) | Techniques for select-hold-release electronic device navigation menu system | |
EP3436942A1 (en) | Tabs in system task switchers | |
CN102937859A (zh) | 一种基于Android操作***的桌面***的实现方法 | |
CN103870095A (zh) | 基于触摸屏的用户界面操作方法和使用该方法的终端设备 | |
US11620034B2 (en) | Systems and methods for providing tab previews via an operating system user interface | |
US20120151368A1 (en) | Application operating environment for mobile computing devices | |
CN102520946A (zh) | 一种基于嵌入式Linux的桌面***的实现方法 | |
CN102402375A (zh) | 显示终端和显示方法 | |
CN102880399A (zh) | 一种屏幕操作方法及装置 | |
CN103984464A (zh) | 一种移动终端快捷方式的显示方法和装置 | |
US20170249295A1 (en) | Techniques to present a dynamic formula bar in a spreadsheet | |
CN102214060A (zh) | 触控式电子装置及其窗口操控方法 | |
CN102023805B (zh) | 一种软件界面文本信息的辅助浏览方法 | |
CN112269501A (zh) | 图标移动方法、装置及电子设备 | |
WO2017201655A1 (zh) | 一种后台应用程序显示方法、装置、电子设备和计算机程序产品 | |
CN102799342B (zh) | 手持移动互联设备 | |
US10162602B2 (en) | Method for handling user-level events for programming an application | |
CN113672136A (zh) | 信息显示方法、装置、设备和存储介质 | |
CN103543824A (zh) | 手势输入***及方法 | |
CN112148409A (zh) | 一种窗口的图像效果实现方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120627 |