Επικόλληση
Όταν ο χρήστης ζητά την επικόλληση δεδομένων από την Clipboard, θα πρέπει να ζητήσετε μια ειδική μορφή και να δώσετε μια μέθοδο επανάκλησης που θα κληθεί με τα ενεργά δεδομένα. Για παράδειγμα:
refClipboard->request_contents("example_custom_target",
sigc::mem_fun(*this, &ExampleWindow::on_clipboard_received) );Ιδού ένα παράδειγμα μεθόδου επανάκλησης:
void ExampleWindow::on_clipboard_received(
const Gtk::SelectionData& selection_data)
{
Glib::ustring clipboard_data = selection_data.get_data_as_string();
//Do something with the pasted data.
}- 19.3.1. Εύρεση των διαθέσιμων προορισμών
19.3.1. Εύρεση των διαθέσιμων προορισμών
Για την εύρεση των προορισμών που είναι προς το παρόν διαθέσιμοι στην Clipboard για επικόλληση, καλέστε τη μέθοδο request_targets(), ορίζοντας μια μέθοδο για κλήση με την πληροφορία. Για παράδειγμα:
refClipboard->request_targets( sigc::mem_fun(*this,
&ExampleWindow::on_clipboard_received_targets) )·Αν η επανάκλησή σας, συγκρίνεται το διάνυσμα των διαθέσιμων προορισμών με αυτά που υποστηρίζει η εφαρμογή σας για επικόλληση. Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε το στοιχείο μενού επικόλλησης, ανάλογα με το αν η επικόλληση είναι προς το παρόν δυνατή. Για παράδειγμα:
void ExampleWindow::on_clipboard_received_targets(
const std::vector<Glib::ustring>& targets)
{
const bool bPasteIsPossible =
std::find(targets.begin(), targets.end(),
example_target_custom) != targets.end();
// Ενεργοποίηση/απενεργοποίηση του κατάλληλου κουμπιού επικόλλησης:
m_Button_Paste.set_sensitive(bPasteIsPossible);
}