Tengo un código que no me funciona la vdd no tengo la menor idea de que esta
pasando o que moco me estaré mandando.
Si alguien tiene ganas y paciencia y puede mirarlo, agradecería!

La cosa es asi, tengo una calse Drag_Object que tiene el comportamiento
básico para obtener un string cuando ocurre un drag en un EventBox.
En los hijos quiero redefinir la función  std::string obtener_info_drag()
para que cada hijo me de un string diferente.

class Drag_Object: public Gtk::EventBox{

private:
   /*Tipos de datos de drag*/
   std::list<Gtk::TargetEntry> listTargets;

public:

   Drag_Object(BaseObjectType* cobject, const
Glib::RefPtr<Gnome::Glade::Xml>&);

   virtual void on_event_drag_data_get(
       const Glib::RefPtr<Gdk::DragContext>&,
       Gtk::SelectionData& selection_data, guint, guint);

   /*Metodo de obtención de la información de Drag
    * Se redefine en los hijos de donde se realiza el drag*/
   virtual std::string obtener_info_drag() = 0;

   virtual ~Drag_Object(){};

};

Drag_Object::Drag_Object(BaseObjectType* cobject, const
Glib::RefPtr<Gnome::Glade::Xml>&):Gtk::EventBox(cobject){

     this->listTargets.push_back( Gtk::TargetEntry("STRING") );
     this->listTargets.push_back( Gtk::TargetEntry("text/plain") );

     /*Hago que el event box sea una fuente de drag*/
     this->drag_source_set(listTargets);

     /*Conecto la señal de drag con el metodo de obtener la
      * info de drag*/
     this->signal_drag_data_get().connect(sigc::mem_fun(*this,
             &Drag_Object::on_event_drag_data_get));

}

void Drag_Object::on_event_drag_data_get(
       const Glib::RefPtr<Gdk::DragContext>&,
       Gtk::SelectionData& selection_data, guint, guint){

       std::string info = this->obtener_info_drag();
       std::cout<<info<<std::endl;           --------------------->


//       /*Obtengo la informacion de drag*/
//       std::string info;// = *this->obtener_infos_drag();
//
//        /*Devuelvo la informacion de drag al objeto donde se realizo el
Drop*/
//        selection_data.set(selection_data.get_target(), 8 /* 8 bits format
*/,
//          (const guchar*)info.c_str(),
//          info.size() /* largo de la informacion */);

}
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a