From 756c28af577f0373a03e88e9da1d7b9885e551cb Mon Sep 17 00:00:00 2001 From: mdb Date: Sun, 30 Nov 2003 23:50:18 +0000 Subject: [PATCH] We now properly obtain the selection and report key presses. Much more wiring up to be done. git-svn-id: https://samskivert.googlecode.com/svn/trunk@1332 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- projects/lookuplet/src/lookuplet.cc | 21 ++++++++++++++++----- projects/lookuplet/src/lookuplet.hh | 5 +++-- projects/lookuplet/src/lookuplet_glade.cc | 1 - projects/lookuplet/src/lookuplet_glade.hh | 1 - 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/projects/lookuplet/src/lookuplet.cc b/projects/lookuplet/src/lookuplet.cc index aae242b5..409abafe 100644 --- a/projects/lookuplet/src/lookuplet.cc +++ b/projects/lookuplet/src/lookuplet.cc @@ -1,10 +1,11 @@ // -// $Id: lookuplet.cc,v 1.1 2003/11/28 21:34:59 mdb Exp $ +// $Id: lookuplet.cc,v 1.2 2003/11/30 23:50:18 mdb Exp $ #include #include #include +#include #include #include // #include @@ -16,13 +17,21 @@ using namespace std; -bool lookuplet::on_query_key_press_event (GdkEventKey *ev) +static void got_clip_text ( + GtkClipboard* clipboard, const gchar* text, gpointer data) { + ((lookuplet*)data)->on_clip_text_received(text); +} + +bool lookuplet::on_query_key_press_event (GdkEventKey* ev) +{ + printf("key pressed %d %d\n", ev->type, ev->keyval); return 0; } -void lookuplet::on_query_selection_received (GtkSelectionData *data, guint time) +void lookuplet::on_clip_text_received (const gchar* text) { + _query->set_text(text); } void lookuplet::on_prefs_clicked () @@ -39,16 +48,18 @@ bool Gtk::Widget::on_delete_event (GdkEventAny* event) exit(0); } -int main(int argc, char **argv) +int main (int argc, char** argv) { Gnome::Main m(PACKAGE, VERSION, Gnome::UI::module_info_get(), argc, argv); // Gnome::Bonobo::wrap_init(); - lookuplet *lookuplet = new class lookuplet(); + lookuplet* lookuplet = new class lookuplet(); // binding *binding = new class binding(); // about *about = new class about(); // properties *properties = new class properties(); + GtkClipboard* clip = gtk_clipboard_get(GDK_SELECTION_PRIMARY); + gtk_clipboard_request_text(clip, &got_clip_text, lookuplet); m.run(*lookuplet); delete lookuplet; diff --git a/projects/lookuplet/src/lookuplet.hh b/projects/lookuplet/src/lookuplet.hh index 0fee0593..0c376e2e 100644 --- a/projects/lookuplet/src/lookuplet.hh +++ b/projects/lookuplet/src/lookuplet.hh @@ -1,5 +1,5 @@ // -// $Id: lookuplet.hh,v 1.1 2003/11/28 21:34:59 mdb Exp $ +// $Id: lookuplet.hh,v 1.2 2003/11/30 23:50:18 mdb Exp $ #ifndef _LOOKUPLET_HH #include "lookuplet_glade.hh" @@ -9,9 +9,10 @@ class lookuplet : public lookuplet_glade { friend class lookuplet_glade; bool on_query_key_press_event(GdkEventKey *ev); - void on_query_selection_received(GtkSelectionData *data, guint time); void on_prefs_clicked(); void exit_lookuplet(); +public: + void on_clip_text_received(const gchar* text); }; #endif diff --git a/projects/lookuplet/src/lookuplet_glade.cc b/projects/lookuplet/src/lookuplet_glade.cc index 8eb82e2a..dd2c4273 100644 --- a/projects/lookuplet/src/lookuplet_glade.cc +++ b/projects/lookuplet/src/lookuplet_glade.cc @@ -46,7 +46,6 @@ lookuplet_glade::lookuplet_glade( mainbox->show(); lookuplet->show(); _query->signal_key_press_event().connect(SigC::slot(*this, &lookuplet_glade::on_query_key_press_event)); - _query->signal_selection_received().connect(SigC::slot(*this, &lookuplet_glade::on_query_selection_received), true); prefs->signal_clicked().connect(SigC::slot(*this, &lookuplet_glade::on_prefs_clicked)); } diff --git a/projects/lookuplet/src/lookuplet_glade.hh b/projects/lookuplet/src/lookuplet_glade.hh index f11b393d..c6128bd4 100644 --- a/projects/lookuplet/src/lookuplet_glade.hh +++ b/projects/lookuplet/src/lookuplet_glade.hh @@ -24,7 +24,6 @@ protected: ~lookuplet_glade(); private: virtual bool on_query_key_press_event(GdkEventKey *ev) = 0; - virtual void on_query_selection_received(GtkSelectionData *selection_data,guint time) = 0; virtual void on_prefs_clicked() = 0; }; #endif