using Gtk; using System; class SharpApp : Window { private Statusbar statusbar; public SharpApp() : base("Меню з міткою") { SetDefaultSize(250, 200); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); }; MenuBar mb = new MenuBar(); // Рядок меню Menu filemenu = new Menu(); // Меню (перелік) Menu viewmenu = new Menu(); // Меню (перелік) MenuItem file = new MenuItem("Файл"); // Елемент рядка меню MenuItem view = new MenuItem("Перегляд");// Елемент рядка меню MenuItem exit = new MenuItem("Вийти"); // Елемент меню CheckMenuItem stat = new CheckMenuItem("Рядок стану"); // Елемент меню з мітками file.Submenu = filemenu; // Прив'язування меню до елемента рядка меню view.Submenu = viewmenu; // Прив'язування меню до елемента рядка меню stat.Toggle(); // Перемикання стану мітки // Вказано обробник події: stat.Toggled += OnStatusView;// перемикання стану мітки exit.Activated += OnActivated; // активування пункту меню "Вихід" filemenu.Append(exit); // Додавання пункту меню до меню viewmenu.Append(stat); // Додавання пункту меню до меню mb.Append(file); // Додавання меню до рядка меню mb.Append(view); // Додавання меню до рядка меню TextView win = new TextView();// Віконце перегляду тексту statusbar = new Statusbar(); // Рядок стану statusbar.Push(1,"Елемент рядка стану"); // Внесення у рядок стану напису VBox vbox = new VBox(false, 2); // Вертикальний контейнер // Вкладення у вертикальний контейнер: vbox.PackStart(mb, false, false, 0); // рядка меню vbox.PackStart(win, true, true, 0); // віконця перегляду тексту vbox.PackStart(statusbar,false, false, 0); // рядка стану Add(vbox); // Вкладення вертикального контейнера у вікно ShowAll(); // Показ усіх елементів вікна } void OnStatusView(object sender, EventArgs args) { CheckMenuItem item = (CheckMenuItem) sender; if (item.Active) {statusbar.Show();} // Показ рядка стану else {statusbar.Hide();} // Приховування рядка стану } void OnActivated(object sender, EventArgs args) { Application.Quit(); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } }