public FontChooserPanelWidget() { this.Build (); foreach (var desc in FontService.FontDescriptions) { var fontNameLabel = new Label (GettextCatalog.GetString (desc.DisplayName)); fontNameLabel.Justify = Justification.Left; fontNameLabel.Xalign = 0; mainBox.PackStart (fontNameLabel, false, false, 0); var hBox = new HBox (); var setFontButton = new Button (); setFontButton.Label = FontService.FilterFontName (GetFont (desc.Name)); setFontButton.Clicked += delegate { var selectionDialog = new FontSelectionDialog (GettextCatalog.GetString ("Select Font")) { Modal = true, DestroyWithParent = true, TransientFor = this.Toplevel as Gtk.Window }; try { string fontValue = FontService.FilterFontName (GetFont (desc.Name)); selectionDialog.SetFontName (fontValue); if (MessageService.RunCustomDialog (selectionDialog) != (int)Gtk.ResponseType.Ok) { return; } fontValue = selectionDialog.FontName; if (fontValue == FontService.FilterFontName (FontService.GetFont (desc.Name).FontDescription)) fontValue = FontService.GetFont (desc.Name).FontDescription; SetFont (desc.Name, fontValue); setFontButton.Label = selectionDialog.FontName; } finally { selectionDialog.Destroy (); } }; hBox.PackStart (setFontButton, true, true, 0); var setDefaultFontButton = new Button (); setDefaultFontButton.Label = GettextCatalog.GetString ("Set To Default"); setDefaultFontButton.Clicked += delegate { SetFont (desc.Name, FontService.GetFont (desc.Name).FontDescription); setFontButton.Label = FontService.FilterFontName (GetFont (desc.Name)); }; hBox.PackStart (setDefaultFontButton, false, false, 0); mainBox.PackStart (hBox, false, false, 0); } mainBox.ShowAll (); }
public FontChooserPanelWidget () { this.Build (); fontStore = new TreeStore (typeof (string), typeof (string), typeof (string)); treeviewFonts.Model = fontStore; treeviewFonts.AppendColumn (GettextCatalog.GetString ("Name"), textRenderer, "text", colDisplayName); comboRenderer.Edited += delegate(object o, Gtk.EditedArgs args) { TreeIter iter; if (!fontStore.GetIterFromString (out iter, args.Path)) return; string fontName = (string)fontStore.GetValue (iter, colName); if (args.NewText == GettextCatalog.GetString ("Default")) { SetFont (fontName, FontService.GetFont (fontName).FontDescription); fontStore.SetValue (iter, colValue, GettextCatalog.GetString ("Default")); return; } var selectionDialog = new FontSelectionDialog (GettextCatalog.GetString ("Select Font")); string fontValue = FontService.FilterFontName (GetFont (fontName)); selectionDialog.SetFontName (fontValue); selectionDialog.OkButton.Clicked += delegate { fontValue = selectionDialog.FontName; if (fontValue == FontService.FilterFontName (FontService.GetFont (fontName).FontDescription)) fontValue = FontService.GetFont (fontName).FontDescription; SetFont (fontName, fontValue); fontStore.SetValue (iter, colValue, selectionDialog.FontName); }; MessageService.ShowCustomDialog (selectionDialog); selectionDialog.Destroy (); }; comboRenderer.EditingStarted += delegate(object o, EditingStartedArgs args) { TreeIter iter; if (!fontStore.GetIterFromString (out iter, args.Path)) return; string fontName = (string)fontStore.GetValue (iter, colName); string fontValue = GetFont (fontName); comboBoxStore.Clear (); if (fontValue != FontService.GetFont (fontName).FontDescription) comboBoxStore.AppendValues (fontValue); comboBoxStore.AppendValues (GettextCatalog.GetString ("Default")); comboBoxStore.AppendValues (GettextCatalog.GetString ("Edit...")); }; var fontCol = new TreeViewColumn (); fontCol.Title = GettextCatalog.GetString ("Font"); comboRenderer.HasEntry = false; comboRenderer.Mode = CellRendererMode.Activatable; comboRenderer.TextColumn = 0; comboRenderer.Editable = true; fontCol.PackStart (comboRenderer, true); fontCol.SetCellDataFunc (comboRenderer, delegate (Gtk.TreeViewColumn tree_column, Gtk.CellRenderer cell, Gtk.TreeModel model, Gtk.TreeIter iter) { string fontValue = (string)fontStore.GetValue (iter, colValue); string fontName = (string)fontStore.GetValue (iter, colName); var d = FontService.GetFont (fontName); if (d == null || d.FontDescription != fontValue) { comboRenderer.Text = fontValue; } else { comboRenderer.Text = GettextCatalog.GetString ("Default"); } }); treeviewFonts.AppendColumn (fontCol); comboBoxStore = new ListStore (typeof (string)); comboRenderer.Model = comboBoxStore; LoadFonts (); }
// Font Change handler void OnFontButtonClicked (object sender, EventArgs args) { Gtk.FontSelectionDialog font_dialog = new Gtk.FontSelectionDialog ( Catalog.GetString ("Choose Note Font")); string font_name = (string) Preferences.Get (Preferences.CUSTOM_FONT_FACE); font_dialog.SetFontName (font_name); if ((int) Gtk.ResponseType.Ok == font_dialog.Run ()) { if (font_dialog.FontName != font_name) { Preferences.Set (Preferences.CUSTOM_FONT_FACE, font_dialog.FontName); UpdateFontButton (font_dialog.FontName); } } font_dialog.Destroy (); }
protected virtual void OnTextFontBrowseButtonClicked(object sender, System.EventArgs e) { FontSelectionDialog FontDlg = new FontSelectionDialog("Select I/O Text Font"); FontDlg.SetFontName(TextFont); try { if (FontDlg.Run() == (int) ResponseType.Ok) { TextFont = FontDlg.FontName; } } finally { FontDlg.Destroy(); } }
public void OnSettingsSelectFont (object sender, EventArgs args) { FontSelectionDialog fsd = new FontSelectionDialog ("Select Font"); try { fsd.SetFontName (Font); if (fsd.Run () == (int)Gtk.ResponseType.Ok) { Font = fsd.FontName; } } finally { fsd.Destroy (); } }