public DocumentPageHandler() { Control = new Gtk.VBox(); tab = new Gtk.HBox(); closeButton = new Gtk.Button(); closeButton.Relief = Gtk.ReliefStyle.None; closeButton.CanFocus = false; #if GTK3 tab.Expand = true; #endif var closeImage = s_closeImage.Value; if (closeImage != null) { closeButton.Image = new Gtk.Image(closeImage); } else { closeButton.Child = new Gtk.Label("x"); } tab.PackEnd(closeButton, false, true, 0); label = new Gtk.Label(); label.Xalign = 0.5f; label.Yalign = 0.5f; tab.PackEnd(label, true, true, 0); tab.ShowAll(); }
public DocumentPageHandler() { Control = new Gtk.VBox(); tab = new Gtk.HBox(); closeButton = new Gtk.Button(); closeButton.Relief = Gtk.ReliefStyle.None; closeButton.CanFocus = false; #if GTK3 tab.Expand = true; closeButton.Image = new Gtk.Image(Gtk.IconTheme.Default.LoadIcon("window-close", 12, Gtk.IconLookupFlags.ForceSize)); #else closeButton.Image = new Gtk.Image(Gtk.IconTheme.Default.LoadIcon("window-close", 12, 0)); #endif tab.PackEnd(closeButton, false, true, 0); label = new Gtk.Label(); label.SetAlignment(0.5f, 0.5f); tab.PackEnd(label, true, true, 0); tab.SizeAllocated += Tab_SizeAllocated; tab.ShowAll(); closeButton.Clicked += (o, args) => Parent?.ClosePage(ContainerControl, Widget); tab.ButtonPressEvent += (o, args) => { if (args.Event.Button == 2 && Closable) { Parent?.ClosePage(ContainerControl, Widget); } }; }
public QueryWidget(PhotoQuery query, Db db, TagSelectionWidget selector) { tips.Enable(); this.query = query; query.Changed += HandleChanged; Gtk.HSeparator sep = new Gtk.HSeparator(); sep.Show(); this.PackStart(sep, false, false, 0); Gtk.HBox hbox = new Gtk.HBox(); hbox.Show(); this.PackStart(hbox, false, false, 0); label = new Gtk.Label(Catalog.GetString("Find: ")); label.Show(); label.Ypad = 9; hbox.PackStart(label, false, false, 0); untagged = new Gtk.Label(Catalog.GetString("Untagged photos")); untagged.Visible = false; hbox.PackStart(untagged, false, false, 0); comma_label = new Gtk.Label(", "); comma_label.Visible = false; hbox.PackStart(comma_label, false, false, 0); rollfilter = new Gtk.Label(Catalog.GetString("Import roll")); rollfilter.Visible = false; hbox.PackStart(rollfilter, false, false, 0); logic_widget = new LogicWidget(query, db.Tags, selector); logic_widget.Show(); hbox.PackStart(logic_widget, true, true, 0); warning_box = new Gtk.HBox(); warning_box.PackStart(new Gtk.Label(System.String.Empty)); Gtk.Image warning_image = new Gtk.Image("gtk-info", Gtk.IconSize.Button); warning_image.Show(); warning_box.PackStart(warning_image, false, false, 0); clear_button = new Gtk.Button(); clear_button.Add(new Gtk.Image("gtk-close", Gtk.IconSize.Button)); clear_button.Clicked += HandleClearButtonClicked; clear_button.Relief = Gtk.ReliefStyle.None; hbox.PackEnd(clear_button, false, false, 0); tips.SetTip(clear_button, Catalog.GetString("Clear search"), null); Gtk.Label warning = new Gtk.Label(Catalog.GetString("No matching photos found")); warning_box.PackStart(warning, false, false, 0); warning_box.ShowAll(); warning_box.Spacing = 6; warning_box.Visible = false; hbox.PackEnd(warning_box, false, false, 0); warning_box.Visible = false; }
public QueryWidget (PhotoQuery query, Db db, TagSelectionWidget selector) { tips.Enable (); this.query = query; query.Changed += HandleChanged; Gtk.HSeparator sep = new Gtk.HSeparator (); sep.Show (); this.PackStart (sep, false, false, 0); Gtk.HBox hbox = new Gtk.HBox (); hbox.Show (); this.PackStart (hbox, false, false, 0); label = new Gtk.Label (Catalog.GetString ("Find: ")); label.Show (); label.Ypad = 9; hbox.PackStart (label, false, false, 0); untagged = new Gtk.Label (Catalog.GetString ("Untagged photos")); untagged.Visible = false; hbox.PackStart (untagged, false, false, 0); comma_label = new Gtk.Label (", "); comma_label.Visible = false; hbox.PackStart (comma_label, false, false, 0); rollfilter = new Gtk.Label (Catalog.GetString ("Import roll")); rollfilter.Visible = false; hbox.PackStart (rollfilter, false, false, 0); logic_widget = new LogicWidget (query, db.Tags, selector); logic_widget.Show (); hbox.PackStart (logic_widget, true, true, 0); warning_box = new Gtk.HBox (); warning_box.PackStart (new Gtk.Label (System.String.Empty)); Gtk.Image warning_image = new Gtk.Image ("gtk-info", Gtk.IconSize.Button); warning_image.Show (); warning_box.PackStart (warning_image, false, false, 0); clear_button = new Gtk.Button (); clear_button.Add (new Gtk.Image ("gtk-close", Gtk.IconSize.Button)); clear_button.Clicked += HandleClearButtonClicked; clear_button.Relief = Gtk.ReliefStyle.None; hbox.PackEnd (clear_button, false, false, 0); tips.SetTip (clear_button, Catalog.GetString("Clear search"), null); Gtk.Label warning = new Gtk.Label (Catalog.GetString ("No matching photos found")); warning_box.PackStart (warning, false, false, 0); warning_box.ShowAll (); warning_box.Spacing = 6; warning_box.Visible = false; hbox.PackEnd (warning_box, false, false, 0); warning_box.Visible = false; }
public void createGui() { basedir_section = new Section("cuesheets-basedir", "CueSheet Music Directory:", 20); source_page.Add(basedir_section); string dir = _source.getCueSheetDir(); Gtk.Label lbl = new Gtk.Label("CueSheet Music Directory:"); Gtk.FileChooserButton btn = new Gtk.FileChooserButton("CueSheet Music Directory:", Gtk.FileChooserAction.SelectFolder); if (dir != null) { btn.SelectFilename(dir); } Gtk.HBox box = new Gtk.HBox(); box.Add(lbl); box.Add(btn); box.ShowAll(); btn.CurrentFolderChanged += delegate(object sender, EventArgs args) { string dir1 = btn.Filename; Hyena.Log.Information("Folder changed to = " + dir1); }; btn.FileSet += delegate(object sender, EventArgs args) { string dir1 = btn.Filename; Hyena.Log.Information("Base directory changed to = " + dir1); _source.setCueSheetDir(dir1); }; Console.WriteLine(_source); Gtk.VBox vb = new Gtk.VBox(); vb.PackStart(box, false, false, 0); Gtk.Image icn_about = new Gtk.Image(Gtk.Stock.About, Gtk.IconSize.Button); Gtk.Button about = new Gtk.Button(icn_about); about.Clicked += new EventHandler(handleAbout); Gtk.HBox hb = new Gtk.HBox(); Gtk.Label _about = new Gtk.Label("About the CueSheet extension"); hb.PackEnd(about, false, false, 0); hb.PackEnd(_about, false, false, 5); vb.PackStart(hb, false, false, 0); Gtk.HBox hb1 = new Gtk.HBox(); Gtk.Label _info = new Gtk.Label("How to use the Cuesheet extension (opens browser)"); Gtk.Image icn_info = new Gtk.Image(Gtk.Stock.Info, Gtk.IconSize.Button); Gtk.Button btn_info = new Gtk.Button(icn_info); btn_info.Clicked += new EventHandler(handleInfo); hb1.PackEnd(btn_info, false, false, 0); hb1.PackEnd(_info, false, false, 5); vb.PackStart(hb1, false, false, 0); Gtk.HBox hbX = new Gtk.HBox(); vb.PackEnd(hbX, true, true, 0); vb.ShowAll(); source_page.DisplayWidget = vb; }
public DropDownBox() { Gtk.HBox hbox = new Gtk.HBox(); label = new Gtk.Label(); label.Xalign = 0; label.WidthRequest = 125; label.Ellipsize = Pango.EllipsizeMode.End; hbox.PackStart(label, true, true, 3); hbox.PackEnd(new Gtk.Arrow(Gtk.ArrowType.Down, Gtk.ShadowType.None), false, false, 1); hbox.PackEnd(new Gtk.VSeparator(), false, false, 1); Child = hbox; }
/// <summary> /// Builds the login page. /// </summary> /// <returns>The login page, as a Gtk.VBox</returns> Gtk.VBox BuildLoginPage() { var toret = new Gtk.VBox(); var hbLogin = new Gtk.HBox(); var hbUsr = new Gtk.HBox(); var hbPsw = new Gtk.HBox(); var edUsr = new Gtk.Entry(); var edPsw = new Gtk.Entry(); var lblUsr = new Gtk.Label("User"); var lblPsw = new Gtk.Label("Password"); this.BtLogin = new Gtk.Button("Login"); hbLogin.PackEnd(BtLogin, false, false, 5); hbUsr.PackStart(lblUsr, false, false, 5); hbUsr.PackStart(edUsr, true, true, 5); hbPsw.PackStart(lblPsw, false, false, 5); hbPsw.PackStart(edPsw, true, true, 5); toret.PackStart(hbUsr, false, true, 5); toret.PackStart(hbPsw, false, true, 5); toret.PackStart(hbLogin, false, false, 10); toret.ShowAll(); return(toret); }
public FloatingQuickFixIconWidget( CodeActionEditorExtension codeActionEditorExtension, LanguageItemWindow window, SourceEditorView sourceEditorView, CodeActionContainer fixes, Cairo.Point point) : base(Gtk.WindowType.Popup) { this.ext = codeActionEditorExtension; this.window = window; this.sourceEditorView = sourceEditorView; this.fixes = fixes; this.point = point; this.Decorated = false; this.Events |= EventMask.ButtonPressMask | EventMask.LeaveNotifyMask | EventMask.EnterNotifyMask; TypeHint = Gdk.WindowTypeHint.Utility; var fr = new Gtk.HBox(); fr.BorderWidth = 2; var view = new ImageView(SmartTagMarginMarker.GetIconId(fixes.GetSmartTagSeverity()), Gtk.IconSize.Menu); fr.PackStart(view, false, false, 0); fr.PackEnd(new RectangleMarker(), false, false, 0); Add(fr); ext.FixesMenuClosed += Ext_FixesMenuClosed; ShowAll(); }
public TabPageHandler() { Control = new Gtk.VBox(); tab = new Gtk.HBox(); label = new Gtk.Label(); tab.PackEnd(label, true, true, 0); tab.ShowAll(); }
public static Gtk.Button MakeImageButton (Gtk.Image image, string label) { Gtk.HBox box = new Gtk.HBox (false, 2); box.PackStart (image, false, false, 0); box.PackEnd (new Gtk.Label (label), false, false, 0); box.ShowAll (); Gtk.Button button = new Gtk.Button (); Gtk.Alignment align = new Gtk.Alignment (0.5f, 0.5f, 0.0f, 0.0f); align.Add (box); align.Show (); button.Add (align); return button; }
public static Gtk.Button MakeImageButton(Gtk.Image image, string label) { Gtk.HBox box = new Gtk.HBox(false, 2); box.PackStart(image, false, false, 0); box.PackEnd(new Gtk.Label(label), false, false, 0); box.ShowAll(); Gtk.Button button = new Gtk.Button(); Gtk.Alignment align = new Gtk.Alignment(0.5f, 0.5f, 0.0f, 0.0f); align.Add(box); align.Show(); button.Add(align); return(button); }
void ConstructContents() { if (button.Child != null) { button.Remove(button.Child); } if (useUnderline) { labelWidget = new Gtk.Label(label); labelWidget.MnemonicWidget = button; } else { labelWidget = Gtk.Label.New(label); } Gtk.Image imageWidget = (Gtk.Image)Registry.NewInstance("Gtk.Image", proj); Image imageWrapper = (Image)Widget.Lookup(imageWidget); imageWrapper.Unselectable = true; if (type != ButtonType.StockItem) { imageWrapper.Pixbuf = imageInfo; } Gtk.HBox box = new Gtk.HBox(false, 2); box.PackStart(imageWidget, false, false, 0); box.PackEnd(labelWidget, false, false, 0); Gtk.Alignment alignment = new Gtk.Alignment(button.Xalign, button.Yalign, 0.0f, 0.0f); alignment.Add(box); ObjectWrapper buttonWrapper = ObjectWrapper.Lookup(this); Widget wrapper = (Widget)ObjectWrapper.Create(proj, labelWidget, buttonWrapper); wrapper.Unselectable = true; wrapper = (Widget)ObjectWrapper.Create(proj, box, buttonWrapper); wrapper.Unselectable = true; wrapper = (Widget)ObjectWrapper.Create(proj, alignment, buttonWrapper); wrapper.Unselectable = true; alignment.ShowAll(); button.Add(alignment); }
void ShowErrorMessage() { DBusBackgroundWorker.Request(); DBusBackgroundWorker.InvokeGtkThread(() => { using (var dialog = new Gtk.Dialog()) { dialog.BorderWidth = 6; dialog.Resizable = false; dialog.HasSeparator = false; var message = "<span weight=\"bold\"size=\"larger\">" + "Could not register KeebuntuAppMenu with Unity panel service." + "</span>\n\n" + "This plugin only works with Ubuntu Unity desktop." + " If you do not use Unity, you should uninstall the KeebuntuAppMenu plugin." + "\n"; var label = new Gtk.Label(message); label.UseMarkup = true; label.Wrap = true; label.Yalign = 0; var icon = new Gtk.Image(Gtk.Stock.DialogError, Gtk.IconSize.Dialog); icon.Yalign = 0; var contentBox = new Gtk.HBox(); contentBox.Spacing = 12; contentBox.BorderWidth = 6; contentBox.PackStart(icon); contentBox.PackEnd(label); dialog.VBox.PackStart(contentBox); dialog.AddButton("Don't show this again", Gtk.ResponseType.Accept); dialog.AddButton("OK", Gtk.ResponseType.Ok); dialog.DefaultResponse = Gtk.ResponseType.Ok; dialog.Response += (o, args) => { dialog.Destroy(); if (args.ResponseId == Gtk.ResponseType.Accept) { pluginHost.CustomConfig.SetBool(keebuntuAppMenuWarningSeenId, true); } }; dialog.ShowAll(); dialog.KeepAbove = true; dialog.Run(); } }).Wait(); DBusBackgroundWorker.Release(); }
Gtk.Widget CreateLabel(NotebookTab tab) { var vbox = new Gtk.HBox(); Gtk.Label label = new Gtk.Label(); /* INTRODUCED BY houen */ if (tab.Label.Contains("\\_")) { label.Text = tab.Label.Replace("\\_", "_"); } else { label.TextWithMnemonic = tab.Label.Replace("\\_", "_"); } /* INTRODUCED BY houen */ label.Show(); vbox.PackStart(label); if (!label.Text.StartsWith(char.ConvertFromUtf32(0x200B))) { var closeImage = new Gtk.Image(Assembly.GetExecutingAssembly(), "Xwt.GtkBackend.delete.png"); var button = new Gtk.ToolButton(closeImage, ""); vbox.PackEnd(button, false, false, 0); button.Show(); closeImage.Show(); var nativeWidget = GetWidget((IWidgetBackend)Toolkit.GetBackend(tab.Child)); button.Clicked += (object sender, EventArgs e) => { tab.OnClosing(); Widget.Remove(nativeWidget); }; } return(vbox); }
public Header(string text) : base() { base.SetSizeRequest (-1, 30); Gtk.Alignment alignment = new Gtk.Alignment (0, 0, 1, 1); alignment.TopPadding = 1; alignment.LeftPadding = 5; alignment.RightPadding = 0; alignment.BottomPadding = 1; base.Add (alignment); //Select (); Gtk.HBox box = new Gtk.HBox (); alignment.Add (box); label = new Gtk.Label (); label.Ypad = 3; // label.Xpad = 3; //base.Add (label); box.PackStart (label, true, true, 0); label.SetAlignment (0f, 0.5f); label.Justify = Gtk.Justification.Left; label.Markup = "<b>" + text + "</b>"; closeButton = new Gtk.Button (); closeButton.Add (new Gtk.Image ("gtk-close", Gtk.IconSize.Menu)); closeButton.Relief = Gtk.ReliefStyle.None; box.PackEnd (closeButton, false, false, 0); closeButton.ShowAll (); label.Show (); box.Show (); alignment.Show (); closeButton.Clicked += closeButton_Clicked; }
public Header(string text) : base() { base.SetSizeRequest(-1, 30); Gtk.Alignment alignment = new Gtk.Alignment(0, 0, 1, 1); alignment.TopPadding = 1; alignment.LeftPadding = 5; alignment.RightPadding = 0; alignment.BottomPadding = 1; base.Add(alignment); //Select (); Gtk.HBox box = new Gtk.HBox(); alignment.Add(box); label = new Gtk.Label(); label.Ypad = 3; // label.Xpad = 3; //base.Add (label); box.PackStart(label, true, true, 0); label.SetAlignment(0f, 0.5f); label.Justify = Gtk.Justification.Left; label.Markup = "<b>" + text + "</b>"; closeButton = new Gtk.Button(); closeButton.Add(new Gtk.Image("gtk-close", Gtk.IconSize.Menu)); closeButton.Relief = Gtk.ReliefStyle.None; box.PackEnd(closeButton, false, false, 0); closeButton.ShowAll(); label.Show(); box.Show(); alignment.Show(); closeButton.Clicked += closeButton_Clicked; }
Gtk.Widget ClockControls () { #if GTK2 var vbox = new Gtk.VBox (); var spinners = new Gtk.HBox (); #else var vbox = new Gtk.HBox (); var spinners = new Gtk.VBox (); #endif vbox.Spacing = 6; spinners.Spacing = 6; this.clock = new AnalogClock (); this.clock.SetSizeRequest (130, 130); vbox.PackStart (this.clock, true, true, 0); spinners.PackStart (new Gtk.Label ("Hour"), false, false, 0); hourSpin = CreateSpinner (24, 1, null); spinners.PackStart (hourSpin, false, false, 0); spinners.PackStart (new Gtk.Label ("Min"), false, false, 0); minutesSpin = CreateSpinner (60, 10, hourSpin); spinners.PackStart (minutesSpin, false, false, 0); spinners.PackStart (new Gtk.Label ("Sec"), false, false, 0); secondsSpin = CreateSpinner (60, 10, minutesSpin); spinners.PackStart (secondsSpin, false, false, 0); vbox.PackEnd (spinners, false, false, 0); return vbox; }
void CreateControls() { if (node.Type == Gtk.UIManagerItemType.Separator) { Gtk.Widget sep; if (parentMenu.IsTopMenu) { sep = new Gtk.VSeparator(); sep.WidthRequest = 6; } else { sep = new Gtk.HSeparator(); sep.HeightRequest = 6; } Add(sep); ShowAll(); return; } else { if (Child != null && Child is Gtk.Separator) { Remove(Child); } } if (node.Action == null) { return; } bool isGlobal = wrapper != null && wrapper.Project.ActionGroups.IndexOf(node.Action.ActionGroup) != -1; Gtk.Action gaction = node.Action.GtkAction; bool barItem = parentMenu.IsTopMenu; string text = gaction.Label; string stock = gaction.StockId; if (barItem) { icon = null; } else if (node.Action.Type == Stetic.Wrapper.Action.ActionType.Radio) { icon = new CheckActionIcon(true, node.Action.Active); } else if (node.Action.Type == Stetic.Wrapper.Action.ActionType.Toggle) { icon = new CheckActionIcon(node.Action.DrawAsRadio, node.Action.Active); } if (stock != null) { Gtk.StockItem item = Gtk.Stock.Lookup(stock); if (text == null || text.Length == 0) { text = item.Label; } if (item.Keyval != 0 && !editing && !barItem) { Gtk.Label lac = new Gtk.Label(); string accelName = Gtk.Accelerator.Name(item.Keyval, item.Modifier).ToUpper(); accelName = accelName.Replace("<CONTROL>", "Ctrl+"); accelName = accelName.Replace("<SHIFT>", "Shift+"); accelName = accelName.Replace("<ALT>", "Alt+"); lac.Text = accelName; accel = lac; } if (icon == null && !barItem) { icon = node.Action.CreateIcon(Gtk.IconSize.Menu); } } Gtk.Tooltips tooltips = null; if (editing) { tooltips = new Gtk.Tooltips(); } if (editing && !isGlobal) { if (!barItem) { Gtk.HBox bbox = new Gtk.HBox(); if (icon != null) { bbox.PackStart(icon, false, false, 0); } bbox.PackStart(new Gtk.Arrow(Gtk.ArrowType.Down, Gtk.ShadowType.In), false, false, 0); Gtk.Button b = new Gtk.Button(bbox); tooltips.SetTip(b, Catalog.GetString("Select action type"), ""); b.Relief = Gtk.ReliefStyle.None; b.ButtonPressEvent += OnSelectIcon; icon = b; } else { icon = null; } Gtk.Entry entry = new Gtk.Entry(); entry.Text = text; entry.Activated += OnLabelActivated; entry.KeyPressEvent += OnEntryKeyPress; entry.HasFrame = false; this.label = entry; tooltips.SetTip(entry, Catalog.GetString("Action label"), ""); } else { Gtk.Label label = new Gtk.Label(text); label.Xalign = 0; this.label = label; } if (editing && wrapper != null) { // Add a button for creating / deleting a submenu Gdk.Pixbuf img; string tip; if (node.Type != Gtk.UIManagerItemType.Menu) { img = addMenuImage; tip = Catalog.GetString("Add submenu (Ctrl+Right)"); } else { img = removeMenuImage; tip = Catalog.GetString("Remove submenu (Ctrl+Left)"); } Gtk.Button sb = new Gtk.Button(new Gtk.Image(img)); tooltips.SetTip(sb, tip, ""); sb.Relief = Gtk.ReliefStyle.None; sb.Clicked += OnCreateDeleteSubmenu; // Make sure the button is alligned to the right of the column Gtk.HBox bbox = new Gtk.HBox(); bbox.PackEnd(sb, false, false, 0); accel = bbox; } if (node.Type == Gtk.UIManagerItemType.Menu && !editing && !barItem) { Gtk.Arrow arrow = new Gtk.Arrow(Gtk.ArrowType.Right, Gtk.ShadowType.None); arrow.Xalign = 1; this.accel = arrow; } if (itemSpacing > 0 && icon != null) { // Add some padding to the left of the icon Gtk.Alignment a = new Gtk.Alignment(0, 0.5f, 0, 0); a.LeftPadding = itemSpacing; a.Add(icon); icon = a; } }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; IsAutoScrolling = true; MessageTextView tv = new MessageTextView(); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.ShowTimestamps = true; tv.ShowMarkerline = true; tv.Editable = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.MessageAdded += OnMessageTextViewMessageAdded; tv.MessageHighlighted += OnMessageTextViewMessageHighlighted; tv.PopulatePopup += OnMessageTextViewPopulatePopup; tv.SizeRequested += delegate { AutoScroll(); }; _OutputMessageTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); _OutputScrolledWindow = sw; //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Vadjustment.ValueChanged += delegate { CheckAutoScroll(); }; sw.Add(_OutputMessageTextView); // popup menu _TabMenu = new Gtk.Menu(); Gtk.ImageMenuItem close_item = new Gtk.ImageMenuItem(Gtk.Stock.Close, null); close_item.Activated += new EventHandler(OnTabMenuCloseActivated); _TabMenu.Append(close_item); _TabMenu.ShowAll(); //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); TabImage = DefaultTabImage; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.PackStart(TabImage, false, false, 2); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); _ThemeSettings = new ThemeSettings(); // OPT-TODO: this should use a TaskStack instead of TaskQueue _LastSeenHighlightQueue = new TaskQueue("LastSeenHighlightQueue(" + ID + ")"); _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent; _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent; }
public MainWindow() : base("Smuxi") { // restore window size / position int width, heigth; if (Frontend.FrontendConfig[Frontend.UIName + "/Interface/Width"] != null) { width = (int) Frontend.FrontendConfig[Frontend.UIName + "/Interface/Width"]; } else { width = 800; } if (Frontend.FrontendConfig[Frontend.UIName + "/Interface/Heigth"] != null) { heigth = (int) Frontend.FrontendConfig[Frontend.UIName + "/Interface/Heigth"]; } else { heigth = 600; } if (width < -1 || heigth < -1) { width = -1; heigth = -1; } if (width == -1 && heigth == -1) { SetDefaultSize(800, 600); Maximize(); } else if (width == 0 && heigth == 0) { // HACK: map 0/0 to default size as it crashes on Windows :/ SetDefaultSize(800, 600); } else { SetDefaultSize(width, heigth); } int x, y; if (Frontend.FrontendConfig[Frontend.UIName + "/Interface/XPosition"] != null) { x = (int) Frontend.FrontendConfig[Frontend.UIName + "/Interface/XPosition"]; } else { x = 0; } if (Frontend.FrontendConfig[Frontend.UIName + "/Interface/YPosition"] != null) { y = (int) Frontend.FrontendConfig[Frontend.UIName + "/Interface/YPosition"]; } else { y = 0; } if (x < 0 || y < 0) { x = 0; y = 0; } if (x == 0 && y == 0) { SetPosition(Gtk.WindowPosition.Center); } else { Move(x, y); } DeleteEvent += OnDeleteEvent; FocusInEvent += OnFocusInEvent; FocusOutEvent += OnFocusOutEvent; WindowStateEvent += OnWindowStateEvent; Gtk.AccelGroup agrp = new Gtk.AccelGroup(); Gtk.AccelKey akey; AddAccelGroup(agrp); // Menu MenuBar = new Gtk.MenuBar(); Gtk.Menu menu; Gtk.MenuItem item; Gtk.ImageMenuItem image_item; // Menu - File menu = new Gtk.Menu(); item = new Gtk.MenuItem(_("_File")); item.Submenu = menu; MenuBar.Append(item); item = new Gtk.ImageMenuItem(Gtk.Stock.Preferences, agrp); item.Activated += new EventHandler(_OnPreferencesButtonClicked); item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(item); menu.Append(new Gtk.SeparatorMenuItem()); item = new Gtk.ImageMenuItem(Gtk.Stock.Quit, agrp); item.Activated += new EventHandler(_OnQuitButtonClicked); item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(item); // Menu - Server menu = new Gtk.Menu(); item = new Gtk.MenuItem(_("_Server")); item.Submenu = menu; MenuBar.Append(item); image_item = new Gtk.ImageMenuItem(_("_Quick Connect")); image_item.Image = new Gtk.Image(Gtk.Stock.Connect, Gtk.IconSize.Menu); image_item.Activated += OnServerQuickConnectButtonClicked; menu.Append(image_item); menu.Append(new Gtk.SeparatorMenuItem()); image_item = new Gtk.ImageMenuItem(Gtk.Stock.Add, agrp); image_item.Activated += OnServerAddButtonClicked; menu.Append(image_item); image_item = new Gtk.ImageMenuItem(_("_Manage")); image_item.Image = new Gtk.Image(Gtk.Stock.Edit, Gtk.IconSize.Menu); image_item.Activated += OnServerManageServersButtonClicked; menu.Append(image_item); // Menu - Chat menu = new Gtk.Menu(); item = new Gtk.MenuItem(_("_Chat")); item.Submenu = menu; MenuBar.Append(item); _OpenChatMenuItem = new Gtk.ImageMenuItem(_("Open / Join Chat")); _OpenChatMenuItem.Image = new Gtk.Image(Gtk.Stock.Open, Gtk.IconSize.Menu); _OpenChatMenuItem.Activated += OnOpenChatMenuItemActivated; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.AccelMods = Gdk.ModifierType.ControlMask; akey.Key = Gdk.Key.L; _OpenChatMenuItem.AddAccelerator("activate", agrp, akey); _OpenChatMenuItem.AccelCanActivate += AccelCanActivateSensitive; menu.Append(_OpenChatMenuItem); _FindGroupChatMenuItem = new Gtk.ImageMenuItem(_("_Find Group Chat")); _FindGroupChatMenuItem.Image = new Gtk.Image(Gtk.Stock.Find, Gtk.IconSize.Menu); _FindGroupChatMenuItem.Activated += OnChatFindGroupChatButtonClicked; _FindGroupChatMenuItem.Sensitive = false; menu.Append(_FindGroupChatMenuItem); image_item = new Gtk.ImageMenuItem(_("C_lear All Activity")); image_item.Image = new Gtk.Image(Gtk.Stock.Clear, Gtk.IconSize.Menu); image_item.Activated += OnChatClearAllActivityButtonClicked; menu.Append(image_item); menu.Append(new Gtk.SeparatorMenuItem()); image_item = new Gtk.ImageMenuItem(_("_Next Chat")); image_item.Image = new Gtk.Image(Gtk.Stock.GoForward, Gtk.IconSize.Menu); image_item.Activated += OnNextChatMenuItemActivated; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.AccelMods = Gdk.ModifierType.ControlMask; akey.Key = Gdk.Key.Page_Down; image_item.AddAccelerator("activate", agrp, akey); image_item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(image_item); image_item = new Gtk.ImageMenuItem(_("_Previous Chat")); image_item.Image = new Gtk.Image(Gtk.Stock.GoBack, Gtk.IconSize.Menu); image_item.Activated += OnPreviousChatMenuItemActivated; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.AccelMods = Gdk.ModifierType.ControlMask; akey.Key = Gdk.Key.Page_Up; image_item.AddAccelerator("activate", agrp, akey); image_item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(image_item); menu.Append(new Gtk.SeparatorMenuItem()); /* // TODO: make a radio item for each chat hotkey Gtk.RadioMenuItem radio_item; radio_item = new Gtk.RadioMenuItem(); radio_item = new Gtk.RadioMenuItem(radio_item); radio_item = new Gtk.RadioMenuItem(radio_item); menu.Append(new Gtk.SeparatorMenuItem()); */ /* image_item = new Gtk.ImageMenuItem(Gtk.Stock.Find, agrp); image_item.Activated += OnFindChatMenuItemActivated; menu.Append(image_item); item = new Gtk.MenuItem(_("Find _Next")); item.Activated += OnFindNextChatMenuItemActivated; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.AccelMods = Gdk.ModifierType.ControlMask; akey.Key = Gdk.Key.G; item.AddAccelerator("activate", agrp, akey); menu.Append(item); item = new Gtk.MenuItem(_("Find _Previous")); item.Activated += OnFindPreviousChatMenuItemActivated; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.AccelMods = Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask; akey.Key = Gdk.Key.G; item.AddAccelerator("activate", agrp, akey); menu.Append(item); */ // ROFL: the empty code statement below is needed to keep stupid // gettext away from using all the commented code from above as // translator comment ; _OpenLogChatMenuItem = new Gtk.ImageMenuItem(_("Open Log")); _OpenLogChatMenuItem.Image = new Gtk.Image(Gtk.Stock.Open, Gtk.IconSize.Menu); _OpenLogChatMenuItem.Activated += OnOpenLogChatMenuItemActivated; _OpenLogChatMenuItem.Sensitive = false; _OpenLogChatMenuItem.NoShowAll = true; menu.Append(_OpenLogChatMenuItem); _CloseChatMenuItem = new Gtk.ImageMenuItem(Gtk.Stock.Close, agrp); _CloseChatMenuItem.Activated += OnCloseChatMenuItemActivated; _CloseChatMenuItem.AccelCanActivate += AccelCanActivateSensitive; menu.Append(_CloseChatMenuItem); // Menu - Engine menu = new Gtk.Menu(); item = new Gtk.MenuItem(_("_Engine")); item.Submenu = menu; MenuBar.Append(item); item = new Gtk.MenuItem(_("_Use Local Engine")); item.Activated += new EventHandler(_OnUseLocalEngineButtonClicked); menu.Append(item); menu.Append(new Gtk.SeparatorMenuItem()); image_item = new Gtk.ImageMenuItem(_("_Add Remote Engine")); image_item.Image = new Gtk.Image(Gtk.Stock.Add, Gtk.IconSize.Menu); image_item.Activated += new EventHandler(_OnAddRemoteEngineButtonClicked); menu.Append(image_item); image_item = new Gtk.ImageMenuItem(_("_Switch Remote Engine")); image_item.Image = new Gtk.Image(Gtk.Stock.Refresh, Gtk.IconSize.Menu); image_item.Activated += new EventHandler(_OnSwitchRemoteEngineButtonClicked); menu.Append(image_item); // Menu - View menu = new Gtk.Menu(); item = new Gtk.MenuItem(_("_View")); item.Submenu = menu; MenuBar.Append(item); item = new Gtk.CheckMenuItem(_("_Caret Mode")); item.Activated += new EventHandler(_OnCaretModeButtonClicked); akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.Key = Gdk.Key.F7; item.AddAccelerator("activate", agrp, akey); item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(item); item = new Gtk.CheckMenuItem(_("_Browse Mode")); item.Activated += delegate { try { _Notebook.IsBrowseModeEnabled = !_Notebook.IsBrowseModeEnabled; } catch (Exception ex) { Frontend.ShowException(this, ex); } }; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.Key = Gdk.Key.F8; item.AddAccelerator("activate", agrp, akey); item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(item); ShowMenuBarMenuItem = new Gtk.CheckMenuItem(_("Show _Menubar")); ShowMenuBarMenuItem.Active = (bool) Frontend.FrontendConfig["ShowMenuBar"]; ShowMenuBarMenuItem.Activated += OnShowMenuBarMenuItemActivated; menu.Append(ShowMenuBarMenuItem); ShowStatusBarMenuItem = new Gtk.CheckMenuItem(_("Show _Status Bar")); ShowStatusBarMenuItem.Active = (bool) Frontend.FrontendConfig["ShowStatusBar"]; ShowStatusBarMenuItem.Activated += OnShowStatusBarMenuItemActivated; menu.Append(ShowStatusBarMenuItem); JoinWidget = new JoinWidget(); JoinWidget.NoShowAll = true; JoinWidget.Visible = (bool) Frontend.FrontendConfig["ShowQuickJoin"]; JoinWidget.Activated += OnJoinWidgetActivated; ShowQuickJoinMenuItem = new Gtk.CheckMenuItem(_("Show _Quick Join")); ShowQuickJoinMenuItem.Active = JoinWidget.Visible; ShowQuickJoinMenuItem.Activated += OnShowQuickJoinMenuItemActivated; menu.Append(ShowQuickJoinMenuItem); item = new Gtk.ImageMenuItem(Gtk.Stock.Fullscreen, agrp); item.Activated += delegate { try { IsFullscreen = !IsFullscreen; } catch (Exception ex) { Frontend.ShowException(this, ex); } }; akey = new Gtk.AccelKey(); akey.AccelFlags = Gtk.AccelFlags.Visible; akey.Key = Gdk.Key.F11; item.AddAccelerator("activate", agrp, akey); item.AccelCanActivate += AccelCanActivateSensitive; menu.Append(item); // Menu - Help menu = new Gtk.Menu(); item = new Gtk.MenuItem(_("_Help")); item.Submenu = menu; MenuBar.Append(item); image_item = new Gtk.ImageMenuItem(Gtk.Stock.About, agrp); image_item.Activated += new EventHandler(_OnAboutButtonClicked); menu.Append(image_item); MenuBar.ShowAll(); MenuBar.NoShowAll = true; MenuBar.Visible = ShowMenuBarMenuItem.Active; // TODO: network treeview _Notebook = new Notebook(); _Notebook.SwitchPage += OnNotebookSwitchPage; _Notebook.FocusInEvent += OnNotebookFocusInEvent; _ChatViewManager = new ChatViewManager(_Notebook, null); Assembly asm = Assembly.GetExecutingAssembly(); _ChatViewManager.Load(asm); _ChatViewManager.LoadAll(System.IO.Path.GetDirectoryName(asm.Location), "smuxi-frontend-gnome-*.dll"); _ChatViewManager.ChatAdded += OnChatViewManagerChatAdded; _ChatViewManager.ChatSynced += OnChatViewManagerChatSynced; _ChatViewManager.ChatRemoved += OnChatViewManagerChatRemoved; #if GTK_SHARP_2_10 _StatusIconManager = new StatusIconManager(this, _ChatViewManager); #endif #if INDICATE_SHARP _IndicateManager = new IndicateManager(this, _ChatViewManager); #endif #if NOTIFY_SHARP _NotifyManager = new NotifyManager(this, _ChatViewManager); #endif #if IPC_DBUS _NetworkManager = new NetworkManager(_ChatViewManager); #endif _UI = new GnomeUI(_ChatViewManager); // HACK: Frontend.FrontendConfig out of scope _EngineManager = new EngineManager(Frontend.FrontendConfig, _UI); _Entry = new Entry(_ChatViewManager); var entryScrolledWindow = new Gtk.ScrolledWindow(); entryScrolledWindow.ShadowType = Gtk.ShadowType.EtchedIn; entryScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Never; entryScrolledWindow.SizeRequested += delegate(object o, Gtk.SizeRequestedArgs args) { // predict and set useful heigth var layout = _Entry.CreatePangoLayout("Qp"); int lineWidth, lineHeigth; layout.GetPixelSize(out lineHeigth, out lineHeigth); var text = Entry.Text; var newLines = text.Count(f => f == '\n'); // cap to 1-3 lines if (text.Length > 0) { newLines++; newLines = Math.Max(newLines, 1); newLines = Math.Min(newLines, 3); } else { newLines = 1; } // use text heigth + a bit extra var bestSize = new Gtk.Requisition() { Height = (lineHeigth * newLines) + 5 }; args.Requisition = bestSize; }; entryScrolledWindow.Add(_Entry); _ProgressBar = new Gtk.ProgressBar(); _ProgressBar.BarStyle = Gtk.ProgressBarStyle.Continuous; MenuHBox = new Gtk.HBox(); MenuHBox.PackStart(MenuBar, false, false, 0); MenuHBox.PackEnd(JoinWidget, false, false, 0); Gtk.VBox vbox = new Gtk.VBox(); vbox.PackStart(MenuHBox, false, false, 0); vbox.PackStart(_Notebook, true, true, 0); vbox.PackStart(entryScrolledWindow, false, false, 0); _NetworkStatusbar = new Gtk.Statusbar(); _NetworkStatusbar.WidthRequest = 300; _NetworkStatusbar.HasResizeGrip = false; _Statusbar = new Gtk.Statusbar(); _Statusbar.HasResizeGrip = false; Gtk.HBox status_bar_hbox = new Gtk.HBox(); status_bar_hbox.Homogeneous = true; status_bar_hbox.PackStart(_NetworkStatusbar, false, true, 0); status_bar_hbox.PackStart(_Statusbar, true, true, 0); StatusHBox = new Gtk.HBox(); StatusHBox.PackStart(status_bar_hbox); StatusHBox.PackStart(_ProgressBar, false, false, 0); StatusHBox.ShowAll(); StatusHBox.NoShowAll = true; StatusHBox.Visible = ShowStatusBarMenuItem.Active; vbox.PackStart(StatusHBox, false, false, 0); Add(vbox); }
void CreateControls () { if (node.Type == Gtk.UIManagerItemType.Separator) { Gtk.Widget sep; if (parentMenu.IsTopMenu) { sep = new Gtk.VSeparator (); sep.WidthRequest = 6; } else { sep = new Gtk.HSeparator (); sep.HeightRequest = 6; } Add (sep); ShowAll (); return; } else { if (Child != null && Child is Gtk.Separator) Remove (Child); } if (node.Action == null) return; bool isGlobal = wrapper != null && wrapper.Project.ActionGroups.IndexOf (node.Action.ActionGroup) != -1; Gtk.Action gaction = node.Action.GtkAction; bool barItem = parentMenu.IsTopMenu; string text = gaction.Label; string stock = gaction.StockId; if (barItem) { icon = null; } else if (node.Action.Type == Stetic.Wrapper.Action.ActionType.Radio) { icon = new CheckActionIcon (true, node.Action.Active); } else if (node.Action.Type == Stetic.Wrapper.Action.ActionType.Toggle) { icon = new CheckActionIcon (node.Action.DrawAsRadio, node.Action.Active); } if (stock != null) { Gtk.StockItem item = Gtk.Stock.Lookup (stock); if (text == null || text.Length == 0) text = item.Label; if (item.Keyval != 0 && !editing && !barItem) { Gtk.Label lac = new Gtk.Label (); string accelName = Gtk.Accelerator.Name (item.Keyval, item.Modifier).ToUpper (); accelName = accelName.Replace ("<CONTROL>", "Ctrl+"); accelName = accelName.Replace ("<SHIFT>", "Shift+"); accelName = accelName.Replace ("<ALT>", "Alt+"); lac.Text = accelName; accel = lac; } if (icon == null && !barItem) icon = node.Action.CreateIcon (Gtk.IconSize.Menu); } if (editing && !isGlobal) { if (!barItem) { Gtk.HBox bbox = new Gtk.HBox (); if (icon != null) { bbox.PackStart (icon, false, false, 0); } bbox.PackStart (new Gtk.Arrow (Gtk.ArrowType.Down, Gtk.ShadowType.In), false, false, 0); Gtk.Button b = new Gtk.Button (bbox); b.TooltipText = Catalog.GetString ("Select action type"); b.Relief = Gtk.ReliefStyle.None; b.ButtonPressEvent += OnSelectIcon; icon = b; } else icon = null; Gtk.Entry entry = new Gtk.Entry (); entry.Text = text; entry.Activated += OnLabelActivated; entry.KeyPressEvent += OnEntryKeyPress; entry.HasFrame = false; this.label = entry; entry.TooltipText = Catalog.GetString ("Action label"); } else { Gtk.Label label = new Gtk.Label (text); label.Xalign = 0; this.label = label; } if (editing && wrapper != null) { // Add a button for creating / deleting a submenu Gdk.Pixbuf img; string tip; if (node.Type != Gtk.UIManagerItemType.Menu) { img = addMenuImage; tip = Catalog.GetString ("Add submenu (Ctrl+Right)"); } else { img = removeMenuImage; tip = Catalog.GetString ("Remove submenu (Ctrl+Left)"); } Gtk.Button sb = new Gtk.Button (new Gtk.Image (img)); sb.TooltipText = tip; sb.Relief = Gtk.ReliefStyle.None; sb.Clicked += OnCreateDeleteSubmenu; // Make sure the button is alligned to the right of the column Gtk.HBox bbox = new Gtk.HBox (); bbox.PackEnd (sb, false, false, 0); accel = bbox; } if (node.Type == Gtk.UIManagerItemType.Menu && !editing && !barItem) { Gtk.Arrow arrow = new Gtk.Arrow (Gtk.ArrowType.Right, Gtk.ShadowType.None); arrow.Xalign = 1; this.accel = arrow; } if (itemSpacing > 0 && icon != null) { // Add some padding to the left of the icon Gtk.Alignment a = new Gtk.Alignment (0, 0.5f, 0, 0); a.LeftPadding = itemSpacing; a.Add (icon); icon = a; } }
public void CreateGui() { Gtk.Image icn_reload=new Gtk.Image(Gtk.Stock.Refresh,Gtk.IconSize.Button); _reload=new Gtk.Button(icn_reload); _reload.Clicked+=OnReload; _performer=new Gtk.Entry(200); _title=new Gtk.Entry(200); _title.WidthChars=60; _performer.WidthChars=60; _subtitle=new Gtk.Entry(300); _subtitle.WidthChars=60; _composer=new Gtk.Entry(200); _composer.WidthChars=60; _year=new Gtk.Entry(20); _year.WidthChars=20; _image=new Gtk.Image(); _image.SetSizeRequest (100,100); _imagefile=new Gtk.FileChooserButton("Choose image file",Gtk.FileChooserAction.Open); _imagefile.FileSet+=new EventHandler(EvtImageSet); Gtk.Image icn_add_track=new Gtk.Image(Gtk.Stock.Add,Gtk.IconSize.Button); _add_track=new Gtk.Button(icn_add_track); _add_track.Clicked+=OnAddTrack; Gtk.Image icn_del_track=new Gtk.Image(Gtk.Stock.Delete,Gtk.IconSize.Button); _del_track=new Gtk.Button(icn_del_track); _del_track.Clicked+=OnDelTrack; Gtk.Image icn_save=new Gtk.Image(Gtk.Stock.Save,Gtk.IconSize.Button); _save=new Gtk.Button(icn_save); _save.Clicked+=OnSave; _store=new Gtk.ListStore(typeof(int),typeof(string),typeof(string),typeof(string),typeof(string),typeof(string)); _tracks=new Gtk.TreeView(); { Gtk.CellRendererText cr0=new Gtk.CellRendererText(); cr0.Scale=0.8; _tracks.AppendColumn ("Nr.", cr0, "text", 0); Gtk.CellRendererText cr_title=new Gtk.CellRendererText(); cr_title.Scale=0.8; cr_title.Editable=true; cr_title.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(1,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Title", cr_title, "text", 1); Gtk.CellRendererText cr_artist=new Gtk.CellRendererText(); cr_artist.Editable=true; cr_artist.Scale=0.8; cr_artist.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(2,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Artist", cr_artist, "text", 2); Gtk.CellRendererText cr_composer=new Gtk.CellRendererText(); cr_composer.Editable=true; cr_composer.Scale=0.8; cr_composer.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(3,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Composer", cr_composer, "text", 3); Gtk.CellRendererText cr_piece=new Gtk.CellRendererText(); cr_piece.Editable=true; cr_piece.Scale=0.8; cr_piece.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(4,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Piece", cr_piece, "text", 4); Gtk.CellRendererText cr_time=new Gtk.CellRendererText(); cr_time.Editable=true; cr_time.Scale=0.8; cr_time.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell (5,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Offset", cr_time, "text", 5); } _tracks.Model = _store; Gtk.Table tbl=new Gtk.Table(2,5,false); tbl.Attach (new Gtk.Label("Album:"),0,1,0,1); tbl.Attach (_title,1,2,0,1); tbl.Attach (new Gtk.Label("Artist:"),0,1,1,2); tbl.Attach (_performer,1,2,1,2); tbl.Attach (new Gtk.Label("Composer:"),0,1,2,3); tbl.Attach (_composer,1,2,2,3); tbl.Attach (new Gtk.Label("Subtitle:"),0,1,3,4); tbl.Attach (_subtitle,1,2,3,4); tbl.Attach (new Gtk.Label("year:"),0,1,4,5); tbl.Attach (_year,1,2,4,5); Gtk.Frame frm=new Gtk.Frame(); frm.Add (tbl); Gtk.HBox hb2=new Gtk.HBox(); hb2.PackEnd (_reload,false,false,1); hb2.PackEnd (_del_track,false,false,1); hb2.PackEnd (_add_track,false,false,1); hb2.PackEnd (_save,false,false,1); Gtk.HBox hb=new Gtk.HBox(); Gtk.VBox vb1=new Gtk.VBox(); vb1.PackStart (frm,false,false,0); vb1.PackStart (hb2,true,true,0); hb.PackStart (vb1,false,false,0); Gtk.Frame frm2=new Gtk.Frame(); frm2.Add (_image); Gtk.VBox vbi=new Gtk.VBox(); Gtk.HBox bb=new Gtk.HBox(); bb.PackStart(new Gtk.VBox(),true,true,0); bb.PackStart(frm2,false,false,0); bb.PackEnd (new Gtk.VBox(),true,true,0); vbi.PackStart (bb,true,true,2); vbi.PackEnd (_imagefile,false,false,2); hb.PackEnd (vbi,true,true,2); Gtk.ScrolledWindow scroll=new Gtk.ScrolledWindow(); scroll.Add (_tracks); scroll.SetSizeRequest (800,300); base.VBox.PackStart(hb,false,false,4); base.VBox.PackStart(scroll,true,true,0); base.VBox.ShowAll (); base.AddButton ("Close",0); }
void ConstructContents () { if (button.Child != null) button.Remove (button.Child); if (useUnderline) { labelWidget = new Gtk.Label (label); labelWidget.MnemonicWidget = button; } else labelWidget = Gtk.Label.New (label); Gtk.Image imageWidget = (Gtk.Image)Registry.NewInstance ("Gtk.Image", proj); Image imageWrapper = (Image)Widget.Lookup (imageWidget); imageWrapper.Unselectable = true; if (type != ButtonType.StockItem) { imageWrapper.Pixbuf = imageInfo; } Gtk.HBox box = new Gtk.HBox (false, 2); box.PackStart (imageWidget, false, false, 0); box.PackEnd (labelWidget, false, false, 0); Gtk.Alignment alignment = new Gtk.Alignment (button.Xalign, button.Yalign, 0.0f, 0.0f); alignment.Add (box); ObjectWrapper buttonWrapper = ObjectWrapper.Lookup (this); Widget wrapper = (Widget)ObjectWrapper.Create (proj, labelWidget, buttonWrapper); wrapper.Unselectable = true; wrapper = (Widget)ObjectWrapper.Create (proj, box, buttonWrapper); wrapper.Unselectable = true; wrapper = (Widget)ObjectWrapper.Create (proj, alignment, buttonWrapper); wrapper.Unselectable = true; alignment.ShowAll (); button.Add (alignment); }
public void CreateGui() { Gtk.Image icn_reload = new Gtk.Image(Gtk.Stock.Refresh, Gtk.IconSize.Button); _reload = new Gtk.Button(icn_reload); _reload.Clicked += OnReload; _performer = new Gtk.Entry(200); _title = new Gtk.Entry(200); _title.WidthChars = 60; _performer.WidthChars = 60; _subtitle = new Gtk.Entry(300); _subtitle.WidthChars = 60; _composer = new Gtk.Entry(200); _composer.WidthChars = 60; _year = new Gtk.Entry(20); _year.WidthChars = 20; _image = new Gtk.Image(); _image.SetSizeRequest(100, 100); _imagefile = new Gtk.FileChooserButton("Choose image file", Gtk.FileChooserAction.Open); _imagefile.FileSet += new EventHandler(EvtImageSet); Gtk.Image icn_add_track = new Gtk.Image(Gtk.Stock.Add, Gtk.IconSize.Button); _add_track = new Gtk.Button(icn_add_track); _add_track.Clicked += OnAddTrack; Gtk.Image icn_del_track = new Gtk.Image(Gtk.Stock.Delete, Gtk.IconSize.Button); _del_track = new Gtk.Button(icn_del_track); _del_track.Clicked += OnDelTrack; Gtk.Image icn_save = new Gtk.Image(Gtk.Stock.Save, Gtk.IconSize.Button); _save = new Gtk.Button(icn_save); _save.Clicked += OnSave; _store = new Gtk.ListStore(typeof(int), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); _tracks = new Gtk.TreeView(); { Gtk.CellRendererText cr0 = new Gtk.CellRendererText(); cr0.Scale = 0.8; _tracks.AppendColumn("Nr.", cr0, "text", 0); Gtk.CellRendererText cr_title = new Gtk.CellRendererText(); cr_title.Scale = 0.8; cr_title.Editable = true; cr_title.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(1, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Title", cr_title, "text", 1); Gtk.CellRendererText cr_artist = new Gtk.CellRendererText(); cr_artist.Editable = true; cr_artist.Scale = 0.8; cr_artist.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(2, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Artist", cr_artist, "text", 2); Gtk.CellRendererText cr_composer = new Gtk.CellRendererText(); cr_composer.Editable = true; cr_composer.Scale = 0.8; cr_composer.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(3, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Composer", cr_composer, "text", 3); Gtk.CellRendererText cr_piece = new Gtk.CellRendererText(); cr_piece.Editable = true; cr_piece.Scale = 0.8; cr_piece.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(4, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Piece", cr_piece, "text", 4); Gtk.CellRendererText cr_time = new Gtk.CellRendererText(); cr_time.Editable = true; cr_time.Scale = 0.8; cr_time.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(5, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Offset", cr_time, "text", 5); } _tracks.Model = _store; Gtk.Table tbl = new Gtk.Table(2, 5, false); tbl.Attach(new Gtk.Label("Album:"), 0, 1, 0, 1); tbl.Attach(_title, 1, 2, 0, 1); tbl.Attach(new Gtk.Label("Artist:"), 0, 1, 1, 2); tbl.Attach(_performer, 1, 2, 1, 2); tbl.Attach(new Gtk.Label("Composer:"), 0, 1, 2, 3); tbl.Attach(_composer, 1, 2, 2, 3); tbl.Attach(new Gtk.Label("Subtitle:"), 0, 1, 3, 4); tbl.Attach(_subtitle, 1, 2, 3, 4); tbl.Attach(new Gtk.Label("year:"), 0, 1, 4, 5); tbl.Attach(_year, 1, 2, 4, 5); Gtk.Frame frm = new Gtk.Frame(); frm.Add(tbl); Gtk.HBox hb2 = new Gtk.HBox(); hb2.PackEnd(_reload, false, false, 1); hb2.PackEnd(_del_track, false, false, 1); hb2.PackEnd(_add_track, false, false, 1); hb2.PackEnd(_save, false, false, 1); Gtk.HBox hb = new Gtk.HBox(); Gtk.VBox vb1 = new Gtk.VBox(); vb1.PackStart(frm, false, false, 0); vb1.PackStart(hb2, true, true, 0); hb.PackStart(vb1, false, false, 0); Gtk.Frame frm2 = new Gtk.Frame(); frm2.Add(_image); Gtk.VBox vbi = new Gtk.VBox(); Gtk.HBox bb = new Gtk.HBox(); bb.PackStart(new Gtk.VBox(), true, true, 0); bb.PackStart(frm2, false, false, 0); bb.PackEnd(new Gtk.VBox(), true, true, 0); vbi.PackStart(bb, true, true, 2); vbi.PackEnd(_imagefile, false, false, 2); hb.PackEnd(vbi, true, true, 2); Gtk.ScrolledWindow scroll = new Gtk.ScrolledWindow(); scroll.Add(_tracks); scroll.SetSizeRequest(800, 300); base.VBox.PackStart(hb, false, false, 4); base.VBox.PackStart(scroll, true, true, 0); base.VBox.ShowAll(); base.AddButton("Close", 0); }
Gtk.Widget ClockControls () { #if GTK2 var vbox = new Gtk.VBox (); var spinners = new Gtk.HBox (); #else var vbox = new Gtk.HBox (); var spinners = new Gtk.VBox (); #endif vbox.Spacing = 6; spinners.Spacing = 6; clock = new AnalogClock(); clock.SetSizeRequest (130, 130); vbox.PackStart(clock, true, true, 0); spinners.PackStart (new Gtk.Label ("Hour"), false, false, 0); hourSpin = CreateSpinner (24, 1, null); spinners.PackStart (hourSpin, false, false, 0); spinners.PackStart (new Gtk.Label ("Min"), false, false, 0); minutesSpin = CreateSpinner (60, 10, hourSpin); spinners.PackStart (minutesSpin, false, false, 0); spinners.PackStart (new Gtk.Label ("Sec"), false, false, 0); secondsSpin = CreateSpinner (60, 10, minutesSpin); spinners.PackStart (secondsSpin, false, false, 0); vbox.PackEnd (spinners, false, false, 0); return vbox; }
public FeedbackDialog (int x, int y): base (Gtk.WindowType.Toplevel) { SetDefaultSize (350, 200); if (x == -1 && y == -1) { int ww, wh; IdeApp.Workbench.RootWindow.GdkWindow.GetSize (out ww, out wh); IdeApp.Workbench.RootWindow.GdkWindow.GetOrigin (out x, out y); x = ww / 2 - 350 / 2; y = wh / 2 - 200 / 2; Move (x, y); } else Move (x - 350, y - 200); mainFrame = new Gtk.Frame (); mainBox = new Gtk.VBox (); mainBox.BorderWidth = 12; mainBox.Spacing = 6; headerBox = new Gtk.HBox (); mailEntry = new EntryWithEmptyMessage (); mailEntry.EmptyMessage = GettextCatalog.GetString ("email address"); Decorated = false; mainFrame.ShadowType = Gtk.ShadowType.Out; // Header headerBox.Spacing = 6; mailLabel = new Gtk.Label (); headerBox.PackStart (mailLabel, false, false, 0); Gtk.Button changeButton = new Gtk.Button ("(Change)"); changeButton.Relief = Gtk.ReliefStyle.None; headerBox.PackStart (changeButton, false, false, 0); changeButton.Clicked += HandleChangeButtonClicked; mainBox.PackStart (headerBox, false, false, 0); mainBox.PackStart (mailEntry, false, false, 0); mailWarningLabel = new Gtk.Label (GettextCatalog.GetString ("Please enter a valid e-mail address")); mailWarningLabel.Xalign = 0; mainBox.PackStart (mailWarningLabel, false, false, 0); // Body textEntry = new TextViewWithEmptyMessage (); textEntry.EmptyMessage = GettextCatalog.GetString ( "Tell us how we can make {0} better.", BrandingService.SuiteName ); textEntry.AcceptsTab = false; textEntry.WrapMode = Gtk.WrapMode.Word; textEntry.WidthRequest = 300; var sw = new Gtk.ScrolledWindow (); sw.ShadowType = Gtk.ShadowType.In; sw.VscrollbarPolicy = Gtk.PolicyType.Automatic; sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.Add (textEntry); mainBox.PackStart (sw, true, true, 0); bodyWarningLabel = new Gtk.Label (GettextCatalog.GetString ("Please enter some feedback")); bodyWarningLabel.Xalign = 0; mainBox.PackStart (bodyWarningLabel, false, false, 0); // Bottom Gtk.HBox bottomBox = new Gtk.HBox (false, 6); Gtk.Label countLabel = new Gtk.Label (); countLabel.Xalign = 0; bottomBox.PackStart (countLabel, false, false, 0); Gtk.Button sendButton = new Gtk.Button (GettextCatalog.GetString ("Send Feedback")); sendButton.Clicked += HandleSendButtonClicked; bottomBox.PackEnd (sendButton, false, false, 0); mainBox.PackStart (bottomBox, false, false, 0); // Init mainBox.ShowAll (); mailWarningLabel.Hide (); bodyWarningLabel.Hide (); string mail = FeedbackService.ReporterEMail; if (string.IsNullOrEmpty (mail)) mail = AuthorInformation.Default.Email; if (string.IsNullOrEmpty (mail)) { headerBox.Hide (); mailEntry.GrabFocus (); } else { mailEntry.Text = mail; mailEntry.Hide (); mailLabel.Text = GettextCatalog.GetString ("From: {0}", mail); textEntry.GrabFocus (); } if (FeedbackService.FeedbacksSent > 0) countLabel.Text = GettextCatalog.GetString ("Your feedbacks: {0}", FeedbackService.FeedbacksSent); else countLabel.Hide (); mainFrame.Show (); mainFrame.Add (mainBox); Add (mainFrame); }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; _Name = _ChatModel.Name; Name = _Name; // TextTags Gtk.TextTagTable ttt = new Gtk.TextTagTable(); _OutputTextTagTable = ttt; Gtk.TextTag tt; Pango.FontDescription fd; tt = new Gtk.TextTag("bold"); fd = new Pango.FontDescription(); fd.Weight = Pango.Weight.Bold; tt.FontDesc = fd; ttt.Add(tt); tt = new Gtk.TextTag("italic"); fd = new Pango.FontDescription(); fd.Style = Pango.Style.Italic; tt.FontDesc = fd; ttt.Add(tt); tt = new Gtk.TextTag("underline"); tt.Underline = Pango.Underline.Single; ttt.Add(tt); tt = new Gtk.TextTag("url"); tt.Underline = Pango.Underline.Single; tt.Foreground = "darkblue"; tt.TextEvent += new Gtk.TextEventHandler(_OnTextTagUrlTextEvent); fd = new Pango.FontDescription(); tt.FontDesc = fd; ttt.Add(tt); Gtk.TextView tv = new Gtk.TextView(); tv.Buffer = new Gtk.TextBuffer(ttt); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.Editable = false; //tv.CursorVisible = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.Buffer.Changed += new EventHandler(_OnTextBufferChanged); tv.MotionNotifyEvent += new Gtk.MotionNotifyEventHandler(_OnMotionNotifyEvent); _OutputTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Add(_OutputTextView); _OutputScrolledWindow = sw; // popup menu _TabMenu = new Gtk.Menu(); Gtk.ImageMenuItem close_item = new Gtk.ImageMenuItem(Gtk.Stock.Close, null); close_item.Activated += new EventHandler(OnTabMenuCloseActivated); _TabMenu.Append(close_item); //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); _TabLabel.Text = _Name; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); }
private void BuildNotebook() { var vBox = new Gtk.VBox( false, 5 ); var hBox = new Gtk.HPaned(); this.nbDocPages = new Gtk.Notebook(); this.nbDocPages.SwitchPage += (o, args) => this.OnCurrentPageChanged(); // Text view for the document var swScrollText = new Gtk.ScrolledWindow(); this.txtDocument = new Gtk.TextView { Editable = false }; swScrollText.AddWithViewport( this.txtDocument ); this.txtDocument.FocusOutEvent += (o, args) => this.StoreQuestionText(); // Test treeview this.tvDocument = new Gtk.TreeView(); var swScroll = new Gtk.ScrolledWindow(); var frmTest = new Gtk.Frame( "Test" ); ( (Gtk.Label) frmTest.LabelWidget ).Markup = "<b>Test</b>"; frmTest.Add( swScroll ); swScroll.AddWithViewport( this.tvDocument ); // Frame question var frmQuestion = new Gtk.Frame( "Question" ); var swScrolledQuestion = new Gtk.ScrolledWindow(); ( (Gtk.Label) frmQuestion.LabelWidget ).Markup = "<b>Question</b>"; this.edQuestionText = new Gtk.TextView(); this.edQuestionText.KeyReleaseEvent += (o, args) => this.OnQuestionTextChanged(); swScrolledQuestion.AddWithViewport( edQuestionText ); frmQuestion.Add( swScrolledQuestion ); vBox.PackStart( frmQuestion, false, false, 5 ); // Frame answers var bttAnswers = new Gtk.HButtonBox(); var vBoxAnswers = new Gtk.VBox( false, 5 ); var frmAnswer = new Gtk.Frame( "Answer" ); var hBoxAnswers = new Gtk.HBox( false, 5 ); var hBoxCorrect = new Gtk.HBox( false, 5 ); var swScrolledAnswers = new Gtk.ScrolledWindow(); ( (Gtk.Label) frmAnswer.LabelWidget ).Markup = "<b>Answer</b>"; this.tvAnswers = new Gtk.TreeView(); swScrolledAnswers.Add( this.tvAnswers ); this.btAddAnswer = new Gtk.Button( new Gtk.Image( this.iconAdd.ScaleSimple( 16, 16, InterpType.Bilinear ) ) ); this.btAddAnswer.Clicked += (sender, e) => this.AddAnswer(); this.btRemoveAnswer = new Gtk.Button( new Gtk.Image( this.iconRemove.ScaleSimple( 16, 16, InterpType.Bilinear ) ) ); this.btRemoveAnswer.Clicked += (sender, e) => this.RemoveAnswer(); bttAnswers.Add( this.btAddAnswer ); bttAnswers.Add( this.btRemoveAnswer ); bttAnswers.Layout = Gtk.ButtonBoxStyle.Center; bttAnswers.Spacing = 20; hBoxAnswers.PackStart( swScrolledAnswers, true, true, 5 ); vBoxAnswers.PackStart( hBoxAnswers, true, true, 5 ); this.spNumberValidAnswer = new Gtk.SpinButton( 1, 20, 1 ); this.spNumberValidAnswer.ValueChanged += (o, args) => this.OnCorrectAnswerChanged(); hBoxCorrect.PackStart( new Gtk.Label( "Correct answer:" ), false, false, 5 ); hBoxCorrect.PackStart( this.spNumberValidAnswer, false, false, 5 ); hBoxCorrect.PackEnd( bttAnswers, false, false, 5 ); vBoxAnswers.PackStart( hBoxCorrect, false, false, 5 ); frmAnswer.Add( vBoxAnswers ); vBox.PackStart( frmAnswer, true, true, 5 ); // Layout hBox.Pack1( frmTest, false, false ); hBox.Pack2( vBox, false, false ); this.nbDocPages.AppendPage( hBox, new Gtk.Label( "Edit" ) ); this.nbDocPages.AppendPage( swScrollText, new Gtk.Label( "Document" ) ); this.nbDocPages.Page = 0; }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; _Name = _ChatModel.Name; ID = _ChatModel.ID; Name = _Name; MessageTextView tv = new MessageTextView(); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.ShowTimestamps = true; tv.ShowMarkerline = true; tv.Editable = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.MessageAdded += OnMessageTextViewMessageAdded; tv.MessageHighlighted += OnMessageTextViewMessageHighlighted; tv.PopulatePopup += OnMessageTextViewPopulatePopup; _OutputMessageTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Add(_OutputMessageTextView); _OutputScrolledWindow = sw; // popup menu _TabMenu = new Gtk.Menu(); Gtk.ImageMenuItem close_item = new Gtk.ImageMenuItem(Gtk.Stock.Close, null); close_item.Activated += new EventHandler(OnTabMenuCloseActivated); _TabMenu.Append(close_item); _TabMenu.ShowAll(); //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); _TabLabel.Text = _Name; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); _ThemeSettings = new ThemeSettings(); // OPT-TODO: this should use a TaskStack instead of TaskQueue _LastSeenHighlightQueue = new TaskQueue("LastSeenHighlightQueue("+_Name+")"); _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent; _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent; }
public FeedbackDialog(int x, int y) : base(Gtk.WindowType.Toplevel) { SetDefaultSize(350, 200); if (x == -1 && y == -1) { int ww, wh; IdeApp.Workbench.RootWindow.GdkWindow.GetSize(out ww, out wh); IdeApp.Workbench.RootWindow.GdkWindow.GetOrigin(out x, out y); x = ww / 2 - 350 / 2; y = wh / 2 - 200 / 2; Move(x, y); } else { Move(x - 350, y - 200); } mainFrame = new Gtk.Frame(); mainBox = new Gtk.VBox(); mainBox.BorderWidth = 12; mainBox.Spacing = 6; headerBox = new Gtk.HBox(); mailEntry = new EntryWithEmptyMessage(); mailEntry.EmptyMessage = GettextCatalog.GetString("email address"); Decorated = false; mainFrame.ShadowType = Gtk.ShadowType.Out; // Header headerBox.Spacing = 6; mailLabel = new Gtk.Label(); headerBox.PackStart(mailLabel, false, false, 0); Gtk.Button changeButton = new Gtk.Button("(Change)"); changeButton.Relief = Gtk.ReliefStyle.None; headerBox.PackStart(changeButton, false, false, 0); changeButton.Clicked += HandleChangeButtonClicked; mainBox.PackStart(headerBox, false, false, 0); mainBox.PackStart(mailEntry, false, false, 0); mailWarningLabel = new Gtk.Label(GettextCatalog.GetString("Please enter a valid e-mail address")); mailWarningLabel.Xalign = 0; mainBox.PackStart(mailWarningLabel, false, false, 0); // Body textEntry = new TextViewWithEmptyMessage(); textEntry.EmptyMessage = GettextCatalog.GetString( "Tell us how we can make {0} better.", BrandingService.SuiteName ); textEntry.AcceptsTab = false; textEntry.WrapMode = Gtk.WrapMode.Word; textEntry.WidthRequest = 300; var sw = new Gtk.ScrolledWindow(); sw.ShadowType = Gtk.ShadowType.In; sw.VscrollbarPolicy = Gtk.PolicyType.Automatic; sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.Add(textEntry); mainBox.PackStart(sw, true, true, 0); bodyWarningLabel = new Gtk.Label(GettextCatalog.GetString("Please enter some feedback")); bodyWarningLabel.Xalign = 0; mainBox.PackStart(bodyWarningLabel, false, false, 0); // Bottom Gtk.HBox bottomBox = new Gtk.HBox(false, 6); Gtk.Label countLabel = new Gtk.Label(); countLabel.Xalign = 0; bottomBox.PackStart(countLabel, false, false, 0); Gtk.Button sendButton = new Gtk.Button(GettextCatalog.GetString("Send Feedback")); sendButton.Clicked += HandleSendButtonClicked; bottomBox.PackEnd(sendButton, false, false, 0); mainBox.PackStart(bottomBox, false, false, 0); // Init mainBox.ShowAll(); mailWarningLabel.Hide(); bodyWarningLabel.Hide(); string mail = FeedbackService.ReporterEMail; if (string.IsNullOrEmpty(mail)) { mail = AuthorInformation.Default.Email; } if (string.IsNullOrEmpty(mail)) { headerBox.Hide(); mailEntry.GrabFocus(); } else { mailEntry.Text = mail; mailEntry.Hide(); mailLabel.Text = GettextCatalog.GetString("From: {0}", mail); textEntry.GrabFocus(); } if (FeedbackService.FeedbacksSent > 0) { countLabel.Text = GettextCatalog.GetString("Your feedbacks: {0}", FeedbackService.FeedbacksSent); } else { countLabel.Hide(); } mainFrame.Show(); mainFrame.Add(mainBox); Add(mainFrame); }
void SetImagePosition() { if (Control.Child != null) { Control.Remove(Control.Child); } (label.Parent as Gtk.Container)?.Remove(label); (gtkimage?.Parent as Gtk.Container)?.Remove(gtkimage); Gtk.Widget child = null; var showImage = Image != null; var showLabel = !string.IsNullOrEmpty(label.Text); if (showImage && showLabel) { Gtk.VBox vbox; Gtk.HBox hbox; switch (ImagePosition) { case ButtonImagePosition.Above: child = vbox = new Gtk.VBox(false, 2); vbox.PackStart(gtkimage, true, true, 0); vbox.PackEnd(label, false, true, 0); break; case ButtonImagePosition.Below: child = vbox = new Gtk.VBox(false, 2); vbox.PackStart(label, false, true, 0); vbox.PackEnd(gtkimage, true, true, 0); break; case ButtonImagePosition.Left: child = hbox = new Gtk.HBox(false, 2); hbox.PackStart(gtkimage, false, true, 0); hbox.PackStart(label, true, true, 0); break; case ButtonImagePosition.Right: child = hbox = new Gtk.HBox(false, 2); hbox.PackStart(label, true, true, 0); hbox.PackEnd(gtkimage, false, true, 0); break; case ButtonImagePosition.Overlay: #if GTK2 var table = new Gtk.Table(1, 1, false); child = table; table.Attach(label, 0, 0, 1, 1, Gtk.AttachOptions.Expand, Gtk.AttachOptions.Expand, 0, 0); table.Attach(gtkimage, 0, 0, 1, 1, Gtk.AttachOptions.Expand, Gtk.AttachOptions.Expand, 0, 0); #else var grid = new Gtk.Grid(); child = grid; label.Hexpand = label.Vexpand = true; gtkimage.Hexpand = gtkimage.Vexpand = true; grid.Attach(label, 0, 0, 1, 1); grid.Attach(gtkimage, 0, 0, 1, 1); #endif break; default: throw new NotSupportedException(); } } else if (showLabel) { child = label; } else if (showImage) { child = gtkimage; } if (child != null) { child.Show(); Control.Child = child; } Control.QueueResize(); }
public void createGui() { basedir_section=new Section("cuesheets-basedir","CueSheet Music Directory:",20); source_page.Add (basedir_section); string dir=_source.getCueSheetDir(); Gtk.Label lbl=new Gtk.Label("CueSheet Music Directory:"); Gtk.FileChooserButton btn=new Gtk.FileChooserButton("CueSheet Music Directory:",Gtk.FileChooserAction.SelectFolder); if (dir!=null) { btn.SelectFilename (dir); } Gtk.HBox box=new Gtk.HBox(); box.Add (lbl); box.Add (btn); box.ShowAll (); btn.CurrentFolderChanged+=delegate(object sender,EventArgs args) { string dir1=btn.Filename; Hyena.Log.Information ("Folder changed to = "+dir1); }; btn.FileSet+=delegate(object sender,EventArgs args) { string dir1=btn.Filename; Hyena.Log.Information ("Base directory changed to = "+dir1); _source.setCueSheetDir(dir1); }; Console.WriteLine (_source); Gtk.VBox vb=new Gtk.VBox(); vb.PackStart (box,false,false,0); Gtk.Image icn_about=new Gtk.Image(Gtk.Stock.About,Gtk.IconSize.Button); Gtk.Button about=new Gtk.Button(icn_about); about.Clicked+=new EventHandler(handleAbout); Gtk.HBox hb=new Gtk.HBox(); Gtk.Label _about=new Gtk.Label("About the CueSheet extension"); hb.PackEnd (about,false,false,0); hb.PackEnd (_about,false,false,5); vb.PackStart (hb,false,false,0); Gtk.HBox hb1=new Gtk.HBox(); Gtk.Label _info=new Gtk.Label("How to use the Cuesheet extension (opens browser)"); Gtk.Image icn_info=new Gtk.Image(Gtk.Stock.Info,Gtk.IconSize.Button); Gtk.Button btn_info=new Gtk.Button(icn_info); btn_info.Clicked+=new EventHandler(handleInfo); hb1.PackEnd(btn_info,false,false,0); hb1.PackEnd(_info,false,false,5); vb.PackStart (hb1,false,false,0); Gtk.HBox hbX=new Gtk.HBox(); vb.PackEnd (hbX,true,true,0); vb.ShowAll (); source_page.DisplayWidget = vb; }
Gtk.Widget CreateLabel(NotebookTab tab) { var vbox = new Gtk.HBox(); Gtk.Label label = new Gtk.Label (); /* INTRODUCED BY houen */ if (tab.Label.Contains("\\_")) { label.Text = tab.Label.Replace("\\_", "_"); } else { label.TextWithMnemonic = tab.Label.Replace("\\_", "_"); } /* INTRODUCED BY houen */ label.Show (); vbox.PackStart(label); if(!label.Text.StartsWith(char.ConvertFromUtf32(0x200B))) { var closeImage = new Gtk.Image(Assembly.GetExecutingAssembly(), "Xwt.GtkBackend.delete.png"); var button = new Gtk.ToolButton(closeImage, ""); vbox.PackEnd(button, false, false, 0); button.Show(); closeImage.Show(); var nativeWidget = GetWidget((IWidgetBackend)Toolkit.GetBackend(tab.Child)); button.Clicked += (object sender, EventArgs e) => { tab.OnClosing(); Widget.Remove(nativeWidget); }; } return vbox; }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; IsAutoScrolling = true; MessageTextView tv = new MessageTextView(); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.ShowTimestamps = true; tv.ShowMarkerline = true; tv.Editable = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.MessageAdded += OnMessageTextViewMessageAdded; tv.MessageHighlighted += OnMessageTextViewMessageHighlighted; tv.PopulatePopup += OnMessageTextViewPopulatePopup; tv.SizeRequested += delegate { AutoScroll(); }; tv.PersonClicked += OnMessageTextViewPersonClicked; _OutputMessageTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); _OutputScrolledWindow = sw; //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Vadjustment.ValueChanged += OnVadjustmentValueChanged; sw.Add(_OutputMessageTextView); // popup menu _TabMenu = new Gtk.Menu(); _TabMenu.Shown += OnTabMenuShown; //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); TabImage = DefaultTabImage; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.PackStart(TabImage, false, false, 2); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); _ThemeSettings = new ThemeSettings(); // OPT-TODO: this should use a TaskStack instead of TaskQueue _LastSeenHighlightQueue = new TaskQueue("LastSeenHighlightQueue("+ID+")"); _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent; _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent; }
void GtkDBusInit() { /* setup ApplicationMenu */ dbusMenu = new MenuStripDBusMenu(pluginHost.MainWindow.MainMenu); emptyDBusMenu = new MenuStripDBusMenu(new MenuStrip()); var sessionBus = Bus.Session; #if DEBUG const string dbusBusPath = "/org/freedesktop/DBus"; const string dbusBusName = "org.freedesktop.DBus"; var dbusObjectPath = new ObjectPath(dbusBusPath); var dbusService = sessionBus.GetObject <org.freedesktop.DBus.IBus>(dbusBusName, dbusObjectPath); dbusService.NameAcquired += (name) => Console.WriteLine("NameAcquired: " + name); #endif const string registrarBusPath = "/com/canonical/AppMenu/Registrar"; const string registratBusName = "com.canonical.AppMenu.Registrar"; var registrarObjectPath = new ObjectPath(registrarBusPath); unityPanelServiceBus = sessionBus.GetObject <com.canonical.AppMenu.Registrar.IRegistrar>(registratBusName, registrarObjectPath); mainFormXid = GetWindowXid(pluginHost.MainWindow); mainFormObjectPath = new ObjectPath(string.Format(menuPath, mainFormXid)); sessionBus.Register(mainFormObjectPath, dbusMenu); try { unityPanelServiceBus.RegisterWindow((uint)mainFormXid.ToInt32(), mainFormObjectPath); gtkInitOk = true; gtkInitDoneEvent.Set(); } catch (Exception) { gtkInitDoneEvent.Set(); if (!pluginHost.CustomConfig.GetBool(keebuntuAppMenuWarningSeenId, false)) { using (var dialog = new Gtk.Dialog()) { dialog.BorderWidth = 6; dialog.Resizable = false; dialog.HasSeparator = false; var message = "<span weight=\"bold\"size=\"larger\">" + "Could not register KeebuntuAppMenu with Unity panel service." + "</span>\n\n" + "This plugin only works with Ubuntu Unity desktop." + " If you do not use Unity, you should uninstall the KeebuntuAppMenu plugin." + "\n"; var label = new Gtk.Label(message); label.UseMarkup = true; label.Wrap = true; label.Yalign = 0; var icon = new Gtk.Image(Gtk.Stock.DialogError, Gtk.IconSize.Dialog); icon.Yalign = 0; var contentBox = new Gtk.HBox(); contentBox.Spacing = 12; contentBox.BorderWidth = 6; contentBox.PackStart(icon); contentBox.PackEnd(label); dialog.VBox.PackStart(contentBox); dialog.AddButton("Don't show this again", Gtk.ResponseType.Accept); dialog.AddButton("OK", Gtk.ResponseType.Ok); dialog.DefaultResponse = Gtk.ResponseType.Ok; dialog.Response += (o, args) => { dialog.Destroy(); if (args.ResponseId == Gtk.ResponseType.Accept) { pluginHost.CustomConfig.SetBool(keebuntuAppMenuWarningSeenId, true); } }; dialog.ShowAll(); dialog.KeepAbove = true; dialog.Run(); } DBusBackgroundWorker.Stop(); } } }
public Main(Controller.Main c) : base(Gtk.WindowType.Toplevel) { ctl = c; Name = "di"; Title = "di"; DefaultWidth = 800; DefaultHeight = 600; DeleteEvent += OnDeleteEvent; topLevelBox = new Gtk.HBox(); topLevelBox.Homogeneous = false; topLevelBox.Spacing = 20; Add(topLevelBox); windowsBox = new Gtk.HBox(); windowsBox.Homogeneous = true; windowsBox.Spacing = 10; foreach (var window in ctl.Windows) { var view = new WindowView(this, window); windowsBox.Add(view); } topLevelBox.PackStart(windowsBox, true, true, 0); ctl.Windows.Added.Add((index, window) => { var view = new WindowView(this, window); windowsBox.Add(view); windowsBox.ShowAll(); }); ctl.Windows.Removed.Add((index, window) => { var view = windowsBox.Children[index]; bool hadFocus = view.ContainsFocus(); windowsBox.Remove(view); if (hadFocus && windowsBox.Children.Length > 0) { windowsBox.Children[0].GiveFocus(); } }); ctl.Windows.Cleared.Add(() => { foreach (var view in windowsBox.Children) { windowsBox.Remove(view); } }); ctl.Windows.CurrentChanged.Add((idx, win) => ApplyControllerFocus(win)); ctl.BeginTask.Add(task => { var sidebar = Sidebar.Create(task); topLevelBox.PackEnd(sidebar, false, false, 20); task.End.Add(() => { bool hadFocus = sidebar.ContainsFocus(); topLevelBox.Remove(sidebar); if (hadFocus) { ApplyControllerFocus(ctl.Windows.Current); } }); sidebar.ShowAll(); }); }
private void Build() { foreach (Gtk.Widget w in Children) { w.Destroy(); } d_properties = null; d_function = null; d_piecewise = null; Object obj = new Object(d_wrapper, d_actions, d_network); obj.Show(); obj.Error += delegate(object source, Exception exception) { Error(source, exception); }; obj.TemplateActivated += delegate(object source, Wrappers.Wrapper template) { TemplateActivated(source, template); }; Gtk.HBox top = new Gtk.HBox(false, 6); top.Show(); top.PackStart(obj, true, true, 0); if (!(d_wrapper is Wrappers.Function)) { d_properties = new Variables(d_wrapper, d_actions); d_properties.Show(); d_properties.Error += delegate(object source, Exception exception) { Error(source, exception); }; } else if (d_wrapper is Wrappers.FunctionPolynomial) { d_piecewise = new PiecewisePolynomial(d_wrapper as Wrappers.FunctionPolynomial, d_actions); d_piecewise.Show(); top.PackEnd(d_piecewise.PeriodWidget, false, false, 0); } else { d_function = new Function(d_wrapper as Wrappers.Function, d_actions); d_function.Show(); d_function.Error += delegate(object source, Exception exception) { Error(source, exception); }; } PackStart(top, false, false, 0); Wrappers.Edge link = d_wrapper as Wrappers.Edge; Wrappers.Node node = d_wrapper as Wrappers.Node; if (node != null && node.HasSelfEdge) { link = node.SelfEdge; } if (link != null) { Gtk.HPaned paned = new Gtk.HPaned(); paned.Show(); paned.Pack1(d_properties, true, true); Edge actions = new Edge(link, d_actions); actions.Show(); paned.Pack2(actions, true, true); PackStart(paned, true, true, 0); } else if (d_properties != null) { PackStart(d_properties, true, true, 0); } else if (d_function != null) { PackStart(d_function, true, true, 0); } else if (d_piecewise != null) { PackStart(d_piecewise, true, true, 0); } }