Hello all,
I have successfully implemented the code that enables dragging of the recolor nodes. 
Right now, any node you drag shall change the color of the entire selection. 

Another development: I successfully can edit the color from the Desktop.
Here it is for future reference if someone needs it.

Inkscape::Selection *selection = sp_desktop_selection(desktop);

    GSList const *items = selection->itemList();
    g_printf("\n\n\t\t Prinitng the id's of Selected objects ");
    for (GSList const *i = items; i != NULL; i = i->next) 
    {
        SPObject *obj=reinterpret_cast<SPObject *>(i->data);
        Inkscape::XML::Node* obj_repr = obj->getRepr();
        SPCSSAttr* obj_css = sp_repr_css_attr( obj_repr , "style" );
        sp_repr_css_set_property ( obj_css , "fill", "#00ff00");
        Glib::ustring str;
        sp_repr_css_write_string (obj_css, str);
        obj_repr->setAttribute ("style", str.c_str(), TRUE);
    }

Now only the linking task remains. By linking I mean the link b/w the recolor nodes and the selected objects so that only the respective node is changing the color of the respective object. 

I am facing one problem in that respect:
Initializing a string, 

gchar* id = g_sprintf( "obj%d", i );
is giving a runtime error. The same goes with g_snprintf( ..) 

Any idea whats going wrong ?
-- 
Arshdeep Singh
Third Year, Computer Engineering
Delhi Technological University
Ph: +91-9654115614
https://sites.google.com/site/adsingh1729/home