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);
}
Exemple #2
0
	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);
	}
Exemple #3
0
	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);
	}
Exemple #10
0
	void Modifier::registerChildren(bool registerAll)
	{
		Registerable::registerChildren(registerAll);
		registerChild(zone,registerAll);
	}