- 博客(24)
- 资源 (44)
- 收藏
- 关注
原创 第二人生的源码分析(九十八)LLIconCtrl实现图标按钮显示
在前面已经介绍过文字按键的实现,这里主要实现一个图标按钮的实现,如下图里右下角显示的喇叭显示和向上选择的按钮,都是图标显示类型的按钮。 先来看图标按钮类的继承关系,如下:class LLIconCtrl: public LLUICtrl由这里可以看到LLIconCtrl类是控件类,它可以显示在界面上面。下面来看它的实现代码:#001 class LLIconCtrl#0
2008-06-30 21:17:00 3214
原创 第二人生的源码分析(九十七)LLSlider实现音量滑动条
由于第二人生是多媒体的程序,因此它有音乐播放和语言聊天,那么就得使用到一种滑动条来调整音量的大小,如下图所示: 那么这个音量滑动条是怎么样实现的呢?下面就来详细地分析它的实现代码,先来看看它的类继承关系,如下:class LLSlider : public LLUICtrlLLSlider类只继承LLUICtrl类,那么说明它拥有控件类的功能,能在界面上面显示出来。它的详细显示代码
2008-06-22 23:16:00 5999 2
原创 第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示
在第二生里,菜单是缺少不了的。菜单提供了简单层次关系的一种表达方式,方便表达复杂的层次关系,并且方便写说明书,方便售后服务人员的描述,方便培训。因此,在一个程序没有菜单,往往带来很多不方便的地方。登录界面的菜单如下图: 从上图可以看到File、Edit、Help几个菜单,那么它是怎么样实现的呢?下面就来分析相关的代码。下面先来看菜单定义的继承关系:class LLMenuItemG
2008-06-20 23:12:00 2978
原创 第二人生的源码分析(九十五)LLCheckBoxCtrl类实现复选按钮
在第二人生的登录界面里,可以看到输入密码的下面有一个复选按钮,如下图所示:这个按钮在这里主要用来设置是否帮助用户保存密码在磁盘里的,这样可以使用户每次不用输入密码,就可以登录进去。那么这个按钮是怎么样实现的呢?现在就分析跟这个相关的代码,它的继承代码如下:class LLCheckBoxCtrl: public LLUICtrl可见LLCheckBoxCtrl类也是控件类来的,
2008-06-19 23:35:00 4191
原创 第二人生的源码分析(九十四)LLTextBox类实现文本显示
在登录的画面里,可以看到程序的版本显示,那么它是怎么样显示出来的呢?现在就来分析显示这个版本号的代码,其实它是由静态文本显示框LLTextBox来显示的。比如在登录时创建版本显示的代码如下: 这里就是创建静态文本框。#001 LLTextBox* version_text = LLUICtrlFactory::getTextBoxByName(this, "version_text")
2008-06-18 23:04:00 3593
原创 第二人生的源码分析(九十三)LLComboBox类实现组合框
在第二人生里,从登录的界面可以看到一个组合框,就是选择不同服务器的组件,它就使用到组合框了。其实组合框是由按钮、滚动列表框和编辑框组成的。它的继承关系如下:class LLComboBox: public LLUICtrl, public LLCtrlListInterface同样它也是一个控件类,继承了基类LLUICtrl。从LLComboBox类的声明里,可以看到下面这段代码
2008-06-17 22:42:00 3053
原创 100元的C++软件开发培训班
C++软件开发培训(2008-6-16) 1、培养目标l 程序设计入门,懂得怎么使用C++编写简单程序。l 掌握程序设计方法,领会面向过程、面向对象和模板的程序设计。l 熟练地使用C++解决问题。l 每个人看懂1000个例子源码。2、提供的服务l 提供180课学习资料。l
2008-06-16 23:57:00 16271 47
原创 第二人生的源码分析(九十二)LLLineEditor实现编辑框
在基于GUI界面的软件交互时,最基本的输入就是编辑框了,比如下图里输入的用户名称和密码,在游戏界面的编辑框里输入文字是一个高技术难度的问题,因为Windows输入法调用,也是难点之一。 那么在第二人生里的用户名称和密码的编辑框是怎么样实现的呢?现在就来分析这部份的代码,它的类继承关系如下:class LLLineEditor: public LLUICtrl, public LLE
2008-06-16 21:57:00 4252
原创 第二人生的源码分析(九十一)LLScrollListCtrl列表的详细绘制
从前面可以看到怎么样绘制滚动列表框的代码,但在那个函数里面还调用一个函数drawItems来详细地绘制列表项的,现在就来分析这个函数的代码,如下:#001 void LLScrollListCtrl::drawItems()#002 { 计算左上角显示的位置。#003 S32 x = mItemListRect.mLeft;#004 S32 y = mIte
2008-06-15 21:04:00 3158
原创 第二人生的源码分析(九十)LLScrollListCtrl实现列表显示
在第二人生的UI显示里,滚动列表也使用比较多的,由于多项列表选择的情况下,使用滚动列表往往使用界面使用起来更方便实用。如下面的登录界面,就有使用到滚动列表的控件: 从上图里可以看到最右边使用到一个滚动列表来显示不同的服务器,这样方便用户选择不同的服务器登录。那这个滚动列表是怎么样实现的呢?接着下来就分析这个类的代码,类的继承关系如下:#001 class LLScrollListCtr
2008-06-14 21:41:00 2604
原创 第二人生的源码分析(八十九)从XML里创建LLButton
在第二人生里,很多界面的创建是基于XML文件来创建,比如前面提到的登录界面。在一个界面里由很多类型组件组成的,这里就介绍其中最常用的组件是按钮组件了。比如登录界面的连接或者退出按钮,都是从XML里分析出按钮的类型,然后创建按钮的。下面就来分析一下LLButton的XML处理代码,如下:#001 LLView* LLButton::fromXML(LLXMLNodePtr node, LLVie
2008-06-13 22:25:00 2390
原创 第二人生的源码分析(八十八)LLButton类显示按钮的名称
前面介绍按钮可以显示在窗口里,以及这个类的声明,现在来仔细地分析一下它是怎么样实现名称显示的。在构造函数里先保存传送入来的名称,如下:#001 mUnselectedLabel = unselected_label;#002 mSelectedLabel = selected_label;#003 从类声明里可以看到mSelectedLabel和mUnsele
2008-06-12 22:31:00 4369
原创 第二人生的源码分析(八十七)LLButton类实现按钮功能
在前面介绍了登录过程的界面里有一个退出按钮,如果当用户不想登录时,就可以随时按这个按钮退出登录的过程,它的界面如下面,那么这个按钮是怎么样实现的呢? 从上图右下角可以看到Quit按钮,它的功能实现是由类LLButton来实现的,这个类的声明如下:#001 class LLButton#002 : public LLUICtrl#003 {#004 public: 按
2008-06-11 20:47:00 3046 1
原创 第二人生的源码分析(八十六)LLView类添加子窗口显示
前面已经介绍怎么样遍历子窗口显示,那么它的子窗口是怎么样添加到列表里的呢?下面就来仔细地分析这方面的代码,如下:#001 void LLView::addChild(LLView* child, S32 tab_group)#002 { 如果添加自己到子窗口里提示出错。#003 if (mParentView == child) #004 {#005
2008-06-10 21:20:00 2559
原创 第二人生的源码分析(八十五)LLView实现OpenGL窗口显示
由于OpenGL只是负责显示3D的内容,并没有相应的UI实现,因此第二人生里就采用类LLView来实现一个窗口的显示,在这个窗口里可以显示任何其它的窗口,达到递归显示窗口的内容。下面就来仔细地分析它的显示函数,如下:#001 void LLView::draw()#002 { 如果设置调试窗口显示,就显示调试窗口。#003 if (sDebugRects)#004
2008-06-09 20:48:00 3666 1
原创 第二人生的源码分析(八十四)保存UI的界面布局
前面介绍都是怎么样创建UI界面,这显然是在程序启动时需要做的工作,但是当用户改变了界面的布局之后,或者添加一些显示界面之后,就需要把它们保存起来,以便用户所有的变化在程序关闭之后仍然保存起来,然后在程序再次启动之后再从XML文件加载出来。下面就来看看第二人生里这段代码的实现,如下:#001 S32 LLUICtrlFactory::saveToXML(LLView* viewp, const
2008-06-08 11:24:00 2816
原创 从2008高考人数想到的软件人才
今天无意间看到下面这段新闻报道:“2007年全国高考报名人数首次突破1000万,达到1010万;2008年,这个纪录将被再次刷新。在今天召开的2008年全国普通高校招生考试工作电视电话会议上,教育部部长周济表示,今年高考人数和录取人数都将进一步增加,组织管理工作压力大,社会环境日趋复杂,高校招生考试面临的形势十分严峻。必须进一步严格管理,确保高考安全顺利进行。据悉,今年全国普通高校本专科招生计划为
2008-06-07 19:40:00 17353 110
原创 第二人生的源码分析(八十三)创建UI的菜单
从前面看到,不但窗口和显示板可以通过XML定制,而菜单也可以通过XML文件来定制的,那么菜单的定制又是怎样读取XML文件的呢?到底它又会产生什么样的对象来执行菜单呢?下面就来解决这两个问题,代码如下:#001 LLMenuGL *LLUICtrlFactory::buildMenu(const LLString &filename, LLView* parentp)#002 {#003
2008-06-07 18:13:00 2935 1
原创 第二人生的源码分析(八十二)创建UI的浮动窗口(floater)
上一次介绍了显示板的创建,这里来介绍创建浮动窗口。浮动的窗口可以显示在显示板之上,并且可以放在显示窗口不同的位置,也就是方便用户布局这个窗口在那里显示,比如聊天窗口,就可以放大,并且调整到合适的位置。下面就来分析创建浮动窗口的代码,如下:#001 void LLUICtrlFactory::buildFloater(LLFloater* floaterp, const LLString &fi
2008-06-06 21:00:00 2345 1
原创 第二人生的源码分析(八十一)创建UI的显示板(Panel)
在第二人生里,UI部分主要有三种大组件组成:显示板、浮动窗口、菜单。显示板是固定在窗口里面,上面可以放浮动的窗口。像登录的界面,就是一个显示板组成,那么它是怎么样实现的呢?现在就分析下面这段代码,如下:#001 BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const LLString &filename,#002
2008-06-05 21:09:00 3588
原创 第二人生的源码分析(八十)界面语言的选择
随着全球化的发展,地球变得平坦了。我有一个同事现在还在美国ORACLE进行学习,说明软件是真正的无国界产品。那么在第二人生里,到底是怎么样实现多语言的支持呢?带着这个问题来分析下面一段代码,如下:#001 void LLUICtrlFactory::setupPaths()#002 { 获取UI资源所在目录路径,比如:F:/secondlife/linden/indra/newvi
2008-06-04 20:51:00 3520
原创 第二人生的源码分析(七十九)UI控制的类工厂
在游戏的程序里,界面的实现往往是比较复杂的。因为在游戏里,没有WINDOWS的组件可以使用,也没有其合适的组件可以使用,所有界面的显示都需要从最原始的方式来实现,这样工作量非常庞大。下面就来分析第二生里实现UI的类厂,它的声明代码如下:#001 class LLUICtrlFactory#002 {#003 public: 构造函数。#004 LLUICtrlFact
2008-06-03 21:15:00 2622
原创 第二人生的源码分析(七十八)LLOSInfo类实现获取操作系统信息
由于信息产业在不断地发展,特别像电脑里的操作系统更是更新不断。比如Windows系统,就有WIN NT、Win2000、WIN XP、WIN SERVER等等。下面就来分析这个类的声明代码:#001 class LLOSInfo#002 {#003 public: 构造函数。#004 LLOSInfo(); 把操作系统信息写到流对象。#005 voi
2008-06-02 20:57:00 3140 1
原创 第二人生的源码分析(七十七)CProcessor类实现获取CPU信息
在这个世界上,是多姿多彩的好,还是单一简单的好呢?做事情当然是越简单越好,但在我们去买商品时,又想越多选择越好。如果某种产品只有一家选择时,这显然是垄断性的产品,其售价也必然是高高在上的。在IT信息领域里,最重要的CPU芯片厂家就有两家:Intel和AMD。因此,我们需要获取CPU的信息,用来区分这两家CPU的技术差别,就算是同一家的CPU也存在不同版本的技术区别。只要在存在差别,软件就要比较复杂
2008-06-01 10:20:00 3392 4
python抓取天气并分析 实例源码
2017-08-28
书《深度学习》
2017-03-13
国产8051模拟器
2016-09-10
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人