From: Richard Lyman Date: 2004-10-06T05:16:07+09:00 Subject: Re: Help! Can't get the FXRuby clipboard example to work... 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 > >