void pMenu::append(Action &action) { if(dynamic_cast(&action)) { qtMenu->addMenu(((Menu&)action).p.qtMenu); } else if(dynamic_cast(&action)) { qtMenu->addAction(((Separator&)action).p.qtAction); } else if(dynamic_cast(&action)) { qtMenu->addAction(((Item&)action).p.qtAction); } else if(dynamic_cast(&action)) { qtMenu->addAction(((CheckItem&)action).p.qtAction); } else if(dynamic_cast(&action)) { qtMenu->addAction(((RadioItem&)action).p.qtAction); } } void pMenu::setFont(Font &font) { qtMenu->setFont(*font.p.qtFont); foreach(item, menu.state.action) item.p.setFont(font); } void pMenu::setText(const string &text) { qtMenu->setTitle(QString::fromUtf8(text)); } void pMenu::constructor() { qtMenu = new QMenu; }