Tervehdys taasen! Mitenköhän mahtaisi onnistua X:n kanssa leikepöydälle kopiointi, kooditse siis? Tarkoitus olisi kopioida tietty tekstinpätkä ensisijaiselle leikepöydälle. Olen koittanut googlettaa, mutta huonolla menestyksellä.
En osaa itse onglemaan vastata, mutta luulisin, ettei esimerkiksi Klipper ole kovin suuri lähdekoodiltaan... (vinkki vinkki ;)
Ensimmäisistä Googlella löytämistäni lähteistä ymmärsin kuitenkin, että varsinaista leikepöytää ei ole, vaan se on vain samanlainen kuin muutkin X:n muuttujat ja ajanmyötä yleistynyt samalla nimellä joka paikkaan. Kaikki ohjelmat eivät nähtävästi vieläkään käytä sitä vaan omaa leikepöytäänsä.
No itse asiassa X:ssä tuntuu olevan useampi leikepöydän tapainen juttu. Mitä nyt kuitenkin hain on tämä PRIMARY selection-systeemi. Onnistuin jopa xcutselin pohjalta moisen tekemään, mutta se oli sen verran hankala, että tyydyn käyttämään xseliä, joka itse asiassa sekin on xcutselin pohjalta kasattu.
wxWidgeteillä ainakin voisi onnistua
http://www.wxwindows.org/manuals/2.6.2/
ja samoin GTK:lla
http://www.gtk.org/api/2.6/gtk/gtk-Clipboards.html
wxWidgetsillä kyllä onnistuu, tässä joskus kirjoittamani koodi.
void CopyTextToClipboard(wxString text) { if(wxTheClipboard->Open()) { wxTheClipboard->SetData( new wxTextDataObject( text ) ); wxTheClipboard->Flush(); wxTheClipboard->Close(); } }
Tämmöinenkin löytyi jostain:
bool CopyTextToClipboard(wxString strVal) { if (wxTheClipboard->Open()) { wxTheClipboard->SetData( new wxTextDataObject(strVal) ); wxTheClipboard->Close(); return true; } else { return false; } }
Toisaalta tässä taidettiin hakea ohjeita juurikin X:ää varten...
BTW, pantun linkissä lukee: "These clipboard functions are implemented for Windows only. The use of these functions is deprecated and the code is no longer maintained. Use the wxClipboard class instead."
Aihe on jo aika vanha, joten et voi enää vastata siihen.