UI设计消息路由设想之一---System Event Translator

news/2024/7/4 19:26:42

这段时间一直在做Video Player的GUI。对UI变态的需求有了更进一步的了解。
Player是的一个很重要原则是方便用户使用。那么必然键盘上的Enter键/Esc之类键的重用率是非常高的。这些键在不同的时刻有不同的功能。这个时候如果在各个模块响应消息的地方进行处理势必会让代码很难看。
那么我的想法就是在系统收到键盘/鼠标消息的后面加一个Translator . 这个translator可以动态设置并随时更新内部的状态,那么不同的模块在不同的时刻就可以有不同的translator和translator状态, 相同的输入在播放器处于不同状态的时刻经过转化后可以有不同的输出命令。
这样就可以达到对系统消息和响应状态的解藕。。。 

To be continue.......





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

相关文章

水波加入了简单的反射,效果好多了.

今天终于把CubeMap的读取加入引擎了.要知道.在OpenGL下,不是件很容易的事情.尤其要做到加载的接口都要一致,而且要考虑到和DX兼容.不过目前似乎这个接口还是不错的.Cubemap的第一个简单应用就是给前面做的水加上了简单的反射, 看上去效果好多了.经过一段时间优化,速度也快了.这…

新瓶灌旧酒,Hugo老师的Fire算法的GPU版本.

没有完全把Hugo老师的demo给照搬过来.只照搬了两样东西.那个火焰纹理和Coolmap的资源, 以及核心部分的算法.算法原始版本见这里http://freespace.virgin.net/hugo.elias/models/m_fire.htm这个是我把它程序里用的火焰调色板保存成了一个bmp这个GPU版的抓图.注意RTT一定要是8bit…

GUI设计思路之二:Blender -- WinstateBlender/WinTransBlender

现在很多GUI的窗口在显示的时候,都有淡入和淡出的效果. 或者是飞入/飞出的效果(是叫飞入飞出吗?呵呵.). 也就是说1:可以自由控制窗口在两个状态间进行融合. 2: 能自由控制窗口的变换--旋转和缩放等. 为此我把窗口独立成一个个状态:struct _XUI_API_ xuiWindowState…

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

很多时候,我们希望有些GUI的toolbar能自动消失。这个可以通过循环检测来实现。还有些时候 我们希望鼠标在某个区域动一下或者点一下就让消失掉的toolbar能自动显示出来。或者在一个窗口以外的地方点击的时候就能让窗口自动关闭。这个时候,我们去生写代码…

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诸多的兼容性问题。另…