using Gtk; using System; class SharpApp : Window { DrawingArea darea; Gdk.Color col; public SharpApp() : base("ToggleButton") { col = new Gdk.Color(0, 0, 0); // Початковий чорний колір SetDefaultSize(360, 230); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); }; ToggleButton red = new ToggleButton("Червоний"); // Створення кнопок ToggleButton green = new ToggleButton("Зелений"); ToggleButton blue = new ToggleButton("Блакитний"); red .SetSizeRequest(110, 35); // Розміри кнопок green.SetSizeRequest(110, 35); blue .SetSizeRequest(110, 35); // Обробники подій перемикання кнопок з написом: red .Clicked += OnRed; // "Червоний" green.Clicked += OnGreen; // "Зелений" blue .Clicked += OnBlue; // "Блакитний" darea = new DrawingArea(); // Область малювання darea.SetSizeRequest(150, 150); // Розмір області малювання darea.ModifyBg(StateType.Normal, col); // Заповнення області малювання Fixed fix = new Fixed(); // Контейнер для розташування за координатами // верхнього лівого кута об'єкта fix.Put(red, 30, 30); // Вкладення кнопки у контейнер fix.Put(green, 30, 80); // Вкладення кнопки у контейнер fix.Put(blue, 30, 130); // Вкладення кнопки у контейнер fix.Put(darea,170, 30); // Вкладення області малювання у контейнер Add(fix); // Додавання контейнера у вікно ShowAll(); // Показ усіх елементів вікна } void OnRed(object sender, EventArgs args) { ToggleButton tb = (ToggleButton) sender; if (tb.Active) {col.Red = 65535;} else {col.Red = 0;} darea.ModifyBg(StateType.Normal, col); } void OnGreen(object sender, EventArgs args) { ToggleButton tb = (ToggleButton) sender; if (tb.Active) {col.Green = 65535;} else {col.Green = 0;} darea.ModifyBg(StateType.Normal, col); } void OnBlue(object sender, EventArgs args) { ToggleButton tb = (ToggleButton) sender; if (tb.Active) {col.Blue = 65535;} else {col.Blue = 0;} darea.ModifyBg(StateType.Normal, col); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } }