加载中…
个人资料
JUCE类库中文技术支持
JUCE类库中文技术支持
  • 博客等级:
  • 博客积分:0
  • 博客访问:16,639
  • 关注人气:6
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
访客
加载中…
好友
加载中…
评论
加载中…
留言
加载中…
博文
(2015-05-13 02:27)
有事请移步:
http://www.underwaysoft.com

阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
实在无法再忍受新浪博客的杂乱、丑陋的广告和网页设计理念。
兹决定建个网站,清清静静的发点东西,如能吸引和聚集一批跨平台开发与JUCE类库的同好,再好不过。

网站筹备中,敬请随时关注。
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

分类: 编程/JUCE类库

    本小节内容主要涉及KeyMappingEditorComponentKeyPressMappingSet这两个类。

 

4 13   KeyMappingEditorComponent快捷键编辑对话框

 

阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

分类: 编程/JUCE类库
4.5  功能性组件
    可以完成一组具体功能的集成式组件或GUI方面的相关控制、助手。
4.5.1  ApplicationCommandManager
本小节内容涉及以下类:
 ApplicationCommandManager 命令管理器,数据容器,保存快捷键集合对象
 KeyPressMappingSet 快捷键集合,保存所有命令及其详细信息
 ApplicationCommandInfo 命令信息,代表一条具体的命令
 ApplicationCommandManagerListener 捕获命令管理器所产生的消息(基本不用)
 ApplicationCommandTarget 命令目标,定义所有命令,并执行具体的功能
 InvocationInfo 命令目标所调用的命令信息
JUCE程序中的各类命令和快捷键可集中管理和统一调度,主要用到ApplicationCommandTarget(程序命令目标,抽象基类)和ApplicationCommandManager(程序命令管理器类,大小64字节)这两个类。任意组件均可成为程序命令目标,而命令管理器则用于注册程序中的所有命令目标并提供组件所需的KeyListener。
程序命令功能的实质是取代各组
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

控件

分类: 编程/JUCE类库
实现套索功能,需3个类模板和1个抽象类:
 LassoComponent 套索组件,继承自Component。通常声明为内容组件的栈对象。
 LassoSource 独立的抽象基类。拖拽套索时选择的项目由该类获取并转存。

内容组件需继承该类。
 SelectedItemSet 项目容器,继承自ChangeBroadcaster。

声明为内容组件的栈对象。
 ChangeListener 可变捕获器,抽象基类,用于捕获项目容器所产生的消息。
内容组件需继承该类。

具体流程有6:
1、内容组件类的类头:
class BaseComp : public Component, 
                 private ChangeListener,   // 捕获并处理SelectedItemSet所产生的消息
                 public LassoSource // 继承抽象模板类LassoSource

2、类中声明栈对象,注意这几个都是模板类:
 
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

控件

分类: 编程/JUCE类库
功能:鼠标拖拉组件与组件之间的边框(调整栏),可实时改变一个或多个组件(操作区)的大小。要实现此功能,需用到两个类:StretchableLayoutManager和StretchableLayoutResizerBar。简而言之,要实现布局分栏与拖拽调整,需:布局器与调整栏。

实现流程:

 StretchableLayoutManager布局器是一个独立的类,相当于一个容器,容器的元素为2到3个必须的子组件,其中第一个可为要调整大小的内容组件的子组件,第二个可为调整栏对象,第三个可选,如有,可设置一个空的子组件(尽管为空,但该子组件有其原点坐标,可利用该坐标联动调整内容组件中的其他子组件的定位)。布局器保存每个元素的一组数据,比如子组件可调整的宽度或高度的上限值、下限值、默认值,并根据设置自动调整这些元素的定位。

 StretchableLayoutResizerBar调整栏继承自Component类,按普通的控件办理即可,其构造1参为布局器对象,构造2参为自身在布局器中的索引位置,构造3参确定是垂直的,还是水平的。

 布局器和调整栏的创建与初始化设置在内容组
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

控件

分类: 编程/JUCE类库
Toolbar工具栏不仅可以放置并显示常规的工具栏按钮(带图标和文字说明),还可以放置任意类型的控件,比如:组合框、列表框、文本标签、推子、弹出式菜单等等,甚至可以放置各类自定义的组件。也就是说:工具栏可为一个定制的组件,包含可绘制按钮或图像按钮,以及其他控件。

带图像按钮的常规工具栏所需的类有4个:

1、ToolbarItemFactory工具栏项目工厂类。该类负责产生工具栏所需的各个组件(按钮),包括分隔符,即该类负责创建ToolbarItemComponent类的对象。此类是抽象基类,派生类需实现3个纯虚函数,该类除构造函数和析构函数外,也只有这3个纯虚函数:(博客发表,代码略)

2、ToolbarButton工具栏按钮类。ToolbarItemComponent的派生类,ToolbarItemFactory工具栏项目工厂类的createItem ()函数可创建并返回ToolbarItemComponent类型的指针对象。ToolbarButton的构造参数有4个,分别是:
1参:按钮的ID,即createItem()函数的参数。
2参:按钮的文本(工具栏中可显示在按钮下方,或者仅显示此文本)。
3参:按钮在常规状态下所
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

控件

分类: 编程/JUCE类库
TableListBox以表格的形式显示各类数据,而数据来源与显示(绘制)则由抽象基类TableListBoxModel来完成。因此,内容组件类如使用表格控件,需继承TableListBoxModel类并实现其纯虚函数,而后在类中声明TableListBox表格对象。通常还需要一个TableHeaderComponent表头类(每一列的标头,用于显示列标题,添加或移除列,本列数据排序等)。

注意:表格中的某一列可使用自定义的组件,比如组合框。可参见JUCE-Demo源代码中的TableDemo.cpp源文件(TableDemoComponent类的构造函数)。

使用表格6步走:
1、内容组件继承TableListBoxModel,作为表格的数据来源并完成数据的显示:
class TableDemoComponent : public Component, public TableListBoxModel

2、内容组件中添加函数,用于获取要显示的数据。比如:(博客发表,代码略)

通常,将所需的数据赋值给本类的某个或某些数据成员,比如示例中的XML节点对象或数组对象。

3、内容组件中声明表格对象
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

控件

分类: 编程/JUCE类库
TreeView采用树的形式显示有关数据,特别是具有父节点和子节点性质的数据。因此,可称之为“树形视图”。实现树形视图依然需要经典的“模型-视图”模式,关键思路有二:

 自定义树形视图中所显示的节点类,继承自TreeViewItem抽象基类,实现其纯虚函数并重写几个核心函数。节点可包含子节点,在该类的itemOpennessChanged()函数中循环法调用addSubItem()函数来添加即可。如果采用XML技术,addSubItem()可直接添加本类的对象。所有节点均为TreeView中的一个项目,并且自动分层布局。TreeViewItem类的成员函数不少,比如:绘制节点,收缩展开某个父节点,添加、移除、选择,不选某个节点,返回所选的子节点,返回某个子节点的父节点,返回某个节点在TreeView中的索引,返回本节点所隶属的TreeView,判断某个父节点是否已展开,判断是否选择了某个节点,设置本节点的宽度和高度,鼠标单击或双击时自动调用本类的一些函数,允许拖拽本节点等等。

 内容组件中声明、使用并管理TreeView对象。该对象类负责显示并控制自定义的TreeViewItem节点,是否可多选,返回当前所选的某个节点等等。注意:一
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
标签:

juce类库

跨平台开发

控件

分类: 编程/JUCE类库
复合控件这个定义并不严谨,仅为了说明方便。指的是:前台UI界面需抽象数据模型或其它辅助类才可以正常工作的复杂控件。绝大多数复合控件,均为“模型-视图”模式。即:视图类负责前台显示或提供人机交互的操作界面,抽象的模型类负责数据来源与每条数据项的内部绘制、事件判断处理。实际编程时,在内容组件类中声明、管理和使用视图类的对象,同时,内容组件类继承自抽象的模型类,实现其纯虚函数,用自身(this)将二者关联到一起(视图设置模型),共同实现所需的功能。

从MVC的角度来理解:内容组件相当于模型与控制的合体(比如绘制某个数据项、针对某个数据项的鼠标和键盘事件的判断处理等等),同时还作为视图的容器,而视图则用于显示数据,并处理交互操作(比如选择、滚动等等)。

4.4.1  ListBox

ListBox是Component的直接派生类。要使用ListBox列表框,内容组件需继承ListBoxModel(列表框模型)类,实现该基类的2个纯虚函数,重写该基类的1个核心函数。ListBox对象的构造参数需要一个ListBoxModel类的指针。
某个内容组件类使用列表框的常规步
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有