using System; using Pango; using Gtk; public class SharpApp : Window { ListStore store; FontFamily[] fam; public SharpApp() : base("Системні шрифти") { SetDefaultSize(350, 250); SetPosition(WindowPosition.Center); DeleteEvent += delegate {Application.Quit();}; ScrolledWindow sw = new ScrolledWindow(); // Контейнер для отримання одного віджету, // робить його прокручуваним за допомогою доданих смуг прокручування або зовнішньо // пов’язаних налаштувань, і додатково малює рамку навколо дочірнього віджету sw.ShadowType = ShadowType.EtchedIn; sw.SetPolicy(PolicyType.Automatic, PolicyType.Automatic); // Створення об'єкту Pango.Context, що містить // всі дані про процес відтворення тексту. Context context = this.CreatePangoContext(); fam = context.Families; // Отримання всіх доступних родин шрифтів store = CreateModel(); // Заповнення сховища даних TreeView treeView = new TreeView(store); treeView.RulesHint = true; sw.Add(treeView); CreateColumn(treeView); Add(sw); ShowAll(); } void CreateColumn(TreeView treeView) { CellRendererText rendererText = new CellRendererText(); TreeViewColumn column = new TreeViewColumn("Назва",rendererText, "text", Column.FontName); column.SortColumnId = (int) Column.FontName; treeView.AppendColumn(column); } ListStore CreateModel() // Заповнення сховища даних назвами шрифтів { ListStore store = new ListStore( typeof(string) ); foreach (FontFamily ff in fam) {store.AppendValues(ff.Name);} return store; } enum Column {FontName} public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } }