Re: what does the 'O' in GNOME stand for? (was RE : Re(2): GNOME Clipboard)




"Moya Piernavieja Rodrigo" <rmoya@mail.fujitsu.es> writes:

> >
> >why not have a (maybe inproc) gnome/corba object that encapsulates the
> >clipboard? anything like that developed so far? (IDataObject style)
> >
> That's what I was thinking when I said 'additional functionality'. So, I'll start with the GNOME clipboard this weekend. That's what I am doing:
> 
> * get Xclipboard source for the basic clipboard access

I wouldn't bother. Xclipboard uses the Xt API's for
clipboard/selection handling, which are nothing much 
like the GTK+ API's.

Look at the ICCCM's section on the X clipboard. 

  ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/ICCCM/icccm.PS.gz

At the documentation on GTK+ selection handling:

  http://www.gtk.org/rdp/gtk/gtk-selections.html
  http://www.gtk.org/tutorial/gtk_tut-19.html

And at the source code for gtkeditable, which implements
a clipboard client:

 gtk/gtk/gtkeditable.c

> * provide all the program functionality as a CORBA object
> * provide history (as was said before)

The challenges you are going to have to deal with to get
something good going are:

 - Once a program exits, how can you provide the contents
   of that programs clipboard selection in multiple forms

 - How do you deal with programs exiting at all? If you
   always just blindly retrieve the contents of the selection
   when it changes, then what do you do about huge
   clipboard selections (in something like the GIMP) that
   might be several megs in size?

 - How do you display non-text clipboard selections? 
   (Just showing the icon for the mime type might not
   be a bad idea...)

Of course, if you act like XClipboard selection and
limit yourself to text/plain or STRING, then these
problems go away. They also should be much more 
manageable for Bonobo objects.

Finally, you can think about DND from the clipboard
onto the GMC desktop. In fact, this could pretty much
do away with the need for a history if it was 
done well - if you want to save a clipboard selection
for later, just drag it onto the desktop.

Regards,
                                        Owen



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]