void Group::registerChildren(bool registerAll) { Registerable::registerChildren(registerAll); registerChild(model, registerAll); registerChild(renderer, registerAll); for( Emitter** it = emitters.begin(); it < emitters.end(); ++it ) registerChild(*it, registerAll); for( Modifier** it = modifiers.begin(); it < modifiers.end(); ++it ) registerChild(*it, registerAll); }
void Group::registerChildren(bool registerAll) { Registerable::registerChildren(registerAll); registerChild(model,registerAll); registerChild(renderer,registerAll); for (std::vector<Emitter*>::const_iterator it = emitters.begin(); it != emitters.end(); ++it) registerChild(*it,registerAll); for (std::vector<Modifier*>::const_iterator it = modifiers.begin(); it != modifiers.end(); ++it) registerChild(*it,registerAll); }
void System::registerChildren(bool registerAll) { Registerable::registerChildren(registerAll); for (std::vector<Group*>::const_iterator it = groups.begin(); it != groups.end(); ++it) registerChild(*it,registerAll); }
void ModifierGroup::registerChildren(bool registerAll) { Modifier::registerChildren(registerAll); for (std::vector<Modifier*>::const_iterator it = modifiers.begin(); it != modifiers.end(); ++it) registerChild(*it,registerAll); }
//________________________________________________________________________________ void ComboBoxData::setButton( GtkWidget* widget ) { if( _button._widget == widget ) return; if( _button._widget ) { std::cerr << "Carbon::WindowManager::wmButtonPress - warning: a button was already set for this combobox" << std::endl; _button._toggledId.disconnect(); _button._sizeAllocateId.disconnect(); } _button._toggledId.connect( G_OBJECT(widget), "toggled", G_CALLBACK( childToggledEvent ), this ); _button._sizeAllocateId.connect( G_OBJECT(widget), "size-allocate", G_CALLBACK( childSizeAllocateEvent ), this ); _button._widget = widget; registerChild( widget, false ); updateButtonEventWindow(); gtk_widget_queue_draw( widget ); }
//________________________________________________________________________________ void ComboBoxData::registerChild( GtkWidget* widget, bool recursive ) { // make sure widget is not already in map if( _hoverData.find( widget ) == _hoverData.end() ) { #if CARBON_DEBUG std::cerr << "Carbon::ComboBoxData::registerChild -" << " " << widget << " (" << G_OBJECT_TYPE_NAME( widget ) << ")" << std::endl; #endif // allocate new Hover data HoverData data; data._widget = widget; data._destroyId.connect( G_OBJECT(widget), "destroy", G_CALLBACK( childDestroyNotifyEvent ), this ); data._enterId.connect( G_OBJECT(widget), "enter-notify-event", G_CALLBACK( enterNotifyEvent ), this ); data._leaveId.connect( G_OBJECT(widget), "leave-notify-event", G_CALLBACK( leaveNotifyEvent ), this ); // and insert in map _hoverData.insert( std::make_pair( widget, data ) ); } /* also insert widget's children, recursively. that should take care of buttons in tabs and other fancy stuff that applications mght do */ if( recursive && GTK_IS_CONTAINER( widget ) ) { GList *children( gtk_container_get_children( GTK_CONTAINER(widget) ) ); for( GList* child = g_list_first(children); child; child = g_list_next(child) ) { registerChild( GTK_WIDGET( child->data ) ); } if( children ) g_list_free( children ); } }
NavigationContextPointer AbstractNavigationContext::execute(const NavigationAction& action) { if(action.targetContext) return NavigationContextPointer(action.targetContext); if(action.type == NavigationAction::ExecuteKey) return executeKeyAction(action.key); if( !action.decl && (action.type != NavigationAction::JumpToSource || action.document.isEmpty()) ) { kDebug() << "Navigation-action has invalid declaration" << endl; return NavigationContextPointer(this); } qRegisterMetaType<KUrl>("KUrl"); qRegisterMetaType<KTextEditor::Cursor>("KTextEditor::Cursor"); switch( action.type ) { case NavigationAction::ExecuteKey: break; case NavigationAction::None: kDebug() << "Tried to execute an invalid action in navigation-widget" << endl; break; case NavigationAction::NavigateDeclaration: { AbstractDeclarationNavigationContext* ctx = dynamic_cast<AbstractDeclarationNavigationContext*>(m_previousContext); if( ctx && ctx->declaration() == action.decl ) return NavigationContextPointer( m_previousContext ); return AbstractNavigationContext::registerChild(action.decl); } break; case NavigationAction::NavigateUses: { IContextBrowser* browser = ICore::self()->pluginController()->extensionForPlugin<IContextBrowser>(); if (browser) { browser->showUses(action.decl); return NavigationContextPointer(this); } // fall-through } case NavigationAction::ShowUses: return registerChild(new UsesNavigationContext(action.decl.data(), this)); case NavigationAction::JumpToSource: { KUrl doc = action.document; KTextEditor::Cursor cursor = action.cursor; { DUChainReadLocker lock(DUChain::lock()); if(action.decl) { if(doc.isEmpty()) { doc = action.decl->url().toUrl(); /* if(action.decl->internalContext()) cursor = action.decl->internalContext()->range().textRange().start() + KTextEditor::Cursor(0, 1); else*/ cursor = action.decl->rangeInCurrentRevision().start.textCursor(); } action.decl->activateSpecialization(); } } //This is used to execute the slot delayed in the event-loop, so crashes are avoided QMetaObject::invokeMethod( ICore::self()->documentController(), "openDocument", Qt::QueuedConnection, Q_ARG(KUrl, doc), Q_ARG(KTextEditor::Cursor, cursor) ); break; } case NavigationAction::ShowDocumentation: { KSharedPtr<IDocumentation> doc=ICore::self()->documentationController()->documentationForDeclaration(action.decl.data()); ICore::self()->documentationController()->showDocumentation(doc); } break; } return NavigationContextPointer( this ); }
void NormalEmitter::registerChildren(bool registerAll) { Emitter::registerChildren(registerAll); registerChild(normalZone,registerAll); }
void Emitter::registerChildren(bool registerAll) { Registerable::registerChildren(registerAll); registerChild(zone,registerAll); }
void Modifier::registerChildren(bool registerAll) { Registerable::registerChildren(registerAll); registerChild(zone,registerAll); }