JUCE类库常规控件之ConcertinaPanel

ConcertinaPanel折叠面板单继承自Component类,类似于TabbedComponent选项卡组件,可添加多个子组件,每个子组件均有一个标题栏,标题栏文本为该子组件的名称。本类所持有的子组件垂直排列,默认折叠(仅显示最后一个子组件的内容)。鼠标上下拖拽某个子组件的标题栏,可改变其大小,鼠标双击则扩展显示之。见下图所示:

ConcertinaPanel

图 4 10 ConcertinaPanel折叠面板

使用流程:内容组件创添显设删ConcertinaPanel对象,该对象调用addPanel()函数添加子组件。示例代码:

// 内容组件创添显设。无参构造。默认的子组件标题栏高度为20
addAndMakeVisible (concertinaPanel = new ConcertinaPanel());	
concertinaPanel->setBounds (x, y, width, height);

// 折叠面板添加子组件,此处使用循环添加,仅为演示
for (int i = 0; i < 3; ++i) 	 
{
    Component* subComp = new TabSubComp (i + 1);
    concertinaPanel->addPanel (-1, subComp, true);
    concertinaPanel->setPanelHeaderSize (subComp, 25);
}

LookAndFeel::drawConcertinaPanelHeader()函数负责绘制折叠面板的标题栏等元素,如需改变标题栏外观,可在LAF派生类中重写之。