GUISystem设计思路之三:HotArea的概念。

news/2023/12/9 15:21:52
很多时候,我们希望有些GUI的toolbar能自动消失。这个可以通过循环检测来实现。还有些时候 我们希望鼠标在某个区域动一下或者点一下就让消失掉的toolbar能自动显示出来。或者在一个窗口以外的地方点击的时候就能让窗口自动关闭。
这个时候,我们去生写代码显然是不合适的。我在GUI里引入一个很简单的HotArea的概念。称为鼠标热区。热区和某个具体窗口想关。这个热区有以下属性:
      一:什么时候响应热区消息,我们可以指定是窗口显示的时候还是隐藏的时候。或者任何时候。
     二: 响应什么行为,比如是关闭还是显示一个窗口。或者是作为通知消息发给用户。
    三:热区的大小等。

例如以下的xml脚本指定两个热区,可以让鼠标移动到左边的时候 ,显示窗口,鼠标点窗口以外的地方则关闭窗口。
 
 




http://www.niftyadmin.cn/n/3647774.html

相关文章

Mozilla XULRunner 的编译。

Mozilla XULRunner 的编译。潘李亮 2006-10-31Mozilla里有很多好东西。 比如那个js引擎和嵌入式渲染引擎。这段时间在想如果能在游戏里嵌入一个浏览器该多好啊。这个想法用mozilla的渲染引擎来实现在再好不过的了。Mozilla的渲染引擎叫xulrunner。它和firefox 用的是同一个代码…

极限边缘.

极限边缘.最近突然发现自己已经比以前长胖了好多。朋友拿着以前的我的照片都已经认不出来。于是开始决定出去锻炼。突然发现好多以前自己认为是非常剽悍的领域已经都是明日黄花,今天已是我挑战极限的运动。前两个星期和大学舍友一起去踢球。虽然知道以前能满场非的我…

Mozilla浏览器和应用程序的整合---第一步,显示

前段时间终于学会了编译Mozilla XULRunner.顺便修改修改了uBrowser的代码。把它的代码整合到我的引擎中。现在已经能把网页面显示出来了。回头弄弄一个DLL的路径。现在第一次运行的时候会报告有些mozilla的插件找不到。不过似乎第二次就好了。下一个步可以加入键盘鼠标的响应。…

Nebula2探秘14-nGuiServer的创建与使用

Nebula2探秘14-nGuiServer的创建与使用happykevins文关于nGui: nGui是Nebula2本身集成的GUI系统。虽然Radon在mangalore中已经集成了对CEGUI的支持,但是nGui相比之下更加简单易用,而且紧密地与Nebula2结合,不存在CEGUI诸多的兼容性问题。另…

Nebula2探秘15-Simple Application Framework

Nebula2探秘15-Simple Application Frameworkhappykevins文 在经历了前14章的学习之后,本章将介绍一个简单的Nebula2应用程序框架nAppFrame。 nAppFrame可以说是nApplication的最简化版本,去掉了状态机和所有不必要的Packages和Servers。 nAppFrame的代…

Bug经典回放(四)

Bug现象: 还是调试别人的程序. 这次是GUI. 我们的GUI是基于SDL OpenGL的. 程序运行以后进行视频播放.在出现的工具条上不停的点击几下后. 整个GUI系统均停止响应. 工具条有个属性.在开始播放音乐或者视频后.会根据播放引擎通过一个引擎来设置toolbar的属性. 比如.在同一…

一般拓扑学--From百度(看了这个,终于明白什么是拓扑了)

用点集的方法研究拓扑不变量的拓扑分支。它的前身是点集拓扑学。点集拓扑学产生于19世纪。G.康托尔建立了集合论,定义了欧几里得空间中的开集、闭集、导集等概念,获得了欧几里得空间拓扑结构的重要结果。1906年M.-R.弗雷歇把康托尔的集合论与函数空间的研…

和快手大牛的技术面谈,我先收藏为敬

前言 前段时间发放了学习资料给予自学java的同学们,自学虽好,但是架不住没有老师讲解重侧点(实际上许多培训班的老师也是水分多多,甚至无实战经验),今天我就抽空把java零基础入门(六个月&#…

恶搞的NVIDIA驱动

昨天做水波,遇到一个十分可恶的bug。程序在笔记本的84.xx驱动下十分正常。在台式机的6600显卡,84.xx驱动下工作基本正常,但是水波还是能看到的,但是如果shader所在路径不是很深的话,同一个VS链接到不同的PS会报错&…

和快手大牛的技术面谈,瞬间高大上了!

前言 Mysql的锁机制确实非常重要,所以在这里做一个全面的总结整理,便于以后的查阅,也分享给大家。 Mysql的锁机制还是有点难理解的,所以这篇文章采用图文结合的方式讲解难点,帮助大家理解,讲解的主要内容…

VTF的水波终于移植完了.

以前那个破2D水终于移植到GPU上了.这个是质点弹簧系统,下来可以模拟波动方程了. 128 x 128的mesh grid, CPU计算的时候fps只有12fps.现在已经有80fps了.回头再用vtune查查什么地方慢. 估计上到120fps问题应该不大的.用了NV的VTF. 发现恶心的是VTF只支持32bit float纹理. 两种格…

和网易大佬的技术面谈,冲刺7天拿下Offer!

前言 MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。 MySQL作为一个关系型数据库管理系统,因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。虽然功能未必很强大,但因为它…

Nebula2探秘11-Simple Window

Nebula2探秘11-Simple Windowhappykevins文前面的10节主要讲的是Nebula2内核层模块的应用,所以一直在黑黑Dos控制台下工作,可能大家已经非常想念Windows窗口了:) 从本章起,我将开始介绍Nebula2的应用层模块,并以一个最简单的Windo…

和网易大佬的技术面谈,极其重要

前言 今年的金三银四已经过去一大半了,在这其中参与过不少面试,2021都说工作不好找,这也是对开发人员的要求变向的提高了。 之前在Github上收获15Kstar的Java核心神技(这参数,质量多高就不用我多说了吧)非…

Nebula2探秘12-基于Windows命令行的Nebula控制台

Nebula2探秘12-基于Windows命令行的Nebula控制台happykevins文 “工欲善其事,必先利其器!”本文创建了一个在命令窗口下的Nebula命令控制台.可以直接执行脚本指令,察看当前Nebula的系统状态,察看NOH树及当前工作对象信息,对于调试和控制Nebula2程序非常实用方便!本来…

和腾讯大佬的技术面谈,掌握这些知识点再也不怕面试通不过!

引入 Netty的源码分析中, 采用自底向上的方式进行分析, 底指的是一个个的组件, 上指的是整体的架构及一系列操作的执行流程举个简单的例子。 Netty服务端的启动流程中, 必然会调用bind方法, 一个bind方法的内部, 其实完成了许许多多的内容, 涉及了许多组件, 如果我们从入口开始…
最新文章