CScrollView* CScrollView::create(const Size& contentSize) { CScrollView * pRet = new CScrollView(); if( pRet && pRet->initWithSize(contentSize) ) { pRet->autorelease(); return pRet; } CC_SAFE_DELETE(pRet); return NULL; }
//----------------------------------------------------------------------------- void CScrollContainer::onDragMove (IDataPackage* drag, const CPoint& where) { if (autoDragScroll) { float x, y; if (getScrollValue (where, x, y)) { CScrollView* scrollView = static_cast<CScrollView*> (getParentView ()); if (scrollView) { CRect r (getViewSize ()); r.offset (x, y); scrollView->makeRectVisible (r); } } } return CViewContainer::onDragMove (drag, where); }
CScrollView *TuiManager::createScrollView(float tag, Color4B color, int direction, int innerWidth, int innerHeight, float x, float y, float w, float h, float rotation){ CScrollView *pView = CScrollView::create(Size(w,h)); if (color.a != 0) pView->setBackgroundColor(color); pView->setPosition(Vec2(x,-y)); pView->setContainerSize(Size(innerWidth, innerHeight)); pView->setDirection((CScrollViewDirection)direction); pView->setRotation(rotation); pView->setTag(tag); return pView; }
//----------------------------------------------------------------------------- CMessageResult CScrollContainer::notify (CBaseObject* sender, IdStringPtr message) { if (message == kMsgViewSizeChanged && !inScrolling) { uint32_t numSubViews = getNbViews (); CView* view = static_cast<CView*> (sender); if (numSubViews == 1 && view && isChild (view)) { CRect r (view->getViewSize ()); CRect newContainerSize (containerSize); newContainerSize.setWidth (r.getWidth ()); newContainerSize.setHeight (r.getHeight ()); if (newContainerSize != containerSize) { CScrollView* scrollView = (CScrollView*)getParentView (); scrollView->setContainerSize (newContainerSize); } } } return getParentView () ? getParentView ()->notify (sender, message) : kMessageUnknown; }
//----------------------------------------------------------------------------- bool CScrollContainer::attached (CView* parent) { bool result = CViewContainer::attached (parent); if (getNbViews () == 1) { CView* view = getView (0); if (view) { CRect r (view->getViewSize ()); CRect newContainerSize (containerSize); newContainerSize.setWidth (r.getWidth ()); newContainerSize.setHeight (r.getHeight ()); if (newContainerSize != containerSize) { CScrollView* scrollView = (CScrollView*)getParentView (); scrollView->setContainerSize (newContainerSize); } } } return result; }
//! コントロール親ウィンドウを指定して初期化する //! @remarks 親ウィンドウサイズがリソースデザイン時のサイズから変更される前に呼び出さなければならない。 void CCtlLayouter::Initialize( CWnd* pParent, //!< [in] コントロール親ウィンドウ DWORD defaultAnchorFlags //!< [in] デフォルトアンカーフラグ、各コントロールのアンカーフラグが未指定の場合にこの値が設定される ) { m_pParent = pParent; m_DefaultAnchorFlags = defaultAnchorFlags; m_Items.clear(); // 親ウィンドウからリソースデザイン時のサイズを取得する CScrollView* pScrollView = DYNAMIC_DOWNCAST(CScrollView, m_pParent); if (pScrollView != NULL) { // HACK: 親がフォームビューの場合には OnInitialUpdate() のタイミングでは既にリソースデザイン時のサイズから変更されているので専用のメソッドで取得する int nMapMode; CSize sizeTotal, sizePage, sizeLine; pScrollView->GetDeviceScrollSizes(nMapMode, sizeTotal, sizePage, sizeLine); m_InitialParentClientSize = sizeTotal; } else { // 現状のサイズを初期サイズとして取得する CRect rc; m_pParent->GetClientRect(&rc); m_InitialParentClientSize = CSize(rc.Width(), rc.Height()); } }
CScrollView *TuiManager::createScrollView(float tag, int direction,int innerWidth,int innerHeight, float x, float y, float w, float h, float rotation){ CScrollView *pView = CScrollView::create(Size(Point(w,h))); pView->setPosition(Point(x,-y)); pView->setContainerSize(Size(innerWidth,innerHeight)); pView->setDirection((CScrollViewDirection)direction); pView->setRotation(rotation); pView->setTag(tag); return pView; }
void CVipCard::onEnter() { BaseLayer::onEnter(); //确定 CButton* pConfirm = (CButton*)m_ui->findWidgetById("confirm"); pConfirm->setOnClickListener(this, ccw_click_selector(CVipCard::onConfirm)); CButton* cancel = (CButton*)m_ui->findWidgetById("cancel"); cancel->setOnClickListener(this, ccw_click_selector(CVipCard::onCancel)); CButton* pClose = CButton::create("common/back.png", "common/back.png"); pClose->getSelectedImage()->setScale(1.1f); pClose->setPosition(VLEFT+50, VTOP-50); pClose->setOnClickListener(this,ccw_click_selector(CVipCard::onClose)); this->addChild(pClose, 999); CImageViewScale9* pRect1 = (CImageViewScale9*)m_ui->findWidgetById("rect1"); m_cardText = CursorTextField::textFieldWithPlaceHolder("", FONT_NAME, 29, CCSize(690, 110), ccBLACK); m_cardText->setPriority(this->getTouchPriority()); m_cardText->setLimitNum(17); m_cardText->setAnchorPoint(ccp(0, 0.5f)); m_cardText->setPosition( ccp(pRect1->getPositionX()-440, pRect1->getPositionY())); m_ui->addChild(m_cardText, 999); //展示区图片 CLayout *pShowInfo = CLayout::create(); CScrollView *pScroll = (CScrollView*)m_ui->findWidgetById("scroll_info"); pScroll->setDirection(eScrollViewDirectionVertical); pScroll->setBounceable(false); pScroll->getContainer()->addChild(pShowInfo); CCSize size = CCSize(957, 471); pShowInfo->setContentSize(size); pScroll->setContainerSize(size); pShowInfo->setPosition(ccp(pScroll->getContainerSize().width*0.5f, pScroll->getContainerSize().height*0.5f)); pScroll->setContentOffsetToTop(); //嫁接内容 CLayout* pLayout = (CLayout*)findWidgetById("layer_info"); pLayout->retain(); pLayout->removeFromParent(); pShowInfo->addChild(pLayout); pLayout->release(); pLayout->setPosition(ccp(size.width/2, size.height/2+10)); }
void TuiManager::parseControl(Node* container,xml_node<char> *item) { int tag = atof(item->first_attribute("tag")->value()); int x = atof(item->first_attribute("x")->value()); int y = atof(item->first_attribute("y")->value()); int w = atoi(item->first_attribute("width")->value()); int h = atoi(item->first_attribute("height")->value()); int rotation = atof(item->first_attribute("rotation")->value()); if(strcmp(item->first_attribute("type")->value(), kTuiContainerPanel) == 0){//panel CWidgetWindow* pPanel = createPanel(tag,x,y,w,h,rotation); container->addChild(pPanel); //recursive for( xml_node<char> *iitem = item->first_node( kTuiNodeControl );iitem != NULL; iitem = iitem->next_sibling()){ parseControl(pPanel,iitem); } }else if (strcmp(item->first_attribute("type")->value(), kTuiControlCell) == 0){//cell //recursive for (xml_node<char> *iitem = item->first_node(kTuiNodeControl); iitem != NULL; iitem = iitem->next_sibling()){ parseControl(container, iitem); } }else if(strcmp(item->first_attribute("type")->value(),kTuiControlImage) == 0){//image const char* file = item->first_attribute("image")->value(); float scaleX = atof(item->first_attribute("scaleX")->value()); float scaleY = atof(item->first_attribute("scaleY")->value()); CImageView *pImg = createImage(tag, file, scaleX, scaleY, x, y, rotation); container->addChild(pImg); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlImage9) == 0){//image9 const char* file = item->first_attribute("image")->value(); float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); float up = atof(item->first_attribute("up")->value()); float down = atof(item->first_attribute("down")->value()); float left = atof(item->first_attribute("left")->value()); float right = atof(item->first_attribute("right")->value()); CImageViewScale9 *pImg = createImage9(tag,file,x,y,w,h,up,down,left,right,rotation); container->addChild(pImg); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlButton) == 0){//button const char* normal = item->first_attribute("normal")->value(); const char* select = item->first_attribute("select")->value(); const char* disable = item->first_attribute("disable")->value(); float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); CButton *pBtn = createBtn(tag,normal,select,disable,x,y,w,h,rotation); container->addChild(pBtn); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlToggleView) == 0){//toggleView const char* normal = item->first_attribute("normal")->value(); const char* select = item->first_attribute("select")->value(); const char* disable = item->first_attribute("disable")->value(); float exclusion = atof(item->first_attribute("exclusion")->value()); CToggleView* toggle = createToggleView(tag,exclusion,normal,select,disable,x,y,rotation); container->addChild(toggle); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlSlider) == 0){//slider const char* bg = item->first_attribute("bg")->value(); const char* progress = item->first_attribute("progress")->value(); const char* thumb = item->first_attribute("thumb")->value(); CSlider *pSlider = createSlider(tag,bg,progress,thumb,x,y,rotation); container->addChild(pSlider); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlProgress) == 0){//progress const char* bg = item->first_attribute("bg")->value(); const char* progress = item->first_attribute("progress")->value(); CProgressBar *pProgress = createProgress(tag,bg,progress,x,y,rotation); container->addChild(pProgress); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlLabel) == 0){//label float size = atof(item->first_attribute("textSize")->value()); int alignment = atoi(item->first_attribute("alignment")->value()); const char* text = item->first_attribute("text")->value(); const char* font = item->first_attribute("textFont")->value(); float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); int r = atoi(item->first_attribute("red")->value()); int g = atoi(item->first_attribute("green")->value()); int b = atoi(item->first_attribute("blue")->value()); int r2 = atoi(item->first_attribute("strokeRed")->value()); int g2 = atoi(item->first_attribute("strokeGreen")->value()); int b2 = atoi(item->first_attribute("strokeBlue")->value()); int strokeSize = atoi(item->first_attribute("strokeSize")->value()); int shadowDistance = atoi(item->first_attribute("shadowDistance")->value()); int shadowBlur = atoi(item->first_attribute("shadowBlur")->value()); CLabel *pLabel = createLabel(tag, text, font, alignment, size, r, g, b, x, y, w, h, r2,g2,b2,strokeSize,shadowDistance,shadowBlur,rotation); container->addChild(pLabel); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlLabelAtlas) == 0){//labelAtlas const char* imgPath = item->first_attribute("image")->value(); float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); CLabelAtlas *pLabAtlas = createLabelAtlas(tag,imgPath,x,y,w,h,rotation); container->addChild(pLabAtlas); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlArmature) == 0){//armature const char* xml = item->first_attribute("xml")->value(); const char* png = item->first_attribute("png")->value(); const char* plist = item->first_attribute("plist")->value(); const char* name = item->first_attribute("name")->value(); Armature *pArmature = createArmature(tag,name,png,plist,xml,x,y,rotation); container->addChild(pArmature); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlAnim) == 0){//animation const char* png = item->first_attribute("png")->value(); const char* plist = item->first_attribute("plist")->value(); const char* name = item->first_attribute("name")->value(); Sprite *pSprite = createAnim(tag,name,png,plist,x,y,rotation); container->addChild(pSprite); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlControl) == 0){//controlView const char* baseboard = item->first_attribute("baseboard")->value(); const char* joystick = item->first_attribute("joystick")->value(); CControlView *pControl = createControl(tag,baseboard,joystick,x,y,rotation); container->addChild(pControl); }else if (strcmp(item->first_attribute("type")->value(), kTuiContainerScroll) == 0){//scrollView float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); int direction = atof(item->first_attribute("direction")->value()); int innerWidth = atoi(item->first_attribute("innerWidth")->value()); int innerHeight = atoi(item->first_attribute("innerHeight")->value()); CScrollView *pView = createScrollView(tag, direction, innerWidth, innerHeight, x, y, w, h, rotation); container->addChild(pView); //recursive for (xml_node<char> *iitem = item->first_node(kTuiNodeControl); iitem != NULL; iitem = iitem->next_sibling()){ parseControl(pView->getContainer(), iitem); } }else if (strcmp(item->first_attribute("type")->value(), kTuiContainerLayout) == 0){//layout float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); CLayout *pLayout = createLayout(tag, x, y, w, h, rotation); container->addChild(pLayout); //recursive for (xml_node<char> *iitem = item->first_node(kTuiNodeControl); iitem != NULL; iitem = iitem->next_sibling()){ parseControl(pLayout, iitem); } Vector<Node*> vet = pLayout->getChildren(); for (Node *pChild : vet){//Offset coordinates Because CLayout zero point in the lower left corner pChild->setPosition(pChild->getPosition() + Point(w / 2, h / 2)); } }else if(strcmp(item->first_attribute("type")->value(),kTuiControlListView) == 0){//listView float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); const char* img = item->first_attribute("image")->value(); float num = atof(item->first_attribute("num")->value()); CListView* pList = createListView(tag,img,x,y,w,h,rotation); container->addChild(pList); for(int i=0; i<num;i++){//add item xml_node<char> *iitem = item->first_node( kTuiNodeControl ); w = atof(iitem->first_attribute("width")->value()); h = atof(iitem->first_attribute("height")->value()); CLayout *pLayout = createLayout(i,0,0,w,h,rotation); for( xml_node<char> *iiitem = iitem->first_node( kTuiNodeControl );iiitem!=NULL; iiitem = iiitem->next_sibling()){ parseControl(pLayout,iiitem); } Vector<Node*> vet = pLayout->getChildren(); for(Node *pChild : vet){//Offset coordinates Because CLayout zero point in the lower left corner if(pChild->getTag() > 0) pChild->setPosition(pChild->getPosition()+Point(w/2,h/2)); } pList->insertNodeAtLast(pLayout); } pList->reloadData(); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlPageView) == 0){//pageView float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); float num = atoi(item->first_attribute("num")->value()); int dir = atoi(item->first_attribute("direction")->value()); const char* img = item->first_attribute("image")->value(); CPageView *pPageView = createPageView(tag, img, dir, num, x, y, w, h, rotation); container->addChild(pPageView); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlCheckBox) == 0){//checkBox const char* normal1 = item->first_attribute("normal1")->value(); const char* normal2 = item->first_attribute("normal2")->value(); const char* select1 = item->first_attribute("select1")->value(); const char* select2 = item->first_attribute("select2")->value(); const char* disable1 = item->first_attribute("disable1")->value(); const char* disable2 = item->first_attribute("disable2")->value(); CCheckBox *pCheckBox = createCheckBox(tag,normal1,normal2,select1,select2,disable1,disable2,x,y,rotation); container->addChild(pCheckBox); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlArmatureBtn) == 0){//ArmatureBtn const char* png = item->first_attribute("png")->value(); const char* plist = item->first_attribute("plist")->value(); const char* name = item->first_attribute("name")->value(); const char* xml = item->first_attribute("xml")->value(); ArmatureBtn *pArmBtn = createArmatureBtn(tag,name,png,plist,xml,x,y,rotation); container->addChild(pArmBtn); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlNumbericStepper) == 0){//NumbericStepper const char* lnormal = item->first_attribute("lnormal")->value(); const char* rnormal = item->first_attribute("rnormal")->value(); const char* lselect = item->first_attribute("lselect")->value(); const char* rselect = item->first_attribute("rselect")->value(); const char* ldisable = item->first_attribute("ldisable")->value(); const char* rdisable = item->first_attribute("rdisable")->value(); const char* stepBg = item->first_attribute("stepBg")->value(); NumericStepper *pNumStep = createNumStep(tag,lnormal,lselect,ldisable,rnormal,rselect,rdisable,stepBg,x,y,rotation); container->addChild(pNumStep); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlPaticle) == 0){//Paticle const char* plist = item->first_attribute("plist")->value(); ParticleSystem *pPartical = createParticle(tag,plist,x,y); container->addChild(pPartical); }else if (strcmp(item->first_attribute("type")->value(), kTuiControlTable) == 0){//TableView float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); float num = atoi(item->first_attribute("num")->value()); int dir = atoi(item->first_attribute("direction")->value()); int cellWidth = atoi(item->first_attribute("cellWidth")->value()); int cellHeight = atoi(item->first_attribute("cellHeight")->value()); const char* img = item->first_attribute("image")->value(); CTableView *pView = createTableView(tag, img, dir, num, cellWidth, cellHeight, x, y, w, h, rotation); container->addChild(pView); }else if (strcmp(item->first_attribute("type")->value(), kTuiControlGridView) == 0){//GridView float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); int cellWidth = atoi(item->first_attribute("cellWidth")->value()); int cellHeight = atoi(item->first_attribute("cellHeight")->value()); int column = atoi(item->first_attribute("column")->value()); int num = atoi(item->first_attribute("num")->value()); const char* img = item->first_attribute("image")->value(); CGridView *pView = createGridView(tag, img, column, num, cellWidth, cellHeight, x, y, w, h, rotation); container->addChild(pView); }else if (strcmp(item->first_attribute("type")->value(), kTuiControlGridPageView) == 0){//GridPageView float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); int cellWidth = atoi(item->first_attribute("cellWidth")->value()); int cellHeight = atoi(item->first_attribute("cellHeight")->value()); int column = atoi(item->first_attribute("column")->value()); int row = atoi(item->first_attribute("row")->value()); int num = atoi(item->first_attribute("num")->value()); int dir = atoi(item->first_attribute("direction")->value()); const char* img = item->first_attribute("image")->value(); CGridPageView *pView = createGridPageView(tag, img, dir, column, row, num, cellWidth, cellHeight, x, y, w, h, rotation); container->addChild(pView); }else if(strcmp(item->first_attribute("type")->value(),kTuiControlEditBox) == 0){//EditBox float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); const char* img = item->first_attribute("image")->value(); int inputMode = atoi(item->first_attribute("inputMode")->value()); int inputFlag = atoi(item->first_attribute("inputFlag")->value()); EditBox *pEdit = createEditBox(tag, img, inputMode, inputFlag, x, y, w, h, rotation); container->addChild(pEdit); }else if (strcmp(item->first_attribute("type")->value(), kTuiControlMovieView) == 0){//MovieView const char* png = item->first_attribute("png")->value(); const char* plist = item->first_attribute("plist")->value(); const char* json = item->first_attribute("json")->value(); MovieView *pMovieView = createMovieView(tag, json, plist, png, x, y, rotation); container->addChild(pMovieView); }else if (strcmp(item->first_attribute("type")->value(), kTuiContainerCircleMenu) == 0){//CircleMenu float w = atof(item->first_attribute("width")->value()); float h = atof(item->first_attribute("height")->value()); CircleMenu *pMenu = createCircleMenu(tag, x, y, w, h, rotation); container->addChild(pMenu); //recursive for (xml_node<char> *iitem = item->first_node(kTuiNodeControl); iitem != NULL; iitem = iitem->next_sibling()){ parseControl(pMenu, iitem); } pMenu->reloadData(); } }
void DrawTestEditor::setTabView (CFrame* frame, const CRect& r, long position) { frame->removeAll (); CBitmap* tabButtonBitmap = new CBitmap (kTabButtonBitmap); CTabView* tabView = new MyTabView (r, frame, tabButtonBitmap, NULL, position, this); tabView->setTransparency (true); frame->addView (tabView); CRect tabSize = tabView->getTabViewSize (tabSize); // tabSize.inset (1, 1); // add tabs CView* testView; CBitmap* testBitmap = new CBitmap (kTestBitmap); CRect containerSize; containerSize.right = testBitmap->getWidth () + 1000; containerSize.bottom = testBitmap->getHeight () + 1000; // the first tab is a scroll view with a movie bitmap CScrollView* scrollview = new CScrollView (tabSize, containerSize, frame, CScrollView::kHorizontalScrollbar|CScrollView::kVerticalScrollbar/*|CScrollView::kDontDrawFrame*/); scrollview->setBackgroundColor (kWhiteCColor); // scrollview->setTransparency (true); CPoint p (0,0); CRect mbSize (containerSize); mbSize.setWidth (testBitmap->getWidth ()); mbSize.setHeight (testBitmap->getHeight ()); testView = new CMovieBitmap (mbSize, NULL, 0, 1, testBitmap->getHeight (), testBitmap, p); testBitmap->forget (); scrollview->addView (testView); CRect controlsGUISize2 (0, 0, 420, 210); controlsGUISize2.offset (mbSize.right, 5); testView = new ControlsGUI (controlsGUISize2, frame); scrollview->addView (testView); tabView->addTab (scrollview, "Scroll View"); testView = new PLinesView (tabSize); tabView->addTab (testView, "Lines"); testView = new PRectsView (tabSize); tabView->addTab (testView, "Rects"); testView = new PMiscView (tabSize); tabView->addTab (testView, "Misc"); // the third tab is the old controlsgui view embeded into a container view CRect controlsGUISize (0, 0, 420, 210); controlsGUISize.offset (5, 5); testView = new ControlsGUI (controlsGUISize, frame); CViewContainer* controlContainer = new CViewContainer (tabSize, frame); controlContainer->setTransparency (true); controlContainer->addView (testView); tabView->addTab (controlContainer, "Controls"); CColor redColor = {255, 0, 0, 150}; CColor greenColor = {0, 255, 0, 150}; CColor blueColor = {0, 0, 255, 150}; CViewContainer* clipView = new CViewContainer (tabSize, frame); clipView->setTransparency (true); CRect clipViewSize (0, 0, tabSize.getWidth () / 4, tabSize.getHeight () / 2); MyColoredView* cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (redColor); clipView->addView (cv); clipViewSize.offset (clipViewSize.getWidth (), 0); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (greenColor); clipView->addView (cv); clipViewSize.offset (clipViewSize.getWidth (), 0); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (blueColor); clipView->addView (cv); clipViewSize.offset (clipViewSize.getWidth (), 0); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (redColor); clipView->addView (cv); clipViewSize (0, tabSize.getHeight () / 2, tabSize.getWidth () / 4, tabSize.getHeight ()); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (greenColor); clipView->addView (cv); clipViewSize.offset (clipViewSize.getWidth (), 0); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (blueColor); clipView->addView (cv); clipViewSize.offset (clipViewSize.getWidth (), 0); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (redColor); clipView->addView (cv); clipViewSize.offset (clipViewSize.getWidth (), 0); cv = new MyColoredView (clipViewSize); cv->setBackgroundColor (greenColor); clipView->addView (cv); tabView->addTab (clipView, "Clip Test"); tabView->alignTabs (CTabView::kAlignCenter); tabButtonBitmap->forget (); frame->setDirty (); }