using Gtk; using System; class SharpApp : Window { public SharpApp(): base("Вікна діалогу") // Назва вікна { SetDefaultSize(0, 0); // Розмір вікна як усталено // SetIconFromFile("icon.png"); // Задання значка наявним файлом SetPosition(WindowPosition.Center); // Розташування вікна у центрі екрану DeleteEvent += delegate {Application.Quit();}; Table table = new Table(0, 0, true); // Створення таблиці розміру 0x0 Button info = new Button("Інформаційне");// Створення 4 кнопок з підписами Button warn = new Button("Попередження"); Button ques = new Button("Запитання"); Button erro = new Button("З повідомленням про помилку"); table.Attach(info, 0, 2, 0, 1); // Розташування кнопок у таблиці: table.Attach(warn, 2, 3, 0, 1); // вказано номери рядків і стовпчиків table.Attach(ques, 0, 1, 1, 2); // від (включно) і до (не включно), table.Attach(erro, 1, 3, 1, 2); // нумерацію почато з нуля // Обробники подій натискання кнопок info.Clicked += delegate { MessageDialog md = new MessageDialog (this, // Створення вікна діалогу DialogFlags.DestroyWithParent, /* DialogFlags.Modal - альтернатива для створення модального вікна, що блокує роботу користувача з батьківським застосунком доти, доки користувач це вікно не закриє.*/ MessageType.Info, // Тип вікна діалогу - Інформаційне ButtonsType.Close, // Тип кнопки - Закрити " Знайте; ... "); // Текст для подання у вікні md.Title="Інформаційне"; // Назва вікна md.Run(); md.Destroy(); }; warn.Clicked += delegate { MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Warning, // Тип вікна діалогу - Попередження ButtonsType.Ok, // Тип кнопки - Гаразд "Увага! Увага! Увага!"); // Текст для подання у вікні md.Title="Попередження"; // Назва вікна md.Run(); md.Destroy(); }; ques.Clicked += delegate { MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Question, // Тип вікна діалогу - Запитання ButtonsType.YesNo, // Тип кнопки - ТакНі "Продовжити?"); // Текст для подання у вікні md.Title="Запитання"; // Назва вікна md.Run(); md.Destroy(); }; erro.Clicked += delegate { MessageDialog md = new MessageDialog (this, DialogFlags.DestroyWithParent, MessageType.Error, // Тип вікна діалогу - Повідомлення про помилку ButtonsType.Cancel,// Тип кнопки - Скасувати " Халепа!"); // Текст для подання у вікні md.Title="Помилка"; // Назва вікна md.Run(); md.Destroy(); }; Add(table); // Додавання таблиці ShowAll(); // Показ усіх елементів вікна. Інакше потрібно застосовувати } // метод Show до кожного елемента. У тому числі до контейнерів. public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } } І