Exemplo n.º 1
0
        // Constructor
        /// <summary>Creates a new Add Album window.</summary>
        /// <remarks>This is created when "Play Album" is clicked.</remarks>
        public AddAlbumWindow()
        {
            base.Title = string_title;

            base.SetGConfSize
                (GConfKeyWidth, GConfDefaultWidth,
                GConfKeyHeight, GConfDefaultHeight);

            base.Items = Global.DB.Albums.Values;

            base.List.Model.SortFunc = new HandleModel.CompareFunc(SortFunc);

            // Column
            Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();
            col.Sizing  = Gtk.TreeViewColumnSizing.Fixed;
            col.Spacing = 4;

            col.PackStart(pixbuf_renderer, false);
            col.PackStart(base.TextRenderer, true);

            // Data functions
            Gtk.TreeCellDataFunc func;

            func = new Gtk.TreeCellDataFunc(PixbufCellDataFunc);
            col.SetCellDataFunc(pixbuf_renderer, func);

            func = new Gtk.TreeCellDataFunc(TextCellDataFunc);
            col.SetCellDataFunc(base.TextRenderer, func);

            // Add column
            base.List.AppendColumn(col);

            // Setup drag and drop
            base.List.DragSource   = source_entries;
            base.List.DragDataGet += OnDragDataGet;

            // Setup handlers
            Global.DB.AlbumAdded   += base.OnAdded;
            Global.DB.AlbumChanged += base.OnChanged;
            Global.DB.AlbumRemoved += base.OnRemoved;

            Global.CoverDB.DoneLoading += OnCoversDoneLoading;

            // Enable drag and drop if we're not busy loading covers.
            if (!Global.CoverDB.Loading)
            {
                EnableDragDest();
            }
        }
Exemplo n.º 2
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;
        }
        protected override void OnElementChanged(ElementChangedEventArgs <TreeView> e)
        {
            if (Control == null)
            {
                _treeView = new Gtk.TreeView();
                _treeView.HeadersVisible = false;

                Gtk.TreeViewColumn   column = new Gtk.TreeViewColumn();
                Gtk.CellRendererText cell   = new Gtk.CellRendererText();
                column.PackStart(cell, true);
                column.AddAttribute(cell, "text", 0);
                column.SetCellDataFunc(cell, new Gtk.TreeCellDataFunc(OnTextFunc));

                _treeView.AppendColumn(column);

                _treeView.RowExpanded       += OnRowExpanded;
                _treeView.RowCollapsed      += OnRowCollapsed;
                _treeView.Selection.Changed += OnSelectionChanged;

                Add(_treeView);
                _treeView.ShowAll();

                SetNativeControl(_treeView);
            }

            if (e.NewElement != null)
            {
                UpdateItems();
                UpdateRowHeight();
                UpdateRowTextColor();
            }

            base.OnElementChanged(e);
        }
Exemplo n.º 4
0
        public ChatTreeView()
        {
            ThemeSettings = new ThemeSettings();
            TreeStore = new Gtk.TreeStore(typeof(ChatView));
            TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending);
            TreeStore.SetSortFunc(0, SortTreeStore);

            Model = TreeStore;
            HeadersVisible = false;
            BorderWidth = 0;
            Selection.Mode = Gtk.SelectionMode.Browse;
            Selection.Changed += (sender, e) => {
                Gtk.TreeIter iter;
                if (!Selection.GetSelected(out iter)) {
                    return;
                }
                var path = TreeStore.GetPath(iter);
                f_CurrentChatNumber = GetRowNumber(path);
            };

            var iconRenderer = new Gtk.CellRendererPixbuf();
            var column = new Gtk.TreeViewColumn(null, iconRenderer);
            column.Spacing = 0;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(iconRenderer, new Gtk.TreeCellDataFunc(RenderChatViewIcon));
            AppendColumn(column);

            var cellRenderer = new Gtk.CellRendererText();
            column = new Gtk.TreeViewColumn(null, cellRenderer);
            column.Spacing = 0;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewName));
            AppendColumn(column);
        }
Exemplo n.º 5
0
		public SourceList()
		{
			_listModel = new SourceListModel();
			
			this.Build();
			
			Gtk.TreeViewColumn titleCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			titleCol.Title = "Title";
			titleCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			titleCol.PackStart(rend,true);
			titleCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderSourceTitle));
			titleCol.Resizable = true;
			rend.Width = 200;
			titleCol.MinWidth = 200;
			
			
//			Gtk.TreeViewColumn dateCol = new Gtk.TreeViewColumn();
//			rend = new Gtk.CellRendererText();
//			dateCol.Title = "Date";
//			dateCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
//			dateCol.PackStart(rend,false);
//			dateCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderSourceDate));		
//			dateCol.MinWidth = 150;
			
			SourceTreeView.AppendColumn(titleCol);
//			SourceTreeView.AppendColumn(dateCol);
			
			SourceTreeView.Model = null;
			_filterText = string.Empty;
			
			Gtk.TreeSelection selection = SourceTreeView.Selection;
			selection.Changed += new EventHandler(OnSelection_Changed);
		}
Exemplo n.º 6
0
		public SourceCitationList()
		{
			this.Build();
			
			_listModel = new SourceCitationListModel();
			
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			
			Gtk.TreeViewColumn citationCountCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			citationCountCol.Title = "No.";
			citationCountCol.PackStart(rend,true);
			citationCountCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderCitationCount));
			
			Gtk.TreeViewColumn citationCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			citationCol.Title = "Text";
			citationCol.PackStart(rend,true);
			citationCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderSourceCitation));
			
			SourceCitationTreeView.AppendColumn(buttonCol);
			SourceCitationTreeView.AppendColumn(citationCountCol);
			SourceCitationTreeView.AppendColumn(citationCol);
					
			SourceCitationTreeView.Model = _listModel.Adapter;
			
			Gtk.TreeSelection selection = SourceCitationTreeView.Selection;
			selection.Changed += new EventHandler(OnSelection_Changed);
		}
Exemplo n.º 7
0
        // Constructor
        /// <summary>Creates a new Add Song window.</summary>
        /// <remarks>This is created when "Play Song" is clicked.</remarks>
        public AddSongWindow()
        {
            base.Title = string_title;

            base.SetGConfSize
                (GConfKeyWidth, GConfDefaultWidth,
                GConfKeyHeight, GConfDefaultHeight);

            base.Items = Global.DB.Songs.Values;

            base.List.Model.SortFunc = new HandleModel.CompareFunc(SortFunc);

            // Column
            Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();
            col.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            col.PackStart(base.TextRenderer, true);

            Gtk.TreeCellDataFunc func =
                new Gtk.TreeCellDataFunc(CellDataFunc);

            col.SetCellDataFunc(base.TextRenderer, func);

            base.List.AppendColumn(col);

            // Setup drag and drop
            base.List.DragSource   = source_entries;
            base.List.DragDataGet += OnDragDataGet;

            // Setup handlers
            Global.DB.SongAdded   += base.OnAdded;
            Global.DB.SongChanged += base.OnChanged;
            Global.DB.SongRemoved += base.OnRemoved;
        }
Exemplo n.º 8
0
		public NotesView()
		{
			this.Build();
			
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-index";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			
			Gtk.TreeViewColumn noteCountCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			noteCountCol.Title = "No.";
			noteCountCol.PackStart(rend,true);
			noteCountCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderNoteCount));
			
			Gtk.TreeViewColumn noteCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			noteCol.Title = "Text";
			noteCol.PackStart(rend,true);
			noteCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderNote));
			
			NotesTreeView.AppendColumn(buttonCol);
			NotesTreeView.AppendColumn(noteCountCol);
			NotesTreeView.AppendColumn(noteCol);
			
			Model = new NoteListModel();
			
			Gtk.TreeSelection selection = NotesTreeView.Selection;
			selection.Changed += new EventHandler(OnNoteSelection_Changed);
		}
Exemplo n.º 9
0
        public ChatTreeView()
        {
            ThemeSettings = new ThemeSettings();
            TreeStore     = new Gtk.TreeStore(typeof(ChatView));
            TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending);
            TreeStore.SetSortFunc(0, SortTreeStore);

            Model              = TreeStore;
            HeadersVisible     = false;
            BorderWidth        = 0;
            ShowExpanders      = false;
            LevelIndentation   = 12;
            Selection.Mode     = Gtk.SelectionMode.Browse;
            Selection.Changed += (sender, e) => {
                Gtk.TreeIter iter;
                if (!Selection.GetSelected(out iter) &&
                    TreeStore.GetIterFirst(out iter))
                {
                    Selection.SelectIter(iter);
                    return;
                }
                if (Gtk.TreeIter.Zero.Equals(iter))
                {
                    // no chat views available; this happens during shutdown
                    return;
                }
                var path = TreeStore.GetPath(iter);
                f_CurrentChatNumber = GetRowNumber(path);
            };

            var iconRenderer = new Gtk.CellRendererPixbuf();
            var column       = new Gtk.TreeViewColumn(null, iconRenderer);

            column.Spacing = 0;
            column.Sizing  = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(iconRenderer, new Gtk.TreeCellDataFunc(RenderChatViewIcon));
            AppendColumn(column);

            var cellRenderer = new Gtk.CellRendererText()
            {
                Ellipsize = Pango.EllipsizeMode.End
            };

            column         = new Gtk.TreeViewColumn(null, cellRenderer);
            column.Spacing = 0;
            column.Expand  = true;
            column.Sizing  = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewName));
            AppendColumn(column);

            cellRenderer     = new Gtk.CellRendererText();
            column           = new Gtk.TreeViewColumn(null, cellRenderer);
            column.Spacing   = 0;
            column.Alignment = 1;
            column.Sizing    = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewActivity));
            AppendColumn(column);
            ActivityColumn = column;
        }
Exemplo n.º 10
0
		public Gtk.TreeViewColumn AppendColumn (string title, Gtk.CellRenderer cell, Gtk.NodeCellDataFunc cell_data) 
		{
			Gtk.TreeViewColumn col = new Gtk.TreeViewColumn ();
			col.Title = title;
			col.PackStart (cell, true);
			col.SetCellDataFunc (cell, cell_data);
			
			AppendColumn (col);
			return col;
		}
Exemplo n.º 11
0
        public TreeViewColumn AppendColumn(string title, CellRenderer cell, CellLayoutDataFunc cell_data)
        {
            Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();
            col.Title = title;
            col.PackStart(cell, true);
            col.SetCellDataFunc(cell, cell_data);

            AppendColumn(col);
            return(col);
        }
Exemplo n.º 12
0
		public ScrapBookView()
		{
			_recListModel = new MultimediaRecordListModel();
			_listModel = new MultimediaFileListModel();
			
			this.Build();
			
			
			Gtk.TreeViewColumn titleCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			titleCol.Title = "Record Title";
			titleCol.PackStart(rend,true);
			titleCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderMultimediaRecordTitle));
								
			RecordTreeView.AppendColumn(titleCol);
			
			RecordTreeView.Model = null;
			
			Gtk.TreeSelection selection = RecordTreeView.Selection;
			selection.Changed += new EventHandler(OnRecordSelection_Changed);

			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-open";
			buttonCol.PackStart(butRend,true);
							
			Gtk.TreeViewColumn filenameCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			filenameCol.Title = "Filename";
			filenameCol.PackStart(rend,true);
			filenameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderMultimediaFilename));

			Gtk.TreeViewColumn typeCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			typeCol.Title = "Type";
			typeCol.PackStart(rend,true);
			typeCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderMultimediaType));
			
			Gtk.TreeViewColumn formatCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			formatCol.Title = "Format";
			formatCol.PackStart(rend,true);
			formatCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderMultimediaFormat));
									
			FileTreeView.AppendColumn(buttonCol);
			FileTreeView.AppendColumn(filenameCol);
			FileTreeView.AppendColumn(typeCol);
			FileTreeView.AppendColumn(formatCol);
			
			FileTreeView.Model = null;
			
			selection = FileTreeView.Selection;
			selection.Changed += new EventHandler(OnSelection_Changed);
		}
Exemplo n.º 13
0
        public TableColumn(string name, int sortColumnId, Gtk.TreeCellDataFunc dataFunc)
        {
            Cell = new Gtk.CellRendererText ();
            Column = new Gtk.TreeViewColumn ();

            Column.Title = name;
            Column.SortColumnId = sortColumnId;

            Column.PackStart (Cell, true);
            Column.Expand = true;
            Column.SetCellDataFunc (Cell, dataFunc);
        }
Exemplo n.º 14
0
        public ChatTreeView()
        {
            ThemeSettings = new ThemeSettings();
            TreeStore = new Gtk.TreeStore(typeof(ChatView));
            TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending);
            TreeStore.SetSortFunc(0, SortTreeStore);

            Model = TreeStore;
            HeadersVisible = false;
            BorderWidth = 0;
            ShowExpanders = false;
            LevelIndentation = 12;
            Selection.Mode = Gtk.SelectionMode.Browse;
            Selection.Changed += (sender, e) => {
                Gtk.TreeIter iter;
                if (!Selection.GetSelected(out iter) &&
                    TreeStore.GetIterFirst(out iter)) {
                    Selection.SelectIter(iter);
                    return;
                }
                var path = TreeStore.GetPath(iter);
                f_CurrentChatNumber = GetRowNumber(path);
            };

            var iconRenderer = new Gtk.CellRendererPixbuf();
            var column = new Gtk.TreeViewColumn(null, iconRenderer);
            column.Spacing = 0;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(iconRenderer, new Gtk.TreeCellDataFunc(RenderChatViewIcon));
            AppendColumn(column);

            var cellRenderer = new Gtk.CellRendererText() {
                Ellipsize = Pango.EllipsizeMode.End
            };
            column = new Gtk.TreeViewColumn(null, cellRenderer);
            column.Spacing = 0;
            column.Expand = true;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewName));
            AppendColumn(column);

            cellRenderer = new Gtk.CellRendererText();
            column = new Gtk.TreeViewColumn(null, cellRenderer);
            column.Spacing = 0;
            column.Alignment = 1;
            column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewActivity));
            AppendColumn(column);
            ActivityColumn = column;
        }
Exemplo n.º 15
0
		public IndividualList()
		{		
			this.Build();
			
			_nameCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			_nameCol.Title = "Name";
			_nameCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			_nameCol.PackStart(rend,true);
			_nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualName));
			_nameCol.Resizable = true;
			rend.Width = 200;
			_nameCol.MinWidth = 250;
			
			_dobCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			_dobCol.Title = "Date of Birth";
			_dobCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			_dobCol.PackStart(rend,false);
			_dobCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualDob));
			_dobCol.Resizable = false;
			_dobCol.MinWidth = 150;

			_preferedCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererToggle();
			((Gtk.CellRendererToggle)rend).Radio = true;
			((Gtk.CellRendererToggle)rend).Mode = Gtk.CellRendererMode.Activatable;
			((Gtk.CellRendererToggle)rend).Activatable = true;
			((Gtk.CellRendererToggle)rend).Toggled += new Gtk.ToggledHandler(Prefered_Toggled);
			_preferedCol.Title = "Prefered";
			_preferedCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			_preferedCol.PackStart(rend,true);
			_preferedCol.Resizable = false;
			_preferedCol.MinWidth = 50;
			_preferedCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderPreferedSpouse));
			_preferedCol.Visible = false;
			
			IndividualTreeView.AppendColumn(_nameCol);
			IndividualTreeView.AppendColumn(_dobCol);
			IndividualTreeView.AppendColumn(_preferedCol);
			
			IndividualTreeView.Model = null;
			_filterText = string.Empty;
			
			Gtk.TreeSelection selection = IndividualTreeView.Selection;
			selection.Changed += new EventHandler(OnSelection_Changed);
			
			SoundexCheckBox.Toggled += new EventHandler(OnSoundexCheckBox_Toggled);
		}
Exemplo n.º 16
0
        private void BuildFontFamilyTree()
        {
            fontListStore               = new Gtk.ListStore(typeof(string), typeof(Pango.FontFamily));
            treeFont.Model              = fontListStore;
            treeFont.HeadersVisible     = false;
            treeFont.Selection.Changed += HandleSelectionFontFamily;

            Gtk.TreeViewColumn   fontNameColumn = new Gtk.TreeViewColumn();
            Gtk.CellRendererText fontNameCell   = new Gtk.CellRendererText();
            fontNameColumn.Title = "Font";
            fontNameColumn.PackStart(fontNameCell, false);
            fontNameColumn.SetCellDataFunc(fontNameCell, new Gtk.TreeCellDataFunc(RenderCellFamilyName));

            treeFont.AppendColumn(fontNameColumn);

            LoadFonts();
        }
Exemplo n.º 17
0
		private void BuildFontFamilyTree()
		{
			fontListStore = new Gtk.ListStore (typeof(string), typeof(Pango.FontFamily));
			treeFont.Model = fontListStore;
			treeFont.HeadersVisible = false;
			treeFont.Selection.Changed += HandleSelectionFontFamily;

			Gtk.TreeViewColumn fontNameColumn = new Gtk.TreeViewColumn ();
			Gtk.CellRendererText fontNameCell = new Gtk.CellRendererText ();
			fontNameColumn.Title = "Font";
			fontNameColumn.PackStart (fontNameCell, false);
			fontNameColumn.SetCellDataFunc(fontNameCell, new Gtk.TreeCellDataFunc (RenderCellFamilyName));

			treeFont.AppendColumn (fontNameColumn);

			LoadFonts();
		}
Exemplo n.º 18
0
        protected override void addHeaderColumn(VirtualGridHeaderColumn headercolumn)
        {
            //throw new Exception("is it used ??");
            base.addHeaderColumn(headercolumn);

            Gtk.TreeViewColumn column = new Gtk.TreeViewColumn();
            column.Visible   = headercolumn.Visible;
            column.Title     = headercolumn.ColumnName;
            column.Resizable = true;
            //Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText();
            Gtk.CellRenderer renderer;
            //Gtk.CellRendererCombo artistNameCell = new Gtk.CellRendererCombo();


            if (!String.IsNullOrEmpty(headercolumn.Renderer))
            {
                Type tp = Type.GetType(headercolumn.Renderer);
                renderer = (Gtk.CellRenderer)Sharpend.Utils.Reflection.createInstance(tp);
            }
            else
            {
                renderer = new Gtk.CellRendererText();
                //renderer = treecellrenderer;
            }


            column.PackStart(renderer, true);
            Tree.AppendColumn(column);

            String attribute = "text";

            if (headercolumn.ColumnType.Equals("Gdk.Pixbuf,gdk-sharp", StringComparison.OrdinalIgnoreCase))
            {
                attribute = "pixbuf";
            }


            if (OnTreeCellData != null)
            {
                column.SetCellDataFunc(renderer, OnTreeCellData);
            }

            column.AddAttribute(renderer, attribute, HeaderColumns.Count - 1);
        }
Exemplo n.º 19
0
		public AddressView()
		{
			this.Build();
			
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-index";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-edit";
			buttonCol.PackStart(butRend,true);
			
			Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			nameCol.Title = "Type";
			nameCol.PackStart(rend,true);
			nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventName));
			
			Gtk.TreeViewColumn dateCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			dateCol.Title = "Date";
			dateCol.PackStart(rend,true);
			dateCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventDate));
			dateCol.SortColumnId = 0;
			
			ResiTreeView.AppendColumn(buttonCol);
			ResiTreeView.AppendColumn(nameCol);
			ResiTreeView.AppendColumn(dateCol);
			
			Gtk.TreeSelection selection = ResiTreeView.Selection;
			selection.Changed += new EventHandler(OnResiSelection_Changed);
		
			// RESI event list for addresses
			_eventListModel = new EventListModel();
			_eventListModel.FilterType = GedcomEvent.GedcomEventType.RESIFact;
			
		}
Exemplo n.º 20
0
        public SidePaneTreeView(SidePaneTreeStore sidePaneStore)
        {
            Model = sidePaneStore;

            var filterTextDataFunc = new Gtk.TreeCellDataFunc(RenderFilterColumnTextFromBibtexRecords);
            var col = new Gtk.TreeViewColumn("Filter", new Gtk.CellRendererText(), "text");

            col.SetCellDataFunc(col.Cells[0], filterTextDataFunc);
            col.Sizing = Gtk.TreeViewColumnSizing.Autosize;

            AppendColumn(col);

            Gtk.TreePath path = sidePaneStore.GetPathAll();
            SetCursor(path, col, false);

            // Callbacks for the sidePaneTreeView
            //Selection.Changed += OnSidePaneTreeSelectionChanged;

            Show();
        }
Exemplo n.º 21
0
        public IrcGroupChatView(GroupChatModel groupChat)
            : base(groupChat)
        {
            Trace.Call(groupChat);

            if (PersonTreeView != null) {
                Gtk.CellRendererText cellr = new Gtk.CellRendererText();
                // HACK: for some reason GTK is giving the space of 2 chars which
                // we workaround using a char width of 0
                cellr.WidthChars = 0;
                Gtk.TreeViewColumn column = new Gtk.TreeViewColumn(String.Empty, cellr);
                column.Spacing = 0;
                column.SortIndicator = false;
                column.Sizing = Gtk.TreeViewColumnSizing.GrowOnly;
                column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(_RenderIrcGroupPersonMode));

                PersonTreeView.AppendColumn(column);
                PersonTreeView.MoveColumnAfter(IdentityNameColumn, column);
            }
        }
Exemplo n.º 22
0
        public IrcGroupChatView(GroupChatModel groupChat) : base(groupChat)
        {
            Trace.Call(groupChat);

            if (PersonTreeView != null)
            {
                Gtk.CellRendererText cellr = new Gtk.CellRendererText();
                // HACK: for some reason GTK is giving the space of 2 chars which
                // we workaround using a char width of 0
                cellr.WidthChars = 0;
                Gtk.TreeViewColumn column = new Gtk.TreeViewColumn(String.Empty, cellr);
                column.Spacing       = 0;
                column.SortIndicator = false;
                column.Sizing        = Gtk.TreeViewColumnSizing.GrowOnly;
                column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderIrcGroupPersonMode));

                PersonTreeView.AppendColumn(column);
                PersonTreeView.MoveColumnAfter(IdentityNameColumn, column);
            }
        }
Exemplo n.º 23
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();
        }
Exemplo n.º 24
0
		public RepositoryList()
		{
			_listModel = new RepositoryListModel();
			
			this.Build();
			
			Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			nameCol.Title = "Name";
			nameCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			nameCol.PackStart(rend,true);
			nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderRepositoryName));
								
			RepositoryTreeView.AppendColumn(nameCol);
			
			RepositoryTreeView.Model = null;
			_filterText = string.Empty;
			
			Gtk.TreeSelection selection = RepositoryTreeView.Selection;
			selection.Changed += new EventHandler(OnSelection_Changed);
		}
Exemplo n.º 25
0
		public NameView()
		{
			this.Build();
		
			_names = new Gtk.ListStore(new Type[] { typeof(GedcomName) });
			
			Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			nameCol.Title = "Name";
			nameCol.Sizing = Gtk.TreeViewColumnSizing.Fixed;
			nameCol.PackStart(rend,true);
			nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderName));
			nameCol.Resizable = true;
			nameCol.MinWidth = 200;
			
			NamesTreeView.AppendColumn(nameCol);
			
			Gtk.TreeSelection selection = NamesTreeView.Selection;
			selection.Changed += new EventHandler(OnSelection_Changed);
			
		}
Exemplo n.º 26
0
        public ChatTreeView()
        {
            ThemeSettings = new ThemeSettings();
            TreeStore     = new Gtk.TreeStore(typeof(ChatView));
            TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending);
            TreeStore.SetSortFunc(0, SortTreeStore);

            Model              = TreeStore;
            HeadersVisible     = false;
            BorderWidth        = 0;
            Selection.Mode     = Gtk.SelectionMode.Browse;
            Selection.Changed += (sender, e) => {
                Gtk.TreeIter iter;
                if (!Selection.GetSelected(out iter))
                {
                    return;
                }
                var path = TreeStore.GetPath(iter);
                f_CurrentChatNumber = GetRowNumber(path);
            };

            var iconRenderer = new Gtk.CellRendererPixbuf();
            var column       = new Gtk.TreeViewColumn(null, iconRenderer);

            column.Spacing = 0;
            column.Sizing  = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(iconRenderer, new Gtk.TreeCellDataFunc(RenderChatViewIcon));
            AppendColumn(column);

            var cellRenderer = new Gtk.CellRendererText();

            column         = new Gtk.TreeViewColumn(null, cellRenderer);
            column.Spacing = 0;
            column.Sizing  = Gtk.TreeViewColumnSizing.Autosize;
            column.SetCellDataFunc(cellRenderer, new Gtk.TreeCellDataFunc(RenderChatViewName));
            AppendColumn(column);
        }
Exemplo n.º 27
0
        protected override void addHeaderColumn(VirtualGridHeaderColumn headercolumn)
        {
            //throw new Exception("is it used ??");
            base.addHeaderColumn(headercolumn);

            Gtk.TreeViewColumn column = new Gtk.TreeViewColumn();
            column.Visible = headercolumn.Visible;
            column.Title = headercolumn.ColumnName;
            column.Resizable = true;
            //Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText();
            Gtk.CellRenderer renderer;
            //Gtk.CellRendererCombo artistNameCell = new Gtk.CellRendererCombo();

            if (!String.IsNullOrEmpty(headercolumn.Renderer))
            {
                Type tp = Type.GetType(headercolumn.Renderer);
                renderer = (Gtk.CellRenderer)Sharpend.Utils.Reflection.createInstance(tp);
            }
            else
            {
                renderer = new Gtk.CellRendererText();
                //renderer = treecellrenderer;
            }

            column.PackStart(renderer, true);
            Tree.AppendColumn(column);

            String attribute = "text";

            if (headercolumn.ColumnType.Equals("Gdk.Pixbuf,gdk-sharp", StringComparison.OrdinalIgnoreCase))
            {
                attribute = "pixbuf";
            }

            if (OnTreeCellData != null)
            {
                column.SetCellDataFunc(renderer, OnTreeCellData);
            }

            column.AddAttribute(renderer, attribute, HeaderColumns.Count - 1);
        }
Exemplo n.º 28
0
        public void reloadColumns()
        {
            int i=0;

            columns = new ArrayList(HeaderColumns.Count);
            List<EditableColumn> editablecolums = new List<EditableColumn>(10);
            foreach (VirtualGridHeaderColumn c in getHeaderColumns())
            {
                Gtk.TreeViewColumn column = new Gtk.TreeViewColumn();
                column.Visible = c.Visible;
                column.Title = c.ColumnName;
                column.Resizable = true;
                Gtk.CellRenderer cell;
                TreeListCellRendererText treecellrenderer = null;
                //DL rempixbuf
            //                if (c.CustomOption.Equals("pixbuf", StringComparison.OrdinalIgnoreCase))
            //                {
            //                    cell = new Gtk.CellRendererPixbuf ();
            //                }
                if (!String.IsNullOrEmpty(c.Renderer))
                {
                    Type tp = Type.GetType(c.Renderer);
                    cell = (Gtk.CellRenderer)Sharpend.Utils.Reflection.createInstance(tp);
                }
                else
                {
                    treecellrenderer = new TreeListCellRendererText(c.ColumnName, i);
                    cell = treecellrenderer;
                }

                columns.Add(cell);
                column.PackStart(cell, true);
                Tree.AppendColumn(column);

                String attribute = "text";
                //DL rempixbuf
            //                if (c.CustomOption.Equals("pixbuf", StringComparison.OrdinalIgnoreCase))
            //                {
            //                    attribute = "pixbuf";
            //                }

                if (cell is Gtk.CellRendererPixbuf)
                {
                    attribute = "pixbuf";
                }

                if (OnTreeCellData != null)
                {
                    column.SetCellDataFunc(treecellrenderer, OnTreeCellData);
                }

                column.AddAttribute(cell, attribute, i);

                if (cell is Gtk.CellRendererToggle)
                {
                    (cell as Gtk.CellRendererToggle).Toggled += HandleToggled;
                    (cell as Gtk.CellRendererToggle).Activatable = true;
                    (cell as Gtk.CellRendererToggle).Mode = Gtk.CellRendererMode.Activatable;
                    column.AddAttribute(cell,"active",i);
                }

                if ((treecellrenderer != null) && (c.Editable))
                {
                    if (String.IsNullOrEmpty(c.EditableColumn))
                    {
                        treecellrenderer.Editable = true;
                    } else
                    {
                        editablecolums.Add(new EditableColumn{ColumnName=c.EditableColumn, Cellrenderer = treecellrenderer,Column = column});
                    }

                    treecellrenderer.Edited += new Gtk.EditedHandler(cell_Edited);
                    treecellrenderer.EditingStarted += HandleTreecellrendererEditingStarted;
                }

                i++;
            }

            foreach(EditableColumn c in editablecolums)
            {
                int idx = getColumnIndex(c.ColumnName);
                c.Column.AddAttribute(c.Cellrenderer,"editable",idx);
            }
        }
Exemplo n.º 29
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();
        }
Exemplo n.º 30
0
        /// <summary>
        /// Initializes a new instance of the <see cref="INTV.Shared.View.RomListView"/> class.
        /// </summary>
        /// <param name="viewModel">The data context for this visual.</param>
        public RomListView(RomListViewModel viewModel)
        {
            // TODO: Set up sorting!
            // TODO: DragDrop!
            DataContext = viewModel;
            this.Build();
            var treeView = _romListView;

            treeView.Selection.Mode = Gtk.SelectionMode.Multiple;
            treeView.HasTooltip     = true;
            treeView.EnableModelDragDest(RomListViewModel.DragDropTargetEntries, Gdk.DragAction.Private);
            treeView.EnableModelDragSource(Gdk.ModifierType.Button1Mask, RomListViewModel.DragDropSourceEntries, Gdk.DragAction.Copy);

            var column = new Gtk.TreeViewColumn();

            Gtk.CellRenderer cellRenderer = new Gtk.CellRendererPixbuf();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellImageColumnRenderer <ProgramDescriptionViewModel>(l, c, m, i, p => p.RomFileStatusIcon));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = 20;
            treeView.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = RomListViewModel.TitleHeader
            };
            cellRenderer = new Gtk.CellRendererText();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <ProgramDescriptionViewModel>(l, c, m, i, p => p.Name));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.RomListNameColWidth;
            column.Resizable  = true;
            treeView.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = RomListViewModel.CompanyHeader
            };
            cellRenderer = new Gtk.CellRendererText();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <ProgramDescriptionViewModel>(l, c, m, i, p => p.Vendor));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.RomListVendorColWidth;
            column.Resizable  = true;
            treeView.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = RomListViewModel.YearHeader
            };
            cellRenderer = new Gtk.CellRendererText();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <ProgramDescriptionViewModel>(l, c, m, i, p => p.Year));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.RomListYearColWidth;
            column.Resizable  = true;
            treeView.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = RomListViewModel.FeaturesHeader
            };
            cellRenderer        = new Gtk.CellRendererPixbuf();
            cellRenderer.Xalign = 0;
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellImageColumnRenderer <ProgramDescriptionViewModel>(l, c, m, i, p => INTV.Shared.Converter.ProgramFeaturesToPixbufConverter.ConvertToPixbuf(p)));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.RomListFeaturesColWidth;
            column.Resizable  = true;
            treeView.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = RomListViewModel.RomFileHeader
            };
            cellRenderer = new Gtk.CellRendererText();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <ProgramDescriptionViewModel>(l, c, m, i, p => p.Rom.RomPath));
            ////column.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            ////column.FixedWidth = Properties.Settings.Default.RomListPathColWidth;
            column.Resizable = true;
            treeView.AppendColumn(column);

            treeView.QueryTooltip += HandleQueryTooltip;

            ////column = new Gtk.TreeViewColumn() { Title = "Manual" };
            ////cellRenderer = new Gtk.CellRendererText();
            ////column.PackStart(cellRenderer, true);
            ////column.SetCellDataFunc(cellRenderer, (l,c,m,i) =>VisualHelpers.CellTextColumnRenderer<ProgramDescriptionViewModel>(l,c,m,i, p => p.ManualPath));
            ////column.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            ////column.FixedWidth = Properties.Settings.Default.RomListManualPathColWidth;;
            ////column.Resizable = true;
            ////treeView.AppendColumn(column);

            var romListStore = new Gtk.ListStore(typeof(ProgramDescriptionViewModel));

            romListStore.SynchronizeCollection(viewModel.Programs);
            treeView.Model = romListStore;

            // Hackish way to get the visibility right.
            HandleSettingsChanged(Properties.Settings.Default, new System.ComponentModel.PropertyChangedEventArgs(Properties.Settings.ShowRomDetailsSettingName));
            Properties.Settings.Default.PropertyChanged += HandleSettingsChanged;
            viewModel.Programs.CollectionChanged        += HandleProgramsChanged;
            viewModel.Model.ProgramStatusChanged        += HandleProgramStatusChanged;

            treeView.Selection.Changed += HandleSelectionChanged;
            ViewModel.CurrentSelection.CollectionChanged += HandleViewModelSelectionChanged;
        }
Exemplo n.º 31
0
		private void BuildFontFamilyTree()
		{
			// Create a column
			Gtk.TreeViewColumn fontNameColumn = new Gtk.TreeViewColumn ();
			fontNameColumn.Title = "Font";			
			
			// Create the text cell that will display content
			Gtk.CellRendererText fontNameCell = new Gtk.CellRendererText ();
			
			// Add the cell to the column
			fontNameColumn.PackStart (fontNameCell, false);
			
			// Add the columns to the TreeView
			treeFont.AppendColumn (fontNameColumn);
			
			// Create a model
			this.fontListStore = new Gtk.ListStore (typeof(string), typeof(Pango.FontFamily));
			
			// Assign the model to the TreeView
			treeFont.Model = fontListStore;
			
			fontNameColumn.SetCellDataFunc(fontNameCell, new Gtk.TreeCellDataFunc (RenderCellFamilyName));
			
			treeFont.Selection.Changed += HandleSelectionFontFamily;
			
			LoadFonts();
		}
Exemplo n.º 32
0
		public SourceView()
		{
			this.Build();
			
			_eventModel = new EventModel(EventModel.EventModelType.All);
			Gtk.TreeViewColumn eventNameCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererToggle();
			eventNameCol.Title = "Event";
			eventNameCol.PackStart(rend, false);
			eventNameCol.AddAttribute(rend, "active", (int)EventModel.Columns.Included);
			((Gtk.CellRendererToggle)rend).Activatable = true;
			((Gtk.CellRendererToggle)rend).Toggled += new Gtk.ToggledHandler(OnIncluded_Toggle);
			rend = new Gtk.CellRendererText();
			eventNameCol.PackStart(rend, true);
			eventNameCol.AddAttribute(rend, "text", (int)EventModel.Columns.Readable);

			EventTypeTreeView.AppendColumn(eventNameCol);		
			EventTypeTreeView.Model = _eventModel;

			
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			
			Gtk.TreeViewColumn noteCountCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			noteCountCol.Title = "No.";
			noteCountCol.PackStart(rend,true);
			noteCountCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventRecordedCount));
		
			EventGroupTreeView.AppendColumn(buttonCol);
			EventGroupTreeView.AppendColumn(noteCountCol);

			Gtk.TreeSelection selection = EventGroupTreeView.Selection;
			selection.Changed += new EventHandler(OnEventGroupSelection_Changed);
			
			_eventGroups = new GenericListModel<GedcomRecordedEvent>();
			EventGroupTreeView.Model = _eventGroups.Adapter;
			
			Gtk.TreeViewColumn callNumberCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			callNumberCol.Title = "Call Number";
			callNumberCol.PackStart(rend,true);
			callNumberCol.AddAttribute(rend, "text", 0);
			
			Gtk.TreeViewColumn mediaTypeCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			mediaTypeCol.Title = "Media Type";
			mediaTypeCol.PackStart(rend,true);
			mediaTypeCol.AddAttribute(rend, "text", 1);
			
			CallNumberTreeView.AppendColumn(callNumberCol);
			CallNumberTreeView.AppendColumn(mediaTypeCol);
			
			RepositoryCitationListModel repoCitationListModel = new RepositoryCitationListModel();
			CallNumberTreeView.Model = repoCitationListModel;
			
			selection = CallNumberTreeView.Selection;
			selection.Changed += new EventHandler(OnCallNumberSelection_Changed);
					
			// How to handle SourceMediaType.Other ?
			// don't include in initial and if the select one is SourceMediaType.Other
			// add an item into the dropdown for its value?
			// as other isn't really valid this seems like a reasonable idea
			Gtk.ListStore mediaTypes = new Gtk.ListStore(typeof(string));
			foreach (SourceMediaType mediaType in Enum.GetValues(typeof(SourceMediaType)))
			{
				if (mediaType != SourceMediaType.Other)
				{
					Gtk.TreeIter iter = mediaTypes.Append();
					mediaTypes.SetValue(iter, 0, mediaType.ToString());
				}
			}
			rend = new Gtk.CellRendererText();
			MediaTypeCombo.PackStart(rend,true);
			MediaTypeCombo.AddAttribute(rend, "text", 0);
			MediaTypeCombo.Model = mediaTypes;
			
			Notebook.Page = 0;
		}
Exemplo n.º 33
0
        public void reloadColumns()
        {
            int i = 0;

            columns = new ArrayList(HeaderColumns.Count);
            List <EditableColumn> editablecolums = new List <EditableColumn>(10);

            foreach (VirtualGridHeaderColumn c in getHeaderColumns())
            {
                Gtk.TreeViewColumn column = new Gtk.TreeViewColumn();
                column.Visible   = c.Visible;
                column.Title     = c.ColumnName;
                column.Resizable = true;
                Gtk.CellRenderer         cell;
                TreeListCellRendererText treecellrenderer = null;
                //DL rempixbuf
//                if (c.CustomOption.Equals("pixbuf", StringComparison.OrdinalIgnoreCase))
//                {
//                    cell = new Gtk.CellRendererPixbuf ();
//                }
                if (!String.IsNullOrEmpty(c.Renderer))
                {
                    Type tp = Type.GetType(c.Renderer);
                    cell = (Gtk.CellRenderer)Sharpend.Utils.Reflection.createInstance(tp);
                }
                else
                {
                    treecellrenderer = new TreeListCellRendererText(c.ColumnName, i);
                    cell             = treecellrenderer;
                }

                columns.Add(cell);
                column.PackStart(cell, true);
                Tree.AppendColumn(column);

                String attribute = "text";
                //DL rempixbuf
//                if (c.CustomOption.Equals("pixbuf", StringComparison.OrdinalIgnoreCase))
//                {
//                    attribute = "pixbuf";
//                }

                if (cell is Gtk.CellRendererPixbuf)
                {
                    attribute = "pixbuf";
                }

                if (OnTreeCellData != null)
                {
                    column.SetCellDataFunc(treecellrenderer, OnTreeCellData);
                }

                column.AddAttribute(cell, attribute, i);

                if (cell is Gtk.CellRendererToggle)
                {
                    (cell as Gtk.CellRendererToggle).Toggled    += HandleToggled;
                    (cell as Gtk.CellRendererToggle).Activatable = true;
                    (cell as Gtk.CellRendererToggle).Mode        = Gtk.CellRendererMode.Activatable;
                    column.AddAttribute(cell, "active", i);
                }

                if ((treecellrenderer != null) && (c.Editable))
                {
                    if (String.IsNullOrEmpty(c.EditableColumn))
                    {
                        treecellrenderer.Editable = true;
                    }
                    else
                    {
                        editablecolums.Add(new EditableColumn {
                            ColumnName = c.EditableColumn, Cellrenderer = treecellrenderer, Column = column
                        });
                    }

                    treecellrenderer.Edited         += new Gtk.EditedHandler(cell_Edited);
                    treecellrenderer.EditingStarted += HandleTreecellrendererEditingStarted;
                }

                i++;
            }

            foreach (EditableColumn c in editablecolums)
            {
                int idx = getColumnIndex(c.ColumnName);
                c.Column.AddAttribute(c.Cellrenderer, "editable", idx);
            }
        }
Exemplo n.º 34
0
        public IrcGroupChatView(GroupChatModel groupChat)
            : base(groupChat)
        {
            Trace.Call(groupChat);

            //_IrcGroupChatModel = ircGroupChat;
            _IrcProtocolManager = (IrcProtocolManager) groupChat.ProtocolManager;

            if (PersonMenu != null) {
                Gtk.ImageMenuItem op_item = new Gtk.ImageMenuItem(_("Op"));
                op_item.Activated += new EventHandler(_OnUserListMenuOpActivated);
                PersonMenu.Append(op_item);

                Gtk.ImageMenuItem deop_item = new Gtk.ImageMenuItem(_("Deop"));
                deop_item.Activated += new EventHandler(_OnUserListMenuDeopActivated);
                PersonMenu.Append(deop_item);

                Gtk.ImageMenuItem voice_item = new Gtk.ImageMenuItem(_("Voice"));
                voice_item.Activated += new EventHandler(_OnUserListMenuVoiceActivated);
                PersonMenu.Append(voice_item);

                Gtk.ImageMenuItem devoice_item = new Gtk.ImageMenuItem(_("Devoice"));
                devoice_item.Activated += new EventHandler(_OnUserListMenuDevoiceActivated);
                PersonMenu.Append(devoice_item);

                Gtk.ImageMenuItem kick_item = new Gtk.ImageMenuItem(_("Kick"));
                kick_item.Activated += new EventHandler(_OnUserListMenuKickActivated);
                PersonMenu.Append(kick_item);

                Gtk.ImageMenuItem kickban_item = new Gtk.ImageMenuItem(_("Kick + Ban"));
                kickban_item.Activated += new EventHandler(_OnUserListMenuKickBanActivated);
                PersonMenu.Append(kickban_item);

                Gtk.ImageMenuItem ban_item = new Gtk.ImageMenuItem(_("Ban"));
                ban_item.Activated += new EventHandler(_OnUserListMenuBanActivated);
                PersonMenu.Append(ban_item);

                Gtk.ImageMenuItem unban_item = new Gtk.ImageMenuItem(_("Unban"));
                unban_item.Activated += new EventHandler(_OnUserListMenuUnbanActivated);
                PersonMenu.Append(unban_item);

                PersonMenu.Append(new Gtk.SeparatorMenuItem());

                Gtk.ImageMenuItem query_item = new Gtk.ImageMenuItem(_("Query"));
                query_item.Activated += new EventHandler(_OnUserListMenuQueryActivated);
                PersonMenu.Append(query_item);

                Gtk.ImageMenuItem whois_item = new Gtk.ImageMenuItem(_("Whois"));
                whois_item.Activated += _OnUserListMenuWhoisActivated;
                PersonMenu.Append(whois_item);
            }

            if (PersonTreeView != null) {
                Gtk.CellRendererText cellr = new Gtk.CellRendererText();
                cellr.WidthChars = 1;
                Gtk.TreeViewColumn column = new Gtk.TreeViewColumn(String.Empty, cellr);
                column.Spacing = 0;
                column.SortIndicator = false;
                column.Sizing = Gtk.TreeViewColumnSizing.GrowOnly;
                column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(_RenderIrcGroupPersonMode));

                PersonTreeView.AppendColumn(column);
                PersonTreeView.MoveColumnAfter(IdentityNameColumn, column);
            }
        }
Exemplo n.º 35
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();
        }
Exemplo n.º 36
0
        public GroupChatView(GroupChatModel groupChat) : base(groupChat)
        {
            Trace.Call(groupChat);

            _GroupChatModel = groupChat;

            // person list
            Participants  = new List <PersonModel>();
            _OutputHPaned = new Gtk.HPaned();
            _OutputHPaned.ButtonPressEvent += (sender, e) => {;
                                                              // reset person list size on double click
                                                              if (e.Event.Type == Gdk.EventType.TwoButtonPress &&
                                                                  e.Event.Button == 1)
                                                              {
                                                                  GLib.Timeout.Add(200, delegate {
                        _OutputHPaned.Position = -1;
                        return(false);
                    });
                                                              }
            };

            Gtk.TreeView tv = new Gtk.TreeView();
            _PersonTreeView = tv;
            Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow();
            PersonScrolledWindow = sw;
            sw.HscrollbarPolicy  = Gtk.PolicyType.Never;
            sw.SizeRequested    += (o, args) => {
                // predict and set useful treeview width
                var persons = SyncedPersons;
                if (persons == null || persons.Count == 0)
                {
                    return;
                }

                int longestNameWidth = 0;
                foreach (var person in persons.Values)
                {
                    int lineWidth, lineHeigth;
                    using (var layout = _PersonTreeView.CreatePangoLayout(person.IdentityName)) {
                        layout.GetPixelSize(out lineWidth, out lineHeigth);
                    }
                    if (lineWidth > longestNameWidth)
                    {
                        longestNameWidth = lineWidth;
                    }
                }

                var bestSize = new Gtk.Requisition()
                {
                    Width = longestNameWidth
                };
                args.Requisition = bestSize;
            };

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

            Gtk.TreeViewColumn   column;
            Gtk.CellRendererText cellr = new Gtk.CellRendererText();
            IdentityNameCellRenderer = cellr;
            column = new Gtk.TreeViewColumn(String.Empty, cellr);
            column.SortColumnId  = 0;
            column.Spacing       = 0;
            column.SortIndicator = false;
            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.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;
            _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();
        }
Exemplo n.º 37
0
		public FamilyView()
		{
			this.Build();
						
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-index";
			buttonCol.PackStart(butRend,true);
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-edit";
			buttonCol.PackStart(butRend,true);
						
			Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			nameCol.Title = "Name";
			nameCol.PackStart(rend,true);
			nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualName));
			nameCol.SortColumnId = 0;
			
			Gtk.TreeViewColumn sexCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			sexCol.Title = "Sex";
			sexCol.PackStart(rend,true);
			sexCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualSex));
			
			Gtk.TreeViewColumn dobCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			dobCol.Title = "Date of Birth";
			dobCol.PackStart(rend,true);
			dobCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualDob));
			
			Gtk.TreeViewColumn birthPlaceCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			birthPlaceCol.Title = "Birth Place";
			birthPlaceCol.PackStart(rend,true);
			birthPlaceCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualBirthPlace));
			
			Gtk.TreeViewColumn dodCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			dodCol.Title = "Date of Death";
			dodCol.PackStart(rend,true);
			dodCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualDod));
			
			Gtk.TreeViewColumn deathPlaceCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			deathPlaceCol.Title = "Death Place";
			deathPlaceCol.PackStart(rend,true);
			deathPlaceCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderIndividualDeathPlace));
			
			ChildrenTreeView.AppendColumn(buttonCol);
			ChildrenTreeView.AppendColumn(nameCol);
			ChildrenTreeView.AppendColumn(sexCol);
			ChildrenTreeView.AppendColumn(dobCol);
			ChildrenTreeView.AppendColumn(birthPlaceCol);
			ChildrenTreeView.AppendColumn(dodCol);
			ChildrenTreeView.AppendColumn(deathPlaceCol);
			
			HusbandSpouseView.AddButtonClicked += this.OnAddHusbandButton_Clicked;
			HusbandSpouseView.RemoveButtonClicked += this.OnRemoveHusbandButton_Clicked;
			HusbandSpouseView.DeleteButtonClicked += this.OnDeleteHusbandButton_Clicked;
			HusbandSpouseView.NameSourceButtonClicked += this.OnHusbandNameSourceButton_Clicked;
			HusbandSpouseView.DateBornSourceButtonClicked += this.OnHusbandDateBornSourceButton_Clicked;
			HusbandSpouseView.DateDiedSourceButtonClicked += this.OnHusbandDateDiedSourceButton_Clicked;
			HusbandSpouseView.MoreButtonClicked += this.OnHusbandMoreButton_Clicked;
			HusbandSpouseView.FamiliesButtonClicked += this.OnHusbandFamiliesButton_Clicked;
			HusbandSpouseView.ParentsButtonClicked += this.OnHusbandParentsButtonClicked;
			HusbandSpouseView.ScrapBookButtonClicked += this.OnHusbandScrapBookButtonClicked;
			HusbandSpouseView.NameButtonClicked += this.OnHusbandNameButtonClicked;
			
			WifeSpouseView.AddButtonClicked += this.OnAddWifeButton_Clicked;
			WifeSpouseView.RemoveButtonClicked += this.OnRemoveWifeButton_Clicked;
			WifeSpouseView.DeleteButtonClicked += this.OnDeleteWifeButton_Clicked;
			WifeSpouseView.NameSourceButtonClicked += this.OnWifeNameSourceButton_Clicked;
			WifeSpouseView.DateBornSourceButtonClicked += this.OnWifeDateBornSourceButton_Clicked;
			WifeSpouseView.DateDiedSourceButtonClicked += this.OnWifeDateDiedSourceButton_Clicked;
			WifeSpouseView.MoreButtonClicked += this.OnWifeMoreButton_Clicked;
			WifeSpouseView.FamiliesButtonClicked += this.OnWifeFamiliesButton_Clicked;
			WifeSpouseView.ParentsButtonClicked += this.OnWifeParentsButtonClicked;
			WifeSpouseView.ScrapBookButtonClicked += this.OnWifeScrapBookButtonClicked;
			WifeSpouseView.NameButtonClicked += this.OnWifeNameButtonClicked;
			
			MarriageView.ShowScrapBook += new EventHandler<ScrapBookArgs>(OnMarriageScrapbookButton_Clicked);
			MarriageView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnMarriageSourceButton_Clicked);
			MarriageView.MoreFamilyInformation += new EventHandler<FamilyArgs>(OnMarriageMoreButton_Clicked);
		}
Exemplo n.º 38
0
		public IndividualView()
		{
			this.Build();
			
			FactView.EventAdded += new EventHandler(OnFactView_EventAdded);
			FactView.EventRemoved += new EventHandler(OnFactView_EventRemoved);
			FactView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnFactView_ShowSourceCitation);
			FactView.ShowScrapBook += new EventHandler<ScrapBookArgs>(OnEventScrapbookButton_Clicked);
			
			Gtk.TreeViewColumn placeCol = new Gtk.TreeViewColumn();
			Gtk.CellRenderer rend = new Gtk.CellRendererText();
			placeCol.Title = "Place";
			placeCol.PackStart(rend,true);
			placeCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventPlace));
			
			Gtk.TreeViewColumn dateCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			dateCol.Title = "Date";
			dateCol.PackStart(rend,true);
			dateCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventDate));
			dateCol.SortColumnId = 0;
			
			MarriageView.ShowScrapBook += new EventHandler<ScrapBookArgs>(OnMarriageScrapbookButton_Clicked);
			MarriageView.ShowSourceCitation += new EventHandler<SourceCitationArgs>(OnMarriageSourceButton_Clicked);
			MarriageView.MoreFamilyInformation += new EventHandler<FamilyArgs>(OnMarriageMoreButton_Clicked);
			
			Gtk.TreeViewColumn marriageToCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			marriageToCol.Title = "To";
			marriageToCol.PackStart(rend,true);

			marriageToCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderMarriageTo));
			
			MarriageTreeView.AppendColumn(placeCol);
			MarriageTreeView.AppendColumn(dateCol);
			MarriageTreeView.AppendColumn(marriageToCol);
			
			MarriageListModel marriageListModel = new MarriageListModel();
			MarriageTreeView.Model = marriageListModel;
			
			Gtk.TreeSelection selection = MarriageTreeView.Selection;
			selection.Changed += new EventHandler(OnMarriageSelection_Changed);
			
			_parents = new ParentsListModel();
			ParentsCombo.ListModel = _parents;
			
			_children = new ChildrenListModel();
			ChildrenCombo.ListModel = _children;
			
			_spouses = new SpouseListModel();
			SpousesCombo.ListModel = _spouses;
			
			_siblings = new SiblingsListModel();
			SiblingsCombo.ListModel = _siblings;
						
			Notebook.Page = 0;
			
		}
Exemplo n.º 39
0
        private void InitializeMenuLayout(Gtk.TreeView menuLayout, MenuLayoutViewModel dataContext)
        {
            menuLayout.SetValue(IFakeDependencyObjectHelpers.DataContextPropertyName, dataContext);
            var column = new Gtk.TreeViewColumn();

            Gtk.CellRenderer cellRenderer = new Gtk.CellRendererPixbuf();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellImageColumnRenderer <FileNodeViewModel>(l, c, m, i, p => p.Icon));
            ////column.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            ////column.FixedWidth = 20;
            menuLayout.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = MenuLayoutViewModel.LongNameHeader
            };
            cellRenderer    = new Gtk.CellRendererText();
            _longNameEditor = new TextCellInPlaceEditor(menuLayout, column, cellRenderer as Gtk.CellRendererText, FileSystemConstants.MaxLongNameLength)
            {
                IsValidCharacter = INTV.Core.Model.Grom.Characters.Contains
            };
            _longNameEditor.EditorClosed += HandleInPlaceEditorClosed;
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <FileNodeViewModel>(l, c, m, i, p => p.LongName.SafeString()));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.MenuLayoutLongNameColWidth;
            column.Resizable  = true;
            menuLayout.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = MenuLayoutViewModel.ShortNameHeader
            };
            cellRenderer     = new Gtk.CellRendererText();
            _shortNameEditor = new TextCellInPlaceEditor(menuLayout, column, cellRenderer as Gtk.CellRendererText, FileSystemConstants.MaxShortNameLength)
            {
                IsValidCharacter = INTV.Core.Model.Grom.Characters.Contains
            };
            _shortNameEditor.EditorClosed += HandleInPlaceEditorClosed;
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <FileNodeViewModel>(l, c, m, i, p => p.ShortName.SafeString()));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.MenuLayoutShortNameColWidth;
            column.Resizable  = true;
            menuLayout.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = MenuLayoutViewModel.ManualHeader
            };
            cellRenderer = new Gtk.CellRendererText();
            column.PackStart(cellRenderer, true);
            column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <FileNodeViewModel>(l, c, m, i, GetManualColumnStringValue));
            column.Sizing     = Gtk.TreeViewColumnSizing.Fixed;
            column.FixedWidth = Properties.Settings.Default.MenuLayoutManualColWidth;
            column.Resizable  = true;
            menuLayout.AppendColumn(column);

            column = new Gtk.TreeViewColumn()
            {
                Title = MenuLayoutViewModel.SaveDataHeader
            };
            cellRenderer = new Gtk.CellRendererText();
            column.PackStart(cellRenderer, true);
            ////column.SetCellDataFunc(cellRenderer, (l,c,m,i) => VisualHelpers.CellTextColumnRenderer<ProgramDescriptionViewModel>(l,c,m,i, p => p.Name));
            ////column.Sizing = Gtk.TreeViewColumnSizing.Fixed;
            ////column.FixedWidth = Properties.Settings.Default.MenuLayoutSaveDataColWidth;
            column.Resizable = true;
            column.Visible   = Properties.Settings.Default.ShowAdvancedFeatures;
            menuLayout.AppendColumn(column);

            menuLayout.HasTooltip    = true;
            menuLayout.QueryTooltip += HandleMenuLayoutQueryTooltip;

            var menuLayoutStore = new Gtk.TreeStore(typeof(FileNodeViewModel));

            dataContext.SynchronizeToTreeStore(menuLayoutStore);
            menuLayout.Model = menuLayoutStore;

            menuLayout.EnableModelDragSource(Gdk.ModifierType.Button1Mask, DragDropSourceEntries, Gdk.DragAction.Move);
            menuLayout.EnableModelDragDest(DragDropTargetEntries, Gdk.DragAction.Copy | Gdk.DragAction.Move);
            menuLayout.Selection.Changed += HandleSelectionChanged;

            dataContext.PropertyChanged += HandleMenuLayoutPropertyChanged;
        }
Exemplo n.º 40
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();
        }
Exemplo n.º 41
0
 private void SetDataFunctions()
 {
     _ObjectColumn.SetCellDataFunc(_ObjectRenderer, new Gtk.TreeCellDataFunc(RenderObject));
 }
Exemplo n.º 42
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();
        }
    /// <summary>
    /// Initializes and fills the tree view.
    /// </summary>
    private void InitializeAndFillTreeView()
    {
      Gtk.CellRendererPixbuf rulePixBufRenderer = new Gtk.CellRendererPixbuf();
      rulePixBufRenderer.Mode = Gtk.CellRendererMode.Activatable;
      Gtk.CellRendererText ruleTextRenderer = new Gtk.CellRendererText();
      ruleTextRenderer.Mode = Gtk.CellRendererMode.Activatable;
      Gtk.CellRendererToggle ruleToggleRenderer = new Gtk.CellRendererToggle();
      ruleToggleRenderer.Activatable = true;
      ruleToggleRenderer.Toggled += new Gtk.ToggledHandler(this.OnRuleToggled);

      Gtk.TreeViewColumn rulesColumn = new Gtk.TreeViewColumn();
      rulesColumn.Clickable = false;
      rulesColumn.Reorderable = false;
      rulesColumn.Title = GettextCatalog.GetString("Enabled rules");
      rulesColumn.PackStart(ruleToggleRenderer, false);
      rulesColumn.PackStart(rulePixBufRenderer, false);
      rulesColumn.PackStart(ruleTextRenderer, false);
      rulesColumn.AddAttribute(ruleToggleRenderer, "active", (int)TreeStoreColumns.Toggle);
      rulesColumn.AddAttribute(rulePixBufRenderer, "pixbuf", (int)TreeStoreColumns.PixBuf);
      rulesColumn.SetCellDataFunc(ruleTextRenderer, new Gtk.TreeCellDataFunc(this.RenderRule));
      this.rulesTreeView.AppendColumn(rulesColumn);

      this.rulesStore = new Gtk.TreeStore(typeof(bool), typeof(Gdk.Pixbuf), typeof(object), typeof(SourceAnalyzer), typeof(bool));
      this.rulesTreeView.Model = this.rulesStore;
      this.rulesTreeView.Selection.Changed += new EventHandler(this.OnTreeViewSelectionChanged);

      if (this.rulesStore != null)
      {
        // Add each of the parsers and analyzers to the tree.
        foreach (SourceParser parser in this.SettingsHandler.Core.Parsers)
        {
          Gtk.TreeIter parserIter = this.rulesStore.AppendValues(false, null, parser, null, false);

          // Add each of the boolean properties exposed by the parser.
          this.StoreAddinProperties(parser);

          // Iterate through each of the analyzers and add a checkbox for each.
          foreach (SourceAnalyzer analyzer in parser.Analyzers)
          {
            Gtk.TreeIter analyzerIter = this.rulesStore.AppendValues(parserIter, false, null, analyzer, null, false);

            // Add each of the boolean properties exposed by the analyzer.
            this.StoreAddinProperties(analyzer);

            this.FillAnalyzerRules(analyzer, analyzerIter);

            if ((bool)this.rulesStore.GetValue(analyzerIter, (int)TreeStoreColumns.Overridden))
            {
              this.rulesStore.SetValue(parserIter, (int)TreeStoreColumns.Overridden, true);
            }
          }

          this.rulesTreeView.ExpandRow(this.rulesStore.GetPath(parserIter), false);
        }
      }
    }
Exemplo n.º 44
0
		public FactView()
		{
			this.Build();
					
			FactTypeCombo.Clear();
			
			Gtk.CellRendererText rend = new Gtk.CellRendererText();
			rend.Ellipsize = Pango.EllipsizeMode.End;
			FactTypeCombo.PackStart(rend, true);
			FactTypeCombo.SetAttributes(rend, "text", EventModel.Columns.Readable);
									
			Gtk.TreeViewColumn buttonCol = new Gtk.TreeViewColumn();
			GtkCellRendererButton butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-index";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-remove";
			buttonCol.PackStart(butRend,true);
			
			butRend = new GtkCellRendererButton();
			butRend.StockId = "gtk-edit";
			buttonCol.PackStart(butRend,true);
			
			Gtk.TreeViewColumn nameCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			nameCol.Title = "Type";
			nameCol.PackStart(rend,true);
			nameCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventName));
			
			Gtk.TreeViewColumn dateCol = new Gtk.TreeViewColumn();
			rend = new Gtk.CellRendererText();
			dateCol.Title = "Date";
			dateCol.PackStart(rend,true);
			dateCol.SetCellDataFunc(rend, new Gtk.TreeCellDataFunc(ListModelUtil.RenderEventDate));
			dateCol.SortColumnId = 0;
			
			FactsTreeView.AppendColumn(buttonCol);
			FactsTreeView.AppendColumn(nameCol);
			FactsTreeView.AppendColumn(dateCol);
			
			_eventListModel = new EventListModel();
			// we need more complicated filtering than just the event type so
			// hookup to the event
			_eventListModel.FilterGedcomEvent += new EventHandler<EventListModel.FilterArgs>(FilterEvents);
			
			FactsTreeView.Model = _eventListModel;
			
			Gtk.TreeSelection selection = FactsTreeView.Selection;
			selection.Mode = Gtk.SelectionMode.Browse;
			selection.Changed += new EventHandler(OnFactSelection_Changed);
			
			_moreInfoArgs = new FactArgs();
		}