試著存取剪貼簿的小程式,會在通知欄裡顯示小圖示以利存取。
// Build:
// "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /target:exe /r:"C:\Program Files\GtkSharp\2.12\lib\gtk-sharp-2.0\gtk-sharp.dll" /r:"C:\Program Files\GtkSharp\2.12\lib\gtk-sharp-2.0\atk-sharp.dll" /r:"C:\Program Files\GtkSharp\2.12\lib\gtk-sharp-2.0\glib-sharp.dll" /r:"C:\Program Files\GtkSharp\2.12\lib\gtk-sharp-2.0\gdk-sharp.dll" GtkSharpClipboardIndicator.cs
using System;
using Gtk;
public class MainWindow: Gtk.Window {
private Gtk.Clipboard m_clipboard;
private Gtk.StatusIcon m_icon;
public MainWindow (): base (Gtk.WindowType.Toplevel)
{
// Clipboard
//m_clipboard = Gtk.Clipboard.Get( Gdk.Selection.Clipboard );
m_clipboard = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));
m_clipboard.OwnerChange += new OwnerChangeHandler( delegate( object o, OwnerChangeArgs args ) {
m_clipboard.RequestText( delegate(Gtk.Clipboard clipboard, string text) {
Console.WriteLine( "text={0}", text );
} );
} );
// Status Icon
m_icon = new Gtk.StatusIcon();
m_icon.File = "./mono-logo.png";
m_icon.PopupMenu += new PopupMenuHandler( delegate( object o, PopupMenuArgs args ) {
Console.WriteLine( "click" );
m_clipboard.RequestText( delegate(Gtk.Clipboard clipboard, string text) {
Console.WriteLine( "text={0}", text );
} );
} );
this.DeleteEvent += new DeleteEventHandler( delegate( object o, DeleteEventArgs e ) {
Application.Quit();
}
);
}
public static void Main( string[] args ) {
Application.Init ();
Gtk.Window window = new MainWindow();
window.Show();
Application.Run ();
}
}