当前搜索:

第二人生的源码分析(九十八)LLIconCtrl实现图标按钮显示

在前面已经介绍过文字按键的实现,这里主要实现一个图标按钮的实现,如下图里右下角显示的喇叭显示和向上选择的按钮,都是图标显示类型的按钮。 先来看图标按钮类的继承关系,如下:class LLIconCtrl: public LLUICtrl由这里可以看到LLIconCtrl类是控件类,它可以显示在界面上面。下面来看它的实现代码:#001 class LLIconCtrl#0...
阅读(2855) 评论(0)

第二人生的源码分析(九十七)LLSlider实现音量滑动条

由于第二人生是多媒体的程序,因此它有音乐播放和语言聊天,那么就得使用到一种滑动条来调整音量的大小,如下图所示: 那么这个音量滑动条是怎么样实现的呢?下面就来详细地分析它的实现代码,先来看看它的类继承关系,如下:class LLSlider : public LLUICtrlLLSlider类只继承LLUICtrl类,那么说明它拥有控件类的功能,能在界面上面显示出来。它的详细显示代码...
阅读(5401) 评论(2)

第二人生的源码分析(九十六)LLMenuItemGL实现菜单的显示

在第二生里,菜单是缺少不了的。菜单提供了简单层次关系的一种表达方式,方便表达复杂的层次关系,并且方便写说明书,方便售后服务人员的描述,方便培训。因此,在一个程序没有菜单,往往带来很多不方便的地方。登录界面的菜单如下图: 从上图可以看到File、Edit、Help几个菜单,那么它是怎么样实现的呢?下面就来分析相关的代码。下面先来看菜单定义的继承关系:class LLMenuItemG...
阅读(2464) 评论(0)

第二人生的源码分析(九十五)LLCheckBoxCtrl类实现复选按钮

在第二人生的登录界面里,可以看到输入密码的下面有一个复选按钮,如下图所示:这个按钮在这里主要用来设置是否帮助用户保存密码在磁盘里的,这样可以使用户每次不用输入密码,就可以登录进去。那么这个按钮是怎么样实现的呢?现在就分析跟这个相关的代码,它的继承代码如下:class LLCheckBoxCtrl: public LLUICtrl可见LLCheckBoxCtrl类也是控件类来的,...
阅读(3719) 评论(0)

第二人生的源码分析(九十四)LLTextBox类实现文本显示

在登录的画面里,可以看到程序的版本显示,那么它是怎么样显示出来的呢?现在就来分析显示这个版本号的代码,其实它是由静态文本显示框LLTextBox来显示的。比如在登录时创建版本显示的代码如下: 这里就是创建静态文本框。#001 LLTextBox* version_text = LLUICtrlFactory::getTextBoxByName(this, "version_text")...
阅读(3246) 评论(0)

第二人生的源码分析(九十三)LLComboBox类实现组合框

在第二人生里,从登录的界面可以看到一个组合框,就是选择不同服务器的组件,它就使用到组合框了。其实组合框是由按钮、滚动列表框和编辑框组成的。它的继承关系如下:class LLComboBox:    public LLUICtrl, public LLCtrlListInterface同样它也是一个控件类,继承了基类LLUICtrl。从LLComboBox类的声明里,可以看到下面这段代码...
阅读(2727) 评论(0)

100元的C++软件开发培训班

 C++软件开发培训(2008-6-16) 1、培养目标l         程序设计入门,懂得怎么使用C++编写简单程序。l         掌握程序设计方法,领会面向过程、面向对象和模板的程序设计。l         熟练地使用C++解决问题。l         每个人看懂1000个例子源码。2、提供的服务l       提供180课学习资料。l   ...
阅读(15461) 评论(53)

第二人生的源码分析(九十二)LLLineEditor实现编辑框

在基于GUI界面的软件交互时,最基本的输入就是编辑框了,比如下图里输入的用户名称和密码,在游戏界面的编辑框里输入文字是一个高技术难度的问题,因为Windows输入法调用,也是难点之一。 那么在第二人生里的用户名称和密码的编辑框是怎么样实现的呢?现在就来分析这部份的代码,它的类继承关系如下:class LLLineEditor: public LLUICtrl, public LLE...
阅读(3684) 评论(0)

第二人生的源码分析(九十一)LLScrollListCtrl列表的详细绘制

从前面可以看到怎么样绘制滚动列表框的代码,但在那个函数里面还调用一个函数drawItems来详细地绘制列表项的,现在就来分析这个函数的代码,如下:#001 void LLScrollListCtrl::drawItems()#002 { 计算左上角显示的位置。#003    S32 x = mItemListRect.mLeft;#004    S32 y = mIte...
阅读(2754) 评论(0)

第二人生的源码分析(九十)LLScrollListCtrl实现列表显示

在第二人生的UI显示里,滚动列表也使用比较多的,由于多项列表选择的情况下,使用滚动列表往往使用界面使用起来更方便实用。如下面的登录界面,就有使用到滚动列表的控件: 从上图里可以看到最右边使用到一个滚动列表来显示不同的服务器,这样方便用户选择不同的服务器登录。那这个滚动列表是怎么样实现的呢?接着下来就分析这个类的代码,类的继承关系如下:#001 class LLScrollListCtr...
阅读(2092) 评论(0)

第二人生的源码分析(八十九)从XML里创建LLButton

在第二人生里,很多界面的创建是基于XML文件来创建,比如前面提到的登录界面。在一个界面里由很多类型组件组成的,这里就介绍其中最常用的组件是按钮组件了。比如登录界面的连接或者退出按钮,都是从XML里分析出按钮的类型,然后创建按钮的。下面就来分析一下LLButton的XML处理代码,如下:#001 LLView* LLButton::fromXML(LLXMLNodePtr node, LLVie...
阅读(1870) 评论(0)

第二人生的源码分析(八十八)LLButton类显示按钮的名称

前面介绍按钮可以显示在窗口里,以及这个类的声明,现在来仔细地分析一下它是怎么样实现名称显示的。在构造函数里先保存传送入来的名称,如下:#001    mUnselectedLabel = unselected_label;#002    mSelectedLabel = selected_label;#003  从类声明里可以看到mSelectedLabel和mUnsele...
阅读(2878) 评论(0)

第二人生的源码分析(八十七)LLButton类实现按钮功能

在前面介绍了登录过程的界面里有一个退出按钮,如果当用户不想登录时,就可以随时按这个按钮退出登录的过程,它的界面如下面,那么这个按钮是怎么样实现的呢? 从上图右下角可以看到Quit按钮,它的功能实现是由类LLButton来实现的,这个类的声明如下:#001 class LLButton#002 : public LLUICtrl#003 {#004 public: 按...
阅读(2616) 评论(1)

第二人生的源码分析(八十六)LLView类添加子窗口显示

前面已经介绍怎么样遍历子窗口显示,那么它的子窗口是怎么样添加到列表里的呢?下面就来仔细地分析这方面的代码,如下:#001 void LLView::addChild(LLView* child, S32 tab_group)#002 { 如果添加自己到子窗口里提示出错。#003    if (mParentView == child) #004    {#005    ...
阅读(2222) 评论(0)

第二人生的源码分析(八十五)LLView实现OpenGL窗口显示

由于OpenGL只是负责显示3D的内容,并没有相应的UI实现,因此第二人生里就采用类LLView来实现一个窗口的显示,在这个窗口里可以显示任何其它的窗口,达到递归显示窗口的内容。下面就来仔细地分析它的显示函数,如下:#001 void LLView::draw()#002 { 如果设置调试窗口显示,就显示调试窗口。#003    if (sDebugRects)#004  ...
阅读(3237) 评论(1)
24条 共2页1 2 下一页 尾页
    个人资料
    • 访问:5898479次
    • 积分:76235
    • 等级:
    • 排名:第22名
    • 原创:1624篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2102条
    文章存档