// 初始化4行8列 void PanlImg::init() { removeAllChildren(); CString strPath; strPath.Format(_T("%s//Config.ini"),theApp.m_szAppPath);// 程序文件夹 CIni ini(strPath); int iParts = ini.GetIntValue(_T("DISP"),_T("PARTS")); int iPartNumbers = ini.GetIntValue(_T("DISP"),_T("PARTNUMBERS")); CString strCom,strPart; int n = 0; strCom.Format(_T("COM[%i]"),n); strPart.Format(_T("PART[%i]"),n); int iPartBegin = ini.GetIntValue(_T("COM"),strPart); int iNoBegin = (iPartBegin - 1) * iPartNumbers + 1; int iNoEnd = (iParts + iPartBegin - 1) * iPartNumbers + 1; // 显示32幅图像,4行8列 for( int i = 0, id = iNoBegin; i < m_nRowNumber; i++ ) { for( int j = 0; j < m_nColumnNumber, id < iNoEnd; j++, id++ ) { m_iv[id] = new ImgView( CRect(), id ); // 到layerout()中初始化位置 addCtrl( m_iv[id] ); } } // layerout(); // 在创建窗口之前不需要调用顶级控件位置设置,否则会出现窗口m_pWnd为空的断言错误 }
void ApplicationWindow::addTabs() { struct v4l2_queryctrl qctrl; unsigned ctrl_class; unsigned i; int id; memset(&qctrl, 0, sizeof(qctrl)); qctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL; while (::ioctl(fd, VIDIOC_QUERYCTRL, &qctrl) == 0) { if ((qctrl.flags & V4L2_CTRL_FLAG_DISABLED) == 0) { ctrlMap[qctrl.id] = qctrl; if (qctrl.type != V4L2_CTRL_TYPE_CTRL_CLASS) classMap[V4L2_CTRL_ID2CLASS(qctrl.id)].push_back(qctrl.id); } qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL; } if (qctrl.id == V4L2_CTRL_FLAG_NEXT_CTRL) { strcpy((char *)qctrl.name, "User Controls"); qctrl.id = V4L2_CTRL_CLASS_USER | 1; qctrl.type = V4L2_CTRL_TYPE_CTRL_CLASS; ctrlMap[qctrl.id] = qctrl; for (id = V4L2_CID_USER_BASE; id < V4L2_CID_LASTP1; id++) { qctrl.id = id; if (::ioctl(fd, VIDIOC_QUERYCTRL, &qctrl)) continue; if (qctrl.flags & V4L2_CTRL_FLAG_DISABLED) continue; ctrlMap[qctrl.id] = qctrl; classMap[V4L2_CTRL_CLASS_USER].push_back(qctrl.id); } for (qctrl.id = V4L2_CID_PRIVATE_BASE; ::ioctl(fd, VIDIOC_QUERYCTRL, &qctrl) == 0; qctrl.id++) { if (qctrl.flags & V4L2_CTRL_FLAG_DISABLED) continue; ctrlMap[qctrl.id] = qctrl; classMap[V4L2_CTRL_CLASS_USER].push_back(qctrl.id); } } for (ClassMap::iterator iter = classMap.begin(); iter != classMap.end(); ++iter) { ctrl_class = V4L2_CTRL_ID2CLASS(iter->second[0]); id = ctrl_class | 1; const struct v4l2_queryctrl &qctrl = ctrlMap[id]; QVBox *vbox = new QVBox(tabs); QGrid *grid = new QGrid(4, vbox); grid->setSpacing(3); tabs->addTab(vbox, (char *)qctrl.name); for (i = 0; i < iter->second.size(); i++) { if (i & 1) id = iter->second[(1+iter->second.size()) / 2 + i / 2]; else id = iter->second[i / 2]; addCtrl(grid, ctrlMap[id]); } finishGrid(vbox, grid, ctrl_class, i & 1); } }
bool DumbTrajectory::getStateVector(bool echo){ char buf[1024]; curMap = new std::map<std::string, void*>; scriptFile.getline(buf, 1024); if(not scriptFile.eof() ){ std::string line(buf); istringstream lineStream(line); for(unsigned int i = 0; i < states.size(); i++){ //offset = it+i; float value; lineStream >> value; addCtrl( states[i], value); //(*curMap)[ states[i] ] = new float(value); //RTT::Logger::log(RTT::Logger::Debug) << value << ", "; } RTT::Logger::log(RTT::Logger::Debug) << "SP" << RTT::endlog(); return true; }
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object CCMenuItemImage *pCloseItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 , origin.y + pCloseItem->getContentSize().height/2)); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu, 1); auto tools = ToolUtils::CAdjustCtrls::create(); addChild(tools, 100); tools->addCtrl(pMenu); return true; }
BOOL CWndCtrlPos::addCtrlID(INT iID, DWORD dwXFlags, DWORD dwYFlags, LPPOINT ptMore) { if (m_hWnd == NULL) return FALSE; return addCtrl(GetDlgItem(m_hWnd, iID), dwXFlags, dwYFlags, ptMore); }
void ApplicationWindow::addTabs() { v4l2_queryctrl qctrl; unsigned ctrl_class; unsigned i; int id; memset(&qctrl, 0, sizeof(qctrl)); qctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL; while (queryctrl(qctrl)) { if (is_valid_type(qctrl.type) && (qctrl.flags & V4L2_CTRL_FLAG_DISABLED) == 0) { m_ctrlMap[qctrl.id] = qctrl; if (qctrl.type != V4L2_CTRL_TYPE_CTRL_CLASS) m_classMap[V4L2_CTRL_ID2CLASS(qctrl.id)].push_back(qctrl.id); } qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL; } if (qctrl.id == V4L2_CTRL_FLAG_NEXT_CTRL) { strcpy((char *)qctrl.name, "User Controls"); qctrl.id = V4L2_CTRL_CLASS_USER | 1; qctrl.type = V4L2_CTRL_TYPE_CTRL_CLASS; m_ctrlMap[qctrl.id] = qctrl; for (id = V4L2_CID_USER_BASE; id < V4L2_CID_LASTP1; id++) { qctrl.id = id; if (!queryctrl(qctrl)) continue; if (!is_valid_type(qctrl.type)) continue; if (qctrl.flags & V4L2_CTRL_FLAG_DISABLED) continue; m_ctrlMap[qctrl.id] = qctrl; m_classMap[V4L2_CTRL_CLASS_USER].push_back(qctrl.id); } for (qctrl.id = V4L2_CID_PRIVATE_BASE; queryctrl(qctrl); qctrl.id++) { if (!is_valid_type(qctrl.type)) continue; if (qctrl.flags & V4L2_CTRL_FLAG_DISABLED) continue; m_ctrlMap[qctrl.id] = qctrl; m_classMap[V4L2_CTRL_CLASS_USER].push_back(qctrl.id); } } m_haveExtendedUserCtrls = false; for (unsigned i = 0; i < m_classMap[V4L2_CTRL_CLASS_USER].size(); i++) { unsigned id = m_classMap[V4L2_CTRL_CLASS_USER][i]; if (m_ctrlMap[id].type == V4L2_CTRL_TYPE_INTEGER64 || m_ctrlMap[id].type == V4L2_CTRL_TYPE_STRING || V4L2_CTRL_DRIVER_PRIV(id)) { m_haveExtendedUserCtrls = true; break; } } for (ClassMap::iterator iter = m_classMap.begin(); iter != m_classMap.end(); ++iter) { if (iter->second.size() == 0) continue; ctrl_class = V4L2_CTRL_ID2CLASS(iter->second[0]); id = ctrl_class | 1; m_col = m_row = 0; m_cols = 4; const v4l2_queryctrl &qctrl = m_ctrlMap[id]; QWidget *t = new QWidget(m_tabs); QVBoxLayout *vbox = new QVBoxLayout(t); QWidget *w = new QWidget(t); vbox->addWidget(w); QGridLayout *grid = new QGridLayout(w); grid->setSpacing(3); m_tabs->addTab(t, (char *)qctrl.name); for (i = 0; i < iter->second.size(); i++) { if (i & 1) id = iter->second[(1+iter->second.size()) / 2 + i / 2]; else id = iter->second[i / 2]; addCtrl(grid, m_ctrlMap[id]); } grid->addWidget(new QWidget(w), grid->rowCount(), 0, 1, m_cols); grid->setRowStretch(grid->rowCount() - 1, 1); w = new QWidget(t); vbox->addWidget(w); grid = new QGridLayout(w); finishGrid(grid, ctrl_class); } }