Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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;
		}
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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);
        }
Esempio n. 8
0
            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();
            }
Esempio n. 9
0
 public TabPageHandler()
 {
     Control = new Gtk.VBox();
     tab     = new Gtk.HBox();
     label   = new Gtk.Label();
     tab.PackEnd(label, true, true, 0);
     tab.ShowAll();
 }
Esempio n. 10
0
		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;
		}			
Esempio n. 11
0
        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);
        }
Esempio n. 12
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);
        }
Esempio n. 13
0
 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);
        }
Esempio n. 15
0
        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;
        }
Esempio n. 16
0
        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;
        }
Esempio n. 17
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;

			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;
		}
Esempio n. 18
0
        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;
            }
        }
Esempio n. 19
0
        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;
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
		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);
        }
Esempio n. 23
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);
        }
Esempio n. 25
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;
		}
Esempio n. 26
0
		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);
		}
Esempio n. 27
0
        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();
        }
Esempio n. 28
0
        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;
        }
Esempio n. 29
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;
        }
Esempio n. 30
0
        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);
        }
Esempio n. 31
0
        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;
        }
Esempio n. 33
0
        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;
        }
Esempio n. 34
0
        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();
                }
            }
        }
Esempio n. 36
0
File: Main.cs Progetto: ktvoelker/di
 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();
     });
 }
Esempio n. 37
0
        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);
            }
        }