using System; #if COCOA using Cocoa; #else using System.Windows.Forms; #endif namespace StupidWordCounter { #if COCOA [Register ("StupidWordCounter")] public partial class StupidWordCounter : Cocoa.Object { // standard Cocoa constructor public StupidWordCounter (IntPtr native_object) : base (native_object) {} // Cocoa text boxes [Connect] public TextField textSentence; [Connect] public TextField textNumberOfLetters; [Connect] public TextField textNumberOfWords; // push button action [Export ("pushOK:")] public void pushOK(Cocoa.Object sender) { // get string from text box StupidWordCounterModel.strSentence = textSentence.Value; // count letters and words (see StupidWordCounterModel.cs) StupidWordCounterModel.CountLettersAndWords(); // read number of letters and words and put into text boxes textNumberOfLetters.Value = StupidWordCounterModel.strNumberOfLetters; textNumberOfWords.Value = StupidWordCounterModel.strNumberOfWords; } // The Windows forms version of the code below catches this event automatically, // for Cocoa we need to make this class a delegate for the window in Interface Builder. [Export("windowWillClose:")] public void windowWillClose(Notification notification) { Environment.Exit(0); } } #else public partial class StupidWordCounter : Form { public StupidWordCounter() { // standard Windows form constructor InitializeComponent(); } private void pushOK_Click(object sender, EventArgs e) { // get string from text box StupidWordCounterModel.strSentence = textSentence.Text; // count letters and words (see StupidWordCounterModel.cs) StupidWordCounterModel.CountLettersAndWords(); // read number of letters and words and put into text boxes textNumberOfLetters.Text = StupidWordCounterModel.strNumberOfLetters; textNumberOfWords.Text = StupidWordCounterModel.strNumberOfWords; } } #endif }