Gtk.TreeView BuildTreeViewDest()
        {
            var toret        = new Gtk.TreeView();
            var artistColumn = new Gtk.TreeViewColumn {
                Title = "Selected artist"
            };
            var songColumn = new Gtk.TreeViewColumn {
                Title = "Selected song title"
            };

            // Add the columns to the TreeView
            toret.AppendColumn(artistColumn);
            toret.AppendColumn(songColumn);

            // Create a model that will hold two strings - Artist Name and Song Title
            var musicListStore = new Gtk.ListStore(typeof(string), typeof(string));
            var artistNameCell = new Gtk.CellRendererText();
            var songTitleCell  = new Gtk.CellRendererText();

            artistColumn.PackStart(artistNameCell, true);
            songColumn.PackStart(songTitleCell, true);

            artistColumn.AddAttribute(artistNameCell, "text", 0);
            songColumn.AddAttribute(songTitleCell, "text", 1);

            toret.Selection.Mode = Gtk.SelectionMode.None;
            toret.Model          = musicListStore;
            toret.Selection.Mode = Gtk.SelectionMode.Multiple;

            return(toret);
        }
		public SignalsEditorBackend (SignalsEditorFrontend frontend)
		{
			this.frontend = frontend;
			
			tree = new Gtk.TreeView ();
			store = new Gtk.TreeStore (typeof(string), typeof(string), typeof(bool), typeof(bool), typeof(bool), typeof(int));
			tree.Model = store;
			tree.RowActivated += new Gtk.RowActivatedHandler (OnRowActivated);
			
			Gtk.CellRendererText crtSignal = new Gtk.CellRendererText ();
			
			Gtk.CellRendererText crtHandler = new Gtk.CellRendererText ();
			crtHandler.Editable = true;
			crtHandler.Edited += new Gtk.EditedHandler (OnHandlerEdited);
			
			Gtk.CellRendererToggle crtogAfter = new Gtk.CellRendererToggle ();
			crtogAfter.Activatable = true;
			crtogAfter.Toggled += new Gtk.ToggledHandler (OnAfterToggled);
			
			tree.AppendColumn (Catalog.GetString ("Signal"), crtSignal, "text", ColSignal, "weight", ColSignalTextWeight);
			tree.AppendColumn (Catalog.GetString ("Handler"), crtHandler, "markup", ColHandler, "visible", ColIsSignal);
			tree.AppendColumn (Catalog.GetString ("After"), crtogAfter, "active", ColAfter, "visible", ColHasHandler);
			tree.Columns[0].Resizable = true;
			tree.Columns[1].Resizable = true;
			tree.Columns[2].Resizable = true;
			Add (tree);
			ShowAll ();
		}
 public TreeViewExample()
 {
     Gtk.Window window = new Gtk.Window("TreeView Example");
     window.SetSizeRequest(500, 200);
     Gtk.TreeView tree = new Gtk.TreeView();
     window.Add(tree);
     Gtk.TreeViewColumn Parent = new Gtk.TreeViewColumn();
     Parent.Title = "Parent";
     Gtk.CellRendererText Parent1 = new Gtk.CellRendererText();
     Parent.PackStart(Parent1, true);
     Gtk.TreeViewColumn ChildColoumn1 = new Gtk.TreeViewColumn();
     ChildColoumn1.Title = "Column 1";
     Gtk.CellRendererText Child1 = new Gtk.CellRendererText();
     ChildColoumn1.PackStart(Child1, true);
     Gtk.TreeViewColumn ChildColumn2 = new Gtk.TreeViewColumn();
     ChildColumn2.Title = "Column 2";
     Gtk.CellRendererText Child2 = new Gtk.CellRendererText();
     ChildColumn2.PackStart(Child2, true);
     tree.AppendColumn(Parent);
     tree.AppendColumn(ChildColoumn1);
     tree.AppendColumn(ChildColumn2);
     Parent.AddAttribute(Parent1, "text", 0);
     ChildColoumn1.AddAttribute(Child1, "text", 1);
     ChildColumn2.AddAttribute(Child2, "text", 2);
     Gtk.TreeStore Tree = new Gtk.TreeStore(typeof(string), typeof(string), typeof(string));
     Gtk.TreeIter  iter = Tree.AppendValues("Parent1");
     Tree.AppendValues(iter, "Child1", "Node 1");
     iter = Tree.AppendValues("Parent2");
     Tree.AppendValues(iter, "Child1", "Node 1", "Node 2");
     tree.Model = Tree;
     window.ShowAll();
 }
Exemple #4
0
        public SignalsEditorBackend(SignalsEditorFrontend frontend)
        {
            this.frontend = frontend;

            tree               = new Gtk.TreeView();
            store              = new Gtk.TreeStore(typeof(string), typeof(string), typeof(bool), typeof(bool), typeof(bool), typeof(SignalDescriptor), typeof(Signal), typeof(int));
            tree.Model         = store;
            tree.RowActivated += new Gtk.RowActivatedHandler(OnRowActivated);

            Gtk.CellRendererText crtSignal = new Gtk.CellRendererText();

            Gtk.CellRendererText crtHandler = new Gtk.CellRendererText();
            crtHandler.Editable = true;
            crtHandler.Edited  += new Gtk.EditedHandler(OnHandlerEdited);

            Gtk.CellRendererToggle crtogAfter = new Gtk.CellRendererToggle();
            crtogAfter.Activatable = true;
            crtogAfter.Toggled    += new Gtk.ToggledHandler(OnAfterToggled);

            tree.AppendColumn(Catalog.GetString("Signal"), crtSignal, "text", ColSignal, "weight", ColSignalTextWeight);
            tree.AppendColumn(Catalog.GetString("Handler"), crtHandler, "markup", ColHandler, "visible", ColIsSignal);
            tree.AppendColumn(Catalog.GetString("After"), crtogAfter, "active", ColAfter, "visible", ColHasHandler);
            tree.Columns[0].Resizable = true;
            tree.Columns[1].Resizable = true;
            tree.Columns[2].Resizable = true;
            Add(tree);
            ShowAll();
        }
Exemple #5
0
        public ServerListView(Gtk.Window parent, Glade.XML gladeXml)
        {
            Trace.Call(parent, gladeXml);

            if (parent == null)
            {
                throw new ArgumentNullException("parent");
            }

            _Parent     = parent;
            _Controller = new ServerListController(Frontend.UserConfig);

            gladeXml.BindFields(this);

            _AddButton.Clicked    += new EventHandler(OnAddButtonClicked);
            _EditButton.Clicked   += new EventHandler(OnEditButtonClicked);
            _RemoveButton.Clicked += new EventHandler(OnRemoveButtonClicked);

            _TreeView.AppendColumn(_("Protocol"), new Gtk.CellRendererText(), "text", 1);
            _TreeView.AppendColumn(_("Hostname"), new Gtk.CellRendererText(), "text", 2);

            _TreeStore = new Gtk.TreeStore(typeof(ServerModel),
                                           typeof(string), // protocol
                                           typeof(string)  // hostname
                                           );
            _TreeView.RowActivated      += OnTreeViewRowActivated;
            _TreeView.Selection.Changed += OnTreeViewSelectionChanged;
            _TreeView.Model              = _TreeStore;
        }
 protected virtual void AddTreeViewColumns()
 {
     crtName    = MakeEditableCellRenderer();
     crtValue   = MakeEditableCellRenderer();
     crtComment = MakeEditableCellRenderer();
     treeView.AppendColumn("", crt, new Gtk.TreeCellDataFunc(CountDataFunc));
     treeView.AppendColumn("Name", crtName, new Gtk.TreeCellDataFunc(NameDataFunc));
     treeView.AppendColumn("Value", crtValue, new Gtk.TreeCellDataFunc(ValueDataFunc));
     treeView.AppendColumn("Comment", crtComment, new Gtk.TreeCellDataFunc(CommentDataFunc));
 }
Exemple #7
0
        private void InitKeysPane(Gtk.TreeView treeView, bool?used = null, bool?isChange = null)
        {
            _Store = new Gtk.ListStore(typeof(Key), typeof(string), typeof(string), typeof(string), typeof(string));

            treeView.Selection.Mode = Gtk.SelectionMode.Single;

            treeView.Model = _Store;
            treeView.AppendColumn("Public", new Gtk.CellRendererText(), "text", 1);
            treeView.AppendColumn("Private", new Gtk.CellRendererText(), "text", 2);
            treeView.AppendColumn("Used?", new Gtk.CellRendererText(), "text", 3);
            treeView.AppendColumn("Change?", new Gtk.CellRendererText(), "text", 4);

            Populate(treeView, used, isChange);
        }
    public TreeViewExample()
    {
        // Create a Window
        Gtk.Window window = new Gtk.Window("TreeView Example");
        window.SetSizeRequest(500, 200);

        // Create our TreeView
        Gtk.TreeView tree = new Gtk.TreeView();

        // Add our tree to the window
        window.Add(tree);

        // Create a column for the artist name
        Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn();
        artistColumn.Title = "Artist";

        // Create the text cell that will display the artist name
        Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText();

        // Add the cell to the column
        artistColumn.PackStart(artistNameCell, true);

        // Create a column for the song title
        Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn();
        songColumn.Title = "Song Title";

        // Do the same for the song title column
        Gtk.CellRendererText songTitleCell = new Gtk.CellRendererText();
        songColumn.PackStart(songTitleCell, true);

        // Add the columns to the TreeView
        tree.AppendColumn(artistColumn);
        tree.AppendColumn(songColumn);

        // Tell the Cell Renderers which items in the model to display
        artistColumn.AddAttribute(artistNameCell, "text", 0);
        songColumn.AddAttribute(songTitleCell, "text", 1);

        // Create a model that will hold two strings - Artist Name and Song Title
        Gtk.ListStore musicListStore = new Gtk.ListStore(typeof(string), typeof(string));

        // Add some data to the store
        musicListStore.AppendValues("Garbage", "Dog New Tricks");

        // Assign the model to the TreeView
        tree.Model = musicListStore;

        // Show the window and everything on it
        window.ShowAll();
    }
		public SendMessagesOverviewWindow()
		{
			// Create window
			Gtk.Window window = new Gtk.Window ( "Verzonden Berichten" );
			window.SetSizeRequest (700, 200);

			// Add tree to window
			Gtk.TreeView tree = new Gtk.TreeView ();
			window.Add (tree);

			// Create the column for displaying the telephone number.
			Gtk.TreeViewColumn numberReceiverColumn = new Gtk.TreeViewColumn ();
			numberReceiverColumn.Title = "Telefoon nummer";
			numberReceiverColumn.MinWidth = 200;
			// Create the text cell that will display the telephone number.
			Gtk.CellRendererText numberReceiverCell = new Gtk.CellRendererText ();
			// Add the cell to the column.
			numberReceiverColumn.PackStart (numberReceiverCell, true);

			// Create the column for displaing the message.
			Gtk.TreeViewColumn messageColumn = new Gtk.TreeViewColumn ();
			messageColumn.Title = "Bericht";
			messageColumn.MinWidth = 300;
			// Create the text cell that will display the message.
			Gtk.CellRendererText messageCell = new Gtk.CellRendererText ();
			messageColumn.PackStart (messageCell, true);

			// Create the column for displaying the date send.
			Gtk.TreeViewColumn sendAtColumn = new Gtk.TreeViewColumn ();
			sendAtColumn.Title = "Verstuurd op";
			sendAtColumn.MinWidth = 200;
			// Create the text cell that will display the date send.
			Gtk.CellRendererText sendAtCell = new Gtk.CellRendererText ();
			sendAtColumn.PackStart (sendAtCell, true);

			tree.AppendColumn (numberReceiverColumn);
			tree.AppendColumn (messageColumn);
			tree.AppendColumn (sendAtColumn);

			// Tell the cell renderers which items in the model to display
			numberReceiverColumn.AddAttribute (numberReceiverCell, "text", 0);
			messageColumn.AddAttribute (messageCell, "text", 1);
			sendAtColumn.AddAttribute (sendAtCell, "text", 2);

			// Assign the model to the TreeView
			tree.Model = this.getMessageList ();
			// Show the window and everythin on it.
			window.ShowAll ();
		}
Exemple #10
0
        private void InitializePortsList(Gtk.TreeView portsList)
        {
            var viewModel = DataContext as SerialPortSelectorViewModel;

            var column = new Gtk.TreeViewColumn()
            {
                Title = SerialPortSelectorViewModel.PortColumnTitle
            };
            var cellRenderer = new Gtk.CellRendererText();

            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <SerialPortViewModel>(l, c, m, i, p => p.PortName));
            ////column.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            ////column.FixedWidth = Properties.Settings.Default.MenuLayoutLongNameColWidth;
            ////column.Resizable = true;
            portsList.AppendColumn(column);

            portsList.Selection.Changed       += HandleSelectedPortChanged;
            portsList.Selection.SelectFunction = ShouldSelectPort;

            var serialPortsModel = new Gtk.ListStore(typeof(SerialPortViewModel));

            serialPortsModel.SynchronizeCollection(viewModel.AvailableSerialPorts);

            // TODO: Disable ports appropriately -- see ShouldSelect
            // TODO: Customize renderer somehow for disabled items to draw differently --
            // Tinkering with CellRendererText.Foreground does not work as desired.
            portsList.Model = serialPortsModel;

            viewModel.AvailableSerialPorts.CollectionChanged += HandleAvailablePortsChanged;
        }
        public FlagsSelectorDialog(Gtk.Window parent, EnumDescriptor enumDesc, uint flags, string title)
        {
            this.flags  = flags;
            this.parent = parent;

            Glade.XML xml = new Glade.XML(null, "stetic.glade", "FlagsSelectorDialog", null);
            xml.Autoconnect(this);

            store          = new Gtk.ListStore(typeof(bool), typeof(string), typeof(uint));
            treeView.Model = store;

            Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();

            Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle();
            tog.Toggled += new Gtk.ToggledHandler(OnToggled);
            col.PackStart(tog, false);
            col.AddAttribute(tog, "active", 0);

            Gtk.CellRendererText crt = new Gtk.CellRendererText();
            col.PackStart(crt, true);
            col.AddAttribute(crt, "text", 1);

            treeView.AppendColumn(col);

            foreach (Enum value in enumDesc.Values)
            {
                EnumValue eval = enumDesc[value];
                if (eval.Label == "")
                {
                    continue;
                }
                uint val = (uint)Convert.ToInt32(eval.Value);
                store.AppendValues(((flags & val) != 0), eval.Label, val);
            }
        }
Exemple #12
0
        public TreeViewHandler()
        {
            tree = new Gtk.TreeView();
            UpdateModel();
            tree.HeadersVisible = false;

            var col    = new Gtk.TreeViewColumn();
            var pbcell = new Gtk.CellRendererPixbuf();

            col.PackStart(pbcell, false);
            col.SetAttributes(pbcell, "pixbuf", 1);
            textCell = new Gtk.CellRendererText();
            col.PackStart(textCell, true);
            col.SetAttributes(textCell, "text", 0);
            tree.AppendColumn(col);


            tree.ShowExpanders = true;

            Control            = new Gtk.ScrolledWindow();
            Control.ShadowType = Gtk.ShadowType.In;
            Control.Add(tree);

            tree.Events           |= Gdk.EventMask.ButtonPressMask;
            tree.ButtonPressEvent += HandleTreeButtonPressEvent;
        }
Exemple #13
0
        /// <summary>
        /// Calcula la vista que mostrará la lista de ejercicios (<see cref="ExerciseTreeView"></see>).
        /// </summary>
        /// <returns>La vista en la que se muestra una lista de los ejercicios (<see cref="ExerciseTreeView"></see>).</returns>
        private Gtk.VBox ExercisesListView()
        {
            var ViewBox = new Gtk.VBox(false, 5);

            // ------------------INICIALIZACION---------------------

            // Tree.
            ExercisesTreeview = new Gtk.TreeView();
            ExercisesTreeview.HeightRequest = 150;

            // Tree model.
            ExercisesTreeview.Model =
                new Gtk.ListStore(typeof(string), typeof(string), typeof(string));

            // Tree events
            ExercisesTreeview.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnRightExercise);

            // Tree columns.
            var DistRender = new Gtk.CellRendererText();

            DistRender.Editable = true;
            DistRender.Edited  += ExercisesDistEdit;

            var MinsRender = new Gtk.CellRendererText();

            MinsRender.Editable = true;
            MinsRender.Edited  += ExercisesMinsEdit;

            // Boxes Creation.
            var TreeScroll = new Gtk.ScrolledWindow();
            var TreeSpace  = new Gtk.HBox(false, 5);

            // -------------------COMPOSICION------------------------

            // Tree Columns Append.
            ExercisesTreeview.AppendColumn("Dist", DistRender, "text", 0);
            ExercisesTreeview.AppendColumn("Mins", MinsRender, "text", 1);
            ExercisesTreeview.AppendColumn("Date", new Gtk.CellRendererText(), "text", 2);

            // Fill Boxes.
            TreeScroll.Add(ExercisesTreeview);
            TreeSpace.Add(TreeScroll);

            ViewBox.Add(TreeSpace);

            return(ViewBox);
        }
Exemple #14
0
		public LogWindow() : base("Log Model")
		{
			this.Move(0,0);

			this.SetSizeRequest(600, 500);

			Gtk.TreeView treeviewLog = new Gtk.TreeView();

			Gtk.TreeViewColumn idColumn = new Gtk.TreeViewColumn ();
			idColumn.Title = "Id";

			Gtk.TreeViewColumn typeColumn = new Gtk.TreeViewColumn ();
			typeColumn.Title = "Type";

			Gtk.TreeViewColumn descriptionColumn = new Gtk.TreeViewColumn ();
			descriptionColumn.Title = "Description";

			logListStore = new Gtk.ListStore (typeof (string), typeof (string), typeof (string));

			treeviewLog.AppendColumn(idColumn);
			treeviewLog.AppendColumn(typeColumn);
			treeviewLog.AppendColumn(descriptionColumn);

			treeviewLog.Model = logListStore;




			Gtk.CellRendererText idCell = new Gtk.CellRendererText ();
			idColumn.PackStart(idCell, true);

			Gtk.CellRendererText typeCell = new Gtk.CellRendererText ();
			typeColumn.PackStart(typeCell, true);

			Gtk.CellRendererText descriptionCell = new Gtk.CellRendererText ();
			descriptionColumn.PackStart(descriptionCell, true);

			idColumn.AddAttribute(idCell, "text", 0);
			typeColumn.AddAttribute(typeCell, "text", 1);
			descriptionColumn.AddAttribute(descriptionCell, "text", 2);

			Gtk.ScrolledWindow scWindow = new Gtk.ScrolledWindow();
			scWindow.Add(treeviewLog);

			this.Add(scWindow);

		}
Exemple #15
0
        void Init()
        {
            _Controller = new ServerListController(Frontend.UserConfig);

            _TreeView.AppendColumn(_("Protocol"), new Gtk.CellRendererText(), "text", 1);
            _TreeView.AppendColumn(_("Hostname"), new Gtk.CellRendererText(), "text", 2);

            _TreeStore = new Gtk.TreeStore(typeof(ServerModel),
                                           typeof(string), // protocol
                                           typeof(string)  // hostname
                                           );
            _TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending);
            _TreeStore.SetSortFunc(0, SortTreeStore);
            _TreeView.RowActivated      += OnTreeViewRowActivated;
            _TreeView.Selection.Changed += OnTreeViewSelectionChanged;
            _TreeView.Model              = _TreeStore;
        }
Exemple #16
0
        public LogWindow() : base("Log Model")
        {
            this.Move(0, 0);

            this.SetSizeRequest(600, 500);

            Gtk.TreeView treeviewLog = new Gtk.TreeView();

            Gtk.TreeViewColumn idColumn = new Gtk.TreeViewColumn();
            idColumn.Title = "Id";

            Gtk.TreeViewColumn typeColumn = new Gtk.TreeViewColumn();
            typeColumn.Title = "Type";

            Gtk.TreeViewColumn descriptionColumn = new Gtk.TreeViewColumn();
            descriptionColumn.Title = "Description";

            logListStore = new Gtk.ListStore(typeof(string), typeof(string), typeof(string));

            treeviewLog.AppendColumn(idColumn);
            treeviewLog.AppendColumn(typeColumn);
            treeviewLog.AppendColumn(descriptionColumn);

            treeviewLog.Model = logListStore;



            Gtk.CellRendererText idCell = new Gtk.CellRendererText();
            idColumn.PackStart(idCell, true);

            Gtk.CellRendererText typeCell = new Gtk.CellRendererText();
            typeColumn.PackStart(typeCell, true);

            Gtk.CellRendererText descriptionCell = new Gtk.CellRendererText();
            descriptionColumn.PackStart(descriptionCell, true);

            idColumn.AddAttribute(idCell, "text", 0);
            typeColumn.AddAttribute(typeCell, "text", 1);
            descriptionColumn.AddAttribute(descriptionCell, "text", 2);

            Gtk.ScrolledWindow scWindow = new Gtk.ScrolledWindow();
            scWindow.Add(treeviewLog);

            this.Add(scWindow);
        }
Exemple #17
0
 public MainWindow() :
     base(Gtk.WindowType.Toplevel)
 {
     this.Build();
     UserView = new Gtk.TreeView();
     Gtk.TreeViewColumn user = new Gtk.TreeViewColumn();
     user.Title = "TestUser";
     UserView.AppendColumn(user);
     frame1.Add(UserView);
 }
        Gtk.TreeView BuildTreeView()
        {
            var toret = new Gtk.TreeView();

            // Index column
            var columnIndex = new Gtk.TreeViewColumn {
                Title = "#"
            };

            var indexRenderer = new Gtk.CellRendererText();

            columnIndex.PackStart(indexRenderer, expand: true);
            columnIndex.AddAttribute(indexRenderer, "text", 0);

            // Data column
            var columnData = new Gtk.TreeViewColumn {
                Title = "Mixed column"
            };

            var dataRenderer1 = new Gtk.CellRendererPixbuf();

            columnData.PackStart(dataRenderer1, expand: false);
            columnData.AddAttribute(dataRenderer1, "pixbuf", 1);

            var dataRenderer2 = new Gtk.CellRendererText();

            columnData.PackStart(dataRenderer2, expand: true);
            columnData.AddAttribute(dataRenderer2, "text", 2);

            toret.AppendColumn(columnIndex);
            toret.AppendColumn(columnData);

            // Model
            var store = new Gtk.ListStore(typeof(string), typeof(Gdk.Pixbuf), typeof(string));

            toret.Model = store;

            store.AppendValues("1", this.IconYes, "works");
            store.AppendValues("2", this.IconNo, "does not work");

            return(toret);
        }
Exemple #19
0
        void IPlugin.Init(object context)
        {
            solidIDE   = context as ISolidIDE;
            mainWindow = solidIDE.GetMainWindow();

            // Dock with Tree
            Gtk.ScrolledWindow treeViewScrollWindow = new Gtk.ScrolledWindow();
            Gtk.Viewport       treeViewViewport     = new Gtk.Viewport();
            treeViewScrollWindow.Add(treeViewViewport);
            treeView = new Gtk.TreeView();
            treeViewViewport.Add(treeView);
            treeViewScrollWindow.ShowAll();
            Gtk.TreeViewColumn   col             = new Gtk.TreeViewColumn();
            Gtk.CellRendererText colAssemblyCell = new Gtk.CellRendererText();
            col.PackStart(colAssemblyCell, true);
            col.AddAttribute(colAssemblyCell, "text", 0);
            treeView.AppendColumn(col);
            treeView.Model          = new Gtk.TreeStore(typeof(string), typeof(Tool <Gdk.Event, Cairo.Context, Model>), typeof(Shape));
            treeView.RowActivated  += HandleRowActivated;
            treeView.CursorChanged += HandleCursorChanged;
            Gtk.Drag.SourceSet(
                treeView,
                Gdk.ModifierType.Button1Mask,
                new Gtk.TargetEntry[] { new Gtk.TargetEntry("application/x-solidide.shape", Gtk.TargetFlags.App, 0) },
                Gdk.DragAction.Copy
                );

            /*treeView.EnableModelDragSource(
             * Gdk.ModifierType.None,
             * new Gtk.TargetEntry[] { new TargetEntry("application/SolidIDE", 0, 0) },
             * Gdk.DragAction.Default);*/
            treeView.DragBegin   += HandleTreeViewDragBegin;
            treeView.DragDataGet += HandleTreeViewDragDataGet;
            //treeView.DragDrop += HandleTreeViewDragDrop;

            toolboxDockItem                = mainWindow.DockFrame.AddItem("Toolbox");
            toolboxDockItem.Behavior       = DockItemBehavior.Normal;
            toolboxDockItem.Expand         = true;
            toolboxDockItem.DrawFrame      = true;
            toolboxDockItem.Label          = "Toolbox";
            toolboxDockItem.Content        = treeViewScrollWindow;
            toolboxDockItem.DefaultVisible = true;
            toolboxDockItem.Visible        = true;

            UpdateToolbox();

            // Menu
            var viewMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("View");

            solidIDE.GetMenuItem <Gtk.TearoffMenuItem>("View", "TearoffView");
            var toolboxMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("View", "Toolbox");

            toolboxMenuItem.Activated += HandleShowToolboxActivated;
        }
    public TreeViewExample()
    {
        Gtk.Window window = new Gtk.Window("TreeView Example");
        window.SetSizeRequest(500, 200);

        Gtk.TreeView  tree           = new Gtk.TreeView();
        Gtk.ListStore musicListStore = new Gtk.ListStore(typeof(Gdk.Pixbuf),
                                                         typeof(string), typeof(string));

        tree.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0);
        tree.AppendColumn("Artist", new Gtk.CellRendererText(), "text", 1);
        tree.AppendColumn("Title", new Gtk.CellRendererText(), "text", 2);

        musicListStore.AppendValues(new Gdk.Pixbuf("TreeViewRupertIcon.png"),
                                    "Rupert", "Yellow bananas");

        tree.Model = musicListStore;

        window.Add(tree);
        window.ShowAll();
    }
    public TreeViewExample()
    {
        Gtk.Window window = new Gtk.Window("TreeView Example");
        window.SetSizeRequest(500, 200);

        Gtk.TreeView tree = new Gtk.TreeView();
        window.Add(tree);

        Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn();
        artistColumn.Title = "Artist";

        Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText();

        artistColumn.PackStart(artistNameCell, true);

        Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn();
        songColumn.Title = "Song Title";

        Gtk.CellRendererText songTitleCell = new Gtk.CellRendererText();
        songColumn.PackStart(songTitleCell, true);

        tree.AppendColumn(artistColumn);
        tree.AppendColumn(songColumn);

        artistColumn.AddAttribute(artistNameCell, "text", 0);
        songColumn.AddAttribute(songTitleCell, "text", 1);

        Gtk.TreeStore musicListStore = new Gtk.TreeStore(typeof(string), typeof(string));

        Gtk.TreeIter iter = musicListStore.AppendValues("Dance");
        musicListStore.AppendValues(iter, "Fannypack", "Nu Nu (Yeah Yeah) (double j and haze radio edit)");

        iter = musicListStore.AppendValues("Hip-hop");
        musicListStore.AppendValues(iter, "Nelly", "Country Grammer");

        tree.Model = musicListStore;

        window.ShowAll();
    }
 public static Gtk.Window CreateTreeWindow()
 {
     Gtk.Window           window = new Gtk.Window("Sortable TreeView");
     Gtk.TreeIter         iter;
     Gtk.TreeViewColumn   col;
     Gtk.CellRendererText cell;
     Gtk.TreeView         tree = new Gtk.TreeView();
     cell      = new Gtk.CellRendererText();
     col       = new Gtk.TreeViewColumn();
     col.Title = "Column 1";
     col.PackStart(cell, true);
     col.AddAttribute(cell, "text", 0);
     col.SortColumnId = 0;
     tree.AppendColumn(col);
     cell      = new Gtk.CellRendererText();
     col       = new Gtk.TreeViewColumn();
     col.Title = "Column 2";
     col.PackStart(cell, true);
     col.AddAttribute(cell, "text", 1);
     tree.AppendColumn(col);
     Gtk.TreeStore store = new Gtk.TreeStore(typeof(string), typeof(string));
     iter = store.AppendValues("BBB");
     store.AppendValues(iter, "AAA", "Zzz");
     store.AppendValues(iter, "DDD", "Ttt");
     store.AppendValues(iter, "CCC", "Ggg");
     iter = store.AppendValues("AAA");
     store.AppendValues(iter, "ZZZ", "Zzz");
     store.AppendValues(iter, "GGG", "Ggg");
     store.AppendValues(iter, "TTT", "Ttt");
     Gtk.TreeModelSort sortable = new Gtk.TreeModelSort(store);
     sortable.SetSortFunc(0, delegate(TreeModel model, TreeIter a, TreeIter b) {
         string s1 = (string)model.GetValue(a, 0);
         string s2 = (string)model.GetValue(b, 0);
         return(String.Compare(s1, s2));
     });
     tree.Model = sortable;
     window.Add(tree);
     return(window);
 }
Exemple #23
0
    public TreeViewExample()
    {
        // Create a Window
        Gtk.Window window = new Gtk.Window("TreeView Example");
        window.SetSizeRequest(500, 200);
         
        // Create our TreeView
        Gtk.TreeView tree = new Gtk.TreeView();
         
        // Add our tree to the window
        window.Add(tree);

         
        // Create a column for the artist name
        Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn();

        artistColumn.Title = "Artist";
         
        // Create a column for the song title
        Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn();

        songColumn.Title = "Song Title";
         
        // Add the columns to the TreeView
        tree.AppendColumn(artistColumn);

        tree.AppendColumn(songColumn);
         
        // Create a model that will hold two strings - Artist Name and Song Title
        Gtk.ListStore musicListStore = new Gtk.ListStore(typeof(string), typeof(string));
         
         
        // Assign the model to the TreeView
        tree.Model = musicListStore;
         
        // Show the window and everything on it
        window.ShowAll();
    }
Exemple #24
0
        public void Apply(Gtk.Widget widget)
        {
            Gtk.TreeView treeView = widget as Gtk.TreeView;
            if (treeView == null)
            {
                Console.WriteLine("TreeViewTemplate.Apply: Invalid widget type for this template");
                return;
            }

            foreach (var col in Columns)
            {
                treeView.AppendColumn(col.Item1, col.Item2, ValuePropertyDataFunc);
            }
        }
Exemple #25
0
        internal GtkListView(
            List <Gtk.TreeViewColumn> columns,
            Dictionary <int, Gtk.TreeIterCompareFunc> sortFunctionsByColumn,
            Gtk.TreeModelFilterVisibleFunc visibleFunc)
        {
            View = TreeBuilder.CreateTreeView();
            mSortFunctionByColumn = sortFunctionsByColumn;
            mVisibleFunc          = visibleFunc;

            foreach (Gtk.TreeViewColumn column in columns)
            {
                View.AppendColumn(column);
            }
        }
        public FlagsSelectorDialog(Gtk.Window parent, Type enumDesc, ulong flags, string title)
        {
            this.flags  = flags;
            this.parent = parent;

            Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow();
            sc.HscrollbarPolicy = Gtk.PolicyType.Automatic;
            sc.VscrollbarPolicy = Gtk.PolicyType.Automatic;
            sc.ShadowType       = Gtk.ShadowType.In;
            sc.BorderWidth      = 6;

            treeView = new Gtk.TreeView();
            sc.Add(treeView);

            dialog = new Gtk.Dialog();
            IdeTheme.ApplyTheme(dialog);
            dialog.VBox.Add(sc);
            dialog.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel);
            dialog.AddButton(Gtk.Stock.Ok, Gtk.ResponseType.Ok);

            store                   = new Gtk.ListStore(typeof(bool), typeof(string), typeof(ulong));
            treeView.Model          = store;
            treeView.HeadersVisible = false;

            Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();

            Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle();
            tog.Toggled += new Gtk.ToggledHandler(OnToggled);
            col.PackStart(tog, false);
            col.AddAttribute(tog, "active", 0);

            Gtk.CellRendererText crt = new Gtk.CellRendererText();
            col.PackStart(crt, true);
            col.AddAttribute(crt, "text", 1);

            treeView.AppendColumn(col);

            values = System.Enum.GetValues(enumDesc);
            foreach (object value in values)
            {
                ulong val = Convert.ToUInt64(value);
                store.AppendValues((flags == 0 && val == 0) || ((flags & val) != 0), value.ToString(), val);
            }
        }
		public FlagsSelectorDialog (Gtk.Window parent, Type enumDesc, ulong flags, string title)
		{
			this.flags = flags;
			this.parent = parent;

			Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow ();
			sc.HscrollbarPolicy = Gtk.PolicyType.Automatic;
			sc.VscrollbarPolicy = Gtk.PolicyType.Automatic;
			sc.ShadowType = Gtk.ShadowType.In;
			sc.BorderWidth = 6;
			
			treeView = new Gtk.TreeView ();
			sc.Add (treeView);
			
			dialog = new Gtk.Dialog ();
			IdeTheme.ApplyTheme (dialog);
			dialog.VBox.Add (sc);
			dialog.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel);
			dialog.AddButton (Gtk.Stock.Ok, Gtk.ResponseType.Ok);
			
			store = new Gtk.ListStore (typeof(bool), typeof(string), typeof(ulong));
			treeView.Model = store;
			treeView.HeadersVisible = false;
			
			Gtk.TreeViewColumn col = new Gtk.TreeViewColumn ();
			
			Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle ();
			tog.Toggled += new Gtk.ToggledHandler (OnToggled);
			col.PackStart (tog, false);
			col.AddAttribute (tog, "active", 0);
			
			Gtk.CellRendererText crt = new Gtk.CellRendererText ();
			col.PackStart (crt, true);
			col.AddAttribute (crt, "text", 1);
			
			treeView.AppendColumn (col);

			values = System.Enum.GetValues (enumDesc);
			foreach (object value in values) {
				ulong val = Convert.ToUInt64 (value);
				store.AppendValues ((flags == 0 && val == 0) || ((flags & val) != 0), value.ToString (), val);
			}
		}
Exemple #28
0
        /// <summary>
        /// Loads the files in the Assemblies.env into the TreeView.
        /// </summary>
        /// <param name='files'>
        /// Files.
        /// </param>
        ///
        private void LoadFilesInTreeView(string [] files)
        {
            Gtk.TreeViewColumn   col             = new Gtk.TreeViewColumn();
            Gtk.CellRendererText colAssemblyCell = new Gtk.CellRendererText();

            col.PackStart(colAssemblyCell, true);
            col.AddAttribute(colAssemblyCell, "text", 0);

            if (assemblyTree.GetColumn(0) != null)
            {
                assemblyTree.Columns[0] = col;
            }
            else
            {
                assemblyTree.AppendColumn(col);
            }

            store = assemblyTree.Model as Gtk.TreeStore;
            if (store == null)
            {
                store = new Gtk.TreeStore(typeof(object));
            }

            foreach (string file in files)
            {
                if (File.Exists(file))
                {
                    store.AppendValues(AssemblyDefinition.ReadAssembly(file));
                }
                else
                {
                    ShowMessageGtk(String.Format("File {0} doesn't exits.", file));
                }
            }

            // Add functions managinig the visualization of those assembly definitions
            col.SetCellDataFunc(colAssemblyCell, new Gtk.TreeCellDataFunc(RenderAssemblyDefinition));

            assemblyTree.Model = store;
            assemblyTree.ShowAll();
        }
        public static void Load()
        {
            Style.Add <FormHandler>("MainWindow", h =>
            {
                if (!Global.UseHeaderBar)
                {
                    return;
                }

                h.Menu    = null;
                h.ToolBar = null;

                var builder   = new Gtk.Builder(null, "MainWindow.glade", null);
                var headerBar = new Gtk.Widget(builder.GetObject("headerbar").Handle);
                var separator = new Gtk.Widget(builder.GetObject("separator1").Handle);

                popovermenu1 = new Gtk.Widget(builder.GetObject("popovermenu1").Handle);
                popovermenu2 = new Gtk.Widget(builder.GetObject("popovermenu2").Handle);

                Gtk3Wrapper.gtk_window_set_titlebar(h.Control.Handle, headerBar.Handle);
                Gtk3Wrapper.gtk_header_bar_set_show_close_button(headerBar.Handle, true);

                Connect(builder.GetObject("new_button").Handle, MainWindow.Instance.cmdNew);
                Connect(builder.GetObject("save_button").Handle, MainWindow.Instance.cmdSave);
                Connect(builder.GetObject("build_button").Handle, MainWindow.Instance.cmdBuild, false);
                Connect(builder.GetObject("rebuild_button").Handle, MainWindow.Instance.cmdRebuild, false);
                Connect(builder.GetObject("cancel_button").Handle, MainWindow.Instance.cmdCancelBuild, false);
                Connect(builder.GetObject("open_other_button").Handle, MainWindow.Instance.cmdOpen);
                Connect(builder.GetObject("import_button").Handle, MainWindow.Instance.cmdImport);
                Connect(builder.GetObject("saveas_button").Handle, MainWindow.Instance.cmdSaveAs);
                Connect(builder.GetObject("undo_button").Handle, MainWindow.Instance.cmdUndo);
                Connect(builder.GetObject("redo_button").Handle, MainWindow.Instance.cmdRedo);
                Connect(builder.GetObject("close_button").Handle, MainWindow.Instance.cmdClose);
                Connect(builder.GetObject("clean_button").Handle, MainWindow.Instance.cmdClean);
                Connect(builder.GetObject("help_button").Handle, MainWindow.Instance.cmdHelp);
                Connect(builder.GetObject("about_button").Handle, MainWindow.Instance.cmdAbout);
                Connect(builder.GetObject("exit_button").Handle, MainWindow.Instance.cmdExit);
                Connect(builder.GetObject("debugmode_button").Handle, MainWindow.Instance.cmdDebugMode);

                MainWindow.Instance.cmdBuild.EnabledChanged += (sender, e) =>
                                                               separator.Visible = MainWindow.Instance.cmdBuild.Enabled || MainWindow.Instance.cmdCancelBuild.Enabled;
                MainWindow.Instance.cmdCancelBuild.EnabledChanged += (sender, e) =>
                                                                     separator.Visible = MainWindow.Instance.cmdBuild.Enabled || MainWindow.Instance.cmdCancelBuild.Enabled;

                MainWindow.Instance.TitleChanged += delegate
                {
                    var title    = MainWindow.TitleBase;
                    var subtitle = "";

                    if (PipelineController.Instance.ProjectOpen)
                    {
                        title    = (PipelineController.Instance.ProjectDirty) ? "*" : "";
                        title   += Path.GetFileName(PipelineController.Instance.ProjectItem.OriginalPath);
                        subtitle = Path.GetDirectoryName(PipelineController.Instance.ProjectItem.OriginalPath);
                    }

                    h.Control.Title = title;
                    Gtk3Wrapper.gtk_header_bar_set_subtitle(headerBar.Handle, subtitle);
                };

                var treeview1    = new Gtk.TreeView(builder.GetObject("treeview1").Handle);
                var store        = new Gtk.TreeStore(typeof(string), typeof(string));
                var column       = new Gtk.TreeViewColumn();
                var textCell     = new Gtk.CellRendererText();
                var dataCell     = new Gtk.CellRendererText();
                dataCell.Visible = false;
                column.PackStart(textCell, false);
                column.PackStart(dataCell, false);
                treeview1.AppendColumn(column);
                column.AddAttribute(textCell, "markup", 0);
                column.AddAttribute(dataCell, "text", 1);
                treeview1.Model = store;

                MainWindow.Instance.RecentChanged += (sender, e) =>
                {
                    store.Clear();
                    var recentList = sender as List <string>;

                    foreach (var project in recentList)
                    {
                        store.InsertWithValues(0, "<b>" + Path.GetFileName(project) + "</b>\n" +
                                               Path.GetDirectoryName(project), project);
                    }
                };

                treeview1.RowActivated += (o, args) =>
                {
                    popovermenu2.Hide();

                    Gtk.TreeIter iter;
                    if (!store.GetIter(out iter, args.Path))
                    {
                        return;
                    }

                    var project = store.GetValue(iter, 1).ToString();
                    PipelineController.Instance.OpenProject(project);
                };

                h.Control.ShowAll();
            });

            Style.Add <DialogHandler>("HeaderBar", h =>
            {
                var title     = h.Title;
                var headerBar = Gtk3Wrapper.gtk_header_bar_new();
                Gtk3Wrapper.gtk_window_set_titlebar(h.Control.Handle, headerBar);
                h.Title = title;

                if (h.AbortButton.Text == "Close")
                {
                    Gtk3Wrapper.gtk_header_bar_set_show_close_button(headerBar, true);
                    return;
                }

                var defButton = (Gtk.Button)h.DefaultButton.ControlObject;
                defButton.StyleContext.AddClass("suggested-action");

                Gtk3Wrapper.gtk_header_bar_pack_end(headerBar, defButton.Handle);
                Gtk3Wrapper.gtk_header_bar_pack_start(headerBar, ((Gtk.Button)h.AbortButton.ControlObject).Handle);
            });

            Style.Add <LabelHandler>("Wrap", h => h.Control.MaxWidthChars = 55);

            Style.Add <ToolBarHandler>("ToolBar", h =>
            {
                h.Control.ToolbarStyle = Gtk.ToolbarStyle.Icons;
                h.Control.IconSize     = Gtk.IconSize.SmallToolbar;
            });

            Style.Add <TreeViewHandler>("Scroll", h =>
            {
                var treeView = h.Control.Child as Gtk.TreeView;

                Gtk.TreeIter lastIter, iter;

                if (treeView.Model.GetIterFirst(out iter))
                {
                    do
                    {
                        lastIter = iter;
                    }while (treeView.Model.IterNext(ref iter));

                    var path = treeView.Model.GetPath(lastIter);
                    treeView.ScrollToCell(path, null, false, 0, 0);
                }
            });

            Style.Add <DrawableHandler>("Stretch", h =>
            {
                var parent = h.Control.Parent.Parent.Parent.Parent.Parent.Parent;

                parent.SizeAllocated += delegate
                {
                    var al   = h.Control.Allocation;
                    al.Width = parent.AllocatedWidth - 2;
                    h.Control.SetAllocation(al);
                };
            });

            Style.Add <PixelLayoutHandler>("Stretch", h =>
            {
                var parent = h.Control.Parent.Parent.Parent.Parent.Parent;

                parent.SizeAllocated += delegate
                {
                    var al   = h.Control.Allocation;
                    al.Width = parent.AllocatedWidth;
                    h.Control.SetAllocation(al);
                };
            });

            Style.Add <TextBoxHandler>("OverrideSize", h =>
            {
                h.Control.WidthChars = 0;
            });

            Style.Add <ScrollableHandler>("BuildOutput", h =>
            {
                var child = ((((h.Control.Child as Gtk.Viewport).Child as Gtk.VBox).Children[0] as Gtk.HBox).Children[0] as Gtk.Alignment).Child;
                var ok    = false;

                h.Control.SizeAllocated += delegate
                {
                    // Set Width of the Drawable
                    var al   = child.Allocation;
                    al.Width = h.Control.AllocatedWidth - 2;
                    if (BuildOutput.ReqWidth > al.Width)
                    {
                        al.Width = BuildOutput.ReqWidth;
                    }
                    child.SetAllocation(al);

                    if (PipelineSettings.Default.AutoScrollBuildOutput)
                    {
                        // Scroll to bottom
                        if (BuildOutput.Count == -1)
                        {
                            ok = false;
                        }

                        if (!ok)
                        {
                            var adj   = h.Control.Vadjustment;
                            adj.Value = adj.Upper - adj.PageSize;

                            if (adj.Upper >= BuildOutput.Count && BuildOutput.Count != -1)
                            {
                                ok = true;
                            }
                        }
                    }
                };
            });
        }
Exemple #30
0
        public BugzillaPreferences()
            : base(false, 12)
        {
            last_opened_dir = Environment.GetEnvironmentVariable("HOME");

            Gtk.Label l = new Gtk.Label(Catalog.GetString(
                                            "You can use any bugzilla just by dragging links " +
                                            "into notes.  If you want a special icon for " +
                                            "certain hosts, add them here."));
            l.Wrap   = true;
            l.Xalign = 0;

            PackStart(l, false, false, 0);

            icon_store = CreateIconStore();

            icon_tree = new Gtk.TreeView(icon_store);
            icon_tree.HeadersVisible     = true;
            icon_tree.Selection.Mode     = Gtk.SelectionMode.Single;
            icon_tree.Selection.Changed += SelectionChanged;

            Gtk.CellRenderer renderer;

            Gtk.TreeViewColumn host_col = new Gtk.TreeViewColumn();
            host_col.Title     = Catalog.GetString("Host Name");
            host_col.Sizing    = Gtk.TreeViewColumnSizing.Autosize;
            host_col.Resizable = true;
            host_col.Expand    = true;
            host_col.MinWidth  = 200;

            renderer = new Gtk.CellRendererText();
            host_col.PackStart(renderer, true);
            host_col.AddAttribute(renderer, "text", 1 /* host name */);
            host_col.SortColumnId  = 1;            /* host name */
            host_col.SortIndicator = false;
            host_col.Reorderable   = false;
            host_col.SortOrder     = Gtk.SortType.Ascending;

            icon_tree.AppendColumn(host_col);

            Gtk.TreeViewColumn icon_col = new Gtk.TreeViewColumn();
            icon_col.Title     = Catalog.GetString("Icon");
            icon_col.Sizing    = Gtk.TreeViewColumnSizing.Fixed;
            icon_col.MaxWidth  = 50;
            icon_col.MinWidth  = 50;
            icon_col.Resizable = false;

            renderer = new Gtk.CellRendererPixbuf();
            icon_col.PackStart(renderer, false);
            icon_col.AddAttribute(renderer, "pixbuf", 0 /* icon */);

            icon_tree.AppendColumn(icon_col);

            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
            sw.ShadowType    = Gtk.ShadowType.In;
            sw.HeightRequest = 200;
            sw.WidthRequest  = 300;
            sw.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
            sw.Add(icon_tree);

            PackStart(sw, true, true, 0);

            add_button          = new Gtk.Button(Gtk.Stock.Add);
            add_button.Clicked += AddClicked;

            remove_button           = new Gtk.Button(Gtk.Stock.Remove);
            remove_button.Sensitive = false;
            remove_button.Clicked  += RemoveClicked;

            Gtk.HButtonBox hbutton_box = new Gtk.HButtonBox();
            hbutton_box.Layout  = Gtk.ButtonBoxStyle.Start;
            hbutton_box.Spacing = 6;

            hbutton_box.PackStart(add_button);
            hbutton_box.PackStart(remove_button);
            PackStart(hbutton_box, false, false, 0);

            ShowAll();
        }
 private void SetColumns()
 {
     _TreeView.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0);
     _ObjectColumn = _TreeView.AppendColumn("Document", _ObjectRenderer, "text", 1);
 }
Exemple #32
0
        public GroupChatView(GroupChatModel groupChat)
            : base(groupChat)
        {
            Trace.Call(groupChat);

            _GroupChatModel = groupChat;

            // person list
            Participants = new List<PersonModel>();
            _OutputHPaned = new Gtk.HPaned();

            Gtk.TreeView tv = new Gtk.TreeView();
            _PersonTreeView = tv;
            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
            PersonScrolledWindow = sw;
            sw.ShadowType = Gtk.ShadowType.None;
            sw.HscrollbarPolicy = Gtk.PolicyType.Never;

            //tv.CanFocus = false;
            tv.BorderWidth = 0;
            tv.Selection.Mode = Gtk.SelectionMode.Multiple;
            sw.Add(tv);

            Gtk.TreeViewColumn column;
            var cellr = new Gtk.CellRendererText() {
                Ellipsize = Pango.EllipsizeMode.End
            };
            IdentityNameCellRenderer = cellr;
            column = new Gtk.TreeViewColumn(String.Empty, cellr);
            column.SortColumnId = 0;
            column.Spacing = 0;
            column.SortIndicator = false;
            column.Expand = true;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            // FIXME: this callback leaks memory
            column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderPersonIdentityName));
            tv.AppendColumn(column);
            _IdentityNameColumn = column;

            Gtk.ListStore liststore = new Gtk.ListStore(typeof(PersonModel));
            liststore.SetSortColumnId(0, Gtk.SortType.Ascending);
            liststore.SetSortFunc(0, new Gtk.TreeIterCompareFunc(SortPersonListStore));
            _PersonListStore = liststore;

            tv.Model = liststore;
            tv.SearchColumn = 0;
            tv.SearchEqualFunc = (model, col, key, iter) => {
                var person = (PersonModel) model.GetValue(iter, col);
                // Ladies and gentlemen welcome to C
                // 0 means it matched but 0 as bool is false. So if it matches
                // we have to return false. Still not clear? true is false and
                // false is true, weirdo! If you think this is retarded,
                // yes it is.
                return !person.IdentityName.StartsWith(key, StringComparison.InvariantCultureIgnoreCase);
            };
            tv.EnableSearch = true;
            tv.HeadersVisible = false;
            tv.RowActivated += new Gtk.RowActivatedHandler(OnPersonsRowActivated);
            tv.FocusOutEvent += OnPersonTreeViewFocusOutEvent;

            // popup menu
            _PersonMenu = new Gtk.Menu();
            // don't loose the focus else we lose the selection too!
            // see OnPersonTreeViewFocusOutEvent()
            _PersonMenu.TakeFocus = false;
            _PersonMenu.Shown += OnPersonMenuShown;

            _PersonTreeView.ButtonPressEvent += _OnPersonTreeViewButtonPressEvent;
            _PersonTreeView.KeyPressEvent += OnPersonTreeViewKeyPressEvent;
            // frame needed for events when selecting something in the treeview
            _PersonTreeViewFrame = new Gtk.Frame() {
                ShadowType = Gtk.ShadowType.In
            };
            _PersonTreeViewFrame.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(_OnUserListButtonReleaseEvent);
            _PersonTreeViewFrame.Add(sw);

            // topic
            // don't worry, ApplyConfig() will add us to the OutputVBox!
            _OutputVBox = new Gtk.VBox() {
                Spacing = 1
            };

            _TopicTextView = new MessageTextView();
            _TopicTextView.Editable = false;
            _TopicTextView.WrapMode = Gtk.WrapMode.WordChar;
            _TopicScrolledWindow = new Gtk.ScrolledWindow();
            _TopicScrolledWindow.ShadowType = Gtk.ShadowType.In;
            _TopicScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Never;
            _TopicScrolledWindow.Add(_TopicTextView);
            // make sure the topic is invisible and remains by default and
            // visible when a topic gets set
            _TopicScrolledWindow.ShowAll();
            _TopicScrolledWindow.Visible = false;
            _TopicScrolledWindow.NoShowAll = true;
            _TopicScrolledWindow.SizeRequested += delegate(object o, Gtk.SizeRequestedArgs args) {
                // predict and set useful topic heigth
                int lineWidth, lineHeight;
                using (var layout = _TopicTextView.CreatePangoLayout("Test Topic")) {
                    layout.GetPixelSize(out lineWidth, out lineHeight);
                }
                var lineSpacing = _TopicTextView.PixelsAboveLines +
                                  _TopicTextView.PixelsBelowLines;
                var it = _TopicTextView.Buffer.StartIter;
                int newLines = 1;
                // move to end of next visual line
                while (_TopicTextView.ForwardDisplayLineEnd(ref it)) {
                    newLines++;
                    // calling ForwardDisplayLineEnd repeatedly stays on the same position
                    // therefor we move one cursor position further
                    it.ForwardCursorPosition();
                }
                newLines = Math.Min(newLines, 3);
                var bestSize = new Gtk.Requisition() {
                    Height = ((lineHeight + lineSpacing) * newLines) + 4
                };
                args.Requisition = bestSize;
            };

            Add(_OutputHPaned);

            //ApplyConfig(Frontend.UserConfig);

            ShowAll();
        }
        public static void Load()
        {
            Style.Add <ApplicationHandler>("PipelineTool", h =>
            {
                Global.Application = h.Control;

                if (Gtk.Global.MajorVersion >= 3 && Gtk.Global.MinorVersion >= 16)
                {
                    Global.UseHeaderBar = Global.Application.PrefersAppMenu();
                }

                if (Global.UseHeaderBar)
                {
                    Global.Application.AppMenu = new GLib.MenuModel((new Gtk.Builder("AppMenu.glade")).GetObject("appmenu").Handle);
                }
            });

            Style.Add <FormHandler>("MainWindow", h =>
            {
                if (!Global.UseHeaderBar)
                {
                    return;
                }

                var builder   = new Gtk.Builder("MainWindow.glade");
                var headerBar = new Gtk.HeaderBar(builder.GetObject("headerbar").Handle);

                h.Menu    = null;
                h.ToolBar = null;

                Connect("new", MainWindow.Instance.cmdNew);
                Connect("open", MainWindow.Instance.cmdOpen);
                Connect("save", MainWindow.Instance.cmdSave);
                Connect("saveas", MainWindow.Instance.cmdSaveAs);
                Connect("import", MainWindow.Instance.cmdImport);
                Connect("close", MainWindow.Instance.cmdClose);
                Connect("help", MainWindow.Instance.cmdHelp);
                Connect("about", MainWindow.Instance.cmdAbout);
                Connect("quit", MainWindow.Instance.cmdExit);
                Connect("undo", MainWindow.Instance.cmdUndo);
                Connect("redo", MainWindow.Instance.cmdRedo);
                Connect("build", MainWindow.Instance.cmdBuild);
                Connect("rebuild", MainWindow.Instance.cmdRebuild);
                Connect("clean", MainWindow.Instance.cmdClean);
                Connect("cancel", MainWindow.Instance.cmdCancelBuild);

                var widget      = new Gtk.ModelButton(builder.GetObject("button_debug").Handle);
                widget.Active   = MainWindow.Instance.cmdDebugMode.Checked;
                widget.Clicked += (e, sender) =>
                {
                    var newstate = !PipelineSettings.Default.DebugMode;

                    widget.Active = newstate;
                    PipelineSettings.Default.DebugMode = newstate;
                };

                _accelGroup = new Gtk.AccelGroup();

                Connect(MainWindow.Instance.cmdNew, Gdk.Key.N, Gdk.ModifierType.ControlMask);
                Connect(MainWindow.Instance.cmdOpen, Gdk.Key.O, Gdk.ModifierType.ControlMask);
                Connect(MainWindow.Instance.cmdSave, Gdk.Key.S, Gdk.ModifierType.ControlMask);
                Connect(MainWindow.Instance.cmdExit, Gdk.Key.Q, Gdk.ModifierType.ControlMask);
                Connect(MainWindow.Instance.cmdUndo, Gdk.Key.Z, Gdk.ModifierType.ControlMask);
                Connect(MainWindow.Instance.cmdRedo, Gdk.Key.Y, Gdk.ModifierType.ControlMask);
                Connect(MainWindow.Instance.cmdBuild, Gdk.Key.F6);
                Connect(MainWindow.Instance.cmdHelp, Gdk.Key.F1);

                h.Control.AddAccelGroup(_accelGroup);

                _popovermenu1 = new Gtk.Widget(builder.GetObject("popovermenu1").Handle);
                _popovermenu2 = new Gtk.Widget(builder.GetObject("popovermenu2").Handle);

                h.Control.Titlebar        = headerBar;
                headerBar.ShowCloseButton = true;

                _buttonbox = new Gtk.Widget(builder.GetObject("build_buttonbox").Handle);
                _cancelbox = new Gtk.Widget(builder.GetObject("cancel_button").Handle);
                _separator = new Gtk.Widget(builder.GetObject("separator1").Handle);
                MainWindow.Instance.cmdBuild.EnabledChanged       += (sender, e) => ReloadBuildbox();
                MainWindow.Instance.cmdCancelBuild.EnabledChanged += (sender, e) => ReloadBuildbox();

                MainWindow.Instance.TitleChanged += delegate
                {
                    var title    = MainWindow.TitleBase;
                    var subtitle = "";

                    if (PipelineController.Instance.ProjectOpen)
                    {
                        title    = (PipelineController.Instance.ProjectDirty) ? "*" : "";
                        title   += Path.GetFileName(PipelineController.Instance.ProjectItem.OriginalPath);
                        subtitle = Path.GetDirectoryName(PipelineController.Instance.ProjectItem.OriginalPath);
                    }

                    h.Control.Title    = title;
                    headerBar.Subtitle = subtitle;
                };

                var treeview1    = new Gtk.TreeView(builder.GetObject("treeview1").Handle);
                var store        = new Gtk.TreeStore(typeof(string), typeof(string));
                var column       = new Gtk.TreeViewColumn();
                var textCell     = new Gtk.CellRendererText();
                var dataCell     = new Gtk.CellRendererText();
                dataCell.Visible = false;
                column.PackStart(textCell, false);
                column.PackStart(dataCell, false);
                treeview1.AppendColumn(column);
                column.AddAttribute(textCell, "markup", 0);
                column.AddAttribute(dataCell, "text", 1);
                treeview1.Model = store;

                MainWindow.Instance.RecentChanged += (sender, e) =>
                {
                    store.Clear();
                    var recentList = sender as List <string>;

                    foreach (var project in recentList)
                    {
                        store.InsertWithValues(0, "<b>" + Path.GetFileName(project) + "</b>\n" +
                                               Path.GetDirectoryName(project), project);
                    }
                };

                treeview1.RowActivated += (o, args) =>
                {
                    _popovermenu2.Hide();

                    Gtk.TreeIter iter;
                    if (!store.GetIter(out iter, args.Path))
                    {
                        return;
                    }

                    var project = store.GetValue(iter, 1).ToString();
                    PipelineController.Instance.OpenProject(project);
                };

                headerBar.Show();
            });

            Style.Add <ButtonHandler>("Destuctive", h => h.Control.StyleContext.AddClass("destructive-action"));

            Style.Add <LabelHandler>("Wrap", h => h.Control.MaxWidthChars = 55);

            Style.Add <ToolBarHandler>("ToolBar", h =>
            {
                h.Control.ToolbarStyle = Gtk.ToolbarStyle.Icons;
                h.Control.IconSize     = Gtk.IconSize.SmallToolbar;
            });

            Style.Add <DrawableHandler>("Stretch", h =>
            {
                var parent = h.Control.Parent.Parent.Parent.Parent.Parent.Parent;

                parent.SizeAllocated += delegate
                {
                    var al   = h.Control.Allocation;
                    al.Width = parent.AllocatedWidth - 2;
                    h.Control.SetAllocation(al);
                };
            });

            Style.Add <PixelLayoutHandler>("Stretch", h =>
            {
                var parent = h.Control.Parent.Parent.Parent.Parent.Parent;

                parent.SizeAllocated += delegate
                {
                    var al   = h.Control.Allocation;
                    al.Width = parent.AllocatedWidth;
                    h.Control.SetAllocation(al);
                };
            });
        }
Exemple #34
0
        public GroupChatView(GroupChatModel groupChat)
            : base(groupChat)
        {
            Trace.Call(groupChat);

            _GroupChatModel = groupChat;

            // person list
            _OutputHPaned = new Gtk.HPaned();

            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
            _PersonScrolledWindow = sw;
            //sw.WidthRequest = 150;
            sw.HscrollbarPolicy = Gtk.PolicyType.Never;

            Gtk.TreeView tv = new Gtk.TreeView();
            _PersonTreeView = tv;
            //tv.CanFocus = false;
            tv.BorderWidth = 0;
            tv.Selection.Mode = Gtk.SelectionMode.Multiple;
            sw.Add(tv);

            Gtk.TreeViewColumn column;
            Gtk.CellRendererText cellr = new Gtk.CellRendererText();
            cellr.WidthChars = 12;
            column = new Gtk.TreeViewColumn(String.Empty, cellr);
            column.SortColumnId = 0;
            column.Spacing = 0;
            column.SortIndicator = false;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderPersonIdentityName));
            tv.AppendColumn(column);
            _IdentityNameColumn = column;

            Gtk.ListStore liststore = new Gtk.ListStore(typeof(PersonModel));
            liststore.SetSortColumnId(0, Gtk.SortType.Ascending);
            liststore.SetSortFunc(0, new Gtk.TreeIterCompareFunc(SortPersonListStore));
            _PersonListStore = liststore;

            tv.Model = liststore;
            tv.RowActivated += new Gtk.RowActivatedHandler(OnPersonsRowActivated);
            tv.FocusOutEvent += OnPersonTreeViewFocusOutEvent;

            // popup menu
            _PersonMenu = new Gtk.Menu();
            // don't loose the focus else we lose the selection too!
            // see OnPersonTreeViewFocusOutEvent()
            _PersonMenu.TakeFocus = false;
            _PersonMenu.Shown += OnPersonMenuShown;

            _PersonTreeView.ButtonPressEvent += _OnPersonTreeViewButtonPressEvent;
            _PersonTreeView.KeyPressEvent += OnPersonTreeViewKeyPressEvent;
            // frame needed for events when selecting something in the treeview
            _PersonTreeViewFrame = new Gtk.Frame();
            _PersonTreeViewFrame.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(_OnUserListButtonReleaseEvent);
            _PersonTreeViewFrame.Add(sw);

            // topic
            // don't worry, ApplyConfig() will add us to the OutputVBox!
            _OutputVBox = new Gtk.VBox();

            _TopicTextView = new MessageTextView();
            _TopicTextView.Editable = false;
            _TopicTextView.WrapMode = Gtk.WrapMode.WordChar;
            _TopicScrolledWindow = new Gtk.ScrolledWindow();
            _TopicScrolledWindow.ShadowType = Gtk.ShadowType.In;
            // when using PolicyType.Never, it will try to grow but never shrinks!
            _TopicScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Automatic;
            _TopicScrolledWindow.VscrollbarPolicy = Gtk.PolicyType.Automatic;
            _TopicScrolledWindow.Add(_TopicTextView);
            // make sure the topic is invisible and remains by default and
            // visible when a topic gets set
            _TopicScrolledWindow.ShowAll();
            _TopicScrolledWindow.Visible = false;
            _TopicScrolledWindow.NoShowAll = true;

            Add(_OutputHPaned);

            //ApplyConfig(Frontend.UserConfig);

            ShowAll();
        }
		public BugzillaPreferences ()
: base (false, 12)
		{
			last_opened_dir = Environment.GetEnvironmentVariable ("HOME");

			Gtk.Label l = new Gtk.Label (Catalog.GetString (
			                                     "You can use any bugzilla just by dragging links " +
			                                     "into notes.  If you want a special icon for " +
			                                     "certain hosts, add them here."));
			l.Wrap = true;
			l.Xalign = 0;

			PackStart (l, false, false, 0);

			icon_store = CreateIconStore ();

			icon_tree = new Gtk.TreeView (icon_store);
			icon_tree.HeadersVisible = true;
			icon_tree.Selection.Mode = Gtk.SelectionMode.Single;
			icon_tree.Selection.Changed += SelectionChanged;

			Gtk.CellRenderer renderer;

			Gtk.TreeViewColumn host_col = new Gtk.TreeViewColumn ();
			host_col.Title = Catalog.GetString ("Host Name");
			host_col.Sizing = Gtk.TreeViewColumnSizing.Autosize;
			host_col.Resizable = true;
			host_col.Expand = true;
			host_col.MinWidth = 200;

			renderer = new Gtk.CellRendererText ();
			host_col.PackStart (renderer, true);
			host_col.AddAttribute (renderer, "text", 1 /* host name */);
			host_col.SortColumnId = 1; /* host name */
			host_col.SortIndicator = false;
			host_col.Reorderable = false;
			host_col.SortOrder = Gtk.SortType.Ascending;

			icon_tree.AppendColumn (host_col);

			Gtk.TreeViewColumn icon_col = new Gtk.TreeViewColumn ();
			icon_col.Title = Catalog.GetString ("Icon");
			icon_col.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			icon_col.MaxWidth = 50;
			icon_col.MinWidth = 50;
			icon_col.Resizable = false;

			renderer = new Gtk.CellRendererPixbuf ();
			icon_col.PackStart (renderer, false);
			icon_col.AddAttribute (renderer, "pixbuf", 0 /* icon */);

			icon_tree.AppendColumn (icon_col);

			Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow ();
			sw.ShadowType = Gtk.ShadowType.In;
			sw.HeightRequest = 200;
			sw.WidthRequest = 300;
			sw.SetPolicy (Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
			sw.Add (icon_tree);

			PackStart (sw, true, true, 0);

			add_button = new Gtk.Button (Gtk.Stock.Add);
			add_button.Clicked += AddClicked;

			remove_button = new Gtk.Button (Gtk.Stock.Remove);
			remove_button.Sensitive = false;
			remove_button.Clicked += RemoveClicked;

			Gtk.HButtonBox hbutton_box = new Gtk.HButtonBox ();
			hbutton_box.Layout = Gtk.ButtonBoxStyle.Start;
			hbutton_box.Spacing = 6;

			hbutton_box.PackStart (add_button);
			hbutton_box.PackStart (remove_button);
			PackStart (hbutton_box, false, false, 0);

			ShowAll ();
		}
        public BlogPreferences()
            : base(false, 12)
        {
            this.doc = Utils.OpenXmlfile();
            Gtk.Label l = new Gtk.Label (Catalog.GetString (
                "If your blog supports the Atom Publishing Protocol " +
                "(APP), you can add it here, and you'll then be able " +
                "to post notes directly from Tomboy to your blog. " +
                "You need the URL to either your service document, " +
                "or your collection document."));
            l.Wrap = true;
            l.Xalign = 0;

            PackStart (l, false, false, 0);

            blog_store = CreateBlogStore ();

            blog_tree = new Gtk.TreeView (blog_store);
            blog_tree.HeadersVisible = true;
            blog_tree.Selection.Mode = Gtk.SelectionMode.Single;
            blog_tree.Selection.Changed += SelectionChanged;
            Gtk.CellRenderer renderer;

            Gtk.TreeViewColumn label_col = new Gtk.TreeViewColumn ();
            label_col.Title = Catalog.GetString ("Label");
            label_col.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            label_col.Resizable = true;
            label_col.Expand = true;

            renderer = new Gtk.CellRendererText ();
            label_col.PackStart (renderer, true);
            label_col.AddAttribute (renderer, "text", 0 /* label */);
            label_col.SortColumnId = 1; /* label */
            label_col.SortIndicator = false;
            label_col.Reorderable = false;
            label_col.SortOrder = Gtk.SortType.Ascending;

            blog_tree.AppendColumn (label_col);
            Gtk.TreeViewColumn url_col = new Gtk.TreeViewColumn ();
            url_col.Title = Catalog.GetString ("Location");
            url_col.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            url_col.Resizable = true;

            renderer = new Gtk.CellRendererText ();
            url_col.PackStart (renderer, false);
            url_col.AddAttribute (renderer, "text", 1 /* url */);

            blog_tree.AppendColumn (url_col);

            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow ();
            sw.ShadowType = Gtk.ShadowType.In;
            sw.HeightRequest = 200;
            sw.WidthRequest = 300;
            sw.SetPolicy (Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
            sw.Add (blog_tree);

            PackStart (sw, true, true, 0);

            add_button = new Gtk.Button (Gtk.Stock.Add);
            add_button.Clicked += AddClicked;

            remove_button = new Gtk.Button (Gtk.Stock.Remove);
            remove_button.Sensitive = false;
            remove_button.Clicked += RemoveClicked;

            edit_button = new Gtk.Button (Gtk.Stock.Edit);
            edit_button.Sensitive = false;
            edit_button.Clicked += EditClicked;

            Gtk.HButtonBox hbutton_box = new Gtk.HButtonBox ();
            hbutton_box.Layout = Gtk.ButtonBoxStyle.Start;
            hbutton_box.Spacing = 6;

            hbutton_box.PackStart (add_button);
            hbutton_box.PackStart (remove_button);
            hbutton_box.PackStart (edit_button);
            PackStart (hbutton_box, false, false, 0);
            XmlText draft_state;
            draft_state = (XmlText) this.doc.SelectSingleNode ("preferences/settings/draft/text()");
            if (draft_state == null)
            {
                XmlNode node = this.doc.DocumentElement;
                Console.Write ("aa");
                if (node.SelectNodes("settings").Count == 0)
                {
                    XmlElement childelement = this.doc.CreateElement ("settings");
                    node.AppendChild (childelement);
                }
                node = node.SelectSingleNode ("settings");
                if (node.SelectNodes("draft").Count == 0)
                {
                    XmlElement child_element = this.doc.CreateElement ("draft");
                    node.AppendChild (child_element);
                }
                XmlText text = this.doc.CreateTextNode ("yes");
                node.SelectSingleNode ("draft").AppendChild (text);
                draft_state = (XmlText) this.doc.SelectSingleNode ("preferences/settings/draft/text()");
            }
            bool draftbool = (draft_state.Value == "yes" ? true : false);

            Gtk.CheckButton button = new Gtk.CheckButton ("Create posts as drafts");
            button.Active = draftbool;
            button.Clicked += DraftChanged;

            PackStart (button, false, false, 0);

            ShowAll ();
        }
        public void CreateGui()
        {
            Gtk.Image icn_reload=new Gtk.Image(Gtk.Stock.Refresh,Gtk.IconSize.Button);
            _reload=new Gtk.Button(icn_reload);
            _reload.Clicked+=OnReload;

            _performer=new Gtk.Entry(200);
            _title=new Gtk.Entry(200);
            _title.WidthChars=60;
            _performer.WidthChars=60;
            _subtitle=new Gtk.Entry(300);
            _subtitle.WidthChars=60;
            _composer=new Gtk.Entry(200);
            _composer.WidthChars=60;
            _year=new Gtk.Entry(20);
            _year.WidthChars=20;

            _image=new Gtk.Image();
            _image.SetSizeRequest (100,100);
            _imagefile=new Gtk.FileChooserButton("Choose image file",Gtk.FileChooserAction.Open);
            _imagefile.FileSet+=new EventHandler(EvtImageSet);

            Gtk.Image icn_add_track=new Gtk.Image(Gtk.Stock.Add,Gtk.IconSize.Button);
            _add_track=new Gtk.Button(icn_add_track);
            _add_track.Clicked+=OnAddTrack;

            Gtk.Image icn_del_track=new Gtk.Image(Gtk.Stock.Delete,Gtk.IconSize.Button);
            _del_track=new Gtk.Button(icn_del_track);
            _del_track.Clicked+=OnDelTrack;

            Gtk.Image icn_save=new Gtk.Image(Gtk.Stock.Save,Gtk.IconSize.Button);
            _save=new Gtk.Button(icn_save);
            _save.Clicked+=OnSave;

            _store=new Gtk.ListStore(typeof(int),typeof(string),typeof(string),typeof(string),typeof(string),typeof(string));
            _tracks=new Gtk.TreeView();
            {
                Gtk.CellRendererText cr0=new Gtk.CellRendererText();
                cr0.Scale=0.8;
                _tracks.AppendColumn ("Nr.", cr0, "text", 0);

                Gtk.CellRendererText cr_title=new Gtk.CellRendererText();
                cr_title.Scale=0.8;
                cr_title.Editable=true;
                cr_title.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) {
                    setCell(1,args.NewText,new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn ("Title", cr_title, "text", 1);

                Gtk.CellRendererText cr_artist=new Gtk.CellRendererText();
                cr_artist.Editable=true;
                cr_artist.Scale=0.8;
                cr_artist.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) {
                    setCell(2,args.NewText,new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn ("Artist", cr_artist, "text", 2);

                Gtk.CellRendererText cr_composer=new Gtk.CellRendererText();
                cr_composer.Editable=true;
                cr_composer.Scale=0.8;
                cr_composer.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) {
                    setCell(3,args.NewText,new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn ("Composer", cr_composer, "text", 3);

                Gtk.CellRendererText cr_piece=new Gtk.CellRendererText();
                cr_piece.Editable=true;
                cr_piece.Scale=0.8;
                cr_piece.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) {
                    setCell(4,args.NewText,new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn ("Piece", cr_piece, "text", 4);

                Gtk.CellRendererText cr_time=new Gtk.CellRendererText();
                cr_time.Editable=true;
                cr_time.Scale=0.8;
                cr_time.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) {
                    setCell (5,args.NewText,new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn ("Offset", cr_time, "text", 5);
            }

            _tracks.Model = _store;

            Gtk.Table tbl=new Gtk.Table(2,5,false);
            tbl.Attach (new Gtk.Label("Album:"),0,1,0,1);
            tbl.Attach (_title,1,2,0,1);
            tbl.Attach (new Gtk.Label("Artist:"),0,1,1,2);
            tbl.Attach (_performer,1,2,1,2);
            tbl.Attach (new Gtk.Label("Composer:"),0,1,2,3);
            tbl.Attach (_composer,1,2,2,3);
            tbl.Attach (new Gtk.Label("Subtitle:"),0,1,3,4);
            tbl.Attach (_subtitle,1,2,3,4);
            tbl.Attach (new Gtk.Label("year:"),0,1,4,5);
            tbl.Attach (_year,1,2,4,5);

            Gtk.Frame frm=new Gtk.Frame();
            frm.Add (tbl);

            Gtk.HBox hb2=new Gtk.HBox();
            hb2.PackEnd (_reload,false,false,1);
            hb2.PackEnd (_del_track,false,false,1);
            hb2.PackEnd (_add_track,false,false,1);
            hb2.PackEnd (_save,false,false,1);

            Gtk.HBox hb=new Gtk.HBox();
            Gtk.VBox vb1=new Gtk.VBox();
            vb1.PackStart (frm,false,false,0);
            vb1.PackStart (hb2,true,true,0);
            hb.PackStart (vb1,false,false,0);

            Gtk.Frame frm2=new Gtk.Frame();
            frm2.Add (_image);
            Gtk.VBox vbi=new Gtk.VBox();
            Gtk.HBox bb=new Gtk.HBox();
            bb.PackStart(new Gtk.VBox(),true,true,0);
            bb.PackStart(frm2,false,false,0);
            bb.PackEnd (new Gtk.VBox(),true,true,0);

            vbi.PackStart (bb,true,true,2);
            vbi.PackEnd (_imagefile,false,false,2);
            hb.PackEnd (vbi,true,true,2);

            Gtk.ScrolledWindow scroll=new Gtk.ScrolledWindow();
            scroll.Add (_tracks);
            scroll.SetSizeRequest (800,300);

            base.VBox.PackStart(hb,false,false,4);
            base.VBox.PackStart(scroll,true,true,0);
            base.VBox.ShowAll ();

            base.AddButton ("Close",0);
        }
Exemple #38
0
        public GroupChatView(GroupChatModel groupChat)
            : base(groupChat)
        {
            Trace.Call(groupChat);

            _GroupChatModel = groupChat;

            // person list
            _OutputHPaned = new Gtk.HPaned();

            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
            _PersonScrolledWindow = sw;
            //sw.WidthRequest = 150;
            sw.HscrollbarPolicy = Gtk.PolicyType.Never;

            Gtk.TreeView tv = new Gtk.TreeView();
            _PersonTreeView = tv;
            //tv.CanFocus = false;
            tv.BorderWidth = 0;
            tv.Selection.Mode = Gtk.SelectionMode.Multiple;
            sw.Add(tv);

            Gtk.TreeViewColumn column;
            Gtk.CellRendererText cellr = new Gtk.CellRendererText();
            cellr.WidthChars = 12;
            column = new Gtk.TreeViewColumn(String.Empty, cellr);
            column.SortColumnId = 0;
            column.Spacing = 0;
            column.SortIndicator = false;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderPersonIdentityName));
            tv.AppendColumn(column);
            _IdentityNameColumn = column;

            Gtk.ListStore liststore = new Gtk.ListStore(typeof(PersonModel));
            liststore.SetSortColumnId(0, Gtk.SortType.Ascending);
            liststore.SetSortFunc(0, new Gtk.TreeIterCompareFunc(SortPersonListStore));
            _PersonListStore = liststore;

            tv.Model = liststore;
            tv.RowActivated += new Gtk.RowActivatedHandler(OnPersonsRowActivated);
            tv.FocusOutEvent += OnPersonTreeViewFocusOutEvent;

            // popup menu
            _PersonMenu = new Gtk.Menu();
            // don't loose the focus else we lose the selection too!
            // see OnPersonTreeViewFocusOutEvent()
            _PersonMenu.TakeFocus = false;
            _PersonMenu.Shown += OnPersonMenuShown;

            _PersonTreeView.ButtonPressEvent += _OnPersonTreeViewButtonPressEvent;
            _PersonTreeView.KeyPressEvent += OnPersonTreeViewKeyPressEvent;
            // frame needed for events when selecting something in the treeview
            _PersonTreeViewFrame = new Gtk.Frame();
            _PersonTreeViewFrame.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(_OnUserListButtonReleaseEvent);
            _PersonTreeViewFrame.Add(sw);

            // topic
            // don't worry, ApplyConfig() will add us to the OutputVBox!
            _OutputVBox = new Gtk.VBox();

            _TopicTextView = new MessageTextView();
            _TopicTextView.Editable = false;
            _TopicTextView.WrapMode = Gtk.WrapMode.WordChar;
            _TopicScrolledWindow = new Gtk.ScrolledWindow();
            _TopicScrolledWindow.ShadowType = Gtk.ShadowType.In;
            // when using PolicyType.Never, it will try to grow but never shrinks!
            _TopicScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Automatic;
            _TopicScrolledWindow.VscrollbarPolicy = Gtk.PolicyType.Automatic;
            _TopicScrolledWindow.Add(_TopicTextView);
            // make sure the topic is invisible and remains by default and
            // visible when a topic gets set
            _TopicScrolledWindow.ShowAll();
            _TopicScrolledWindow.Visible = false;
            _TopicScrolledWindow.NoShowAll = true;
            _TopicScrolledWindow.SizeRequested += delegate(object o, Gtk.SizeRequestedArgs args) {
                // predict and set useful topic heigth
                Pango.Layout layout = _TopicTextView.CreatePangoLayout("Test Topic");
                int lineWidth, lineHeigth;
                layout.GetPixelSize(out lineWidth, out lineHeigth);
                var lineSpacing = _TopicTextView.PixelsAboveLines +
                                  _TopicTextView.PixelsBelowLines;
                var text = Topic != null ? Topic.ToString() : String.Empty;
                // hardcoded to 2 lines for now
                var newLines = text.Length > 0 ? 2 : 0;
                var bestSize = new Gtk.Requisition() {
                    Height = ((lineHeigth + lineSpacing) * newLines) + 2
                };
                args.Requisition = bestSize;
            };

            Add(_OutputHPaned);

            //ApplyConfig(Frontend.UserConfig);

            ShowAll();
        }
            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 virtual void Initialize(string label, string icon, NodeBuilder[] builders, TreePadOption[] options)
        {
            // Create default options

            this.options = options;
            globalOptions = new TreeOptions ();
            foreach (TreePadOption op in options)
                globalOptions [op.Id] = op.DefaultValue;

            globalOptions.Pad = this;

            // Check that there is only one node builder per type

            Hashtable bc = new Hashtable ();
            foreach (NodeBuilder nb in builders) {
                TypeNodeBuilder tnb = nb as TypeNodeBuilder;
                if (tnb != null) {
                    TypeNodeBuilder other = (TypeNodeBuilder) bc [tnb.NodeDataType];
                    if (other != null)
                        throw new ApplicationException (string.Format ("The type node builder {0} can't be used in this context because the type {1} is already handled by {2}", nb.GetType(), tnb.NodeDataType, other.GetType()));
                    bc [tnb.NodeDataType] = tnb;
                }
                else if (!(nb is NodeBuilderExtension))
                    throw new InvalidOperationException (string.Format ("Invalid NodeBuilder type: {0}. NodeBuilders must inherit either from TypeNodeBuilder or NodeBuilderExtension", nb.GetType()));
            }

            NodeBuilders = builders;
            Title = label;
            Icon = icon;

            builderContext = new TreeBuilderContext (this);

            tree = new Gtk.TreeView ();

            /*
            0 -- Text
            1 -- Icon (Open)
            2 -- Icon (Closed)
            3 -- Node Data
            4 -- Builder chain
            5 -- Pango weight
            6 -- Expanded
            */
            store = new Gtk.TreeStore (typeof (string), typeof (Gdk.Pixbuf), typeof (Gdk.Pixbuf), typeof (object), typeof (object), typeof(int), typeof(bool));
            tree.Model = store;

            tree.EnableModelDragDest (target_table, Gdk.DragAction.Copy | Gdk.DragAction.Move);
            Gtk.Drag.SourceSet (tree, Gdk.ModifierType.Button1Mask, target_table, Gdk.DragAction.Copy | Gdk.DragAction.Move);

            store.DefaultSortFunc = new Gtk.TreeIterCompareFunc (CompareNodes);
            store.SetSortColumnId (/* GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID */ -1, Gtk.SortType.Ascending);

            tree.HeadersVisible = false;
            tree.SearchColumn = 0;
            tree.EnableSearch = true;
            complete_column = new Gtk.TreeViewColumn ();
            complete_column.Title = "column";

            Gtk.CellRendererPixbuf pix_render = new Gtk.CellRendererPixbuf ();
            complete_column.PackStart (pix_render, false);
            complete_column.AddAttribute (pix_render, "pixbuf", OpenIconColumn);
            complete_column.AddAttribute (pix_render, "pixbuf-expander-open", OpenIconColumn);
            complete_column.AddAttribute (pix_render, "pixbuf-expander-closed", ClosedIconColumn);

            text_render = new Gtk.CellRendererText ();
            text_render.Edited += new Gtk.EditedHandler (HandleOnEdit);

            complete_column.PackStart (text_render, true);
            complete_column.AddAttribute (text_render, "text", TextColumn);
            complete_column.AddAttribute (text_render, "weight", WeightColumn);

            tree.AppendColumn (complete_column);

            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow ();
            sw.Add(tree);
            contentPanel = new Gtk.Frame ();
            contentPanel.Add(sw);

            tree.TestExpandRow += new Gtk.TestExpandRowHandler (OnTestExpandRow);
            tree.RowActivated += new Gtk.RowActivatedHandler(OnNodeActivated);

            contentPanel.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(OnButtonRelease);
            contentPanel.PopupMenu += new Gtk.PopupMenuHandler (OnPopupMenu);

            foreach (NodeBuilder nb in builders)
                nb.SetContext (builderContext);

            workNode = new TreeNodeNavigator (this);
            compareNode1 = new TreeNodeNavigator (this);
            compareNode2 = new TreeNodeNavigator (this);

            tree.DragBegin += new Gtk.DragBeginHandler (OnDragBegin);
            tree.DragDataReceived += new Gtk.DragDataReceivedHandler (OnDragDataReceived);
            tree.DragDrop += new Gtk.DragDropHandler (OnDragDrop);
            tree.DragEnd += new Gtk.DragEndHandler (OnDragEnd);
            tree.DragMotion += new Gtk.DragMotionHandler (OnDragMotion);

            tree.CursorChanged += new EventHandler (OnSelectionChanged);

            contentPanel.ShowAll ();
        }
        public void CreateGui()
        {
            Gtk.Image icn_reload = new Gtk.Image(Gtk.Stock.Refresh, Gtk.IconSize.Button);
            _reload          = new Gtk.Button(icn_reload);
            _reload.Clicked += OnReload;

            _performer            = new Gtk.Entry(200);
            _title                = new Gtk.Entry(200);
            _title.WidthChars     = 60;
            _performer.WidthChars = 60;
            _subtitle             = new Gtk.Entry(300);
            _subtitle.WidthChars  = 60;
            _composer             = new Gtk.Entry(200);
            _composer.WidthChars  = 60;
            _year            = new Gtk.Entry(20);
            _year.WidthChars = 20;

            _image = new Gtk.Image();
            _image.SetSizeRequest(100, 100);
            _imagefile          = new Gtk.FileChooserButton("Choose image file", Gtk.FileChooserAction.Open);
            _imagefile.FileSet += new EventHandler(EvtImageSet);

            Gtk.Image icn_add_track = new Gtk.Image(Gtk.Stock.Add, Gtk.IconSize.Button);
            _add_track          = new Gtk.Button(icn_add_track);
            _add_track.Clicked += OnAddTrack;

            Gtk.Image icn_del_track = new Gtk.Image(Gtk.Stock.Delete, Gtk.IconSize.Button);
            _del_track          = new Gtk.Button(icn_del_track);
            _del_track.Clicked += OnDelTrack;

            Gtk.Image icn_save = new Gtk.Image(Gtk.Stock.Save, Gtk.IconSize.Button);
            _save          = new Gtk.Button(icn_save);
            _save.Clicked += OnSave;

            _store  = new Gtk.ListStore(typeof(int), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string));
            _tracks = new Gtk.TreeView();
            {
                Gtk.CellRendererText cr0 = new Gtk.CellRendererText();
                cr0.Scale = 0.8;
                _tracks.AppendColumn("Nr.", cr0, "text", 0);

                Gtk.CellRendererText cr_title = new Gtk.CellRendererText();
                cr_title.Scale    = 0.8;
                cr_title.Editable = true;
                cr_title.Edited  += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) {
                    setCell(1, args.NewText, new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn("Title", cr_title, "text", 1);

                Gtk.CellRendererText cr_artist = new Gtk.CellRendererText();
                cr_artist.Editable = true;
                cr_artist.Scale    = 0.8;
                cr_artist.Edited  += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) {
                    setCell(2, args.NewText, new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn("Artist", cr_artist, "text", 2);

                Gtk.CellRendererText cr_composer = new Gtk.CellRendererText();
                cr_composer.Editable = true;
                cr_composer.Scale    = 0.8;
                cr_composer.Edited  += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) {
                    setCell(3, args.NewText, new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn("Composer", cr_composer, "text", 3);

                Gtk.CellRendererText cr_piece = new Gtk.CellRendererText();
                cr_piece.Editable = true;
                cr_piece.Scale    = 0.8;
                cr_piece.Edited  += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) {
                    setCell(4, args.NewText, new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn("Piece", cr_piece, "text", 4);

                Gtk.CellRendererText cr_time = new Gtk.CellRendererText();
                cr_time.Editable = true;
                cr_time.Scale    = 0.8;
                cr_time.Edited  += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) {
                    setCell(5, args.NewText, new Gtk.TreePath(args.Path));
                });
                _tracks.AppendColumn("Offset", cr_time, "text", 5);
            }

            _tracks.Model = _store;

            Gtk.Table tbl = new Gtk.Table(2, 5, false);
            tbl.Attach(new Gtk.Label("Album:"), 0, 1, 0, 1);
            tbl.Attach(_title, 1, 2, 0, 1);
            tbl.Attach(new Gtk.Label("Artist:"), 0, 1, 1, 2);
            tbl.Attach(_performer, 1, 2, 1, 2);
            tbl.Attach(new Gtk.Label("Composer:"), 0, 1, 2, 3);
            tbl.Attach(_composer, 1, 2, 2, 3);
            tbl.Attach(new Gtk.Label("Subtitle:"), 0, 1, 3, 4);
            tbl.Attach(_subtitle, 1, 2, 3, 4);
            tbl.Attach(new Gtk.Label("year:"), 0, 1, 4, 5);
            tbl.Attach(_year, 1, 2, 4, 5);

            Gtk.Frame frm = new Gtk.Frame();
            frm.Add(tbl);

            Gtk.HBox hb2 = new Gtk.HBox();
            hb2.PackEnd(_reload, false, false, 1);
            hb2.PackEnd(_del_track, false, false, 1);
            hb2.PackEnd(_add_track, false, false, 1);
            hb2.PackEnd(_save, false, false, 1);

            Gtk.HBox hb  = new Gtk.HBox();
            Gtk.VBox vb1 = new Gtk.VBox();
            vb1.PackStart(frm, false, false, 0);
            vb1.PackStart(hb2, true, true, 0);
            hb.PackStart(vb1, false, false, 0);

            Gtk.Frame frm2 = new Gtk.Frame();
            frm2.Add(_image);
            Gtk.VBox vbi = new Gtk.VBox();
            Gtk.HBox bb  = new Gtk.HBox();
            bb.PackStart(new Gtk.VBox(), true, true, 0);
            bb.PackStart(frm2, false, false, 0);
            bb.PackEnd(new Gtk.VBox(), true, true, 0);

            vbi.PackStart(bb, true, true, 2);
            vbi.PackEnd(_imagefile, false, false, 2);
            hb.PackEnd(vbi, true, true, 2);

            Gtk.ScrolledWindow scroll = new Gtk.ScrolledWindow();
            scroll.Add(_tracks);
            scroll.SetSizeRequest(800, 300);

            base.VBox.PackStart(hb, false, false, 4);
            base.VBox.PackStart(scroll, true, true, 0);
            base.VBox.ShowAll();

            base.AddButton("Close", 0);
        }
Exemple #42
0
        private Atk.Object GetAccessible(BasicWidgetType type, string text, object preWidget, bool real, bool embeddedImage)
        {
            Atk.Object     accessible = null;
            Gtk.Widget     widget     = null;
            Gtk.Adjustment adj        = new Gtk.Adjustment(50, 0, 100, 1, 10, 20);
            switch (type)
            {
            case BasicWidgetType.Label:
                widget = new Gtk.Label();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealLabel();
                }
                ((Gtk.Label)widget).Text = text;
                break;

            case BasicWidgetType.NormalButton:
                widget = new Gtk.Button();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealButton(embeddedImage);
                }
                ((Gtk.Button)widget).Label = text;
                break;

            case BasicWidgetType.Window:
                widget = new Gtk.Window(text);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealWindow();
                }
                break;

            case BasicWidgetType.CheckBox:
                widget = new Gtk.CheckButton();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealCheckBox(embeddedImage);
                }
                ((Gtk.CheckButton)widget).Label = text;
                break;

            case BasicWidgetType.RadioButton:
                if (!real)
                {
                    throw new NotSupportedException("We cannot use non-real radio buttons because of some wierd behaviour");
                }

                widget = GailTestApp.MainClass.GiveMeARealRadioButton(embeddedImage);
                RunInGuiThread(delegate {
                    ((Gtk.CheckButton)widget).Label = text;
                });
                break;

            case BasicWidgetType.StatusBar:
                widget = new Gtk.Statusbar();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealStatusbar();
                }
                ((Gtk.Statusbar)widget).Push(0, text);
                break;

            case BasicWidgetType.TextBoxEntry:
                if (!real)
                {
                    throw new NotSupportedException();
                }

                widget = GailTestApp.MainClass.GiveMeARealEntry(true);
                RunInGuiThread(delegate {
                    ((Gtk.Entry)widget).Text = text;
                });
                break;

            case BasicWidgetType.RichTextBox:
            case BasicWidgetType.TextBoxView:
                if (!real)
                {
                    throw new NotSupportedException();
                }

                widget = GailTestApp.MainClass.GiveMeARealTextView();
                RunInGuiThread(delegate {
                    ((Gtk.TextView)widget).Buffer.Text = text;
                });
                break;

            case BasicWidgetType.PasswordCharTextBoxEntry:
                if (!real)
                {
                    throw new NotSupportedException();
                }

                widget = GailTestApp.MainClass.GiveMeARealEntry(false);
                RunInGuiThread(delegate {
                    ((Gtk.Entry)widget).Text = text;
                });
                break;

            case BasicWidgetType.HScrollBar:
                widget = new Gtk.HScrollbar(adj);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealHScrollbar();
                }
                break;

            case BasicWidgetType.VScrollBar:
                widget = new Gtk.VScrollbar(adj);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealVScrollbar();
                }
                break;

            case BasicWidgetType.ProgressBar:
                widget = new Gtk.ProgressBar(adj);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealProgressBar();
                }
                break;

            case BasicWidgetType.Spinner:
                widget = new Gtk.SpinButton(adj, 1, 2);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealSpinButton();
                }
                break;

            case BasicWidgetType.PictureBox:
                widget = new Gtk.Image();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealImage(embeddedImage);
                }
                break;

            case BasicWidgetType.ListView:
            case BasicWidgetType.TreeView:
                Gtk.TreeStore store       = null;
                List <string> columnNames = new List <String> ();
                XmlDocument   xml         = new XmlDocument();
                xml.LoadXml(text);
                foreach (XmlElement th in xml.GetElementsByTagName("th"))
                {
                    foreach (XmlElement td in th.GetElementsByTagName("td"))
                    {
                        columnNames.Add(td.InnerText);
                    }
                }
                if (columnNames.Count == 0)
                {
                    columnNames.Add(string.Empty);
                }
                if (columnNames.Count == 1)
                {
                    store = new Gtk.TreeStore(typeof(string));
                }
                else if (columnNames.Count == 2)
                {
                    store = new Gtk.TreeStore(typeof(string), typeof(string));
                }
                else if (columnNames.Count == 3)
                {
                    store = new Gtk.TreeStore(typeof(string), typeof(string), typeof(string));
                }
                else
                {
                    Assert.Fail("This test only supports 1-3 columns; got " + columnNames.Count);
                }
                Gtk.TreeIter[] iters = new Gtk.TreeIter [8];
                XmlElement     root  = xml.DocumentElement;
                for (XmlNode node = root.FirstChild; node != null; node = node.NextSibling)
                {
                    if (node.Name == "tr")
                    {
                        AddToTreeStore(store, iters, 0, node);
                    }
                }
                widget = new Gtk.TreeView(store);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealTreeView();
                    RunInGuiThread(delegate {
                        ((Gtk.TreeView)widget).Model = store;
                    });
                }

                RunInGuiThread(delegate {
                    Gtk.TreeView treeView = (Gtk.TreeView)widget;
                    int i;
                    for (i = treeView.Columns.Length - 1; i >= 0; i--)
                    {
                        treeView.RemoveColumn(treeView.Columns [i]);
                    }
                    i = 0;
                    foreach (string columnName in columnNames)
                    {
                        Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();
                        col.Title = columnName;
                        treeView.AppendColumn(col);
                        Gtk.CellRendererText cell = new Gtk.CellRendererText();
                        col.PackStart(cell, true);
                        col.AddAttribute(cell, "text", i++);
                    }
                    ((Gtk.TreeView)widget).HeadersClickable = text.Contains("<th>");
                    ((Gtk.TreeView)widget).HeadersVisible   = ((Gtk.TreeView)widget).HeadersClickable;
                });
                break;

            case BasicWidgetType.ContainerPanel:
                widget = new Gtk.Frame();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealFrame();
                }
                break;

            case BasicWidgetType.HSplitContainer:
                widget = new Gtk.HPaned();
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealHPaned();
                }
                break;

            case BasicWidgetType.VTrackBar:
                widget = new Gtk.VScale(adj);
                if (real)
                {
                    widget = GailTestApp.MainClass.GiveMeARealVScale();
                }
                break;

            case BasicWidgetType.ComboBoxDropDownEntry:
            case BasicWidgetType.ComboBoxDropDownList:
            case BasicWidgetType.ComboBoxSimple:
                throw new NotSupportedException("You have to use the GetObject overload that receives a name array");

            default:
                throw new NotImplementedException("The widget finder backend still hasn't got support for " +
                                                  type.ToString());
            }

            accessible            = widget.Accessible;
            mappings [accessible] = widget;

            return(accessible);
        }
		public InsertTimestampPreferences () : base (false, 12)
		{	
			// Get current values
			String dateFormat = (string) Preferences.Get (
				Preferences.INSERT_TIMESTAMP_FORMAT);

			DateTime now = DateTime.Now;

			// Label
			Gtk.Label label = new Gtk.Label (Catalog.GetString (
				"Choose one of the predefined formats " +
				"or use your own."));
			label.Wrap = true;
			label.Xalign = 0;
			PackStart (label);

			// Use Selected Format
			selected_radio = new Gtk.RadioButton (Catalog.GetString (
				"Use _Selected Format"));
			PackStart (selected_radio);

			// 1st column (visible): formatted date
			// 2nd column (not visible): date format
			store = new Gtk.ListStore (typeof (string),
				typeof (string));
			foreach (String format in formats)
				store.AppendValues (now.ToString (format), format);

			scroll = new Gtk.ScrolledWindow();
			scroll.ShadowType = Gtk.ShadowType.In;
			PackStart (scroll);

			tv = new Gtk.TreeView (store);
			tv.HeadersVisible = false;
			tv.AppendColumn ("Format", new Gtk.CellRendererText (),
				"text", 0);
			scroll.Add (tv);

			// Use Custom Format
			Gtk.HBox customBox = new Gtk.HBox (false, 12);
			PackStart (customBox);

			custom_radio = new Gtk.RadioButton (
				selected_radio, Catalog.GetString ("_Use Custom Format"));
			customBox.PackStart (custom_radio);

			custom_entry = new Gtk.Entry ();
			customBox.PackStart (custom_entry);

			IPropertyEditor entryEditor = Services.Factory.CreatePropertyEditorEntry (
				Preferences.INSERT_TIMESTAMP_FORMAT, custom_entry);
			entryEditor.Setup ();

			// Activate/deactivate widgets
			bool useCustom = true;
			Gtk.TreeIter iter;
			store.GetIterFirst (out iter);

			foreach (object[] row in store) {
				if (dateFormat.Equals (row[1])) {
					// Found format in list
					useCustom = false;
					break;
				}	
				store.IterNext (ref iter);
			}

			if (useCustom) {
				custom_radio.Active = true;
				scroll.Sensitive = false;
			} else {
				selected_radio.Active = true;
				custom_entry.Sensitive = false;
				tv.Selection.SelectIter (iter);
				Gtk.TreePath path = store.GetPath (iter);				
				tv.ScrollToCell (path, null, false, 0, 0);
			}

			// Register Toggled event for one radio button only
			selected_radio.Toggled += OnSelectedRadioToggled;
			tv.Selection.Changed += OnSelectionChanged;

			ShowAll ();
		}
 protected MultipleObjectViewer(IBroadcaster hub, string caption)
     : base(false, 0)
 {
     _hub = hub;
     // --- first line: caption and buttons
     Gtk.HBox hbxFirstLine = new Gtk.HBox(false, 2);
     // Caption label
     Gtk.Alignment labelAlign = new Gtk.Alignment(0F, 0F, 1F, 1F);
     labelAlign.Add(new Gtk.Label(caption));
     hbxFirstLine.PackStart(labelAlign, false, false, 0);
     hbxFirstLine.PackStart(new Gtk.Label(String.Empty), true, true, 0);
     // "Add" button
     Gtk.Image image = new Gtk.Image();
     image.Stock = Gtk.Stock.Add;
     _btnAdd = new Gtk.Button();
     _btnAdd.Add(image);
     _btnAdd.Relief = Gtk.ReliefStyle.None;
     _btnAdd.Clicked += new EventHandler(OnAddButtonClicked);
     _btnAdd.Sensitive = false;
     hbxFirstLine.PackStart(_btnAdd, false, false, 0);
     // "Edit" button
     image = new Gtk.Image();
     image.Stock = Gtk.Stock.JumpTo;
     _btnEdit = new Gtk.Button();
     _btnEdit.Add(image);
     _btnEdit.Relief = Gtk.ReliefStyle.None;
     _btnEdit.Clicked += new EventHandler(OnEditButtonClicked);
     _btnEdit.Sensitive = false;
     hbxFirstLine.PackStart(_btnEdit, false, false, 0);
     // "Delete" button
     image = new Gtk.Image();
     image.Stock = Gtk.Stock.Remove;
     _btnDelete = new Gtk.Button();
     _btnDelete.Add(image);
     _btnDelete.Relief = Gtk.ReliefStyle.None;
     _btnDelete.Clicked += new EventHandler(OnDeleteButtonClicked);
     _btnDelete.Sensitive = false;
     hbxFirstLine.PackStart(_btnDelete, false, false, 0);
     base.PackStart(hbxFirstLine, false, false, 0);
     // --- second line: element list
     _store = new Gtk.TreeStore(typeof(string));
     _tvList = new Gtk.TreeView();
     _tvList.HeadersVisible = false;
     _tvList.AppendColumn("", new Gtk.CellRendererText(), "text", 0);
     _tvList.Model = _store;
     _tvList.FocusInEvent += new Gtk.FocusInEventHandler(EnableButtons);
     _tvList.ButtonPressEvent += new Gtk.ButtonPressEventHandler(ListClickedHandler);
     Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
     sw.ShadowType = Gtk.ShadowType.In;
     sw.Add(_tvList);
     base.PackStart(sw, true, true, 0);
     sw.Show();
 }