Example #1
0
            public ICSShell(ICSClient client)
                : base()
            {
                this.client = client;
                textView = new ShellTextView (client);

                commandEntry = new Entry ();
                sendButton =
                    new Button (Catalog.
                            GetString ("Send"));

                ScrolledWindow win = new ScrolledWindow ();
                  win.HscrollbarPolicy =
                    win.VscrollbarPolicy =
                    PolicyType.Automatic;
                  win.Add (textView);

                  PackStart (win, true, true, 4);
                HBox box = new HBox ();
                  box.PackStart (commandEntry, true, true, 4);
                  box.PackStart (sendButton, false, false, 4);
                  PackStart (box, false, true, 4);

                  textView.Editable = false;

                  commandEntry.Activated += OnCommand;
                  sendButton.Clicked += OnCommand;
                  ShowAll ();
            }
Example #2
0
            public ICSShell(ICSClient client)
                : base()
            {
                this.client = client;
                max_chars = 16 * 1024;
                textView = new TextView ();
                textView.ModifyFont (Pango.FontDescription.
                             FromString
                             ("Monospace 9"));
                client.LineReceivedEvent += OnLineReceived;

                commandEntry = new Entry ();
                sendButton =
                    new Button (Catalog.
                            GetString ("Send"));

                ScrolledWindow win = new ScrolledWindow ();
                  win.HscrollbarPolicy =
                    win.VscrollbarPolicy =
                    PolicyType.Automatic;
                  win.Add (textView);

                  PackStart (win, true, true, 4);
                HBox box = new HBox ();
                  box.PackStart (commandEntry, true, true, 4);
                  box.PackStart (sendButton, false, false, 4);
                  PackStart (box, false, true, 4);

                  textView.Editable = false;

                  commandEntry.Activated += OnCommand;
                  sendButton.Clicked += OnCommand;
                  ShowAll ();
            }
Example #3
0
	static void Main (string [] args)
	{
		Application.Init ();

		if (args.Length <= 0) {
			Console.WriteLine ("\nUSAGE: ImageBrowser.exe <directory>\n");
			return;
		}
	
		string dir = args [0];

		Window window = new Window ("Image Browser");
		ScrolledWindow scroll = new ScrolledWindow ();//(new Adjustment (IntPtr.Zero), new Adjustment (IntPtr.Zero));

		ArrayList images = GetItemsFromDirectory (dir);
		
		Table table = PopulateTable (images);
		
		
		window.Title = String.Format ("{0}: {1} ({2} images)", window.Title, dir, images.Count);
		window.SetDefaultSize (300, 200);
		//window.DeleteEvent += Window_Delete;
		scroll.AddWithViewport (table);
		//scroll.SetPolicy (PolicyType.Automatic, PolicyType.Automatic);
		window.Add (scroll);
		window.ShowAll ();
		Application.Run ();
	}
            public RelayTournamentsView(ICSClient c)
            {
                client = c;
                tournamentIter = TreeIter.Zero;
                store = new TreeStore (typeof (int),
                               typeof (string),
                               typeof (string));
                  create_tree ();
                  refreshButton = new Button (Stock.Refresh);
                  refreshButton.Clicked += OnClicked;
                  infoLabel = new Label ();
                  infoLabel.UseMarkup = true;
                  infoLabel.Xalign = 0;
                  infoLabel.Xpad = 4;
                //infoLabel.Yalign = 0;
                //infoLabel.Ypad = 4;
                HBox box = new HBox ();
                  box.PackStart (infoLabel, true, true, 4);
                  box.PackStart (refreshButton, false, false,
                         4);
                  PackStart (box, false, true, 4);

                ScrolledWindow scroll = new ScrolledWindow ();
                  scroll.HscrollbarPolicy =
                    scroll.VscrollbarPolicy =
                    PolicyType.Automatic;
                  scroll.Add (tree);
                  PackStart (scroll, true, true, 4);
                  client.AuthEvent += OnAuth;
                  ShowAll ();
            }
            public PluginManagerDialog(Window parent,
						    PluginManager
						    manager)
                : base(Catalog.GetString("Plugins"),
								   parent,
								   DialogFlags.
								   Modal,
								   Catalog.GetString("Close"),
								   ResponseType.
								   None)
            {
                SetupTree ();
                foreach (PluginInfo info in manager.Plugins)
                {
                    if (info.Plugin == null)
                      {
                          continue;
                      }
                    store.AppendValues (info);
                }

                ScrolledWindow win = new ScrolledWindow ();
                  win.HscrollbarPolicy = PolicyType.Automatic;
                  win.VscrollbarPolicy = PolicyType.Automatic;
                  win.Child = tree;
                  VBox.PackStart (win, true, true, 4);
                  SetSizeRequest (400, 400);
                  VBox.ShowAll ();
            }
Example #6
0
        public Form1(Point pos, Size size, Controllers.Form1 controller)
            : base("Form1", pos, size)
        {
            this.Closing += new EventListener(Form1_Closing);

            panel = new ScrolledWindow(this, (int)ID_CONTROLS.ID_PANEL /*, wxDefaultPosition, wxDefaultSize, WindowStyles.TAB_TRAVERSAL | WindowStyles.CLIP_CHILDREN | WindowStyles.BORDER_NONE*/);
            panel.AutoLayout = true;

            // At this point we don't know about the Model (so we don't have any labels etc..) so we have to wait for the model to get in touch
            text = new TextCtrl(panel, (int)ID_CONTROLS.ID_TEXT, string.Empty, wxDefaultPosition, wxDefaultSize, wx.WindowStyles.TE_MULTILINE | wx.WindowStyles.BORDER_SUNKEN);
        }
Example #7
0
	   public static ScrolledWindow CreateViewport()
	   {
		   ScrolledWindow scroller = new ScrolledWindow();
		   Viewport viewer = new Viewport();
		   
		   Table widgets = new Table(1, 2, false);
		   
		   widgets.Attach(new Button("This is example Entry 1"), 0, 1, 0, 1);
		   widgets.Attach(new Button("This is example Entry 2"), 1, 2, 0, 1);
 
		   // Place the widgets in a Viewport, and the 
		   // Viewport in a ScrolledWindow
		   viewer.Add(widgets);
		   scroller.Add(viewer);
		   return scroller;
	   }
            public GamesListWidget()
                : base()
            {
                HBox hbox = new HBox ();
                hbox.PackStart (new
                        Label (Catalog.
                               GetString
                               ("Filter")), false,
                        false, 4);

                view = CreateIconView ();
                win = new ScrolledWindow ();
                win.HscrollbarPolicy = PolicyType.Automatic;
                win.VscrollbarPolicy = PolicyType.Automatic;
                win.Add (view);
                PackStart (win, true, true, 4);

                ShowAll ();
            }
Example #9
0
	static void SetUpGui ()
	{
		Window w = new Window ("Sign Up");
		
		VBox vbox = new VBox ();
		
		Button b = new Button ("Testing");
		vbox.PackStart (b, false, false, 0);
		
		b = new Button ("Testing II");
		vbox.PackStart (b, false, false, 0);
				
		ScrolledWindow sw = new ScrolledWindow ();
		
		sw.AddWithViewport (vbox);
		
		w.Add (sw);
//		w.SetDefaultSize (12, 12);
		w.ShowAll ();
	}
            public ChessGameWidget()
                : base()
            {
                highlightMoveIndex = -1;

                gameInfoWidget = new ChessGameInfoWidget ();
                gameView = new TreeView ();
                moveStore = new ListStore (typeof (object));
                gameView.Model = moveStore;
                SetupMovesTree ();
                gameInfoWidget.Show ();
                gameView.Show ();
                Show ();

                PackStart (gameInfoWidget, false, false, 0);
                ScrolledWindow win = new ScrolledWindow ();
                  win.Child = gameView;
                  win.HscrollbarPolicy = PolicyType.Never;
                  win.VscrollbarPolicy = PolicyType.Automatic;
                  win.Show ();
                  PackStart (win, true, true, 0);
            }
            public GamesListWidget()
                : base()
            {
                HBox hbox = new HBox ();
                  hbox.PackStart (new
                          Label (Catalog.
                             GetString
                             ("Filter")), false,
                          false, 4);
                  searchEntry = new Entry ();
                  hbox.PackStart (searchEntry, true, true, 4);
                  tree = new TreeView ();
                  PackStart (hbox, false, true, 0);

                ScrolledWindow win = new ScrolledWindow ();
                  win.HscrollbarPolicy = PolicyType.Automatic;
                  win.VscrollbarPolicy = PolicyType.Automatic;
                  win.Add (tree);
                  PackStart (win, true, true, 4);

                  SetupTree ();
                  ShowAll ();
                  searchEntry.Activated += OnSearch;
            }
Example #12
0
        public OptionsDialog(MonoDevelop.Components.Window parentWindow, object dataObject, string extensionPath, bool removeEmptySections)
        {
            buttonCancel = new Gtk.Button(Gtk.Stock.Cancel);
            AddActionWidget(this.buttonCancel, ResponseType.Cancel);

            buttonOk = new Gtk.Button(Gtk.Stock.Ok);
            this.ActionArea.PackStart(buttonOk);
            buttonOk.Clicked += OnButtonOkClicked;

            mainHBox = new HBox();
            tree     = new TreeView();
            var sw = new ScrolledWindow();

            sw.Add(tree);
            sw.HscrollbarPolicy = PolicyType.Never;
            sw.VscrollbarPolicy = PolicyType.Automatic;
            sw.ShadowType       = ShadowType.None;

            var fboxTree = new HeaderBox();

            fboxTree.SetMargins(0, 1, 0, 1);
            fboxTree.SetPadding(0, 0, 0, 0);
            fboxTree.BackgroundColor = new Gdk.Color(255, 255, 255);
            fboxTree.Add(sw);
            mainHBox.PackStart(fboxTree, false, false, 0);

            Realized += delegate {
                fboxTree.BackgroundColor = tree.Style.Base(Gtk.StateType.Normal);
            };

            var vbox = new VBox();

            mainHBox.PackStart(vbox, true, true, 0);
            var headerBox = new HBox(false, 6);

            image = new Xwt.ImageView();
            //	headerBox.PackStart (image, false, false, 0);

            labelTitle        = new Label();
            labelTitle.Xalign = 0;
            textHeader        = new Alignment(0, 0, 1, 1);
            textHeader.Add(labelTitle);
            textHeader.BorderWidth = 12;
            headerBox.PackStart(textHeader, true, true, 0);

            imageHeader = new OptionsDialogHeader();
            imageHeader.Hide();
            headerBox.PackStart(imageHeader.ToGtkWidget());

            var fboxHeader = new HeaderBox();

            fboxHeader.SetMargins(0, 1, 0, 0);
            fboxHeader.Add(headerBox);
//			fbox.GradientBackround = true;
//			fbox.BackgroundColor = new Gdk.Color (255, 255, 255);
            Realized += delegate {
                var c = Style.Background(Gtk.StateType.Normal).ToXwtColor();
                c.Light += 0.09;
                fboxHeader.BackgroundColor = c.ToGdkColor();
            };
            StyleSet += delegate {
                if (IsRealized)
                {
                    var c = Style.Background(Gtk.StateType.Normal).ToXwtColor();
                    c.Light += 0.09;
                    fboxHeader.BackgroundColor = c.ToGdkColor();
                }
            };
            vbox.PackStart(fboxHeader, false, false, 0);

            pageFrame = new HBox();
            var fbox = new HeaderBox();

            fbox.SetMargins(0, 1, 0, 0);
            fbox.ShowTopShadow = true;
            fbox.Add(pageFrame);
            vbox.PackStart(fbox, true, true, 0);

            this.VBox.PackStart(mainHBox, true, true, 0);

            this.removeEmptySections = removeEmptySections;
            extensionContext         = AddinManager.CreateExtensionContext();

            this.mainDataObject = dataObject;
            this.extensionPath  = extensionPath;

            if (parentWindow != null)
            {
                TransientFor = parentWindow;
            }

            ImageService.EnsureStockIconIsLoaded(emptyCategoryIcon);

            store               = new TreeStore(typeof(OptionsDialogSection));
            tree.Model          = store;
            tree.HeadersVisible = false;

            // Column 0 is used to add some padding at the left of the expander
            TreeViewColumn col0 = new TreeViewColumn();

            col0.MinWidth = 6;
            tree.AppendColumn(col0);

            TreeViewColumn col = new TreeViewColumn();
            var            crp = new CellRendererImage();

            col.PackStart(crp, false);
            col.SetCellDataFunc(crp, PixbufCellDataFunc);
            var crt = new CellRendererText();

            col.PackStart(crt, true);
            col.SetCellDataFunc(crt, TextCellDataFunc);
            tree.AppendColumn(col);

            tree.ExpanderColumn = col;

            tree.Selection.Changed += OnSelectionChanged;

            Child.ShowAll();

            InitializeContext(extensionContext);

            FillTree();
            ExpandCategories();
            this.DefaultResponse = Gtk.ResponseType.Ok;

            buttonOk.CanDefault = true;
            buttonOk.GrabDefault();

            DefaultWidth  = 960;
            DefaultHeight = 680;
        }
Example #13
0
        public ExampleListView() : base(true, (int)AppSettings.Margin)
        {
            Examples = new List <Example>();

            var exampleListContainer = new VBox(true, (int)AppSettings.Margin);

            exampleList = new ScrolledWindow();
            exampleList.Add(new Label("No examples"));
            exampleListContainer.PackStart(
                exampleList, true, true, AppSettings.Margin
                );
            PackStart(exampleListContainer, true, true, AppSettings.Margin);

            var exampleCreatorCont   = new Frame("Create New Example");
            var exampleCreatorScroll = new ScrolledWindow();
            var exampleCreator       = new VBox(true, 0);

            exampleCreator.PackStart(
                new Label("Romanization:"), false, false, 0
                );
            var romInput = new Entry();

            exampleCreator.PackStart(romInput, false, false, 0);
            exampleCreator.PackStart(
                new Label("IPA:"), false, false, 0
                );
            var ipaInput = new Entry();

            exampleCreator.PackStart(ipaInput, false, false, 0);
            exampleCreator.PackStart(
                new Label("Gloss:"), false, false, 0
                );
            var glossInput = new Entry();

            exampleCreator.PackStart(glossInput, false, false, 0);
            exampleCreator.PackStart(
                new Label("Translation:"), false, false, 0
                );
            var transInput = new Entry();

            exampleCreator.PackStart(transInput, false, false, 0);
            var submitButton = new Button("Submit");

            submitButton.Clicked += (object sender, EventArgs args) => {
                Examples.Add(new Example {
                    Romanization = romInput.Buffer.Text,
                    Ipa          = ipaInput.Buffer.Text,
                    Gloss        = glossInput.Buffer.Text,
                    Translation  = transInput.Buffer.Text
                });
                romInput.Buffer.Text   = "";
                ipaInput.Buffer.Text   = "";
                glossInput.Buffer.Text = "";
                transInput.Buffer.Text = "";
                updateExampleList();
            };
            exampleCreator.PackStart(
                submitButton, false, false, 0
                );
            exampleCreatorScroll.Add(exampleCreator);
            exampleCreatorCont.Add(exampleCreatorScroll);
            PackStart(exampleCreatorCont, true, true, AppSettings.Margin);
        }
Example #14
0
        Widget CreateExceptionValueTreeView()
        {
            Widget scrolledWidget = null;

            if (useNewTreeView)
            {
                controller = new ObjectValueTreeViewController();
                controller.SetStackFrame(DebuggingService.CurrentFrame);
                controller.AllowExpanding = true;

                if (Platform.IsMac)
                {
                    macExceptionValueTreeView = controller.GetMacControl(ObjectValueTreeViewFlags.ObjectValuePadFlags);
                    macExceptionValueTreeView.UIElementName = "ExceptionCaughtDialog";
                }
                else
                {
                    exceptionValueTreeView = controller.GetGtkControl(ObjectValueTreeViewFlags.ExceptionCaughtFlags);
                }
            }
            else
            {
                var objValueTreeView = new ObjectValueTreeView();
                objValueTreeView.Frame          = DebuggingService.CurrentFrame;
                objValueTreeView.AllowPopupMenu = false;
                objValueTreeView.AllowExpanding = true;
                objValueTreeView.AllowPinning   = false;
                objValueTreeView.AllowEditing   = false;
                objValueTreeView.AllowAdding    = false;

                exceptionValueTreeView = objValueTreeView;
            }

            if (useNewTreeView && Platform.IsMac)
            {
                var scrolled = new AppKit.NSScrollView {
                    DocumentView          = macExceptionValueTreeView,
                    AutohidesScrollers    = true,
                    HasVerticalScroller   = true,
                    HasHorizontalScroller = true,
                };

                // disable implicit animations
                scrolled.WantsLayer    = true;
                scrolled.Layer.Actions = new NSDictionary(
                    "actions", NSNull.Null,
                    "contents", NSNull.Null,
                    "hidden", NSNull.Null,
                    "onLayout", NSNull.Null,
                    "onOrderIn", NSNull.Null,
                    "onOrderOut", NSNull.Null,
                    "position", NSNull.Null,
                    "sublayers", NSNull.Null,
                    "transform", NSNull.Null,
                    "bounds", NSNull.Null);

                var host = new GtkNSViewHost(scrolled);
                host.ShowAll();
                scrolledWidget = host;
            }
            else
            {
                exceptionValueTreeView.ModifyBase(StateType.Normal, Styles.ExceptionCaughtDialog.ValueTreeBackgroundColor.ToGdkColor());
                exceptionValueTreeView.ModifyBase(StateType.Active, Styles.ObjectValueTreeActiveBackgroundColor.ToGdkColor());
                exceptionValueTreeView.ModifyFont(Pango.FontDescription.FromString(Platform.IsWindows ? "9" : "11"));
                exceptionValueTreeView.RulesHint = false;
                exceptionValueTreeView.CanFocus  = true;
                exceptionValueTreeView.Show();

                var scrolled = new ScrolledWindow {
                    CanFocus         = true,
                    HscrollbarPolicy = PolicyType.Automatic,
                    VscrollbarPolicy = PolicyType.Automatic
                };

                scrolled.ShadowType = ShadowType.None;
                scrolled.Add(exceptionValueTreeView);
                scrolled.Show();
                scrolledWidget = scrolled;
            }

            var label = new Label();

            label.Markup = "<b>" + GettextCatalog.GetString("Properties") + "</b>";
            label.Xalign = 0;
            label.Xpad   = 10;

            if (exceptionValueTreeView != null)
            {
                exceptionValueTreeView.SetCommonAccessibilityAttributes("ExceptionCaughtDialog.ExceptionValueTreeView", label, null);
            }
            else
            {
                macExceptionValueTreeView.AccessibilityTitle = new NSString(label.Text);
            }

            var vbox = new VBox();

            vbox.PackStart(label, false, false, 12);
            vbox.PackStart(scrolledWidget, true, true, 0);
            vbox.ShowAll();

            return(vbox);
        }
Example #15
0
        public QueryDebugger() : base("Hyena.Query Debugger")
        {
            SetDefaultSize(800, 600);

            var input_box = new VBox {
                Spacing = 8
            };
            var sw = new ScrolledWindow {
                ShadowType       = ShadowType.In,
                HscrollbarPolicy = PolicyType.Never
            };

            input = new TextView {
                AcceptsTab = false
            };
            input.KeyReleaseEvent += delegate(object o, KeyReleaseEventArgs args) {
                if (args.Event.Key == Gdk.Key.Return || args.Event.Key == Gdk.Key.KP_Enter)
                {
                    input.Buffer.Text = input.Buffer.Text.Trim();
                    OnParseUserQuery(null, EventArgs.Empty);
                }
            };
            input.WrapMode = WrapMode.Word;
            sw.Add(input);
            input_box.PackStart(sw, true, true, 0);
            var button_box = new HBox();
            var parse      = new Button("Parse as User Query");

            parse.Clicked += OnParseUserQuery;
            button_box.PackStart(parse, false, false, 0);
            input_box.PackStart(button_box, false, false, 0);

            var output_box = new HBox {
                Spacing = 8
            };

            sw = new ScrolledWindow {
                ShadowType       = ShadowType.In,
                HscrollbarPolicy = PolicyType.Never
            };
            sql = new TextView {
                WrapMode = WrapMode.Word
            };
            sw.Add(sql);
            output_box.PackStart(sw, true, true, 0);
            sw = new ScrolledWindow {
                ShadowType       = ShadowType.In,
                HscrollbarPolicy = PolicyType.Never
            };
            xml = new TextView {
                WrapMode = WrapMode.Word
            };
            sw.Add(xml);
            output_box.PackStart(sw, true, true, 0);

            var pane = new VPaned();

            pane.Add1(input_box);
            pane.Add2(output_box);
            pane.Position = 100;

            Add(pane);
            pane.ShowAll();

            input.HasFocus = true;

            LoadQueryFieldSet();
        }
Example #16
0
        public LoggerWindow(params object[] options) : base()
        {
            sceneTitle = "Logger";

            TextTagTable ttt = new TextTagTable();

            buffer = new TextBuffer(ttt);

            var tag = new TextTag("DateTimeTag");

            tag.ForegroundGdk = TouchColor.NewGtkColor("seca");
            buffer.TagTable.Add(tag);

            tag = new TextTag("InfoTag");
            tag.ForegroundGdk = TouchColor.NewGtkColor("pri");
            buffer.TagTable.Add(tag);

            tag = new TextTag("WarningTag");
            tag.ForegroundGdk = TouchColor.NewGtkColor("secb");
            buffer.TagTable.Add(tag);

            tag = new TextTag("ErrorTag");
            tag.ForegroundGdk = TouchColor.NewGtkColor("compl");
            buffer.TagTable.Add(tag);

            foreach (var log in Logger.logs)
            {
                AddLogToBuffer(log);
            }

            tv = new TextView(buffer);
            tv.ModifyFont(Pango.FontDescription.FromString("Sans 11"));
            tv.ModifyBase(StateType.Normal, TouchColor.NewGtkColor("grey4"));
            tv.ModifyText(StateType.Normal, TouchColor.NewGtkColor("black"));
            tv.CanFocus = false;
            tv.Editable = false;

            ScrolledWindow sw = new ScrolledWindow();

            sw.SetSizeRequest(720, 340);
            sw.VScrollbar.WidthRequest  = 30;
            sw.HScrollbar.HeightRequest = 30;
            sw.Add(tv);
            Put(sw, 65, 60);
            sw.Show();
            tv.Show();

            var b = new TouchButton();

            b.SetSizeRequest(100, 60);
            b.text = "Clear Logger";
            b.ButtonReleaseEvent += OnClearButtonRelease;
            Put(b, 685, 405);

            b = new TouchButton();
            b.SetSizeRequest(100, 60);
            b.text = "Save Logger";
            b.ButtonReleaseEvent += (o, args) => SaveEvents();
            Put(b, 575, 405);

            Logger.EventAddedEvent += OnEventAdded;
            Show();
        }
Example #17
0
        protected virtual void Build()
        {
            Stetic.Gui.Initialize(this);
            // Widget Toys.Window
            Name           = "ModelViewer";
            Title          = "Window";
            WindowPosition = (WindowPosition)4;
            notebook       = new Notebook();
            // Container child Toys.Window.Gtk.Container+ContainerChild
            fixed1           = new Fixed();
            fixed1.Name      = "fixed1";
            fixed1.HasWindow = false;
            // Container child fixed1.Gtk.Fixed+FixedChild
            scrolledwindow1 = new ScrolledWindow();
            scrolledwindow1.WidthRequest     = 154;
            scrolledwindow1.HeightRequest    = 300;
            scrolledwindow1.CanFocus         = true;
            scrolledwindow1.Name             = "scrolledwindow1";
            scrolledwindow1.VscrollbarPolicy = 0;
            scrolledwindow1.HscrollbarPolicy = (PolicyType)2;
            scrolledwindow1.ShadowType       = (ShadowType)1;
            // Container child scrolledwindow1.Gtk.Container+ContainerChild
            Viewport w1 = new Viewport();

            w1.ShadowType = 0;
            // Container child GtkViewport.Gtk.Container+ContainerChild
            fixedScene           = new Fixed();
            fixedScene.Name      = "fixed2";
            fixedScene.HasWindow = false;
            w1.Add(fixedScene);
            scrolledwindow1.Add(w1);
            fixed1.Add(scrolledwindow1);
            // Container child fixed1.Gtk.Fixed+FixedChild
            scrolledwindow2 = new ScrolledWindow();
            scrolledwindow2.WidthRequest     = 200;
            scrolledwindow2.HeightRequest    = 300;
            scrolledwindow2.CanFocus         = true;
            scrolledwindow2.Name             = "scrolledwindow2";
            scrolledwindow2.HscrollbarPolicy = (PolicyType)2;
            scrolledwindow2.ShadowType       = (ShadowType)1;
            // Container child scrolledwindow2.Gtk.Container+ContainerChild
            Viewport w5 = new Viewport();

            w5.ShadowType = 0;
            // Container child GtkViewport1.Gtk.Container+ContainerChild
            fixedComponents           = new Fixed();
            fixedComponents.Name      = "fixed3";
            fixedComponents.HasWindow = false;
            w5.Add(fixedComponents);
            scrolledwindow2.Add(w5);
            fixed1.Add(scrolledwindow2);

            Fixed.FixedChild w8 = (Fixed.FixedChild)fixed1[scrolledwindow2];
            w8.X = 165;

            /*
             *          // Container child fixed1.Gtk.Fixed+FixedChild
             *          filechooserbutton2 = new FileChooserButton("Select a File", 0);
             *          filechooserbutton2.WidthRequest = 124;
             *          filechooserbutton2.Name = "filechooserbutton2";
             *          fixed1.Add(filechooserbutton2);
             *          Fixed.FixedChild w9 = (Fixed.FixedChild)fixed1[filechooserbutton2];
             *          w9.X = 379;
             *          w9.Y = 19;
             *          // Container child fixed1.Gtk.Fixed+FixedChild
             *          button2 = new Button();
             *          button2.WidthRequest = 109;
             *          button2.CanFocus = true;
             *          button2.Name = "button2";
             *          button2.UseUnderline = true;
             *          button2.Label = "Play";
             *          fixed1.Add(button2);
             *          Fixed.FixedChild w10 = (Fixed.FixedChild)fixed1[button2];
             *          w10.X = 379;
             *          w10.Y = 63;
             *          // Container child fixed1.Gtk.Fixed+FixedChild
             *          button3 = new Button();
             *          button3.WidthRequest = 110;
             *          button3.CanFocus = true;
             *          button3.Name = "button3";
             *          button3.UseUnderline = true;
             *          button3.Label = "Stop";
             *          fixed1.Add(button3);
             *          Fixed.FixedChild w11 = (Fixed.FixedChild)fixed1[button3];
             *          w11.X = 379;
             *          w11.Y = 108;
             *          // Container child fixed1.Gtk.Fixed+FixedChild
             *          button4 = new Button();
             *          button4.WidthRequest = 110;
             *          button4.CanFocus = true;
             *          button4.Name = "button4";
             *          button4.UseUnderline = true;
             *          button4.Label = "Pause";
             *          fixed1.Add(button4);
             *          Fixed.FixedChild w12 = (Fixed.FixedChild)fixed1[button4];
             *          w12.X = 379;
             *          w12.Y = 153;
             */
            scrolledwindow3 = new ScrolledWindow();
            scrolledwindow3.WidthRequest     = 200;
            scrolledwindow3.HeightRequest    = 300;
            scrolledwindow3.CanFocus         = true;
            scrolledwindow3.Name             = "scrolledwindow3";
            scrolledwindow3.VscrollbarPolicy = 0;
            scrolledwindow3.HscrollbarPolicy = (PolicyType)2;
            scrolledwindow3.ShadowType       = (ShadowType)1;
            // Container child scrolledwindow1.Gtk.Container+ContainerChild
            Viewport w4 = new Viewport();

            w4.ShadowType = 0;
            // Container child GtkViewport.Gtk.Container+ContainerChild
            fixed4           = new Fixed();
            fixed4.Name      = "fixed4";
            fixed4.HasWindow = false;
            w4.Add(fixed4);
            scrolledwindow3.Add(w4);
            fixed1.Add(scrolledwindow3);
            Fixed.FixedChild w6 = (Fixed.FixedChild)fixed1[scrolledwindow3];
            w6.X = 370;
            notebook.AppendPage(fixed1, new Label("Scene"));
            BuildClient();

            /*
             * self.page1.set_border_width(10)
             * self.page1.add(Gtk.Label('Default Page!'))
             * self.notebook.append_page(self.page1, Gtk.Label('Plain Title'))
             *
             * self.page2 = Gtk.Box()
             * self.page2.set_border_width(10)
             * self.page2.add(Gtk.Label('A page with an image for a Title.'))
             * self.notebook.append_page(
             * self.page2,
             * Gtk.Image.new_from_icon_name(
             *  "help-about",
             *  Gtk.IconSize.MENU
             * )
             */
            Add(notebook);
            if (Child != null)
            {
                Child.ShowAll();
            }
            DefaultWidth  = 700;
            DefaultHeight = 342;
            Show();

            /*
             * var provider = new CssProvider();
             * string css = ReadFromAssetStream("ModelViewer.gtk_gui.gtkmain.css");
             * provider.LoadFromData(css);
             * StyleContext.AddProviderForScreen(Gdk.Screen.Default, provider, StyleProviderPriority.User);
             */
            BuildMorphs();
        }
Example #18
0
			private Test ()
			{
				const string path = "/tmp/TagSelectionTest.db";

				try {
					File.Delete (path);
				} catch {}

				Db db = new Db (path, true);

				Category people_category = db.Tags.CreateCategory (null, "People");
				db.Tags.CreateTag (people_category, "Anna");
				db.Tags.CreateTag (people_category, "Ettore");
				db.Tags.CreateTag (people_category, "Miggy");
				db.Tags.CreateTag (people_category, "Nat");

				Category places_category = db.Tags.CreateCategory (null, "Places");
				db.Tags.CreateTag (places_category, "Milan");
				db.Tags.CreateTag (places_category, "Boston");

				Category exotic_category = db.Tags.CreateCategory (places_category, "Exotic");
				db.Tags.CreateTag (exotic_category, "Bengalore");
				db.Tags.CreateTag (exotic_category, "Manila");
				db.Tags.CreateTag (exotic_category, "Tokyo");

				selection_widget = new TagSelectionWidget (db.Tags);
				selection_widget.SelectionChanged += new SelectionChangedHandler (OnSelectionChanged);

				Window window = new Window (WindowType.Toplevel);
				window.SetDefaultSize (400, 200);
				ScrolledWindow scrolled = new ScrolledWindow (null, null);
				scrolled.SetPolicy (PolicyType.Automatic, PolicyType.Automatic);
				scrolled.Add (selection_widget);
				window.Add (scrolled);

				window.ShowAll ();
			}
Example #19
0
    public MainWindow() : base(WindowType.Toplevel)
    {
        VBox mainVBox        = new VBox(false, 0);
        HBox nodeViewHBox    = new HBox(true, 0);
        HBox crudButtonsHBox = new HBox(true, 0);
        HBox transactionContolButtonsHBox = new HBox(true, 0);

        Button refreshButton  = new Button("Refresh");
        Button createButton   = new Button("Create");
        Button deleteButton   = new Button("Delete");
        Button commitButton   = new Button("Commit");
        Button rollbackButton = new Button("Rollback");

        refreshButton.Clicked  += RefreshButtonClicked;
        createButton.Clicked   += CreateButtonClicked;
        deleteButton.Clicked   += DeleteButtonClicked;
        commitButton.Clicked   += CommitButtonClicked;
        rollbackButton.Clicked += RollbackButtonClicked;

        HSeparator separator = new HSeparator();

        view = new NodeView(Store);

        CellRendererText titleRenderer   = new CellRendererText();
        CellRendererText contentRenderer = new CellRendererText();

        titleRenderer.Editable   = true;
        contentRenderer.Editable = true;
        titleRenderer.Edited    += NoteTitleEdited;
        contentRenderer.Edited  += NoteContentEdited;

        view.AppendColumn("Title", titleRenderer, "text", 0);
        view.AppendColumn("Content", contentRenderer, "text", 1);

        ScrolledWindow scrolledWindow = new ScrolledWindow();

        scrolledWindow.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
        scrolledWindow.AddWithViewport(view);

        try {
            //Если сервер и клиент запускаются из ИДЕ (по порядку, но практически одновременно),
            //сервер не успевает создать сокет, поэтому надо немного подождать
            System.Threading.Thread.Sleep(1000);
            RemotingConfiguration.Configure("remoteNotes.exe.config", false);

            clientActivated = new NotesClientActivated();
            singleton       = new NotesSingleton();
            singlecall      = new NotesTransactionSinglecall();
        } catch (System.Net.WebException) {
            Logger.Write("Unable to connect");
            return;
        }

        foreach (Note note in singleton.GetPesistentData())
        {
            store.AddNode(new NoteTreeNode(note));
        }

        nodeViewHBox.PackStart(scrolledWindow, false, true, 0);
        nodeViewHBox.SetSizeRequest(200, 200);

        crudButtonsHBox.PackStart(refreshButton, false, true, 0);
        crudButtonsHBox.PackStart(createButton, false, true, 0);
        crudButtonsHBox.PackStart(deleteButton, false, true, 0);

        transactionContolButtonsHBox.PackStart(commitButton, false, true, 0);
        transactionContolButtonsHBox.PackStart(rollbackButton, false, true, 0);

        mainVBox.PackStart(nodeViewHBox, true, false, 0);
        mainVBox.PackStart(crudButtonsHBox, true, false, 0);
        mainVBox.PackStart(separator, true, false, 2);
        mainVBox.PackStart(transactionContolButtonsHBox, true, false, 0);

        Add(mainVBox);

        mainVBox.ShowAll();

        Build();
    }
Example #20
0
        private void InitializeComponent()
        {
            this.plotView = new OxyPlot.GtkSharp.PlotView();
            this.plotView.SetSizeRequest(300, 300);

            this.treeView         = new TreeView();
            this.treeView.Visible = true;

            var    treeModel = new TreeStore(typeof(string), typeof(string));
            var    iter      = new TreeIter();
            string last      = null;

            foreach (var ex in this.Examples)
            {
                if (last == null || last != ex.Category)
                {
                    iter = treeModel.AppendValues(ex.Category);
                    last = ex.Category;
                }

                treeModel.AppendValues(iter, ex.Title, ex.Category);
            }

            this.treeView.Model = treeModel;
            var exampleNameColumn = new TreeViewColumn {
                Title = "Example"
            };
            var exampleNameCell = new CellRendererText();

            exampleNameColumn.PackStart(exampleNameCell, true);
            this.treeView.AppendColumn(exampleNameColumn);
            exampleNameColumn.AddAttribute(exampleNameCell, "text", 0);

            this.treeView.Selection.Changed += (s, e) =>
            {
                if (treeView.Selection.GetSelected(out var selectedModel, out var selectedNode))
                {
                    string val1 = (string)selectedModel.GetValue(selectedNode, 0);
                    string val2 = (string)selectedModel.GetValue(selectedNode, 1);

                    this.SelectedExample = this.Examples.FirstOrDefault(ex => ex.Category == val2 && ex.Title == val1);
                }
            };

            var scrollwin = new ScrolledWindow();

            scrollwin.Add(this.treeView);
            scrollwin.SetSizeRequest(250, 300);

            var txtSearch = new Entry();

            treeView.SearchEntry = txtSearch;
            var treeVbox = new VBox(false, 0);

            treeVbox.BorderWidth = 6;
            treeVbox.PackStart(txtSearch, false, true, 0);
            treeVbox.PackStart(scrollwin, true, true, 0);

            this.paned = new HPaned();
            this.paned.Pack1(treeVbox, false, false);
            this.paned.Pack2(this.plotView, true, false);
            this.paned.Position = 300;

            this.Add(this.paned);

            //this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            //this.AutoScaleMode = Gtk.AutoScaleMode.Font;
            //this.ClientSize = new System.Drawing.Size(943, 554);
            this.Title        = "OxyPlot.GtkSharp Example Browser";
            this.DeleteEvent += (s, a) =>
            {
                Application.Quit();
                a.RetVal = true;
            };
        }
    }
Example #21
0
        public BubbleChartView(ViewBase owner = null) : base(owner)
        {
            vpaned1               = new VPaned();
            mainWidget            = vpaned1;
            mainWidget.Destroyed += OnDestroyed;

            graphView = new DirectedGraphView(this);
            vpaned1.Pack1(graphView.MainWidget, true, true);

            VBox vbox1 = new VBox(false, 0);

            ctxBox = new VBox(false, 0);

            // Arc selection: rules & actions
            VBox arcSelBox = new VBox();

            Label l1 = new Label("Rules");

            l1.Xalign = 0;
            arcSelBox.PackStart(l1, true, true, 0);
            RuleList = new EditorView(owner);
            RuleList.TextHasChangedByUser += OnRuleChanged;
            //RuleList.ScriptMode = false;

            ScrolledWindow rules = new ScrolledWindow();

            rules.ShadowType = ShadowType.EtchedIn;
            rules.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);

            rules.Add((RuleList as ViewBase).MainWidget);

            (RuleList as ViewBase).MainWidget.ShowAll();
            arcSelBox.PackStart(rules, true, true, 0);
            rules.Show();

            Label l2 = new Label("Actions");

            l2.Xalign = 0;
            arcSelBox.PackStart(l2, true, true, 0);
            ActionList = new EditorView(owner);
            ActionList.TextHasChangedByUser += OnActionChanged;
            //ActionList.ScriptMode = false;

            ScrolledWindow actions = new ScrolledWindow();

            actions.ShadowType = ShadowType.EtchedIn;
            actions.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);

            actions.Add((ActionList as ViewBase).MainWidget);

            (ActionList as ViewBase).MainWidget.ShowAll();
            arcSelBox.PackStart(actions, true, true, 0); actions.Show();
            arcSelWdgt = arcSelBox as Widget;
            arcSelWdgt.Hide();
            ctxBox.PackStart(arcSelWdgt, true, true, 0);

            // Node selection:

            Grid t1 = new Grid();

            Label l3 = new Label("Name");

            l3.Xalign = 0;
            t1.Attach(l3, 0, 0, 1, 1);

            Label l4 = new Label("Description");

            l4.Xalign = 0;
            t1.Attach(l4, 0, 1, 1, 1);

            Label l5 = new Label("Colour");

            l5.Xalign = 0;
            t1.Attach(l5, 0, 2, 1, 1);

            nameEntry          = new Entry();
            nameEntry.Changed += OnNameChanged;
            nameEntry.Xalign   = 0;

            // Setting the WidthRequest to 350 will effectively
            // set the minimum size, beyond which it cannot be further
            // shrunk by dragging the HPaned's splitter.
            nameEntry.WidthRequest = 350;
            t1.Attach(nameEntry, 1, 0, 1, 1);

            descEntry              = new Entry();
            descEntry.Xalign       = 0;
            descEntry.Changed     += OnDescriptionChanged;
            descEntry.WidthRequest = 350;
            t1.Attach(descEntry, 1, 1, 1, 1);
            colourChooser              = new ColorButton();
            colourChooser.Xalign       = 0;
            colourChooser.ColorSet    += OnColourChanged;
            colourChooser.WidthRequest = 350;
            t1.Attach(colourChooser, 1, 2, 1, 1);
            nodeSelWdgt = t1;
            ctxBox.PackStart(t1, true, true, 0);

            // Info
            Label l6 = new Label();

            l6.LineWrap = true;
            l6.Text     = "<left-click>: select a node or arc.\n" +
                          "<right-click>: shows a context-sensitive menu.\n\n" +
                          "Once a node/arc is selected, it can be dragged to a new position.\n\n" +
                          "Nodes are created by right-clicking on a blank area.\n\n" +
                          "Transition arcs are created by firstly selecting a source node,\n" +
                          "then right-clicking over a target node.";
            infoWdgt = l6 as Widget;
            infoWdgt.ShowAll();
            l6.Xalign = 0;
            l6.Yalign = 0;
            l6.Wrap   = false;
            Alignment infoWdgtWrapper = new Alignment(0, 0, 1, 0);

            infoWdgtWrapper.Add(infoWdgt);
            //ctxBox.PackStart(infoWdgt, true, true, 0);
            //vbox1.PackStart(ctxBox, false, false, 0);

            PropertiesView = new PropertyView(this);
            ((ScrolledWindow)((ViewBase)PropertiesView).MainWidget).HscrollbarPolicy = PolicyType.Never;
            // settingsBox = new Table(2, 2, false);
            // settingsBox.Attach(new Label("Initial State"), 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0);
            // combobox1 = new ComboBox();
            // combobox1.PackStart(comboRender, false);
            // combobox1.AddAttribute(comboRender, "text", 0);
            // combobox1.Model = comboModel;
            // settingsBox.Attach(combobox1, 1, 2, 0, 1, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0);

            // chkVerbose = new CheckButton();
            // chkVerbose.Toggled += OnToggleVerboseMode;
            // settingsBox.Attach(new Label("Verbose Mode"), 0, 1, 1, 2, AttachOptions.Fill, AttachOptions.Fill, 0, 0);
            // settingsBox.Attach(chkVerbose, 1, 2, 1, 2, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Fill, 0, 0);

            hpaned1 = new HPaned();
            hpaned2 = new HPaned();
            Frame frame1 = new Frame("Rotation Settings");

            frame1.Add(((ViewBase)PropertiesView).MainWidget);
            frame1.ShadowType = ShadowType.In;
            Frame frame2 = new Frame();

            frame2.Add(hpaned2);
            frame2.ShadowType = ShadowType.In;
            ctxFrame          = new Frame();
            ctxFrame.Add(ctxBox);
            ctxFrame.ShadowType = ShadowType.In;
            Frame frame4 = new Frame("Instructions");

            frame4.Add(infoWdgtWrapper);
            frame4.ShadowType = ShadowType.In;
            hpaned1.Pack1(frame1, false, false);
            hpaned1.Pack2(frame2, true, false);
            hpaned2.Pack1(ctxFrame, true, false);
            hpaned2.Pack2(frame4, true, false);
            hpaned1.ShowAll();
            Alignment halign = new Alignment(0, 0, 1, 1);

            halign.Add(hpaned1);

            vpaned1.Pack2(halign, false, false);
            vpaned1.Show();

            graphView.OnGraphObjectSelected += OnGraphObjectSelected;
            graphView.OnGraphObjectMoved    += OnGraphObjectMoved;
            //combobox1.Changed += OnComboBox1SelectedValueChanged;

            contextMenuHelper              = new ContextMenuHelper(graphView.MainWidget);
            contextMenuHelper.ContextMenu += OnPopup;

            ContextMenu.SelectionDone += OnContextMenuDeactivated;
            ContextMenu.Mapped        += OnContextMenuRendered;

            // Ensure the menu is populated
            Select(null);
        }
Example #22
0
        public NoteRenameDialog(IList <Note> notes, string oldTitle, Note renamedNote) :
            base(Catalog.GetString("Rename Note Links?"), renamedNote.Window, DialogFlags.NoSeparator)
        {
            this.DefaultResponse = ResponseType.Cancel;
            this.BorderWidth     = 10;

            var renameButton = (Button)
                               AddButton(Catalog.GetString("_Rename Links"),
                                         ResponseType.Yes);
            var dontRenameButton = (Button)
                                   AddButton(Catalog.GetString("_Don't Rename Links"),
                                             ResponseType.No);

            this.notes = notes;
            notesModel = new Gtk.TreeStore(typeof(bool), typeof(string), typeof(Note));
            foreach (var note in notes)
            {
                notesModel.AppendValues(true, note.Title, note);
            }

            var labelText = Catalog.GetString("Rename links in other notes from \"<span underline=\"single\">{0}</span>\" " +
                                              "to \"<span underline=\"single\">{1}</span>\"?\n\n" +
                                              "If you do not rename the links, " +
                                              "they will no longer link to anything.");
            var label = new Label();

            label.UseMarkup = true;
            label.Markup    = String.Format(labelText,
                                            GLib.Markup.EscapeText(oldTitle),
                                            GLib.Markup.EscapeText(renamedNote.Title));
            label.LineWrap = true;
            VBox.PackStart(label, false, true, 5);

            var notesView = new TreeView(notesModel);

            notesView.SetSizeRequest(-1, 200);
            var toggleCell = new CellRendererToggle();

            toggleCell.Activatable = true;
            var column = new TreeViewColumn(Catalog.GetString("Rename Links"),
                                            toggleCell, "active", 0);

            column.SortColumnId = 0;
            column.Resizable    = true;
            notesView.AppendColumn(column);
            toggleCell.Toggled += (o, args) => {
                TreeIter iter;
                if (!notesModel.GetIterFromString(out iter, args.Path))
                {
                    return;
                }
                bool val = (bool)notesModel.GetValue(iter, 0);
                notesModel.SetValue(iter, 0, !val);
            };
            column = new TreeViewColumn(Catalog.GetString("Note Title"),
                                        new CellRendererText(), "text", 1);
            column.SortColumnId = 1;
            column.Resizable    = true;
            notesView.AppendColumn(column);

            notesView.RowActivated += (o, args) => {
                TreeIter iter;
                if (!notesModel.GetIter(out iter, args.Path))
                {
                    return;
                }
                Note note = (Note)notesModel.GetValue(iter, 2);
                if (note != null)
                {
                    note.Window.Present();
                    NoteFindBar find = note.Window.Find;
                    find.ShowAll();
                    find.Visible    = true;
                    find.SearchText = "\"" + oldTitle + "\"";
                }
            };

            var notesBox        = new VBox(false, 5);
            var selectAllButton = new Button();

            // Translators: This button causes all notes in the list to be selected
            selectAllButton.Label    = Catalog.GetString("Select All");
            selectAllButton.Clicked += (o, e) => {
                notesModel.Foreach((model, path, iter) => {
                    notesModel.SetValue(iter, 0, true);
                    return(false);
                });
            };
            var selectNoneButton = new Button();

            // Translators: This button causes all notes in the list to be unselected
            selectNoneButton.Label    = Catalog.GetString("Select None");
            selectNoneButton.Clicked += (o, e) => {
                notesModel.Foreach((model, path, iter) => {
                    notesModel.SetValue(iter, 0, false);
                    return(false);
                });
            };
            var notesButtonBox = new HButtonBox();

            notesButtonBox.Add(selectNoneButton);
            notesButtonBox.Add(selectAllButton);
            notesButtonBox.Spacing     = 5;
            notesButtonBox.LayoutStyle = ButtonBoxStyle.End;
            var notesScroll = new ScrolledWindow();

            notesScroll.Add(notesView);
            notesBox.PackStart(notesScroll);
            notesBox.PackStart(notesButtonBox, false, true, 0);

            var advancedExpander = new Expander(Catalog.GetString("Ad_vanced"));
            var expandBox        = new VBox();

            expandBox.PackStart(notesBox);
            alwaysShowDlgRadio          = new RadioButton(Catalog.GetString("Always show this _window"));
            alwaysShowDlgRadio.Clicked += (o, e) => {
                selectAllButton.Click();
                notesBox.Sensitive         = true;
                renameButton.Sensitive     = true;
                dontRenameButton.Sensitive = true;
            };
            neverRenameRadio = new RadioButton(alwaysShowDlgRadio,
                                               Catalog.GetString("Never rename _links"));
            neverRenameRadio.Clicked += (o, e) => {
                selectNoneButton.Click();
                notesBox.Sensitive         = false;
                renameButton.Sensitive     = false;
                dontRenameButton.Sensitive = true;
            };
            alwaysRenameRadio = new RadioButton(alwaysShowDlgRadio,
                                                Catalog.GetString("Alwa_ys rename links"));
            alwaysRenameRadio.Clicked += (o, e) => {
                selectAllButton.Click();
                notesBox.Sensitive         = false;
                renameButton.Sensitive     = true;
                dontRenameButton.Sensitive = false;
            };
            expandBox.PackStart(alwaysShowDlgRadio, false, true, 0);
            expandBox.PackStart(neverRenameRadio, false, true, 0);
            expandBox.PackStart(alwaysRenameRadio, false, true, 0);
            advancedExpander.Add(expandBox);
            VBox.PackStart(advancedExpander, true, true, 5);

            advancedExpander.Activated += (o, e) =>
                                          this.Resizable = advancedExpander.Expanded;

            this.Focus = dontRenameButton;
            VBox.ShowAll();
        }
Example #23
0
        public Toolbox(ToolboxService toolboxService, IPadWindow container)
        {
            this.toolboxService = toolboxService;
            this.container      = container;

            #region Toolbar
            DockItemToolbar toolbar = container.GetToolbar(DockPositionType.Top);

            filterEntry              = new SearchEntry();
            filterEntry.Ready        = true;
            filterEntry.HasFrame     = true;
            filterEntry.WidthRequest = 150;
            filterEntry.Changed     += new EventHandler(filterTextChanged);
            filterEntry.Show();

            toolbar.Add(filterEntry, true);

            catToggleButton             = new ToggleButton();
            catToggleButton.Image       = new ImageView(Ide.Gui.Stock.GroupByCategory, IconSize.Menu);
            catToggleButton.Toggled    += new EventHandler(toggleCategorisation);
            catToggleButton.TooltipText = GettextCatalog.GetString("Show categories");
            toolbar.Add(catToggleButton);

            compactModeToggleButton             = new ToggleButton();
            compactModeToggleButton.Image       = new ImageView(ImageService.GetIcon("md-compact-display", IconSize.Menu));
            compactModeToggleButton.Toggled    += new EventHandler(ToggleCompactMode);
            compactModeToggleButton.TooltipText = GettextCatalog.GetString("Use compact display");
            toolbar.Add(compactModeToggleButton);

            toolboxAddButton = new Button(new ImageView(Ide.Gui.Stock.Add, IconSize.Menu));
            toolbar.Add(toolboxAddButton);
            toolboxAddButton.TooltipText = GettextCatalog.GetString("Add toolbox items");
            toolboxAddButton.Clicked    += new EventHandler(toolboxAddButton_Clicked);
            toolbar.ShowAll();

            #endregion

            toolboxWidget = new ToolboxWidget();
            toolboxWidget.SelectedItemChanged += delegate {
                selectedNode = this.toolboxWidget.SelectedItem != null ? this.toolboxWidget.SelectedItem.Tag as ItemToolboxNode : null;
                toolboxService.SelectItem(selectedNode);
            };
            this.toolboxWidget.DragBegin += delegate(object sender, Gtk.DragBeginArgs e) {
                if (this.toolboxWidget.SelectedItem != null)
                {
                    this.toolboxWidget.HideTooltipWindow();
                    toolboxService.DragSelectedItem(this.toolboxWidget, e.Context);
                }
            };
            this.toolboxWidget.ActivateSelectedItem += delegate {
                toolboxService.UseSelectedItem();
            };

            fontChanger = new MonoDevelop.Ide.Gui.PadFontChanger(toolboxWidget, toolboxWidget.SetCustomFont, toolboxWidget.QueueResize);

            this.toolboxWidget.DoPopupMenu = ShowPopup;

            scrolledWindow = new MonoDevelop.Components.CompactScrolledWindow();
            base.PackEnd(scrolledWindow, true, true, 0);
            base.FocusChain = new Gtk.Widget [] { scrolledWindow };

            //Initialise self
            scrolledWindow.ShadowType       = ShadowType.None;
            scrolledWindow.VscrollbarPolicy = PolicyType.Automatic;
            scrolledWindow.HscrollbarPolicy = PolicyType.Never;
            scrolledWindow.WidthRequest     = 150;
            scrolledWindow.Add(this.toolboxWidget);

            //update view when toolbox service updated
            toolboxService.ToolboxContentsChanged += delegate { Refresh(); };
            toolboxService.ToolboxConsumerChanged += delegate { Refresh(); };
            Refresh();

            //set initial state
            this.toolboxWidget.ShowCategories = catToggleButton.Active = true;
            compactModeToggleButton.Active    = MonoDevelop.Core.PropertyService.Get("ToolboxIsInCompactMode", false);
            this.toolboxWidget.IsListMode     = !compactModeToggleButton.Active;
            this.ShowAll();
        }
Example #24
0
        private void InitComponent()
        {
            Gdk.Color grey      = new Gdk.Color(0xA0, 0xA0, 0xA0);
            Gdk.Color lightBlue = new Gdk.Color(207, 207, 239);
            var       infoFont  = Pango.FontDescription.FromString(AppSettings.Get("info-font", "Verdana"));
            var       textFont  = Pango.FontDescription.FromString(AppSettings.Get("text-font", "Courier New"));

            _textView          = new TextView();
            _textView.WrapMode = WrapMode.Word;
            _textView.ModifyBase(StateType.Normal, lightBlue);
            _textView.Buffer.Changed += _text_TextChanged;
            _textView.KeyPressEvent  += _textView_KeyPressEvent;
            _textView.ModifyFont(textFont);

            ScrolledWindow scrolledTextView = new ScrolledWindow();

            scrolledTextView.Add(_textView);

            _titleLabel = new Label();
            _titleLabel.SetAlignment(0, 0);
            _titleLabel.Justify = Justification.Left;
            _titleLabel.SetPadding(0, 5);
            _titleLabel.ModifyFont(textFont);
            GLib.Timeout.Add((uint)TimeSpan.FromSeconds(3).TotalMilliseconds,
                             () => { return(SaveTimerTick()); });

            EventBox titleContainer = new EventBox();

            titleContainer.Add(_titleLabel);

            // hbox
            //   vbox
            //     dateLabel
            //     versionLabel
            //   pageLabel
            HBox locationInfo = new HBox();
            VBox locationLeft = new VBox();

            _dateLabel = new Label();
            _dateLabel.SetAlignment(0, 0);
            _dateLabel.Justify = Justification.Left;
            _dateLabel.SetPadding(5, 5);
            _dateLabel.ModifyFont(infoFont);
            locationLeft.PackStart(_dateLabel, false, false, 0);

            _versionLabel = new Label();
            _versionLabel.SetAlignment(0, 0);
            _versionLabel.Justify = Justification.Left;
            _versionLabel.SetPadding(5, 5);
            _versionLabel.ModifyFont(infoFont);
            locationLeft.PackStart(_versionLabel, false, false, 0);

            locationInfo.PackStart(locationLeft, true, true, 0);

            _pageLabel        = new Label();
            _pageLabel.Markup = GetPageMarkup(1, 5);
            _pageLabel.SetAlignment(1, 0.5f);
            _pageLabel.Justify = Justification.Right;
            _pageLabel.SetPadding(5, 5);
            _pageLabel.ModifyFont(infoFont);
            locationInfo.PackEnd(_pageLabel, true, true, 0);
            Pango.Context ctx = _pageLabel.PangoContext;

            VBox outerVertical = new VBox();

            outerVertical.PackStart(titleContainer, false, false, 0);
            outerVertical.PackStart(scrolledTextView, true, true, 0);
            outerVertical.PackEnd(locationInfo, false, false, 0);

            Add(outerVertical);

            BorderWidth = 5;
        }
            public ICSGameObserverWidget(ICSClient
						      client)
                : base()
            {
                split = new HPaned ();
                this.client = client;
                currentGames = new Hashtable ();
                gamesBook = new Notebook ();
                gamesBook.ShowTabs = false;

                gamesList = new TreeView ();
                gamesStore =
                    new ListStore (typeof (string),
                               typeof (string));
                gamesList.Model = gamesStore;
                gamesList.AppendColumn ("Games",
                            new
                            CellRendererText (),
                            "markup", 0);
                ScrolledWindow scroll = new ScrolledWindow ();
                scroll.HscrollbarPolicy =
                    scroll.VscrollbarPolicy =
                    PolicyType.Automatic;
                scroll.Add (gamesList);

                gamesList.CursorChanged +=
                    OnGamesListCursorChanged;
                split.Add1 (scroll);
                split.Add2 (gamesBook);

                split.ShowAll ();
                PackStart (split, true, true, 2);
                client.GameMessageEvent += OnGameMessage;
            }
Example #26
0
        /// <summary>
        /// Default constructor. Initialises intellisense popup, but doesn't display anything.
        /// </summary>
        public IntellisenseView(ViewBase owner) : base(owner)
        {
            completionForm = new Window(WindowType.Toplevel)
            {
                HeightRequest   = 300,
                WidthRequest    = 750,
                Decorated       = false,
                SkipPagerHint   = true,
                SkipTaskbarHint = true,
            };

            Frame completionFrame = new Frame();

            completionForm.Add(completionFrame);

            ScrolledWindow completionScroller = new ScrolledWindow();

            completionFrame.Add(completionScroller);

            completionModel = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(bool));
            completionView  = new Gtk.TreeView(completionModel);
            completionScroller.Add(completionView);

            TreeViewColumn column = new TreeViewColumn()
            {
                Title     = "Item",
                Resizable = true,
            };
            CellRendererPixbuf iconRender = new CellRendererPixbuf();

            column.PackStart(iconRender, false);
            CellRendererText textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 25,
                Ellipsize  = Pango.EllipsizeMode.End
            };

            column.PackStart(textRender, true);
            column.SetAttributes(iconRender, "pixbuf", 0);
            column.SetAttributes(textRender, "text", 1);
            completionView.AppendColumn(column);

            textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 10,
                Ellipsize  = Pango.EllipsizeMode.End
            };
            column = new TreeViewColumn("Units", textRender, "text", 2)
            {
                Resizable = true
            };
            completionView.AppendColumn(column);

            textRender = new CellRendererText()
            {
                Editable   = false,
                WidthChars = 15,
                Ellipsize  = Pango.EllipsizeMode.End
            };
            column = new TreeViewColumn("Type", textRender, "text", 3)
            {
                Resizable = true
            };
            completionView.AppendColumn(column);

            textRender = new CellRendererText()
            {
                Editable = false,
            };
            column = new TreeViewColumn("Descr", textRender, "text", 4)
            {
                Resizable = true
            };
            completionView.AppendColumn(column);

            completionView.HasTooltip        = true;
            completionView.TooltipColumn     = 5;
            completionForm.FocusOutEvent    += OnLeaveCompletion;
            completionView.ButtonPressEvent += OnButtonPress;
            completionView.KeyPressEvent    += OnContextListKeyDown;
            completionView.KeyReleaseEvent  += OnKeyRelease;
        }
            private Frame GetCollectionDetailsFrame()
            {
                collectionEntry = new Entry ();
                ScrolledWindow scroll = new ScrolledWindow ();
                scroll.HscrollbarPolicy = PolicyType.Never;
                scroll.VscrollbarPolicy =
                    PolicyType.Automatic;

                description = new TextView ();
                description.WrapMode = WrapMode.Word;
                scroll.Add (description);

                addCollectionToggle =
                    new CheckButton (Catalog.
                             GetString
                             ("Create a collection"));
                addCollectionToggle.Toggled += OnToggled;
                addCollectionToggle.Active = false;
                addCollectionToggle.Toggle ();

                Frame frame = new Frame ();
                Table table = new Table (4, 2, false);
                Label label;
                uint row = 0;

                table.RowSpacing = table.ColumnSpacing = 4;

                table.Attach (addCollectionToggle, 0, 2, row,
                          row + 1);

                row++;
                label = new Label ();
                label.Markup =
                    Catalog.GetString ("<b>Title</b>");
                label.Xalign = 0;
                table.Attach (label, 0, 1, row, row + 1);
                table.Attach (collectionEntry, 1, 2, row,
                          row + 1);
                row++;
                label = new Label ();
                label.Xalign = 0;
                label.Markup =
                    Catalog.
                    GetString
                    ("<i><small>Create a collection with this title</small></i>");
                table.Attach (label, 0, 2, row, row + 1);

                label = new Label ();
                label.Markup =
                    Catalog.
                    GetString ("<b>Description</b>");
                label.Xalign = 0;
                row++;
                table.Attach (label, 0, 2, row, row + 1);

                row++;
                table.Attach (scroll, 0, 2, row, row + 1);
                frame.Add (table);
                return frame;
            }
Example #28
0
        public Dialog(Image image, Drawable drawable, VariableSet variables) :
            base("Photoshop Actions", variables)
        {
            _image    = image;
            _drawable = drawable;

            var vbox = new VBox(false, 12)
            {
                BorderWidth = 12
            };

            VBox.PackStart(vbox, true, true, 0);

            var store = CreateActionTree();

            var sw = new ScrolledWindow()
            {
                HeightRequest = 400
            };

            vbox.PackStart(sw, true, true, 0);

            var view = new TreeView(store);

            sw.Add(view);

            var activeRenderer = new CellRendererToggle()
            {
                Activatable = true
            };
            var columnOne = view.AppendColumn("Enabled", activeRenderer,
                                              new TreeCellDataFunc(RenderActive));

            activeRenderer.Toggled += delegate(object o, ToggledArgs args)
            {
                TreeIter iter;
                var      path = new TreePath(args.Path);
                if (store.GetIter(out iter, path))
                {
                    var executable = store.GetValue(iter, 1) as IExecutable;
                    executable.IsEnabled = !executable.IsEnabled;

                    path.Down();
                    while (store.GetIter(out iter, path))
                    {
                        store.EmitRowChanged(path, iter);
                        path.Next();
                    }
                }
            };

            var textRenderer = new CellRendererText();
            var column       = view.AppendColumn("Set Name", textRenderer,
                                                 new TreeCellDataFunc(RenderText));

            var hbox = new HBox();

            vbox.PackStart(hbox, false, true, 0);

            var play = new Button(Stock.Execute);

            play.Clicked += delegate
            {
                RenameToBackground();

                var paths = view.Selection.GetSelectedRows();
                var path  = paths[0]; // Assume only 1 is selected

                var indices = path.Indices;

                var actions = _set[indices[0]];

                if (indices.Length > 2)
                {
                    actions.Execute(indices[1], indices[2]);
                    path.Next();
                    view.Selection.SelectPath(path);
                }
                else
                {
                    actions.Execute(indices[1]);
                }
                Gimp.DisplaysFlush();
            };
            hbox.PackStart(play, false, true, 0);

            view.Selection.Changed += delegate
            {
                var paths   = view.Selection.GetSelectedRows();
                var indices = paths[0].Indices;

                play.Sensitive = (indices.Length > 1);
            };

            view.Selection.SetSelectFunction(delegate(TreeSelection selection,
                                                      TreeModel model,
                                                      TreePath path,
                                                      bool path_currently_selected)
            {
                return(path.Indices.Length <= 3);
            },
                                             IntPtr.Zero, null);

            ActionEvent.ActionSetCollection = _set;
        }
Example #29
0
        /// <summary>
        /// Set up the widgets
        /// </summary>
        /// <returns>
        /// Widget to display
        /// </returns>
        private void InitializeWidgets()
        {
            this.Spacing     = 10;
            this.BorderWidth = 10;

            // Set up the iFolder2.x Accounts tree view in a scrolled window
            AccTreeView = new iFolderTreeView();
            ScrolledWindow sw = new ScrolledWindow();

            sw.ShadowType = Gtk.ShadowType.EtchedIn;
            sw.Add(AccTreeView);
            this.PackStart(sw, true, true, 0);

            AccTreeStore      = new ListStore(typeof(string));
            AccTreeView.Model = AccTreeStore;

            // User Name Column
            TreeViewColumn serverColumn = new TreeViewColumn();

            serverColumn.Title = Util.GS("User Name");
            CellRendererText servercr = new CellRendererText();

            servercr.Xpad = 5;
            serverColumn.PackStart(servercr, false);
            serverColumn.SetCellDataFunc(servercr,
                                         new TreeCellDataFunc(ServerCellTextDataFunc));
            serverColumn.Resizable = true;
            serverColumn.MinWidth  = 150;
            AccTreeView.AppendColumn(serverColumn);

            // Home Location Column
            TreeViewColumn nameColumn = new TreeViewColumn();

            nameColumn.Title = Util.GS("Home Location");
            CellRendererText ncrt = new CellRendererText();

            nameColumn.PackStart(ncrt, false);
            nameColumn.SetCellDataFunc(ncrt,
                                       new TreeCellDataFunc(NameCellTextDataFunc));
            nameColumn.Resizable = true;
            nameColumn.MinWidth  = 150;
            AccTreeView.AppendColumn(nameColumn);

            AccTreeView.Selection.Mode     = SelectionMode.Single;
            AccTreeView.Selection.Changed +=
                new EventHandler(AccSelectionChangedHandler);

            // Status column
            TreeViewColumn statusColumn = new TreeViewColumn();

            statusColumn.Title = Util.GS("Status");
            CellRendererText stat = new CellRendererText();

            stat.Xpad = 5;
            statusColumn.PackStart(stat, false);
            statusColumn.SetCellDataFunc(stat, new TreeCellDataFunc(statusCellTextDataFunc));
            statusColumn.Resizable = true;
            statusColumn.MinWidth  = 150;
            AccTreeView.AppendColumn(statusColumn);

            // Set up buttons for add/remove/accept/decline
            HButtonBox buttonBox = new HButtonBox();

            buttonBox.Spacing = 10;
            buttonBox.Layout  = ButtonBoxStyle.End;
            this.PackStart(buttonBox, false, false, 0);

            //AddButton = new Button("Add");
//			buttonBox.PackStart(AddButton);

            MigrateButton = new Button("_Migrate");
            buttonBox.PackStart(MigrateButton);
            MigrateButton.Clicked += new EventHandler(OnMigrateAccount);

            DetailsButton = new Button(Gtk.Stock.Properties);
            buttonBox.PackStart(DetailsButton);
            DetailsButton.Clicked += new EventHandler(OnDetailsClicked);

            AccTreeView.RowActivated += new RowActivatedHandler(
                OnAccTreeRowActivated);
        }
Example #30
0
    protected virtual void Build()
    {
        global::Stetic.Gui.Initialize(this);
        // Widget MainWindow
        this.Name           = "MainWindow";
        this.Title          = Mono.Unix.Catalog.GetString("LogToCSV");
        this.WindowPosition = (WindowPosition)4;
        this.Resizable      = false;
        this.DefaultWidth   = 0;
        this.DefaultHeight  = 0;
        // Container child MainWindow.Gtk.Container+ContainerChild
        this.fixed2 = new Fixed
        {
            Name      = "fixed2",
            HasWindow = false
        };
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button6 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button6",
            UseUnderline = true,
            Label        = global::Mono.Unix.Catalog.GetString("Dosya Seçiz")
        };
        this.fixed2.Add(this.button6);
        global::Gtk.Fixed.FixedChild w1 = ((global::Gtk.Fixed.FixedChild)(this.fixed2[this.button6]));
        w1.X             = 70;
        w1.Y             = 40;
        button6.Clicked += new EventHandler(FileOpen);
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button3 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button3",
            UseUnderline = true,
            Label        = global::Mono.Unix.Catalog.GetString("Dosyayı Görüntüle")
        };
        this.fixed2.Add(this.button3);
        Fixed.FixedChild w2 = ((Fixed.FixedChild)(this.fixed2[this.button3]));
        w2.X = 70;
        w2.Y = 160;
        this.button3.Clicked += new EventHandler(FileList);
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button2 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button2",
            UseUnderline = true,
            Label        = global::Mono.Unix.Catalog.GetString("Konum Seçiniz")
        };
        this.fixed2.Add(this.button2);
        Fixed.FixedChild w3 = ((Fixed.FixedChild)(this.fixed2[this.button2]));
        w3.X             = 70;
        w3.Y             = 220;
        button2.Clicked += new EventHandler(PathOpen);

        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button1 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button1",
            UseUnderline = true,
            Label        = global::Mono.Unix.Catalog.GetString("Dosya Oluştur")
        };
        this.fixed2.Add(this.button1);
        Fixed.FixedChild w4 = ((Fixed.FixedChild)(this.fixed2[this.button1]));
        w4.X             = 70;
        w4.Y             = 280;
        button1.Clicked += new EventHandler(FileCreate);
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.GtkScrolledWindow = new ScrolledWindow
        {
            WidthRequest  = 700,
            HeightRequest = 400,
            Name          = "GtkScrolledWindow",
            ShadowType    = ((global::Gtk.ShadowType)(1))
        };
        // Container child GtkScrolledWindow.Gtk.Container+ContainerChild
        this.textview3 = new TextView
        {
            CanFocus = true,
            Name     = "textview3"
        };
        this.GtkScrolledWindow.Add(this.textview3);
        this.fixed2.Add(this.GtkScrolledWindow);
        Fixed.FixedChild w6 = (Fixed.FixedChild) this.fixed2[this.GtkScrolledWindow];
        w6.X = 265;
        w6.Y = 14;
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button4 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button4",
            UseUnderline = true,
            Label        = Mono.Unix.Catalog.GetString("TcTLO Seçiniz")
        };
        this.fixed2.Add(this.button4);
        Fixed.FixedChild w7 = (Fixed.FixedChild) this.fixed2[this.button4];
        w7.X             = 70;
        w7.Y             = 100;
        button4.Clicked += new EventHandler(TcTLO_O);
        // Container child fixed2.Gtk.Fixed + FixedChild
        this.button5 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button5",
            UseUnderline = true,
            Label        = global::Mono.Unix.Catalog.GetString("Bulunamayanlar")
        };
        this.fixed2.Add(this.button5);
        global::Gtk.Fixed.FixedChild w8 = ((global::Gtk.Fixed.FixedChild)(this.fixed2[this.button5]));
        w8.X             = 10;
        w8.Y             = 330;
        button5.Clicked += new EventHandler(NotFound_L);
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button7 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button7",
            UseUnderline = true,
            Label        = Mono.Unix.Catalog.GetString("Temizle")
        };
        this.fixed2.Add(this.button7);
        Fixed.FixedChild w9 = (Fixed.FixedChild)(this.fixed2[this.button7]);
        w9.X             = 180;
        w9.Y             = 380;
        button7.Clicked += new EventHandler(Clear);
        // Container child fixed2.Gtk.Fixed+FixedChild
        this.button8 = new Gtk.Button
        {
            CanFocus     = true,
            Name         = "button8",
            UseUnderline = true,
            Label        = global::Mono.Unix.Catalog.GetString("Analiz Oluştur")
        };
        this.fixed2.Add(this.button8);
        Fixed.FixedChild w10 = (Fixed.FixedChild)(this.fixed2[this.button8]);
        w10.X            = 10;
        w10.Y            = 380;
        button8.Clicked += new EventHandler(Create_analysis);
        this.Add(this.fixed2);
        if ((this.Child != null))
        {
            this.Child.ShowAll();
        }
        this.Show();

        this.DeleteEvent += new DeleteEventHandler(this.OnDeleteEvent);
    }
Example #31
0
        public DebugValueWindow(Gtk.Window transientFor, PinnedWatchLocation location, StackFrame frame, ObjectValue value, PinnedWatch watch) : base(Gtk.WindowType.Toplevel)
        {
            TypeHint    = WindowTypeHint.PopupMenu;
            AllowShrink = false;
            AllowGrow   = false;
            Decorated   = false;

            TransientFor = transientFor;
            // Avoid getting the focus when the window is shown. We'll get it when the mouse enters the window
            AcceptFocus = false;

            sw = new ScrolledWindow {
                HscrollbarPolicy = PolicyType.Never,
                VscrollbarPolicy = PolicyType.Never
            };

            UpdateTreeStyle(Theme.BackgroundColor);

            if (useNewTreeView)
            {
                controller = new ObjectValueTreeViewController();
                controller.SetStackFrame(frame);
                controller.AllowEditing        = true;
                controller.PinnedWatch         = watch;
                controller.PinnedWatchLocation = location;

                treeView = controller.GetGtkControl(headersVisible: false, allowPinning: true, compactView: true, rootPinVisible: true);

                if (treeView is IObjectValueTreeView ovtv)
                {
                    ovtv.StartEditing += OnStartEditing;
                    ovtv.EndEditing   += OnEndEditing;
                    ovtv.NodePinned   += OnPinStatusChanged;
                }

                controller.AddValue(value);
            }
            else
            {
                objValueTreeView = new ObjectValueTreeView();
                objValueTreeView.RootPinAlwaysVisible = true;
                objValueTreeView.HeadersVisible       = false;
                objValueTreeView.AllowEditing         = true;
                objValueTreeView.AllowPinning         = true;
                objValueTreeView.CompactView          = true;
                objValueTreeView.PinnedWatch          = watch;
                objValueTreeView.PinnedWatchLocation  = location;
                objValueTreeView.Frame = frame;

                objValueTreeView.AddValue(value);

                objValueTreeView.PinStatusChanged += OnPinStatusChanged;
                objValueTreeView.StartEditing     += OnStartEditing;
                objValueTreeView.EndEditing       += OnEndEditing;

                treeView = objValueTreeView;
            }

            treeView.Name = innerTreeName;
            treeView.Selection.UnselectAll();
            treeView.SizeAllocated += OnTreeSizeChanged;

            sw.Add(treeView);
            ContentBox.Add(sw);
            sw.ShowAll();

            ShowArrow          = true;
            Theme.CornerRadius = 3;
            PreviewWindowManager.WindowClosed += PreviewWindowManager_WindowClosed;
        }
Example #32
0
        public void ShowPage(PageType type, string [] warnings)
        {
            if (type == PageType.Setup)
            {
                Header      = "Welcome to SparkleShare!";
                Description = "First off, what’s your name and email?\n(visible only to team members)";

                Table table = new Table(2, 3, true)
                {
                    RowSpacing    = 6,
                    ColumnSpacing = 6
                };

                Label name_label = new Label("<b>" + "Full Name:" + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 1
                };

                Entry name_entry = new Entry()
                {
                    Xalign           = 0,
                    ActivatesDefault = true
                };

                try {
                    UnixUserInfo user_info = UnixUserInfo.GetRealUser();

                    if (user_info != null && user_info.RealName != null)
                    {
                        // Some systems append a series of "," for some reason
                        name_entry.Text = user_info.RealName.TrimEnd(",".ToCharArray());
                    }
                } catch (ArgumentException) {
                    // No username, not a big deal
                }

                Entry email_entry = new Entry()
                {
                    Xalign           = 0,
                    ActivatesDefault = true
                };

                Label email_label = new Label("<b>" + "Email:" + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 1
                };

                table.Attach(name_label, 0, 1, 0, 1);
                table.Attach(name_entry, 1, 2, 0, 1);
                table.Attach(email_label, 0, 1, 1, 2);
                table.Attach(email_entry, 1, 2, 1, 2);

                VBox wrapper = new VBox(false, 9);
                wrapper.PackStart(table, true, false, 0);

                Button cancel_button   = new Button("Cancel");
                Button continue_button = new Button("Continue")
                {
                    Sensitive = false
                };


                Controller.UpdateSetupContinueButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { continue_button.Sensitive = button_enabled; });
                };

                name_entry.Changed    += delegate { Controller.CheckSetupPage(name_entry.Text, email_entry.Text); };
                email_entry.Changed   += delegate { Controller.CheckSetupPage(name_entry.Text, email_entry.Text); };
                cancel_button.Clicked += delegate { Controller.SetupPageCancelled(); };

                continue_button.Clicked += delegate {
                    Controller.SetupPageCompleted(name_entry.Text, email_entry.Text);
                };


                AddButton(cancel_button);
                AddButton(continue_button);
                Add(wrapper);

                Controller.CheckSetupPage(name_entry.Text, email_entry.Text);

                if (name_entry.Text.Equals(""))
                {
                    name_entry.GrabFocus();
                }
                else
                {
                    email_entry.GrabFocus();
                }
            }

            if (type == PageType.Add)
            {
                Header = "Where’s your project hosted?";

                VBox layout_vertical = new VBox(false, 16);
                HBox layout_fields   = new HBox(true, 32);
                VBox layout_address  = new VBox(true, 0);
                VBox layout_path     = new VBox(true, 0);

                ListStore store = new ListStore(typeof(string), typeof(Gdk.Pixbuf), typeof(string), typeof(SparklePlugin));

                SparkleTreeView tree_view = new SparkleTreeView(store)
                {
                    HeadersVisible = false
                };
                ScrolledWindow scrolled_window = new ScrolledWindow()
                {
                    ShadowType = ShadowType.In
                };
                scrolled_window.SetPolicy(PolicyType.Never, PolicyType.Automatic);

                // Padding column
                tree_view.AppendColumn("Padding", new Gtk.CellRendererText(), "text", 0);
                tree_view.Columns [0].Cells [0].Xpad = 4;

                // Icon column
                tree_view.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 1);
                tree_view.Columns [1].Cells [0].Xpad = 4;

                // Service column
                TreeViewColumn service_column = new TreeViewColumn()
                {
                    Title = "Service"
                };
                CellRendererText service_cell = new CellRendererText()
                {
                    Ypad = 8
                };
                service_column.PackStart(service_cell, true);
                service_column.SetCellDataFunc(service_cell, new TreeCellDataFunc(RenderServiceColumn));

                foreach (SparklePlugin plugin in Controller.Plugins)
                {
                    store.AppendValues("", new Gdk.Pixbuf(plugin.ImagePath),
                                       "<span size=\"small\"><b>" + plugin.Name + "</b>\n" +
                                       "<span fgcolor=\"" + Program.UI.SecondaryTextColor + "\">" + plugin.Description + "</span>" +
                                       "</span>", plugin);
                }

                tree_view.AppendColumn(service_column);
                scrolled_window.Add(tree_view);

                Entry address_entry = new Entry()
                {
                    Text             = Controller.PreviousAddress,
                    Sensitive        = (Controller.SelectedPlugin.Address == null),
                    ActivatesDefault = true
                };

                Entry path_entry = new Entry()
                {
                    Text             = Controller.PreviousPath,
                    Sensitive        = (Controller.SelectedPlugin.Path == null),
                    ActivatesDefault = true
                };

                Label address_example = new Label()
                {
                    Xalign    = 0,
                    UseMarkup = true,
                    Markup    = "<span size=\"small\" fgcolor=\"" +
                                Program.UI.SecondaryTextColor + "\">" + Controller.SelectedPlugin.AddressExample + "</span>"
                };

                Label path_example = new Label()
                {
                    Xalign    = 0,
                    UseMarkup = true,
                    Markup    = "<span size=\"small\" fgcolor=\"" +
                                Program.UI.SecondaryTextColor + "\">" + Controller.SelectedPlugin.PathExample + "</span>"
                };


                TreeSelection default_selection = tree_view.Selection;
                TreePath      default_path      = new TreePath("" + Controller.SelectedPluginIndex);
                default_selection.SelectPath(default_path);

                tree_view.Model.Foreach(new TreeModelForeachFunc(
                                            delegate(ITreeModel model, TreePath path, TreeIter iter) {
                    string address;

                    try {
                        address = (model.GetValue(iter, 2) as SparklePlugin).Address;
                    } catch (NullReferenceException) {
                        address = "";
                    }

                    if (!string.IsNullOrEmpty(address) &&
                        address.Equals(Controller.PreviousAddress))
                    {
                        tree_view.SetCursor(path, service_column, false);
                        SparklePlugin plugin = (SparklePlugin)model.GetValue(iter, 2);

                        if (plugin.Address != null)
                        {
                            address_entry.Sensitive = false;
                        }

                        if (plugin.Path != null)
                        {
                            path_entry.Sensitive = false;
                        }

                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                                            ));

                layout_address.PackStart(new Label()
                {
                    Markup = "<b>" + "Address" + "</b>",
                    Xalign = 0
                }, true, true, 0);

                layout_address.PackStart(address_entry, false, false, 0);
                layout_address.PackStart(address_example, false, false, 0);

                path_entry.Changed += delegate {
                    Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree_view.SelectedRow);
                };

                layout_path.PackStart(new Label()
                {
                    Markup = "<b>" + "Remote Path" + "</b>",
                    Xalign = 0
                }, true, true, 0);

                layout_path.PackStart(path_entry, false, false, 0);
                layout_path.PackStart(path_example, false, false, 0);

                layout_fields.PackStart(layout_address, true, true, 0);
                layout_fields.PackStart(layout_path, true, true, 0);

                layout_vertical.PackStart(new Label(""), false, false, 0);
                layout_vertical.PackStart(scrolled_window, true, true, 0);
                layout_vertical.PackStart(layout_fields, false, false, 0);

                tree_view.ScrollToCell(new TreePath("" + Controller.SelectedPluginIndex), null, true, 0, 0);

                Add(layout_vertical);


                if (string.IsNullOrEmpty(path_entry.Text))
                {
                    address_entry.GrabFocus();
                    address_entry.Position = -1;
                }
                else
                {
                    path_entry.GrabFocus();
                    path_entry.Position = -1;
                }

                Button cancel_button = new Button("Cancel");
                Button add_button    = new Button("Add")
                {
                    Sensitive = false
                };


                Controller.ChangeAddressFieldEvent += delegate(string text,
                                                               string example_text, FieldState state) {
                    Application.Invoke(delegate {
                        address_entry.Text      = text;
                        address_entry.Sensitive = (state == FieldState.Enabled);
                        address_example.Markup  = "<span size=\"small\" fgcolor=\"" +
                                                  Program.UI.SecondaryTextColor + "\">" + example_text + "</span>";
                    });
                };

                Controller.ChangePathFieldEvent += delegate(string text,
                                                            string example_text, FieldState state) {
                    Application.Invoke(delegate {
                        path_entry.Text      = text;
                        path_entry.Sensitive = (state == FieldState.Enabled);
                        path_example.Markup  = "<span size=\"small\" fgcolor=\""
                                               + Program.UI.SecondaryTextColor + "\">" + example_text + "</span>";
                    });
                };

                Controller.UpdateAddProjectButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { add_button.Sensitive = button_enabled; });
                };


                tree_view.CursorChanged += delegate(object sender, EventArgs e) {
                    Controller.SelectedPluginChanged(tree_view.SelectedRow);
                };

                address_entry.Changed += delegate {
                    Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree_view.SelectedRow);
                };

                cancel_button.Clicked += delegate { Controller.PageCancelled(); };
                add_button.Clicked    += delegate { Controller.AddPageCompleted(address_entry.Text, path_entry.Text); };


                CheckButton check_button = new CheckButton("Fetch prior revisions")
                {
                    Active = true
                };
                check_button.Toggled += delegate { Controller.HistoryItemChanged(check_button.Active); };

                AddOption(check_button);
                AddButton(cancel_button);
                AddButton(add_button);

                Controller.HistoryItemChanged(check_button.Active);
                Controller.CheckAddPage(address_entry.Text, path_entry.Text, 1);
            }

            if (type == PageType.Invite)
            {
                Header      = "You’ve received an invite!";
                Description = "Do you want to add this project to SparkleShare?";

                Table table = new Table(2, 3, true)
                {
                    RowSpacing    = 6,
                    ColumnSpacing = 6
                };

                Label address_label = new Label("Address:")
                {
                    Xalign = 1
                };
                Label path_label = new Label("Remote Path:")
                {
                    Xalign = 1
                };

                Label address_value = new Label("<b>" + Controller.PendingInvite.Address + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 0
                };

                Label path_value = new Label("<b>" + Controller.PendingInvite.RemotePath + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 0
                };

                table.Attach(address_label, 0, 1, 0, 1);
                table.Attach(address_value, 1, 2, 0, 1);
                table.Attach(path_label, 0, 1, 1, 2);
                table.Attach(path_value, 1, 2, 1, 2);

                VBox wrapper = new VBox(false, 9);
                wrapper.PackStart(table, true, false, 0);

                Button cancel_button = new Button("Cancel");
                Button add_button    = new Button("Add");


                cancel_button.Clicked += delegate { Controller.PageCancelled(); };
                add_button.Clicked    += delegate { Controller.InvitePageCompleted(); };


                AddButton(cancel_button);
                AddButton(add_button);
                Add(wrapper);
            }

            if (type == PageType.Syncing)
            {
                Header      = String.Format("Adding project ‘{0}’…", Controller.SyncingFolder);
                Description = "This may take a while for large projects.\nIsn’t it coffee-o’clock?";

                ProgressBar progress_bar = new ProgressBar();
                progress_bar.Fraction = Controller.ProgressBarPercentage / 100;

                Button cancel_button = new Button()
                {
                    Label = "Cancel"
                };
                Button finish_button = new Button("Finish")
                {
                    Sensitive = false
                };

                Label progress_label = new Label("Preparing to fetch files…")
                {
                    Justify = Justification.Right,
                    Xalign  = 1
                };


                Controller.UpdateProgressBarEvent += delegate(double percentage, string speed) {
                    Application.Invoke(delegate {
                        progress_bar.Fraction = percentage / 100;
                        progress_label.Text   = speed;
                    });
                };

                cancel_button.Clicked += delegate { Controller.SyncingCancelled(); };


                VBox bar_wrapper = new VBox(false, 0);
                bar_wrapper.PackStart(progress_bar, false, false, 21);
                bar_wrapper.PackStart(progress_label, false, true, 0);

                Add(bar_wrapper);
                AddButton(cancel_button);
                AddButton(finish_button);
            }

            if (type == PageType.Error)
            {
                Header = "Oops! Something went wrong" + "…";

                VBox  points           = new VBox(false, 0);
                Image list_point_one   = new Image(SparkleUIHelpers.GetIcon("list-point", 16));
                Image list_point_two   = new Image(SparkleUIHelpers.GetIcon("list-point", 16));
                Image list_point_three = new Image(SparkleUIHelpers.GetIcon("list-point", 16));

                Label label_one = new Label()
                {
                    Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we’ve compiled. " +
                             "Does this look alright?",
                    Wrap   = true,
                    Xalign = 0
                };

                Label label_two = new Label()
                {
                    Text   = "Is this computer’s Client ID known by the host?",
                    Wrap   = true,
                    Xalign = 0
                };

                points.PackStart(new Label("Please check the following:")
                {
                    Xalign = 0
                }, false, false, 6);

                HBox point_one = new HBox(false, 0);
                point_one.PackStart(list_point_one, false, false, 0);
                point_one.PackStart(label_one, true, true, 12);
                points.PackStart(point_one, false, false, 12);

                HBox point_two = new HBox(false, 0);
                point_two.PackStart(list_point_two, false, false, 0);
                point_two.PackStart(label_two, true, true, 12);
                points.PackStart(point_two, false, false, 12);

                if (warnings.Length > 0)
                {
                    string warnings_markup = "";

                    foreach (string warning in warnings)
                    {
                        warnings_markup += "\n<b>" + warning + "</b>";
                    }

                    Label label_three = new Label()
                    {
                        Markup = "Here’s the raw error message:" + warnings_markup,
                        Wrap   = true,
                        Xalign = 0
                    };

                    HBox point_three = new HBox(false, 0);
                    point_three.PackStart(list_point_three, false, false, 0);
                    point_three.PackStart(label_three, true, true, 12);
                    points.PackStart(point_three, false, false, 12);
                }

                points.PackStart(new Label(""), true, true, 0);

                Button cancel_button    = new Button("Cancel");
                Button try_again_button = new Button("Try Again…")
                {
                    Sensitive = true
                };


                cancel_button.Clicked    += delegate { Controller.PageCancelled(); };
                try_again_button.Clicked += delegate { Controller.ErrorPageCompleted(); };


                AddButton(cancel_button);
                AddButton(try_again_button);
                Add(points);
            }

            if (type == PageType.CryptoSetup || type == PageType.CryptoPassword)
            {
                if (type == PageType.CryptoSetup)
                {
                    Header      = "Set up file encryption";
                    Description = "Please a provide a strong password that you don’t use elsewhere.";
                }
                else
                {
                    Header      = "This project contains encrypted files";
                    Description = "Please enter the password to see their contents.";
                }

                Label password_label = new Label("<b>" + "Password" + "</b>")
                {
                    UseMarkup = true,
                    Xalign    = 1
                };

                Entry password_entry = new Entry()
                {
                    Xalign           = 0,
                    Visibility       = false,
                    ActivatesDefault = true
                };

                CheckButton show_password_check_button = new CheckButton("Show password")
                {
                    Active = false,
                    Xalign = 0,
                };

                Table table = new Table(2, 3, true)
                {
                    RowSpacing    = 6,
                    ColumnSpacing = 6
                };

                table.Attach(password_label, 0, 1, 0, 1);
                table.Attach(password_entry, 1, 2, 0, 1);

                table.Attach(show_password_check_button, 1, 2, 1, 2);

                VBox wrapper = new VBox(false, 9);
                wrapper.PackStart(table, true, false, 0);

                Image warning_image = new Image(
                    SparkleUIHelpers.GetIcon("dialog-information", 24));

                Label warning_label = new Label()
                {
                    Xalign = 0,
                    Wrap   = true,
                    Text   = "This password can’t be changed later, and your files can’t be recovered if it’s forgotten."
                };

                HBox warning_layout = new HBox(false, 0);
                warning_layout.PackStart(warning_image, false, false, 15);
                warning_layout.PackStart(warning_label, true, true, 0);

                VBox warning_wrapper = new VBox(false, 0);
                warning_wrapper.PackStart(warning_layout, false, false, 15);

                if (type == PageType.CryptoSetup)
                {
                    wrapper.PackStart(warning_wrapper, false, false, 0);
                }

                Button cancel_button   = new Button("Cancel");
                Button continue_button = new Button("Continue")
                {
                    Sensitive = false
                };


                Controller.UpdateCryptoSetupContinueButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { continue_button.Sensitive = button_enabled; });
                };

                Controller.UpdateCryptoPasswordContinueButtonEvent += delegate(bool button_enabled) {
                    Application.Invoke(delegate { continue_button.Sensitive = button_enabled; });
                };

                show_password_check_button.Toggled += delegate {
                    password_entry.Visibility = !password_entry.Visibility;
                };

                password_entry.Changed += delegate {
                    if (type == PageType.CryptoSetup)
                    {
                        Controller.CheckCryptoSetupPage(password_entry.Text);
                    }
                    else
                    {
                        Controller.CheckCryptoPasswordPage(password_entry.Text);
                    }
                };

                cancel_button.Clicked += delegate { Controller.CryptoPageCancelled(); };

                continue_button.Clicked += delegate {
                    if (type == PageType.CryptoSetup)
                    {
                        Controller.CryptoSetupPageCompleted(password_entry.Text);
                    }
                    else
                    {
                        Controller.CryptoPasswordPageCompleted(password_entry.Text);
                    }
                };


                Add(wrapper);

                AddButton(cancel_button);
                AddButton(continue_button);

                password_entry.GrabFocus();
            }

            if (type == PageType.Finished)
            {
                Header      = "Your shared project is ready!";
                Description = "You can find the files in your SparkleShare folder.";

                UrgencyHint = true;

                Button show_files_button = new Button("Show Files…");
                Button finish_button     = new Button("Finish");


                show_files_button.Clicked += delegate { Controller.ShowFilesClicked(); };
                finish_button.Clicked     += delegate { Controller.FinishPageCompleted(); };


                if (warnings.Length > 0)
                {
                    Image warning_image = new Image(SparkleUIHelpers.GetIcon("dialog-information", 24));

                    Label warning_label = new Label(warnings [0])
                    {
                        Xalign = 0,
                        Wrap   = true
                    };

                    HBox warning_layout = new HBox(false, 0);
                    warning_layout.PackStart(warning_image, false, false, 15);
                    warning_layout.PackStart(warning_label, true, true, 0);

                    VBox warning_wrapper = new VBox(false, 0);
                    warning_wrapper.PackStart(warning_layout, false, false, 0);

                    Add(warning_wrapper);
                }
                else
                {
                    Add(null);
                }

                AddButton(show_files_button);
                AddButton(finish_button);
            }

            if (type == PageType.Tutorial)
            {
                switch (Controller.TutorialPageNumber)
                {
                case 1: {
                    Header      = "What’s happening next?";
                    Description = "SparkleShare creates a special folder on your computer " +
                                  "that will keep track of your projects.";

                    Button skip_tutorial_button = new Button("Skip Tutorial");
                    Button continue_button      = new Button("Continue");

                    skip_tutorial_button.Clicked += delegate { Controller.TutorialSkipped(); };
                    continue_button.Clicked      += delegate { Controller.TutorialPageCompleted(); };

                    AddButton(skip_tutorial_button);
                    AddButton(continue_button);

                    break;
                }

                case 2: {
                    Header      = "Sharing files with others";
                    Description = "All files added to your project folders are synced automatically with " +
                                  "the host and your team members.";

                    Button continue_button = new Button("Continue");
                    continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); };
                    AddButton(continue_button);

                    break;
                }

                case 3: {
                    Header      = "The status icon helps you";
                    Description = "It shows the syncing progress, provides easy access to " +
                                  "your projects, and lets you view recent changes.";

                    Button continue_button = new Button("Continue");
                    continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); };
                    AddButton(continue_button);

                    break;
                }

                case 4: {
                    Header      = "Here’s your unique Client ID";
                    Description = "You’ll need it whenever you want to link this computer to a host. " +
                                  "You can also find it in the status icon menu.";

                    Button finish_button   = new Button("Finish");
                    VBox   layout_vertical = new VBox(false, 0)
                    {
                        BorderWidth = 48
                    };
                    HBox layout_horizontal = new HBox(false, 6);

                    Entry link_code_entry = new Entry()
                    {
                        Text      = Program.Controller.CurrentUser.PublicKey,
                        Sensitive = false
                    };

                    Button copy_button = new Button(" Copy ");

                    CheckButton check_button = new CheckButton("Add SparkleShare to startup items");
                    check_button.Active = true;


                    copy_button.Clicked   += delegate { Controller.CopyToClipboardClicked(); };
                    check_button.Toggled  += delegate { Controller.StartupItemChanged(check_button.Active); };
                    finish_button.Clicked += delegate { Controller.TutorialPageCompleted(); };


                    layout_horizontal.PackStart(link_code_entry, true, true, 0);
                    layout_horizontal.PackStart(copy_button, false, false, 0);

                    layout_vertical.PackStart(new Label(""), true, true, 0);
                    layout_vertical.PackStart(layout_horizontal, false, false, 0);
                    layout_vertical.PackStart(new Label(""), true, true, 18);

                    Add(layout_vertical);

                    AddOption(check_button);
                    AddButton(finish_button);

                    break;
                }
                }

                if (Controller.TutorialPageNumber < 4)
                {
                    Image slide = SparkleUIHelpers.GetImage("tutorial-slide-" + Controller.TutorialPageNumber + ".png");
                    Add(slide);
                }
            }
        }
        private Gtk.Dialog BuildDialog()
        {
            Gtk.Dialog dialog = new Gtk.Dialog(Catalog.GetString("Set Languages"), Base.Ui.Window, DialogFlags.Modal | DialogFlagsUseHeaderBar,
                                               Util.GetStockLabel("gtk-cancel"), ResponseType.Cancel, Util.GetStockLabel("gtk-apply"), ResponseType.Ok);

            dialog.DefaultResponse = ResponseType.Ok;
            dialog.DefaultWidth    = WidgetStyles.DialogWidthMedium;
            dialog.DefaultHeight   = WidgetStyles.DialogHeightMedium;

            Grid grid = new Grid();

            grid.RowSpacing        = WidgetStyles.RowSpacingMedium;
            grid.ColumnSpacing     = WidgetStyles.ColumnSpacingLarge;
            grid.BorderWidth       = WidgetStyles.BorderWidthMedium;
            grid.ColumnHomogeneous = true;

            /* Left part: Text Language */

            Label textLabel = new Label("<b>" + Catalog.GetString("Text Language") + "</b>");

            textLabel.UseMarkup = true;
            textLabel.Halign    = Align.Start;
            grid.Attach(textLabel, 0, 0, 1, 1);

            textTreeView = CreateTreeView();
            ScrolledWindow textScrolledWindow = CreateLanguagesScrolledWindow(textTreeView);

            SelectActiveLanguage(textTreeView, SubtitleTextType.Text);
            grid.Attach(textScrolledWindow, 0, 1, 1, 1);

            /* Right part: Translation Language */

            Label transLabel = new Label("<b>" + Catalog.GetString("Translation Language") + "</b>");

            transLabel.UseMarkup = true;
            transLabel.Halign    = Align.Start;
            grid.Attach(transLabel, 1, 0, 1, 1);

            transTreeView = CreateTreeView();
            ScrolledWindow transScrolledWindow = CreateLanguagesScrolledWindow(transTreeView);

            if (Base.Document.IsTranslationLoaded)
            {
                SelectActiveLanguage(transTreeView, SubtitleTextType.Translation);
            }
            else
            {
                transScrolledWindow.Sensitive = false;
            }
            grid.Attach(transScrolledWindow, 1, 1, 1, 1);


            /* Bottom: info message */

            Label bottomLabel = Util.CreateLabel("<i>" + Catalog.GetString("For additional languages please install the corresponding package.") + "</i>", 0, 0);

            bottomLabel.UseMarkup = true;
            grid.Attach(bottomLabel, 0, 2, 2, 1);

            dialog.ContentArea.Add(grid);
            dialog.ContentArea.ShowAll();

            ConnectSignals();

            return(dialog);
        }
Example #34
0
        public override void LaunchDialogue()
        {
            //the Type in the collection
            IList  collection  = (IList)Value;
            string displayName = Property.DisplayName;

            //populate list with existing items
            ListStore itemStore = new ListStore(typeof(object), typeof(int), typeof(string));

            for (int i = 0; i < collection.Count; i++)
            {
                itemStore.AppendValues(collection [i], i, collection [i].ToString());
            }

            #region Building Dialogue

            TreeView     itemTree;
            PropertyGrid grid;
            TreeIter     previousIter = TreeIter.Zero;

            //dialogue and buttons
            var dialog = new Gtk.Dialog()
            {
                Title       = displayName + " Editor",
                Modal       = true,
                AllowGrow   = true,
                AllowShrink = true,
            };
            var toplevel = this.Container.GetNativeWidget <Gtk.Widget> ().Toplevel as Gtk.Window;
            if (toplevel != null)
            {
                dialog.TransientFor = toplevel;
            }

            dialog.AddActionWidget(new Button(Stock.Cancel), ResponseType.Cancel);
            dialog.AddActionWidget(new Button(Stock.Ok), ResponseType.Ok);

            //three columns for items, sorting, PropGrid
            HBox hBox = new HBox();
            dialog.VBox.PackStart(hBox, true, true, 5);

            //propGrid at end
            grid = new PropertyGrid(base.EditorManager)
            {
                CurrentObject = null,
                WidthRequest  = 200,
                ShowHelp      = false
            };
            hBox.PackEnd(grid, true, true, 5);

            //followed by a ButtonBox
            VBox buttonBox = new VBox();
            buttonBox.Spacing = 6;
            hBox.PackEnd(buttonBox, false, false, 5);

            //add/remove buttons
            Button addButton = new Button(new Image(Stock.Add, IconSize.Button));
            buttonBox.PackStart(addButton, false, false, 0);
            if (types [0].IsAbstract)
            {
                addButton.Sensitive = false;
            }
            Button removeButton = new Button(new Gtk.Image(Stock.Remove, IconSize.Button));
            buttonBox.PackStart(removeButton, false, false, 0);

            //sorting buttons
            Button upButton = new Button(new Image(Stock.GoUp, IconSize.Button));
            buttonBox.PackStart(upButton, false, false, 0);
            Button downButton = new Button(new Image(Stock.GoDown, IconSize.Button));
            buttonBox.PackStart(downButton, false, false, 0);

            //Third column has list (TreeView) in a ScrolledWindow
            ScrolledWindow listScroll = new ScrolledWindow();
            listScroll.WidthRequest  = 200;
            listScroll.HeightRequest = 320;
            hBox.PackStart(listScroll, false, false, 5);

            itemTree = new TreeView(itemStore);
            itemTree.Selection.Mode = SelectionMode.Single;
            itemTree.HeadersVisible = false;
            listScroll.AddWithViewport(itemTree);

            //renderers and attribs for TreeView
            CellRenderer rdr = new CellRendererText();
            itemTree.AppendColumn(new TreeViewColumn("Index", rdr, "text", 1));
            rdr = new CellRendererText();
            itemTree.AppendColumn(new TreeViewColumn("Object", rdr, "text", 2));

            #endregion

            #region Events

            addButton.Clicked += delegate {
                //create the object
                object instance = System.Activator.CreateInstance(types[0]);

                //get existing selection and insert after it
                TreeIter oldIter, newIter;
                if (itemTree.Selection.GetSelected(out oldIter))
                {
                    newIter = itemStore.InsertAfter(oldIter);
                }
                //or append if no previous selection
                else
                {
                    newIter = itemStore.Append();
                }
                itemStore.SetValue(newIter, 0, instance);

                //select, set name and update all the indices
                itemTree.Selection.SelectIter(newIter);
                UpdateName(itemStore, newIter);
                UpdateIndices(itemStore);
            };

            removeButton.Clicked += delegate {
                //get selected iter and the replacement selection
                TreeIter iter, newSelection;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    return;
                }

                newSelection = iter;
                if (!IterPrev(itemStore, ref newSelection))
                {
                    newSelection = iter;
                    if (!itemStore.IterNext(ref newSelection))
                    {
                        newSelection = TreeIter.Zero;
                    }
                }

                //new selection. Zeroing previousIter prevents trying to update name of deleted iter.
                previousIter = TreeIter.Zero;
                if (itemStore.IterIsValid(newSelection))
                {
                    itemTree.Selection.SelectIter(newSelection);
                }

                //and the removal and index update
                itemStore.Remove(ref iter);
                UpdateIndices(itemStore);
            };

            upButton.Clicked += delegate {
                TreeIter iter, prev;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    return;
                }

                //get previous iter
                prev = iter;
                if (!IterPrev(itemStore, ref prev))
                {
                    return;
                }

                //swap the two
                itemStore.Swap(iter, prev);

                //swap indices too
                object prevVal = itemStore.GetValue(prev, 1);
                object iterVal = itemStore.GetValue(iter, 1);
                itemStore.SetValue(prev, 1, iterVal);
                itemStore.SetValue(iter, 1, prevVal);
            };

            downButton.Clicked += delegate {
                TreeIter iter, next;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    return;
                }

                //get next iter
                next = iter;
                if (!itemStore.IterNext(ref next))
                {
                    return;
                }

                //swap the two
                itemStore.Swap(iter, next);

                //swap indices too
                object nextVal = itemStore.GetValue(next, 1);
                object iterVal = itemStore.GetValue(iter, 1);
                itemStore.SetValue(next, 1, iterVal);
                itemStore.SetValue(iter, 1, nextVal);
            };

            itemTree.Selection.Changed += delegate {
                TreeIter iter;
                if (!itemTree.Selection.GetSelected(out iter))
                {
                    removeButton.Sensitive = false;
                    return;
                }
                removeButton.Sensitive = true;

                //update grid
                object obj = itemStore.GetValue(iter, 0);
                grid.CurrentObject = obj;

                //update previously selected iter's name
                UpdateName(itemStore, previousIter);

                //update current selection so we can update
                //name next selection change
                previousIter = iter;
            };

            grid.Changed += delegate {
                TreeIter iter;
                if (itemTree.Selection.GetSelected(out iter))
                {
                    UpdateName(itemStore, iter);
                }
            };

            TreeIter selectionIter;
            removeButton.Sensitive = itemTree.Selection.GetSelected(out selectionIter);

            dialog.ShowAll();
            grid.ShowToolbar = false;

            #endregion

            //if 'OK' put items back in collection
            using (dialog) {
                if (MonoDevelop.Ide.MessageService.ShowCustomDialog(dialog, toplevel) == (int)ResponseType.Ok)
                {
                    DesignerTransaction tran = CreateTransaction(Instance);
                    object old = collection;

                    try {
                        collection.Clear();
                        foreach (object[] o in itemStore)
                        {
                            collection.Add(o [0]);
                        }
                        EndTransaction(Instance, tran, old, collection, true);
                    } catch {
                        EndTransaction(Instance, tran, old, collection, false);
                        throw;
                    }
                }
            }
        }
Example #35
0
        public DirtyFilesDialog(IReadOnlyList <Document> docs, bool closeWorkspace, bool groupByProject) :
            base(GettextCatalog.GetString("Save Files"), IdeApp.Workbench.RootWindow, DialogFlags.Modal)
        {
            tsFiles = new TreeStore(typeof(string), typeof(bool), typeof(SdiWorkspaceWindow), typeof(bool));
            tvFiles = new TreeView(tsFiles);
            TreeIter  topCombineIter = TreeIter.Zero;
            Hashtable projectIters   = new Hashtable();

            foreach (Document doc in docs)
            {
                if (!doc.IsDirty)
                {
                    continue;
                }

                ViewContent viewcontent = doc.Window.ViewContent;

                if (groupByProject && viewcontent.Project != null)
                {
                    TreeIter projIter = TreeIter.Zero;
                    if (projectIters.ContainsKey(viewcontent.Project))
                    {
                        projIter = (TreeIter)projectIters [viewcontent.Project];
                    }
                    else
                    {
                        if (topCombineIter.Equals(TreeIter.Zero))
                        {
                            projIter = tsFiles.AppendValues(GettextCatalog.GetString("Project: {0}", viewcontent.Project.Name), true, null, false);
                        }
                        else
                        {
                            projIter = tsFiles.AppendValues(topCombineIter, GettextCatalog.GetString("Project: {0}", viewcontent.Project.Name), true, null, false);
                        }
                        projectIters [viewcontent.Project] = projIter;
                    }
                    tsFiles.AppendValues(projIter, viewcontent.PathRelativeToProject, true, viewcontent.WorkbenchWindow);
                }
                else
                {
                    if (viewcontent.ContentName == null)
                    {
                        viewcontent.ContentName = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), viewcontent.UntitledName);
                    }
                    tsFiles.AppendValues(viewcontent.ContentName, true, viewcontent.WorkbenchWindow);
                }
            }
            if (!topCombineIter.Equals(TreeIter.Zero))
            {
                if (!tsFiles.IterHasChild(topCombineIter))
                {
                    tsFiles.Remove(ref topCombineIter);
                }
            }

            TreeViewColumn mainColumn = new TreeViewColumn();

            mainColumn.Title = "header";

            togRender          = new CellRendererToggle();
            togRender.Toggled += toggled;
            mainColumn.PackStart(togRender, false);
            mainColumn.AddAttribute(togRender, "active", 1);
            mainColumn.AddAttribute(togRender, "inconsistent", 3);

            textRender = new CellRendererText();
            mainColumn.PackStart(textRender, true);
            mainColumn.AddAttribute(textRender, "text", 0);

            tvFiles.AppendColumn(mainColumn);
            tvFiles.HeadersVisible = false;
            tvFiles.ExpandAll();

            ScrolledWindow sc = new ScrolledWindow();

            sc.Add(tvFiles);
            sc.ShadowType = ShadowType.In;

            sc.BorderWidth = 6;
            this.VBox.PackStart(sc, true, true, 6);

            btnSaveAndQuit = new Button(closeWorkspace ? GettextCatalog.GetString("_Save and Quit") : GettextCatalog.GetString("_Save and Close"));
            btnQuit        = new Button(closeWorkspace ? Gtk.Stock.Quit : Gtk.Stock.Close);
            btnCancel      = new Button(Gtk.Stock.Cancel);

            btnSaveAndQuit.Clicked += SaveAndQuit;
            btnQuit.Clicked        += Quit;
            btnCancel.Clicked      += Cancel;

            this.ActionArea.PackStart(btnCancel);
            this.ActionArea.PackStart(btnQuit);
            this.ActionArea.PackStart(btnSaveAndQuit);
            this.SetDefaultSize(300, 200);
            this.Child.ShowAll();
        }
Example #36
0
        public SearchResultWidget()
        {
            var vbox    = new VBox();
            var toolbar = new Toolbar()
            {
                Orientation  = Orientation.Vertical,
                IconSize     = IconSize.Menu,
                ToolbarStyle = ToolbarStyle.Icons,
            };

            this.PackStart(vbox, true, true, 0);
            this.PackStart(toolbar, false, false, 0);
            labelStatus = new Label()
            {
                Xalign  = 0,
                Justify = Justification.Left,
            };
            var hpaned = new HPaned();

            vbox.PackStart(hpaned, true, true, 0);
            vbox.PackStart(labelStatus, false, false, 0);
            var resultsScroll = new CompactScrolledWindow();

            hpaned.Pack1(resultsScroll, true, true);
            scrolledwindowLogView = new CompactScrolledWindow();
            hpaned.Pack2(scrolledwindowLogView, true, true);
            textviewLog = new TextView()
            {
                Editable = false,
            };
            scrolledwindowLogView.Add(textviewLog);

            store = new ListStore(typeof(SearchResult),
                                  typeof(bool) // didRead
                                  );

            treeviewSearchResults = new PadTreeView()
            {
                Model            = store,
                HeadersClickable = true,
                RulesHint        = true,
            };
            treeviewSearchResults.Selection.Mode = Gtk.SelectionMode.Multiple;
            resultsScroll.Add(treeviewSearchResults);

            this.ShowAll();

            var fileNameColumn = new TreeViewColumn {
                Resizable    = false,
                SortColumnId = 0,
                Title        = GettextCatalog.GetString("File")
            };

            fileNameColumn.FixedWidth = 200;

            var fileNamePixbufRenderer = new CellRendererPixbuf();

            fileNameColumn.PackStart(fileNamePixbufRenderer, false);
            fileNameColumn.SetCellDataFunc(fileNamePixbufRenderer, FileIconDataFunc);

            fileNameColumn.PackStart(treeviewSearchResults.TextRenderer, true);
            fileNameColumn.SetCellDataFunc(treeviewSearchResults.TextRenderer, FileNameDataFunc);
            treeviewSearchResults.AppendColumn(fileNameColumn);

//			TreeViewColumn lineColumn = treeviewSearchResults.AppendColumn (GettextCatalog.GetString ("Line"), new CellRendererText (), ResultLineDataFunc);
//			lineColumn.SortColumnId = 1;
//			lineColumn.FixedWidth = 50;
//

            TreeViewColumn textColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Text"),
                                                                           treeviewSearchResults.TextRenderer, ResultTextDataFunc);

            textColumn.SortColumnId = 2;
            textColumn.Resizable    = false;
            textColumn.FixedWidth   = 300;


            TreeViewColumn pathColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Path"),
                                                                           treeviewSearchResults.TextRenderer, ResultPathDataFunc);

            pathColumn.SortColumnId = 3;
            pathColumn.Resizable    = false;
            pathColumn.FixedWidth   = 500;


            store.SetSortFunc(0, CompareFileNames);
//			store.SetSortFunc (1, CompareLineNumbers);
            store.SetSortFunc(3, CompareFilePaths);

            treeviewSearchResults.RowActivated += TreeviewSearchResultsRowActivated;

            buttonStop = new ToolButton(Stock.Stop)
            {
                Sensitive = false
            };

            buttonStop.Clicked += ButtonStopClicked;

            buttonStop.TooltipText = GettextCatalog.GetString("Stop");
            toolbar.Insert(buttonStop, -1);

            var buttonClear = new ToolButton(Gtk.Stock.Clear);

            buttonClear.Clicked    += ButtonClearClicked;
            buttonClear.TooltipText = GettextCatalog.GetString("Clear results");
            toolbar.Insert(buttonClear, -1);

            var buttonOutput = new ToggleToolButton(Gui.Stock.OutputIcon);

            buttonOutput.Clicked    += ButtonOutputClicked;
            buttonOutput.TooltipText = GettextCatalog.GetString("Show output");
            toolbar.Insert(buttonOutput, -1);

            buttonPin             = new ToggleToolButton(Gui.Stock.PinUp);
            buttonPin.Clicked    += ButtonPinClicked;
            buttonPin.TooltipText = GettextCatalog.GetString("Pin results pad");
            toolbar.Insert(buttonPin, -1);

            store.SetSortColumnId(3, SortType.Ascending);
            ShowAll();

            scrolledwindowLogView.Hide();
        }
        public ConfigWindow(Window owner) :
            base("config")
        {
            this.WidthRequest   = 500;
            this.HeightRequest  = 300;
            this.ShowMinimize   = false;
            this.Modal          = true;
            this.WindowPosition = Gtk.WindowPosition.None;
            int root_x, root_y;

            owner.GetPosition(out root_x, out root_y);
            this.Move(root_x + (owner.WidthRequest / 2) - (this.WidthRequest / 2),
                      root_y + (owner.HeightRequest / 2) - (this.HeightRequest / 2));

            this.lblPort           = new global::Gtk.Label();
            this.lblPort.LabelProp = "Server Port:";
            this.GridMain.Add(this.lblPort);
            global::Gtk.Fixed.FixedChild w2 = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.lblPort]));
            w2.X = 40;
            w2.Y = 62;

            this.txtPort = new global::Gtk.Entry();
            this.txtPort.WidthRequest = 100;
            this.GridMain.Add(this.txtPort);
            w2   = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.txtPort]));
            w2.X = 110;
            w2.Y = 60;

            this.cbStartup       = new CheckButton();
            this.cbStartup.Label = "Start the web server when the PC starts up";
            this.GridMain.Add(this.cbStartup);
            w2   = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.cbStartup]));
            w2.X = 40;
            w2.Y = 85;

            this.cbMinimize       = new CheckButton();
            this.cbMinimize.Label = "Minimize on startup";
            this.GridMain.Add(this.cbMinimize);
            w2   = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.cbMinimize]));
            w2.X = 40;
            w2.Y = 105;

            this.swNetworkCards = new ScrolledWindow();
            this.swNetworkCards.WidthRequest  = 400;
            this.swNetworkCards.HeightRequest = 100;
            this.swNetworkCards.ShadowType    = ((global::Gtk.ShadowType)(1));

            this.GridMain.Add(this.swNetworkCards);
            w2   = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.swNetworkCards]));
            w2.X = 40;
            w2.Y = 130;

            this.tNetworkCards               = new Table(6, 2, false);
            this.tNetworkCards.RowSpacing    = (6);
            this.tNetworkCards.ColumnSpacing = (6);

            global::Gtk.Viewport w1 = new global::Gtk.Viewport();
            w1.ShadowType = ((global::Gtk.ShadowType)(0));
            w1.Add(tNetworkCards);

            this.swNetworkCards.Add(w1);

            _lstNetworkCards = new List <NetworkCard>();

            List <string> ids  = Globals.ReadEnvironmentVariables(Globals.V_NetworkID);
            IPHostEntry   host = Dns.GetHostEntry(Dns.GetHostName());

            NetworkInterface[] netInterfaces = NetworkInterface.GetAllNetworkInterfaces();
            uint i = 0;

            foreach (NetworkInterface adapter in netInterfaces)
            {
                var ipProps = adapter.GetIPProperties();
                foreach (var ip in ipProps.UnicastAddresses)
                {
                    if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
                    {
                        CheckButton cbNetworkCard = new CheckButton();
                        cbNetworkCard.Active = ids.Contains(adapter.Id);
                        cbNetworkCard.Label  = String.Format("{0} - {1}", adapter.Name, ip.Address.ToString());
                        this.tNetworkCards.Add(cbNetworkCard);
                        tNetworkCards.Add(cbNetworkCard);
                        global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.tNetworkCards[cbNetworkCard]));
                        w3.TopAttach = i++;
                        w3.YOptions  = ((global::Gtk.AttachOptions)(4));

                        NetworkCard networkCard = new NetworkCard();
                        networkCard.ID          = adapter.Id;
                        networkCard.NetworkName = adapter.Name;
                        networkCard.IPAddress   = ip.Address.ToString();
                        networkCard.CheckBox    = cbNetworkCard;
                        _lstNetworkCards.Add(networkCard);
                    }
                }
            }

            this.btnApply              = new Button();
            this.btnApply.Clicked     += btnApply_Clicked;
            this.btnApply.Label        = "Apply";
            this.btnApply.WidthRequest = 100;
            this.GridMain.Add(this.btnApply);
            w2   = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.btnApply]));
            w2.X = 150;
            w2.Y = 240;

            this.btnCancel              = new Button();
            this.btnCancel.Clicked     += btnCancel_Clicked;
            this.btnCancel.Label        = "Cancel";
            this.btnCancel.WidthRequest = 100;
            this.GridMain.Add(this.btnCancel);
            w2   = ((global::Gtk.Fixed.FixedChild)(this.GridMain[this.btnCancel]));
            w2.X = 250;
            w2.Y = 240;

            //Apply settings
            txtPort.Text      = Globals.ReadEnvironmentVariable <int>(Globals.V_WebServerPort).ToString();
            cbStartup.Active  = Globals.ReadEnvironmentVariable <bool>(Globals.V_WebServerAutoStart);
            cbMinimize.Active = Globals.ReadEnvironmentVariable <bool>(Globals.V_WebServerHide);

            this.ShowObjects();
        }
            public ObservableGamesWidget(GameObservationManager
						      observer)
            {
                obManager = observer;
                iters = new TreeIter[3, 4];
                gamesView = new TreeView ();
                infoLabel = new Label ();
                infoLabel.Xalign = 0;
                infoLabel.Xpad = 4;
                observer.ObservableGameEvent +=
                    OnObservableGameEvent;

                store = new TreeStore (typeof (string),	// used for filtering
                               typeof (int),	// gameid
                               typeof (string),	// markup
                               typeof (string),	//
                               typeof (string));

                  gamesView.HeadersVisible = true;
                  gamesView.HeadersClickable = true;

                  gamesView.AppendColumn (Catalog.
                              GetString ("Games"),
                              new
                              CellRendererText (),
                              "markup", 2);
                  gamesView.AppendColumn (Catalog.
                              GetString ("Time"),
                              new
                              CellRendererText (),
                              "markup", 3);
                  gamesView.AppendColumn (Catalog.
                              GetString
                              ("Category"),
                              new
                              CellRendererText (),
                              "markup", 4);

                ScrolledWindow win = new ScrolledWindow ();
                  win.HscrollbarPolicy =
                    win.VscrollbarPolicy =
                    PolicyType.Automatic;
                  win.Add (gamesView);

                  UpdateInfoLabel ();

                  filterEntry = new Entry ();
                  filterEntry.Changed += OnFilter;

                  filter = new TreeModelFilter (store, null);
                  filter.VisibleFunc = FilterFunc;
                  gamesView.Model = filter;

                  AddParentIters ();

                  infoLabel.UseMarkup = true;
                Button refreshButton =
                    new Button (Stock.Refresh);
                  refreshButton.Clicked +=
                    delegate (object o, EventArgs args)
                {
                    Clear ();
                    obManager.GetGames ();
                };
                Alignment align = new Alignment (0, 1, 0, 0);
                align.Add (refreshButton);

                HBox hbox = new HBox ();
                hbox.PackStart (infoLabel, true, true, 4);
                hbox.PackStart (align, false, false, 4);

                PackStart (hbox, false, true, 4);

                Label tipLabel = new Label ();
                tipLabel.Xalign = 0;
                tipLabel.Xpad = 4;
                tipLabel.Markup =
                    String.
                    Format ("<small><i>{0}</i></small>",
                        Catalog.
                        GetString
                        ("Press the refresh button to get an updated list of games.\nDouble click on a game to observe it."));
                PackStart (tipLabel, false, true, 4);
                PackStart (filterEntry, false, true, 4);
                PackStart (win, true, true, 4);

                gamesView.RowActivated += OnRowActivated;
                SetSizeRequest (600, 400);
                ShowAll ();
            }
        public SparkleEventLog() : base("")
        {
            SetSizeRequest(480, (int)(Gdk.Screen.Default.Height * 0.8));

            int x = (int)(Gdk.Screen.Default.Width * 0.61);
            int y = (int)(Gdk.Screen.Default.Height * 0.5 - (HeightRequest * 0.5));

            Move(x, y);

            Resizable   = true;
            BorderWidth = 0;

            Title    = "Recent Changes";
            IconName = "folder-sparkleshare";

            DeleteEvent += delegate(object o, DeleteEventArgs args) {
                Controller.WindowClosed();
                args.RetVal = true;
            };

            KeyPressEvent += delegate(object o, KeyPressEventArgs args) {
                if (args.Event.Key == Gdk.Key.Escape ||
                    (args.Event.State == Gdk.ModifierType.ControlMask && args.Event.Key == Gdk.Key.w))
                {
                    Controller.WindowClosed();
                }
            };

            this.size_label = new Label()
            {
                Markup = "<b>Size:</b> …",
                Xalign = 0
            };

            this.history_label = new Label()
            {
                Markup = "<b>History:</b> …",
                Xalign = 0
            };

            HBox layout_sizes = new HBox(false, 12);

            layout_sizes.Add(this.size_label);
            layout_sizes.Add(this.history_label);

            VBox layout_vertical = new VBox(false, 0);

            this.spinner         = new SparkleSpinner(22);
            this.content_wrapper = new EventBox();
            this.scrolled_window = new ScrolledWindow();

            Gdk.Color white = new Gdk.Color();
            Gdk.Color.Parse("white", ref white);

            this.content_wrapper.ModifyBg(StateType.Normal, white);

            this.web_view = new WebView()
            {
                Editable = false
            };


            this.web_view.NavigationRequested += WebViewNavigationRequested;

            this.scrolled_window.Add(this.web_view);
            this.content_wrapper.Add(this.spinner);

            this.spinner.Start();

            this.layout_horizontal = new HBox(true, 0);
            this.layout_horizontal.PackStart(layout_sizes, true, true, 12);

            layout_vertical.PackStart(this.layout_horizontal, false, false, 0);
            layout_vertical.PackStart(this.content_wrapper, true, true, 0);

            Add(layout_vertical);


            Controller.HideWindowEvent += delegate {
                Application.Invoke(delegate {
                    HideAll();

                    if (this.content_wrapper.Child != null)
                    {
                        this.content_wrapper.Remove(this.content_wrapper.Child);
                    }
                });
            };

            Controller.ShowWindowEvent += delegate {
                Application.Invoke(delegate {
                    ShowAll();
                    Present();
                });
            };

            Controller.ShowSaveDialogEvent += delegate(string file_name, string target_folder_path) {
                Application.Invoke(delegate {
                    FileChooserDialog dialog = new FileChooserDialog("Restore from History",
                                                                     this, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Ok);

                    dialog.CurrentName = file_name;
                    dialog.SetCurrentFolder(target_folder_path);

                    if (dialog.Run() == (int)ResponseType.Ok)
                    {
                        Controller.SaveDialogCompleted(dialog.Filename);
                    }
                    else
                    {
                        Controller.SaveDialogCancelled();
                    }

                    dialog.Destroy();
                });
            };

            Controller.UpdateChooserEvent += delegate(string [] folders) {
                Application.Invoke(delegate {
                    UpdateChooser(folders);
                });
            };

            Controller.UpdateChooserEnablementEvent += delegate(bool enabled) {
                Application.Invoke(delegate {
                    this.combo_box.Sensitive = enabled;
                });
            };

            Controller.UpdateContentEvent += delegate(string html) {
                Application.Invoke(delegate {
                    UpdateContent(html);
                });
            };

            Controller.ContentLoadingEvent += delegate {
                Application.Invoke(delegate {
                    if (this.content_wrapper.Child != null)
                    {
                        this.content_wrapper.Remove(this.content_wrapper.Child);
                    }

                    this.content_wrapper.Add(this.spinner);
                    this.spinner.Start();
                    this.content_wrapper.ShowAll();
                });
            };

            Controller.UpdateSizeInfoEvent += delegate(string size, string history_size) {
                Application.Invoke(delegate {
                    this.size_label.Markup    = "<b>Size:</b> " + size;
                    this.history_label.Markup = "<b>History:</b> " + history_size;

                    this.size_label.ShowAll();
                    this.history_label.ShowAll();
                });
            };
        }
            private void UpdateOtherTags(IList ignoreTags)
            {
                Table table =
                    new Table ((uint) game.TagList.Count,
                           2, false);

                uint i = 0;
                foreach (PGNTag tag in game.TagList)
                {
                    if (ignoreTags.Contains (tag.Name))
                        continue;

                    Label nameLabel =
                        new Label ("<b>" + tag.Name +
                               "</b>");
                    Label valueLabel =
                        new Label ((string) tag.
                               Value);
                    nameLabel.UseMarkup = true;
                    nameLabel.Xalign = 0;
                    valueLabel.Xalign = 0;
                    table.Attach (nameLabel, 0, 1, i,
                              i + 1);
                    table.Attach (valueLabel, 1, 2, i,
                              i + 1);
                    i++;
                }

                ScrolledWindow win = new ScrolledWindow ();
                win.HscrollbarPolicy = PolicyType.Automatic;
                win.VscrollbarPolicy = PolicyType.Automatic;
                win.AddWithViewport (table);
                win.ShowAll ();
                if (otherTagsWidget.Child != null)
                  {
                      otherTagsWidget.
                          Remove (otherTagsWidget.
                              Child);
                  }
                otherTagsWidget.Add (win);
            }
Example #41
0
        public SqlQueryView()
        {
            stoppedQueries = new List <object> ();
            MonoDevelop.SourceEditor.Extension.TemplateExtensionNodeLoader.Init();
            this.UntitledName = string.Concat(AddinCatalog.GetString("Untitled Sql Script"), ".sql");

            vbox             = new VBox(false, 6);
            vbox.BorderWidth = 6;

            Toolbar toolbar = new Toolbar();

            toolbar.ToolbarStyle = ToolbarStyle.BothHoriz;

            buttonExecute = new ToolButton(ImageService.GetImage("md-db-execute", IconSize.SmallToolbar),
                                           AddinCatalog.GetString("_Execute"));
            buttonExecute.Label         = AddinCatalog.GetString("Execute");
            buttonExecute.Sensitive     = false;
            buttonExecute.TooltipMarkup = AddinCatalog.GetString("Execute Query");
            buttonExecute.IsImportant   = true;
            buttonExecute.Clicked      += new EventHandler(ExecuteClicked);

            buttonStop             = new ToolButton("gtk-stop");
            buttonStop.TooltipText = AddinCatalog.GetString("Stop Query Execution");
            buttonStop.Sensitive   = false;
            buttonStop.Clicked    += new EventHandler(StopClicked);

            buttonClear = new ToolButton(ImageService.GetImage("gtk-clear", IconSize.Button),
                                         AddinCatalog.GetString("Clear Results"));
            buttonClear.TooltipText = AddinCatalog.GetString("Clear Results");
            buttonClear.Clicked    += new EventHandler(ClearClicked);

            comboConnections          = new DatabaseConnectionContextComboBox();
            selectedConnection        = comboConnections.DatabaseConnection;
            comboConnections.Changed += new EventHandler(ConnectionChanged);
            ToolItem comboItem = new ToolItem();

            comboItem.Child = comboConnections;

            toolbar.Add(buttonExecute);
            toolbar.Add(buttonStop);
            toolbar.Add(buttonClear);
            toolbar.Add(new SeparatorToolItem());
            toolbar.Add(comboItem);

            pane = new VPaned();

            // Sql History Window
            ScrolledWindow windowHistory = new ScrolledWindow();

            history          = new SqlEditorWidget();
            history.Editable = false;
            windowHistory.AddWithViewport(history);

            // Status of the Last Query
            ScrolledWindow windowStatus = new ScrolledWindow();

            status = new TextView();
            windowStatus.Add(status);

            notebook = new Notebook();
            notebook.AppendPage(windowStatus, new Label(AddinCatalog.GetString("Status")));
            notebook.AppendPage(windowHistory, new Label(AddinCatalog.GetString("Query History")));

            pane.Pack2(notebook, true, true);
            vbox.PackStart(toolbar, false, true, 0);
            vbox.PackStart(pane, true, true, 0);
            this.Document.TextReplaced += SqlChanged;
            vbox.ShowAll();
            Document.DocumentUpdated += delegate(object sender, EventArgs args) {
                // Default mime type or a provider defined.
                if (selectedConnection == null)
                {
                    Document.MimeType = "text/x-sql";
                }
                else
                {
                    Document.MimeType = GetMimeType();
                }
            };
            notebook.Hide();
        }
            public ChessGameView()
                : base()
            {
                handCursor =
                    new Gdk.Cursor (Gdk.CursorType.Hand2);
                regularCursor =
                    new Gdk.Cursor (Gdk.CursorType.Xterm);

                marks = new Hashtable ();
                tag_links = new Hashtable ();
                taglinks = new ArrayList ();
                curMoveIdx = -1;

                view = new TextView ();
                view.WrapMode = WrapMode.Word;
                view.Editable = false;
                view.WidgetEventAfter += EventAfter;
                view.MotionNotifyEvent += MotionNotify;
                view.VisibilityNotifyEvent +=
                    VisibilityNotify;

                ScrolledWindow win = new ScrolledWindow ();
                  win.SetPolicy (PolicyType.Never,
                         PolicyType.Automatic);
                  win.Add (view);

                  PackStart (win, true, true, 0);
                  view.WidthRequest = 150;

                  CreateTags ();
                  ShowAll ();
            }
            public ObservingGamePage(ICSGameObserverWidget
						  widget,
						  MoveDetails details)
                : base()
            {
                this.win = widget;
                gameId = details.gameNumber;

                InitGameWidget (details);

                movesWidget = new ChessMovesWidget ();
                movesWidget.CursorChanged += OnCursorChanged;

                gameWidget.WhiteAtBottom =
                    !details.blackAtBottom;
                board.side = details.blackAtBottom;
                gameWidget.whiteClock.Configure (details.
                                 initial_time
                                 * 60,
                                 (uint)
                                 details.
                                 increment);
                gameWidget.blackClock.Configure (details.
                                 initial_time
                                 * 60,
                                 (uint)
                                 details.
                                 increment);

                white = details.white;
                black = details.black;
                gameWidget.White = white;
                gameWidget.Black = black;

                gameWidget.Show ();
                board.Show ();
                movesWidget.Show ();

                HBox box = new HBox ();
                Button closeButton;
                if (Config.WindowsBuild)
                    closeButton =
                        new Button (Stock.Close);
                else
                  {
                      closeButton = new Button ("");
                      closeButton.Image =
                          new Image (Stock.Close,
                                 IconSize.Menu);
                  }
                resultLabel = new Label ();
                resultLabel.Xalign = 0;
                box.PackStart (resultLabel, true, true, 2);
                box.PackStart (closeButton, false, false, 2);

                PackStart (box, false, true, 2);

                box = new HBox ();
                ScrolledWindow scroll = new ScrolledWindow ();
                scroll.HscrollbarPolicy = PolicyType.Never;
                scroll.VscrollbarPolicy =
                    PolicyType.Automatic;
                scroll.Add (movesWidget);

                VBox movesBox = new VBox ();
                movesBox.PackStart (scroll, true, true, 2);
                AddGameNavigationButtons (movesBox);

                box.PackStart (gameWidget, true, true, 2);
                box.PackStart (movesBox, false, true, 2);
                PackStart (box, true, true, 2);

                closeButton.Clicked += OnCloseButtonClicked;

                Update (details);
                ShowAll ();
            }
        public ExceptionDialog(Exception e) : base()
        {
            debugInfo = BuildExceptionMessage(e);

            HasSeparator = false;
            BorderWidth  = 5;
            Resizable    = false;
            Title        = Catalog.GetString("F-Spot Encountered a Fatal Error");

            VBox.Spacing      = 12;
            ActionArea.Layout = ButtonBoxStyle.End;

            accel_group = new AccelGroup();
            AddAccelGroup(accel_group);

            HBox hbox = new HBox(false, 12);

            hbox.BorderWidth = 5;
            VBox.PackStart(hbox, false, false, 0);

            Image image = new Image(Stock.DialogError, IconSize.Dialog);

            image.Yalign = 0.0f;
            hbox.PackStart(image, true, true, 0);

            VBox label_vbox = new VBox(false, 0);

            label_vbox.Spacing = 12;
            hbox.PackStart(label_vbox, false, false, 0);

            Label label = new Label(String.Format("<b><big>{0}</big></b>", GLib.Markup.EscapeText(Title)));

            label.UseMarkup = true;
            label.Justify   = Justification.Left;
            label.LineWrap  = true;
            label.SetAlignment(0.0f, 0.5f);
            label_vbox.PackStart(label, false, false, 0);

            label = new Label(e.Message);

            label.UseMarkup = true;
            label.Justify   = Gtk.Justification.Left;
            label.LineWrap  = true;
            label.SetAlignment(0.0f, 0.5f);
            label_vbox.PackStart(label, false, false, 0);

            Label details_label = new Label(String.Format("<b>{0}</b>",
                                                          GLib.Markup.EscapeText(Catalog.GetString("Error Details"))));

            details_label.UseMarkup = true;
            Expander details_expander = new Expander("Details");

            details_expander.LabelWidget = details_label;
            label_vbox.PackStart(details_expander, true, true, 0);

            ScrolledWindow scroll = new ScrolledWindow();
            TextView       view   = new TextView();

            scroll.HscrollbarPolicy = PolicyType.Automatic;
            scroll.VscrollbarPolicy = PolicyType.Automatic;
            scroll.AddWithViewport(view);

            scroll.SetSizeRequest(450, 250);

            view.Editable    = false;
            view.Buffer.Text = debugInfo;

            details_expander.Add(scroll);

            hbox.ShowAll();

            AddButton(Stock.Close, ResponseType.Close, true);
        }
Example #45
0
        public override void Initialize(NodeBuilder[] builders, TreePadOption[] options, string menuPath)
        {
            base.Initialize(builders, options, menuPath);

            testChangedHandler            = (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnDetailsTestChanged));
            testService.TestSuiteChanged += (EventHandler)DispatchService.GuiDispatch(new EventHandler(OnTestSuiteChanged));
            paned = new VPaned();

            VBox            vbox       = new VBox();
            DockItemToolbar topToolbar = Window.GetToolbar(PositionType.Top);

            buttonRunAll             = new Button(new Gtk.Image(Gtk.Stock.GoUp, IconSize.Menu));
            buttonRunAll.Clicked    += new EventHandler(OnRunAllClicked);
            buttonRunAll.Sensitive   = true;
            buttonRunAll.TooltipText = GettextCatalog.GetString("Run all tests");
            topToolbar.Add(buttonRunAll);

            buttonRun             = new Button(new Gtk.Image(Gtk.Stock.Execute, IconSize.Menu));
            buttonRun.Clicked    += new EventHandler(OnRunClicked);
            buttonRun.Sensitive   = true;
            buttonRun.TooltipText = GettextCatalog.GetString("Run test");
            topToolbar.Add(buttonRun);

            buttonStop             = new Button(new Gtk.Image(Gtk.Stock.Stop, IconSize.Menu));
            buttonStop.Clicked    += new EventHandler(OnStopClicked);
            buttonStop.Sensitive   = false;
            buttonStop.TooltipText = GettextCatalog.GetString("Cancel running test");
            topToolbar.Add(buttonStop);
            topToolbar.ShowAll();

            vbox.PackEnd(base.Control, true, true, 0);
            vbox.FocusChain = new Gtk.Widget [] { base.Control };

            paned.Pack1(vbox, true, true);

            detailsPad = new VBox();

            EventBox eb     = new EventBox();
            HBox     header = new HBox();

            eb.Add(header);

            detailLabel         = new HeaderLabel();
            detailLabel.Padding = 6;

            Button hb = new Button(new Gtk.Image("gtk-close", IconSize.SmallToolbar));

            hb.Relief   = ReliefStyle.None;
            hb.Clicked += new EventHandler(OnCloseDetails);
            header.PackEnd(hb, false, false, 0);

            hb          = new Button(new Gtk.Image("gtk-go-back", IconSize.SmallToolbar));
            hb.Relief   = ReliefStyle.None;
            hb.Clicked += new EventHandler(OnGoBackTest);
            header.PackEnd(hb, false, false, 0);

            header.Add(detailLabel);
            Gdk.Color hcol = eb.Style.Background(StateType.Normal);
            hcol.Red   = (ushort)(((double)hcol.Red) * 0.9);
            hcol.Green = (ushort)(((double)hcol.Green) * 0.9);
            hcol.Blue  = (ushort)(((double)hcol.Blue) * 0.9);
            //	eb.ModifyBg (StateType.Normal, hcol);

            detailsPad.PackStart(eb, false, false, 0);

            VPaned panedDetails = new VPaned();

            panedDetails.BorderWidth = 3;
            VBox boxPaned1 = new VBox();

            chart = new TestChart();
            chart.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(OnChartPopupMenu);
            chart.SelectionChanged   += new EventHandler(OnChartDateChanged);
            chart.HeightRequest       = 50;

            Toolbar toolbar = new Toolbar();

            toolbar.IconSize     = IconSize.SmallToolbar;
            toolbar.ToolbarStyle = ToolbarStyle.Icons;
            toolbar.ShowArrow    = false;
            ToolButton but = new ToolButton("gtk-zoom-in");

            but.Clicked += new EventHandler(OnZoomIn);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-zoom-out");
            but.Clicked += new EventHandler(OnZoomOut);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-go-back");
            but.Clicked += new EventHandler(OnChartBack);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-go-forward");
            but.Clicked += new EventHandler(OnChartForward);
            toolbar.Insert(but, -1);

            but          = new ToolButton("gtk-goto-last");
            but.Clicked += new EventHandler(OnChartLast);
            toolbar.Insert(but, -1);

            boxPaned1.PackStart(toolbar, false, false, 0);
            boxPaned1.PackStart(chart, true, true, 0);

            panedDetails.Pack1(boxPaned1, false, false);

            // Detailed test information --------

            infoBook = new ButtonNotebook();
            infoBook.PageLoadRequired += new EventHandler(OnPageLoadRequired);

            // Info - Group summary

            Frame          tf = new Frame();
            ScrolledWindow sw = new ScrolledWindow();

            detailsTree = new TreeView();

            detailsTree.HeadersVisible = true;
            detailsTree.RulesHint      = true;
            detailsStore = new ListStore(typeof(object), typeof(string), typeof(string), typeof(string), typeof(string));

            CellRendererText trtest = new CellRendererText();
            CellRendererText tr;

            TreeViewColumn col3 = new TreeViewColumn();

            col3.Expand = false;
//			col3.Alignment = 0.5f;
            col3.Widget = new Gtk.Image(CircleImage.Success);
            col3.Widget.Show();
            tr = new CellRendererText();
//			tr.Xalign = 0.5f;
            col3.PackStart(tr, false);
            col3.AddAttribute(tr, "markup", 2);
            detailsTree.AppendColumn(col3);

            TreeViewColumn col4 = new TreeViewColumn();

            col4.Expand = false;
//			col4.Alignment = 0.5f;
            col4.Widget = new Gtk.Image(CircleImage.Failure);
            col4.Widget.Show();
            tr = new CellRendererText();
//			tr.Xalign = 0.5f;
            col4.PackStart(tr, false);
            col4.AddAttribute(tr, "markup", 3);
            detailsTree.AppendColumn(col4);

            TreeViewColumn col5 = new TreeViewColumn();

            col5.Expand = false;
//			col5.Alignment = 0.5f;
            col5.Widget = new Gtk.Image(CircleImage.NotRun);
            col5.Widget.Show();
            tr = new CellRendererText();
//			tr.Xalign = 0.5f;
            col5.PackStart(tr, false);
            col5.AddAttribute(tr, "markup", 4);
            detailsTree.AppendColumn(col5);

            TreeViewColumn col1 = new TreeViewColumn();

//			col1.Resizable = true;
//			col1.Expand = true;
            col1.Title = "Test";
            col1.PackStart(trtest, true);
            col1.AddAttribute(trtest, "markup", 1);
            detailsTree.AppendColumn(col1);

            detailsTree.Model = detailsStore;

            sw.Add(detailsTree);
            tf.Add(sw);
            tf.ShowAll();

            TestSummaryPage = infoBook.AddPage(GettextCatalog.GetString("Summary"), tf);

            // Info - Regressions list

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            regressionTree = new TreeView();
            regressionTree.HeadersVisible = false;
            regressionTree.RulesHint      = true;
            regressionStore = new ListStore(typeof(object), typeof(string), typeof(Pixbuf));

            CellRendererText trtest2 = new CellRendererText();
            var pr = new CellRendererPixbuf();

            TreeViewColumn col = new TreeViewColumn();

            col.PackStart(pr, false);
            col.AddAttribute(pr, "pixbuf", 2);
            col.PackStart(trtest2, false);
            col.AddAttribute(trtest2, "markup", 1);
            regressionTree.AppendColumn(col);
            regressionTree.Model = regressionStore;
            sw.Add(regressionTree);
            tf.ShowAll();

            TestRegressionsPage = infoBook.AddPage(GettextCatalog.GetString("Regressions"), tf);

            // Info - Failed tests list

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            failedTree = new TreeView();
            failedTree.HeadersVisible = false;
            failedTree.RulesHint      = true;
            failedStore = new ListStore(typeof(object), typeof(string), typeof(Pixbuf));

            trtest2 = new CellRendererText();
            pr      = new CellRendererPixbuf();

            col = new TreeViewColumn();
            col.PackStart(pr, false);
            col.AddAttribute(pr, "pixbuf", 2);
            col.PackStart(trtest2, false);
            col.AddAttribute(trtest2, "markup", 1);
            failedTree.AppendColumn(col);
            failedTree.Model = failedStore;
            sw.Add(failedTree);
            tf.ShowAll();

            TestFailuresPage = infoBook.AddPage(GettextCatalog.GetString("Failed tests"), tf);

            // Info - results

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            resultView          = new TextView();
            resultView.Editable = false;
            sw.Add(resultView);
            tf.ShowAll();
            TestResultPage = infoBook.AddPage(GettextCatalog.GetString("Result"), tf);

            // Info - Output

            tf = new Frame();
            sw = new ScrolledWindow();
            tf.Add(sw);
            outputView          = new TextView();
            outputView.Editable = false;
            sw.Add(outputView);
            tf.ShowAll();
            TestOutputPage = infoBook.AddPage(GettextCatalog.GetString("Output"), tf);

            panedDetails.Pack2(infoBook, true, true);
            detailsPad.PackStart(panedDetails, true, true, 0);
            paned.Pack2(detailsPad, true, true);

            paned.ShowAll();

            infoBook.HidePage(TestResultPage);
            infoBook.HidePage(TestOutputPage);
            infoBook.HidePage(TestSummaryPage);
            infoBook.HidePage(TestRegressionsPage);
            infoBook.HidePage(TestFailuresPage);

            detailsPad.Sensitive = false;
            detailsPad.Hide();

            detailsTree.RowActivated    += new Gtk.RowActivatedHandler(OnTestActivated);
            regressionTree.RowActivated += new Gtk.RowActivatedHandler(OnRegressionTestActivated);
            failedTree.RowActivated     += new Gtk.RowActivatedHandler(OnFailedTestActivated);

            foreach (UnitTest t in testService.RootTests)
            {
                TreeView.AddChild(t);
            }
        }
            public ChessGameInfoWidget()
            {
                box = new VBox ();
                titleLabel = new Label ();
                titleLabel.UseMarkup = true;

                resultLabel =
                    new Label (Catalog.
                           GetString
                           ("<b>Result</b>"));
                resultLabel.UseMarkup = true;
                dateLabel =
                    new Label (Catalog.
                           GetString ("<b>Date</b>"));
                dateLabel.UseMarkup = true;
                eventLabel =
                    new Label (Catalog.
                           GetString
                           ("<b>Event</b>"));
                eventLabel.UseMarkup = true;
                siteLabel =
                    new Label (Catalog.
                           GetString ("<b>Site</b>"));
                siteLabel.UseMarkup = true;

                resultValueLabel = new Label ();
                dateValueLabel = new Label ();
                eventValueLabel = new Label ();
                siteValueLabel = new Label ();

                titleLabel = new Label ();
                titleLabel.UseMarkup = true;

                Table table = new Table (5, 2, false);

                uint row = 0;
                  table.Attach (titleLabel, 0, 2, row,
                        row + 1);
                  titleLabel.Xalign = 0;

                  row++;
                  table.Attach (resultLabel, 0, 1, row,
                        row + 1);
                  resultLabel.Xalign = 0;
                  table.Attach (resultValueLabel, 1, 2, row,
                        row + 1);
                  resultValueLabel.Xalign = 0;

                  row++;
                  table.Attach (dateLabel, 0, 1, row,
                        row + 1);
                  dateLabel.Xalign = 0;
                  table.Attach (dateValueLabel, 1, 2, row,
                        row + 1);
                  dateValueLabel.Xalign = 0;

                  row++;
                  table.Attach (eventLabel, 0, 1, row,
                        row + 1);
                  eventLabel.Xalign = 0;
                  table.Attach (eventValueLabel, 1, 2, row,
                        row + 1);
                  eventValueLabel.Xalign = 0;

                  row++;
                  table.Attach (siteLabel, 0, 1, row,
                        row + 1);
                  siteLabel.Xalign = 0;
                  table.Attach (siteValueLabel, 1, 2, row,
                        row + 1);
                  siteValueLabel.Xalign = 0;

                ScrolledWindow win = new ScrolledWindow ();
                  win.HscrollbarPolicy = PolicyType.Automatic;
                  win.VscrollbarPolicy = PolicyType.Never;
                  win.AddWithViewport (table);

                  box.PackStart (win, false, false, 2);

                  otherTagsWidget =
                    new Expander (Catalog.
                              GetString
                              ("Other details"));
                  box.PackStart (otherTagsWidget, false,
                         false, 2);

                  box.ShowAll ();
                  Child = box;
            }
Example #47
0
 public EmbedWidget(IntPtr handle, Adjustment h, Adjustment v) : base(Gtk.WindowType.Toplevel)
 {
     this.handle = handle;
     window      = new Gtk.ScrolledWindow(h, v);
 }
Example #48
0
        void CreateControl()
        {
            control = new HPaned();

            store = new Gtk.TreeStore(typeof(Xwt.Drawing.Image),               // image - type
                                      typeof(bool),                            // read?
                                      typeof(TaskListEntry),                   // read? -- use Pango weight
                                      typeof(string));
            SemanticModelAttribute modelAttr = new SemanticModelAttribute("store__Type", "store__Read", "store__Task", "store__Description");

            TypeDescriptor.AddAttributes(store, modelAttr);

            TreeModelFilterVisibleFunc filterFunct = new TreeModelFilterVisibleFunc(FilterTasks);

            filter             = new TreeModelFilter(store, null);
            filter.VisibleFunc = filterFunct;

            sort = new TreeModelSort(filter);
            sort.SetSortFunc(VisibleColumns.Type, SeverityIterSort);
            sort.SetSortFunc(VisibleColumns.Project, ProjectIterSort);
            sort.SetSortFunc(VisibleColumns.File, FileIterSort);
            sort.SetSortFunc(VisibleColumns.Category, CategoryIterSort);

            view = new PadTreeView(sort);
            view.ShowExpanders = true;
            view.RulesHint     = true;
            view.DoPopupMenu   = (evnt) => IdeApp.CommandService.ShowContextMenu(view, evnt, CreateMenu());
            AddColumns();
            LoadColumnsVisibility();
            view.Columns[VisibleColumns.Type].SortColumnId     = VisibleColumns.Type;
            view.Columns[VisibleColumns.Project].SortColumnId  = VisibleColumns.Project;
            view.Columns[VisibleColumns.File].SortColumnId     = VisibleColumns.File;
            view.Columns[VisibleColumns.Category].SortColumnId = VisibleColumns.Category;

            sw            = new MonoDevelop.Components.CompactScrolledWindow();
            sw.ShadowType = ShadowType.None;
            sw.Add(view);
            TaskService.Errors.TasksRemoved += ShowResults;
            TaskService.Errors.TasksAdded   += TaskAdded;
            TaskService.Errors.TasksChanged += TaskChanged;
            TaskService.Errors.CurrentLocationTaskChanged += HandleTaskServiceErrorsCurrentLocationTaskChanged;

            IdeApp.Workspace.FirstWorkspaceItemOpened += OnCombineOpen;
            IdeApp.Workspace.LastWorkspaceItemClosed  += OnCombineClosed;

            view.RowActivated += new RowActivatedHandler(OnRowActivated);

            iconWarning = ImageService.GetIcon(Ide.Gui.Stock.Warning, Gtk.IconSize.Menu);
            iconError   = ImageService.GetIcon(Ide.Gui.Stock.Error, Gtk.IconSize.Menu);
            iconInfo    = ImageService.GetIcon(Ide.Gui.Stock.Information, Gtk.IconSize.Menu);
            iconEmpty   = ImageService.GetIcon(Ide.Gui.Stock.Empty, Gtk.IconSize.Menu);

            control.Add1(sw);

            outputView = new LogView {
                Name = "buildOutput"
            };
            control.Add2(outputView);

            control.ShowAll();

            control.SizeAllocated += HandleControlSizeAllocated;

            bool outputVisible = OutputViewVisible;

            if (outputVisible)
            {
                outputView.Visible = true;
                logBtn.Active      = true;
            }
            else
            {
                outputView.Hide();
            }

            sw.SizeAllocated += HandleSwSizeAllocated;

            // Load existing tasks
            foreach (TaskListEntry t in TaskService.Errors)
            {
                AddTask(t);
            }

            control.FocusChain = new Gtk.Widget [] { outputView };
        }
            public OpeningBrowserUI(OpeningsDb db)
                : base()
            {
                menubar = new AppMenuBar ();
                title = Catalog.GetString ("Opening Browser");
                accel = new AccelGroup ();
                menubar.quitMenuItem.
                    AddAccelerator ("activate", accel,
                            new AccelKey (Gdk.Key.
                                      q,
                                      Gdk.
                                      ModifierType.
                                      ControlMask,
                                      AccelFlags.
                                      Visible));
                toolbutton = new ToolButton (Stock.Info);
                toolbutton.Label =
                    Catalog.GetString ("Openings");
                toolbutton.ShowAll ();

                this.db = db;
                store = new TreeStore (typeof (string),
                               typeof (int),
                               typeof (string));
                this.db.PopulateTree (store);
                view = new TreeView ();
                view.Model = store;
                view.AppendColumn (Catalog.
                           GetString ("Moves"),
                           new CellRendererText (),
                           "text", 0);
                view.AppendColumn (Catalog.
                           GetString ("Variations"),
                           new CellRendererText (),
                           "text", 1);
                view.AppendColumn (Catalog.
                           GetString ("Name"),
                           new CellRendererText (),
                           "markup", 2);

                ScrolledWindow win = new ScrolledWindow ();
                win.SetPolicy (PolicyType.Automatic,
                           PolicyType.Automatic);
                win.Add (view);

                boardWidget = new GameViewerBoard ();
                HPaned split = new HPaned ();
                VBox box = new VBox ();
                box.PackStart (boardWidget, true, true, 2);
                split.Pack1 (box, false, true);	// resize, shrink
                split.Pack2 (win, true, true);
                split.ShowAll ();
                //split.Position = 400;
                int width, height;
                CsBoardApp.Instance.Window.GetSize (out width,
                                    out
                                    height);
                split.Position =
                    (int) Math.Round (width * 0.5f);
                split.PositionSet = true;
                PackStart (split, true, true, 2);

                view.CursorChanged += OnCursorChanged;
                ShowAll ();
            }
Example #50
0
        public SparkleSetup() : base()
        {
            Controller.HideWindowEvent += delegate {
                Application.Invoke(delegate {
                    HideAll();
                });
            };

            Controller.ShowWindowEvent += delegate {
                Application.Invoke(delegate {
                    ShowAll();
                    Present();
                });
            };

            Controller.ChangePageEvent += delegate(PageType type, string [] warnings) {
                Application.Invoke(delegate {
                    Reset();

                    switch (type)
                    {
                    case PageType.Setup: {
                        Header      = "Welcome to SparkleShare!";
                        Description = "First off, what's your name and email?\nThis information is only visible to team members.";

                        Table table = new Table(2, 3, true)
                        {
                            RowSpacing    = 6,
                            ColumnSpacing = 6
                        };

                        Label name_label = new Label("<b>" + "Full Name:" + "</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 1
                        };

                        string username = UnixUserInfo.GetRealUser().RealName;
                        username        = username.TrimEnd(",".ToCharArray());

                        Entry name_entry = new Entry(username)
                        {
                            Xalign           = 0,
                            ActivatesDefault = true
                        };

                        Entry email_entry = new Entry()
                        {
                            Xalign           = 0,
                            ActivatesDefault = true
                        };

                        name_entry.Changed += delegate {
                            Controller.CheckSetupPage(name_entry.Text, email_entry.Text);
                        };

                        email_entry.Changed += delegate {
                            Controller.CheckSetupPage(name_entry.Text, email_entry.Text);
                        };

                        Label email_label = new Label("<b>" + "Email:" + "</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 1
                        };

                        table.Attach(name_label, 0, 1, 0, 1);
                        table.Attach(name_entry, 1, 2, 0, 1);
                        table.Attach(email_label, 0, 1, 1, 2);
                        table.Attach(email_entry, 1, 2, 1, 2);

                        VBox wrapper = new VBox(false, 9);
                        wrapper.PackStart(table, true, false, 0);

                        Button cancel_button = new Button("Cancel");

                        cancel_button.Clicked += delegate {
                            Controller.SetupPageCancelled();
                        };

                        Button continue_button = new Button("Continue")
                        {
                            Sensitive = false
                        };

                        continue_button.Clicked += delegate(object o, EventArgs args) {
                            string full_name = name_entry.Text;
                            string email     = email_entry.Text;

                            Controller.SetupPageCompleted(full_name, email);
                        };

                        AddButton(cancel_button);
                        AddButton(continue_button);
                        Add(wrapper);


                        Controller.UpdateSetupContinueButtonEvent += delegate(bool button_enabled) {
                            Application.Invoke(delegate {
                                    continue_button.Sensitive = button_enabled;
                                });
                        };

                        Controller.CheckSetupPage(name_entry.Text, email_entry.Text);

                        break;
                    }

                    case PageType.Add: {
                        Header = "Where's your project hosted?";

                        VBox layout_vertical = new VBox(false, 12);
                        HBox layout_fields   = new HBox(true, 12);
                        VBox layout_address  = new VBox(true, 0);
                        VBox layout_path     = new VBox(true, 0);


                        ListStore store = new ListStore(typeof(Gdk.Pixbuf),
                                                        typeof(string), typeof(SparklePlugin));

                        SparkleTreeView tree = new SparkleTreeView(store)
                        {
                            HeadersVisible = false
                        };
                        ScrolledWindow scrolled_window = new ScrolledWindow();
                        scrolled_window.AddWithViewport(tree);

                        // Icon column
                        tree.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0);
                        tree.Columns [0].Cells [0].Xpad = 6;

                        // Service column
                        TreeViewColumn service_column = new TreeViewColumn()
                        {
                            Title = "Service"
                        };
                        CellRendererText service_cell = new CellRendererText()
                        {
                            Ypad = 4
                        };
                        service_column.PackStart(service_cell, true);
                        service_column.SetCellDataFunc(service_cell, new TreeCellDataFunc(RenderServiceColumn));

                        foreach (SparklePlugin plugin in Controller.Plugins)
                        {
                            store.AppendValues(
                                new Gdk.Pixbuf(plugin.ImagePath),
                                "<span size=\"small\"><b>" + plugin.Name + "</b>\n" +
                                "<span fgcolor=\"" + SecondaryTextColorSelected + "\">" +
                                plugin.Description + "</span>" +
                                "</span>",
                                plugin);
                        }

                        tree.AppendColumn(service_column);

                        Entry address_entry = new Entry()
                        {
                            Text             = Controller.PreviousAddress,
                            Sensitive        = (Controller.SelectedPlugin.Address == null),
                            ActivatesDefault = true
                        };

                        Entry path_entry = new Entry()
                        {
                            Text             = Controller.PreviousPath,
                            Sensitive        = (Controller.SelectedPlugin.Path == null),
                            ActivatesDefault = true
                        };

                        Label address_example = new Label()
                        {
                            Xalign    = 0,
                            UseMarkup = true,
                            Markup    = "<span size=\"small\" fgcolor=\"" +
                                        SecondaryTextColor + "\">" + Controller.SelectedPlugin.AddressExample + "</span>"
                        };

                        Label path_example = new Label()
                        {
                            Xalign    = 0,
                            UseMarkup = true,
                            Markup    = "<span size=\"small\" fgcolor=\"" +
                                        SecondaryTextColor + "\">" + Controller.SelectedPlugin.PathExample + "</span>"
                        };


                        // Select the first plugin by default
                        TreeSelection default_selection = tree.Selection;
                        TreePath default_path           = new TreePath("0");
                        default_selection.SelectPath(default_path);
                        Controller.SelectedPluginChanged(0);

                        Controller.ChangeAddressFieldEvent += delegate(string text,
                                                                       string example_text, FieldState state) {
                            Application.Invoke(delegate {
                                    address_entry.Text      = text;
                                    address_entry.Sensitive = (state == FieldState.Enabled);
                                    address_example.Markup  = "<span size=\"small\" fgcolor=\"" +
                                                              SecondaryTextColor + "\">" + example_text + "</span>";
                                });
                        };

                        Controller.ChangePathFieldEvent += delegate(string text,
                                                                    string example_text, FieldState state) {
                            Application.Invoke(delegate {
                                    path_entry.Text      = text;
                                    path_entry.Sensitive = (state == FieldState.Enabled);
                                    path_example.Markup  = "<span size=\"small\" fgcolor=\""
                                                           + SecondaryTextColor + "\">" + example_text + "</span>";
                                });
                        };

                        Controller.CheckAddPage(address_entry.Text, path_entry.Text, 1);

                        // Update the address field text when the selection changes
                        tree.CursorChanged += delegate(object sender, EventArgs e) {
                            Controller.SelectedPluginChanged(tree.SelectedRow);
                            // TODO: Scroll to selected row when using arrow keys
                        };

                        tree.Model.Foreach(new TreeModelForeachFunc(delegate(TreeModel model,
                                                                             TreePath path, TreeIter iter) {
                                string address;

                                try {
                                    address = (model.GetValue(iter, 2) as SparklePlugin).Address;
                                } catch (NullReferenceException) {
                                    address = "";
                                }

                                if (!string.IsNullOrEmpty(address) &&
                                    address.Equals(Controller.PreviousAddress))
                                {
                                    tree.SetCursor(path, service_column, false);
                                    SparklePlugin plugin = (SparklePlugin)model.GetValue(iter, 2);

                                    if (plugin.Address != null)
                                    {
                                        address_entry.Sensitive = false;
                                    }

                                    if (plugin.Path != null)
                                    {
                                        path_entry.Sensitive = false;
                                    }

                                    // TODO: Scroll to the selection

                                    return(true);
                                }
                                else
                                {
                                    return(false);
                                }
                            }));


                        address_entry.Changed += delegate {
                            Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree.SelectedRow);
                        };

                        layout_address.PackStart(new Label()
                            {
                                Markup = "<b>" + "Address:" + "</b>",
                                Xalign = 0
                            }, true, true, 0);

                        layout_address.PackStart(address_entry, false, false, 0);
                        layout_address.PackStart(address_example, false, false, 0);

                        path_entry.Changed += delegate {
                            Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree.SelectedRow);
                        };

                        layout_path.PackStart(new Label()
                            {
                                Markup = "<b>" + "Remote Path:" + "</b>",
                                Xalign = 0
                            }, true, true, 0);

                        layout_path.PackStart(path_entry, false, false, 0);
                        layout_path.PackStart(path_example, false, false, 0);

                        layout_fields.PackStart(layout_address);
                        layout_fields.PackStart(layout_path);

                        layout_vertical.PackStart(new Label(""), false, false, 0);
                        layout_vertical.PackStart(scrolled_window, true, true, 0);
                        layout_vertical.PackStart(layout_fields, false, false, 0);

                        Add(layout_vertical);

                        // Cancel button
                        Button cancel_button = new Button("Cancel");

                        cancel_button.Clicked += delegate {
                            Controller.PageCancelled();
                        };

                        Button add_button = new Button("Add")
                        {
                            Sensitive = false
                        };

                        add_button.Clicked += delegate {
                            string server      = address_entry.Text;
                            string folder_name = path_entry.Text;

                            Controller.AddPageCompleted(server, folder_name);
                        };

                        Controller.UpdateAddProjectButtonEvent += delegate(bool button_enabled) {
                            Application.Invoke(delegate {
                                    add_button.Sensitive = button_enabled;
                                });
                        };


                        CheckButton check_button = new CheckButton("Fetch prior history")
                        {
                            Active = false
                        };

                        check_button.Toggled += delegate {
                            Controller.HistoryItemChanged(check_button.Active);
                        };

                        AddOption(check_button);
                        AddButton(cancel_button);
                        AddButton(add_button);

                        Controller.CheckAddPage(address_entry.Text, path_entry.Text, 1);

                        break;
                    }

                    case PageType.Invite: {
                        Header      = "You've received an invite!";
                        Description = "Do you want to add this project to SparkleShare?";


                        Table table = new Table(2, 3, true)
                        {
                            RowSpacing    = 6,
                            ColumnSpacing = 6
                        };

                        Label address_label = new Label("Address:")
                        {
                            Xalign = 1
                        };

                        Label path_label = new Label("Remote Path:")
                        {
                            Xalign = 1
                        };

                        Label address_value = new Label("<b>" + Controller.PendingInvite.Address + "</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 0
                        };

                        Label path_value = new Label("<b>" + Controller.PendingInvite.RemotePath + "</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 0
                        };

                        table.Attach(address_label, 0, 1, 0, 1);
                        table.Attach(address_value, 1, 2, 0, 1);
                        table.Attach(path_label, 0, 1, 1, 2);
                        table.Attach(path_value, 1, 2, 1, 2);

                        VBox wrapper = new VBox(false, 9);
                        wrapper.PackStart(table, true, false, 0);

                        Button cancel_button = new Button("Cancel");

                        cancel_button.Clicked += delegate {
                            Controller.PageCancelled();
                        };

                        Button add_button = new Button("Add");

                        add_button.Clicked += delegate {
                            Controller.InvitePageCompleted();
                        };

                        AddButton(cancel_button);
                        AddButton(add_button);
                        Add(wrapper);

                        break;
                    }

                    case PageType.Syncing: {
                        Header      = String.Format("Adding project ‘{0}’…", Controller.SyncingFolder);
                        Description = "This may take a while for large projects.\nIsn't it coffee-o'clock?";

                        this.progress_bar.Fraction = Controller.ProgressBarPercentage / 100;

                        Button finish_button = new Button()
                        {
                            Sensitive = false,
                            Label     = "Finish"
                        };

                        Button cancel_button = new Button()
                        {
                            Label = "Cancel"
                        };

                        cancel_button.Clicked += delegate {
                            Controller.SyncingCancelled();
                        };

                        AddButton(cancel_button);
                        AddButton(finish_button);

                        Controller.UpdateProgressBarEvent += delegate(double percentage) {
                            Application.Invoke(delegate {
                                    this.progress_bar.Fraction = percentage / 100;
                                });
                        };

                        if (this.progress_bar.Parent != null)
                        {
                            (this.progress_bar.Parent as Container).Remove(this.progress_bar);
                        }

                        VBox bar_wrapper = new VBox(false, 0);
                        bar_wrapper.PackStart(this.progress_bar, false, false, 15);

                        Add(bar_wrapper);

                        break;
                    }

                    case PageType.Error: {
                        Header = "Oops! Something went wrong" + "…";

                        VBox points            = new VBox(false, 0);
                        Image list_point_one   = new Image(SparkleUIHelpers.GetIcon("list-point", 16));
                        Image list_point_two   = new Image(SparkleUIHelpers.GetIcon("list-point", 16));
                        Image list_point_three = new Image(SparkleUIHelpers.GetIcon("list-point", 16));

                        Label label_one = new Label()
                        {
                            Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we've compiled. " +
                                     "Does this look alright?",
                            Wrap   = true,
                            Xalign = 0
                        };

                        Label label_two = new Label()
                        {
                            Text   = "Do you have access rights to this remote project?",
                            Wrap   = true,
                            Xalign = 0
                        };

                        points.PackStart(new Label("Please check the following:")
                            {
                                Xalign = 0
                            }, false, false, 6);

                        HBox point_one = new HBox(false, 0);
                        point_one.PackStart(list_point_one, false, false, 0);
                        point_one.PackStart(label_one, true, true, 12);
                        points.PackStart(point_one, false, false, 12);

                        HBox point_two = new HBox(false, 0);
                        point_two.PackStart(list_point_two, false, false, 0);
                        point_two.PackStart(label_two, true, true, 12);
                        points.PackStart(point_two, false, false, 12);

                        if (warnings.Length > 0)
                        {
                            string warnings_markup = "";

                            foreach (string warning in warnings)
                            {
                                warnings_markup += "\n<b>" + warning + "</b>";
                            }

                            Label label_three = new Label()
                            {
                                Markup = "Here's the raw error message:" + warnings_markup,
                                Wrap   = true,
                                Xalign = 0
                            };

                            HBox point_three = new HBox(false, 0);
                            point_three.PackStart(list_point_three, false, false, 0);
                            point_three.PackStart(label_three, true, true, 12);
                            points.PackStart(point_three, false, false, 12);
                        }

                        points.PackStart(new Label(""), true, true, 0);

                        Button cancel_button = new Button("Cancel");

                        cancel_button.Clicked += delegate {
                            Controller.PageCancelled();
                        };

                        Button try_again_button = new Button("Try Again…")
                        {
                            Sensitive = true
                        };

                        try_again_button.Clicked += delegate {
                            Controller.ErrorPageCompleted();
                        };

                        AddButton(cancel_button);
                        AddButton(try_again_button);
                        Add(points);

                        break;
                    }

                    case PageType.CryptoSetup: {
                        Header      = "Set up file encryption";
                        Description = "This project is supposed to be encrypted, but it doesn't yet have a password set. Please provide one below.";

                        Label password_label = new Label("<b>" + "Password:"******"</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 1
                        };

                        Entry password_entry = new Entry()
                        {
                            Xalign           = 0,
                            Visibility       = false,
                            ActivatesDefault = true
                        };

                        CheckButton show_password_check_button = new CheckButton("Show password")
                        {
                            Active = false,
                            Xalign = 0,
                        };

                        show_password_check_button.Toggled += delegate {
                            password_entry.Visibility = !password_entry.Visibility;
                        };

                        password_entry.Changed += delegate {
                            Controller.CheckCryptoSetupPage(password_entry.Text);
                        };


                        Button continue_button = new Button("Continue")
                        {
                            Sensitive = false
                        };

                        continue_button.Clicked += delegate {
                            Controller.CryptoSetupPageCompleted(password_entry.Text);
                        };

                        Button cancel_button = new Button("Cancel");

                        cancel_button.Clicked += delegate {
                            Controller.CryptoPageCancelled();
                        };

                        Controller.UpdateCryptoSetupContinueButtonEvent += delegate(bool button_enabled) {
                            Application.Invoke(delegate {
                                    continue_button.Sensitive = button_enabled;
                                });
                        };


                        Table table = new Table(2, 3, true)
                        {
                            RowSpacing    = 6,
                            ColumnSpacing = 6
                        };


                        table.Attach(password_label, 0, 1, 0, 1);
                        table.Attach(password_entry, 1, 2, 0, 1);

                        table.Attach(show_password_check_button, 1, 2, 1, 2);

                        VBox wrapper = new VBox(false, 9);
                        wrapper.PackStart(table, true, false, 0);


                        Image warning_image = new Image(
                            SparkleUIHelpers.GetIcon("dialog-information", 24)
                            );

                        Label warning_label = new Label()
                        {
                            Xalign = 0,
                            Wrap   = true,
                            Text   = "This password can't be changed later, and your files can't be recovered if it's forgotten."
                        };

                        HBox warning_layout = new HBox(false, 0);
                        warning_layout.PackStart(warning_image, false, false, 15);
                        warning_layout.PackStart(warning_label, true, true, 0);

                        VBox warning_wrapper = new VBox(false, 0);
                        warning_wrapper.PackStart(warning_layout, false, false, 15);

                        wrapper.PackStart(warning_wrapper, false, false, 0);


                        Add(wrapper);



                        AddButton(cancel_button);
                        AddButton(continue_button);

                        break;
                    }

                    case PageType.CryptoPassword: {
                        Header      = "This project contains encrypted files";
                        Description = "Please enter the password to see their contents.";

                        Label password_label = new Label("<b>" + "Password:"******"</b>")
                        {
                            UseMarkup = true,
                            Xalign    = 1
                        };

                        Entry password_entry = new Entry()
                        {
                            Xalign           = 0,
                            Visibility       = false,
                            ActivatesDefault = true
                        };

                        CheckButton show_password_check_button = new CheckButton("Show password")
                        {
                            Active = false,
                            Xalign = 0
                        };

                        show_password_check_button.Toggled += delegate {
                            password_entry.Visibility = !password_entry.Visibility;
                        };

                        password_entry.Changed += delegate {
                            Controller.CheckCryptoPasswordPage(password_entry.Text);
                        };


                        Button continue_button = new Button("Continue")
                        {
                            Sensitive = false
                        };

                        continue_button.Clicked += delegate {
                            Controller.CryptoPasswordPageCompleted(password_entry.Text);
                        };

                        Button cancel_button = new Button("Cancel");

                        cancel_button.Clicked += delegate {
                            Controller.CryptoPageCancelled();
                        };

                        Controller.UpdateCryptoPasswordContinueButtonEvent += delegate(bool button_enabled) {
                            Application.Invoke(delegate {
                                    continue_button.Sensitive = button_enabled;
                                });
                        };

                        Table table = new Table(2, 3, true)
                        {
                            RowSpacing    = 6,
                            ColumnSpacing = 6
                        };

                        table.Attach(password_label, 0, 1, 0, 1);
                        table.Attach(password_entry, 1, 2, 0, 1);

                        table.Attach(show_password_check_button, 1, 2, 1, 2);

                        VBox wrapper = new VBox(false, 9);
                        wrapper.PackStart(table, true, false, 0);

                        Add(wrapper);

                        AddButton(cancel_button);
                        AddButton(continue_button);

                        break;
                    }

                    case PageType.Finished: {
                        UrgencyHint = true;

                        if (!HasToplevelFocus)
                        {
                            string title   = "Your shared project is ready!";
                            string subtext = "You can find the files in your SparkleShare folder.";

                            Program.UI.Bubbles.Controller.ShowBubble(title, subtext, null);
                        }

                        Header      = "Your shared project is ready!";
                        Description = "You can find it in your SparkleShare folder";

                        // A button that opens the synced folder
                        Button open_folder_button = new Button(string.Format("Open {0}",
                                                                             System.IO.Path.GetFileName(Controller.PreviousPath)));

                        open_folder_button.Clicked += delegate {
                            Controller.OpenFolderClicked();
                        };

                        Button finish_button = new Button("Finish");

                        finish_button.Clicked += delegate {
                            Controller.FinishPageCompleted();
                        };


                        if (warnings.Length > 0)
                        {
                            Image warning_image = new Image(
                                SparkleUIHelpers.GetIcon("dialog-information", 24)
                                );

                            Label warning_label = new Label(warnings [0])
                            {
                                Xalign = 0,
                                Wrap   = true
                            };

                            HBox warning_layout = new HBox(false, 0);
                            warning_layout.PackStart(warning_image, false, false, 15);
                            warning_layout.PackStart(warning_label, true, true, 0);

                            VBox warning_wrapper = new VBox(false, 0);
                            warning_wrapper.PackStart(warning_layout, false, false, 0);

                            Add(warning_wrapper);
                        }
                        else
                        {
                            Add(null);
                        }


                        AddButton(open_folder_button);
                        AddButton(finish_button);

                        break;
                    }


                    case PageType.Tutorial: {
                        switch (Controller.TutorialPageNumber)
                        {
                        case 1: {
                            Header      = "What's happening next?";
                            Description = "SparkleShare creates a special folder on your computer " +
                                          "that will keep track of your projects.";

                            Button skip_tutorial_button   = new Button("Skip Tutorial");
                            skip_tutorial_button.Clicked += delegate {
                                Controller.TutorialSkipped();
                            };

                            Button continue_button   = new Button("Continue");
                            continue_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-1.png");

                            Add(slide);

                            AddButton(skip_tutorial_button);
                            AddButton(continue_button);

                            break;
                        }

                        case 2: {
                            Header      = "Sharing files with others";
                            Description = "All files added to your project folders are synced automatically with " +
                                          "the host and your team members.";

                            Button continue_button   = new Button("Continue");
                            continue_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-2.png");

                            Add(slide);
                            AddButton(continue_button);

                            break;
                        }

                        case 3: {
                            Header      = "The status icon is here to help";
                            Description = "It shows the syncing progress, provides easy access to " +
                                          "your projects and let's you view recent changes.";

                            Button continue_button   = new Button("Continue");
                            continue_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-3.png");

                            Add(slide);
                            AddButton(continue_button);

                            break;
                        }

                        case 4: {
                            Header      = "Adding projects to SparkleShare";
                            Description = "You can do this through the status icon menu, or by clicking " +
                                          "magic buttons on webpages that look like this:";

                            Image slide = SparkleUIHelpers.GetImage("tutorial-slide-4.png");

                            Button finish_button   = new Button("Finish");
                            finish_button.Clicked += delegate {
                                Controller.TutorialPageCompleted();
                            };


                            CheckButton check_button = new CheckButton("Add SparkleShare to startup items")
                            {
                                Active = true
                            };

                            check_button.Toggled += delegate {
                                Controller.StartupItemChanged(check_button.Active);
                            };

                            Add(slide);
                            AddOption(check_button);
                            AddButton(finish_button);

                            break;
                        }
                        }

                        break;
                    }
                    }

                    ShowAll();
                });
            };
        }