From: Kevin Pratt Date: 2004-10-06T05:27:26+09:00 Subject: Re: Help! Can't get the FXRuby clipboard example to work... Nope setDNDData works between other applications - can't vouch for the other DND methods tho. I tested the corrected code by copying and pasting the information into an open gaim window running on windows xp. kevin. On Wed, 6 Oct 2004 05:17:53 +0900, Richard Lyman wrote: > Sorry for the extra reply... > > I am also fairly certain that DND only works between Fox > applications... if I'm wrong, someone please correct me. > > -Rich > > > > > On Tue, 5 Oct 2004 14:15:56 -0600, Richard Lyman wrote: > > First off - the last 15 or so lines won't be 'processed' until after > > the application terminates. > > > > Once it hits 'theApp.run' the main program hangs and Fox takes over, > > so you need to have everything setup before that. > > > > -Rich > > > > > > > > > > On Wed, 6 Oct 2004 04:42:01 +0900, Abe Vionas_MailingList > > wrote: > > > Essentially, when I select a customers name and click > > > on the Copy button and then go to notepad and press > > > CTRL-V (to paste) nothing happens. Anyone have any > > > ideas? > > > > > > Here's my code as it stands... > > > > > > # customer.rb > > > > > > require 'fox' > > > > > > include Fox > > > > > > customer = Struct.new("Customer", :name, :address, > > > :zip) > > > > > > $customers = [] > > > $customers << customer.new("Reed Richards", "123 > > > Maple, Central City, NY", 010111) > > > $customers << customer.new("Sue Storm", "123 Maple, > > > Anytown, NC", 12345) > > > $customers << customer.new("Benjamin J. Grimm", "124 > > > Maple, Anytown, NC", 12345) > > > $customers << customer.new("Johnny Storm", "123 Maple, > > > Anytown, NC", 12324) > > > > > > class ClipMainWindow < FXMainWindow > > > def initialize(anApp) > > > # Initialize base class first > > > super(anApp, "Clipboard Example", nil, nil, > > > DECOR_ALL, 0, 0, 400, 300) > > > > > > # Horizontal frame contains buttons > > > buttons = FXHorizontalFrame.new(self, > > > LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH) > > > > > > # Cut and paste buttons > > > copyButton = FXButton.new(buttons, "Copy") > > > pasteButton = FXButton.new(buttons, "Paste") > > > > > > # Place the list in a sunken frame > > > sunkenFrame = FXVerticalFrame.new(self, > > > LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK, > > > 0, 0, 0, 0, 0, 0, 0, 0) > > > > > > # Customer list > > > customerList = FXList.new(sunkenFrame, 6, nil, 0, > > > LIST_BROWSESELECT|LAYOUT_FILL_X|LAYOUT_FILL_Y) > > > $customers.each do |customer| > > > customerList.appendItem(customer.name, nil, > > > customer) > > > end > > > end > > > > > > def create > > > super > > > show(PLACEMENT_SCREEN) > > > end > > > end > > > > > > if __FILE__ == $0 > > > FXApp.new("ClipboardExample", "FXRuby") do |theApp| > > > ClipMainWindow.new(theApp) > > > theApp.create > > > theApp.run > > > end > > > end > > > > > > # User clicks Copy > > > copyButton.connect(SEL_COMMAND) do > > > customer = > > > customerList.getItemData(customerList.currentItem) > > > types = [ FXWindow.stringType ] > > > if acquireClipboard() > > > @clippedCustomer = customer > > > end > > > end > > > > > > #Handle clipboard request > > > copyButton.connect(SEL_CLIPBOARD_REQUEST) do > > > setDNDDATA(FROM_CLIPBOARD, FXWindow.stringType, > > > Fox.fxencodeStringData(@clippedCustomer.to_s)) > > > end > > > > > > > > > __________________________________ > > > Do you Yahoo!? > > > New and Improved Yahoo! Mail - 100MB free storage! > > > http://promotions.yahoo.com/new_mail > > > > > > > > > >