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); }
public MessageTextView() { Trace.Call(); _MessageTextTagTable = BuildTagTable(); _ThemeSettings = new ThemeSettings(); Buffer = new Gtk.TextBuffer(_MessageTextTagTable); MotionNotifyEvent += OnMotionNotifyEvent; PopulatePopup += OnPopulatePopup; ExposeEvent += OnExposeEvent; }
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; }
public virtual void ApplyConfig(UserConfig config) { Trace.Call(config); if (config == null) { throw new ArgumentNullException("config"); } var theme = new ThemeSettings(config); if (theme.BackgroundColor == null) { ModifyBase(Gtk.StateType.Normal); } else { ModifyBase(Gtk.StateType.Normal, theme.BackgroundColor.Value); } if (theme.ForegroundColor == null) { ModifyText(Gtk.StateType.Normal); } else { ModifyText(Gtk.StateType.Normal, theme.ForegroundColor.Value); } ModifyFont(theme.FontDescription); Settings.ApplyConfig(config); // replace nick completer if needed if (Settings.BashStyleCompletion && !(NickCompleter is LongestPrefixNickCompleter)) { NickCompleter = new LongestPrefixNickCompleter(); } else if (!Settings.BashStyleCompletion && !(NickCompleter is TabCycleNickCompleter)) { NickCompleter = new TabCycleNickCompleter(); } // set the completion character NickCompleter.CompletionChar = Settings.CompletionCharacter; }
public MessageTextView() { Trace.Call(); _MessageTextTagTable = BuildTagTable(); _ThemeSettings = new ThemeSettings(); Buffer = new Gtk.TextBuffer(_MessageTextTagTable); MotionNotifyEvent += OnMotionNotifyEvent; PopulatePopup += OnPopulatePopup; ExposeEvent += OnExposeEvent; Realized += delegate { CheckStyle(); }; StyleSet += delegate(object o, Gtk.StyleSetArgs args) { if (!IsRealized) { // HACK: avoid GTK+ crash in gtk_text_attributes_copy_values() return; } CheckStyle(); }; }
public void ApplyConfig(UserConfig config) { _ThemeSettings = new ThemeSettings(config); if (_ThemeSettings.BackgroundColor == null) { ModifyBase(Gtk.StateType.Normal); } else { ModifyBase(Gtk.StateType.Normal, _ThemeSettings.BackgroundColor.Value); } if (_ThemeSettings.ForegroundColor == null) { ModifyText(Gtk.StateType.Normal); } else { ModifyText(Gtk.StateType.Normal, _ThemeSettings.ForegroundColor.Value); } ModifyFont(_ThemeSettings.FontDescription); string wrapModeStr = (string)config["Interface/Chat/WrapMode"]; if (!String.IsNullOrEmpty(wrapModeStr)) { Gtk.WrapMode wrapMode = (Gtk.WrapMode)Enum.Parse( typeof(Gtk.WrapMode), wrapModeStr ); if (wrapMode == Gtk.WrapMode.Word) { wrapMode = Gtk.WrapMode.WordChar; } WrapMode = wrapMode; } _BufferLines = (int)config["Interface/Notebook/BufferLines"]; }
public void ApplyConfig(UserConfig config) { _ThemeSettings = new ThemeSettings(config); if (_ThemeSettings.BackgroundColor == null) { ModifyBase(Gtk.StateType.Normal); } else { ModifyBase(Gtk.StateType.Normal, _ThemeSettings.BackgroundColor.Value); } if (_ThemeSettings.ForegroundColor == null) { ModifyText(Gtk.StateType.Normal); } else { ModifyText(Gtk.StateType.Normal, _ThemeSettings.ForegroundColor.Value); } ModifyFont(_ThemeSettings.FontDescription); string wrapModeStr = (string) config["Interface/Chat/WrapMode"]; if (!String.IsNullOrEmpty(wrapModeStr)) { Gtk.WrapMode wrapMode = (Gtk.WrapMode) Enum.Parse( typeof(Gtk.WrapMode), wrapModeStr ); if (wrapMode == Gtk.WrapMode.Word) { wrapMode = Gtk.WrapMode.WordChar; } WrapMode = wrapMode; } _BufferLines = (int) config["Interface/Notebook/BufferLines"]; }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; IsAutoScrolling = true; MessageTextView tv = new MessageTextView(); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.ShowTimestamps = true; tv.ShowMarkerline = true; tv.Editable = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.MessageAdded += OnMessageTextViewMessageAdded; tv.MessageHighlighted += OnMessageTextViewMessageHighlighted; tv.PopulatePopup += OnMessageTextViewPopulatePopup; tv.SizeRequested += delegate { AutoScroll(); }; _OutputMessageTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); _OutputScrolledWindow = sw; //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Vadjustment.ValueChanged += delegate { CheckAutoScroll(); }; sw.Add(_OutputMessageTextView); // popup menu _TabMenu = new Gtk.Menu(); Gtk.ImageMenuItem close_item = new Gtk.ImageMenuItem(Gtk.Stock.Close, null); close_item.Activated += new EventHandler(OnTabMenuCloseActivated); _TabMenu.Append(close_item); _TabMenu.ShowAll(); //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); TabImage = DefaultTabImage; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.PackStart(TabImage, false, false, 2); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); _ThemeSettings = new ThemeSettings(); // OPT-TODO: this should use a TaskStack instead of TaskQueue _LastSeenHighlightQueue = new TaskQueue("LastSeenHighlightQueue(" + ID + ")"); _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent; _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent; }
public void ApplyConfig(UserConfig config) { _ThemeSettings = new ThemeSettings(config); if (_ThemeSettings.BackgroundColor == null) { ModifyBase(Gtk.StateType.Normal); } else { ModifyBase(Gtk.StateType.Normal, _ThemeSettings.BackgroundColor.Value); } if (_ThemeSettings.ForegroundColor == null) { ModifyText(Gtk.StateType.Normal); } else { ModifyText(Gtk.StateType.Normal, _ThemeSettings.ForegroundColor.Value); } ModifyFont(_ThemeSettings.FontDescription); string wrapModeStr = (string) config["Interface/Chat/WrapMode"]; if (!String.IsNullOrEmpty(wrapModeStr)) { Gtk.WrapMode wrapMode = (Gtk.WrapMode) Enum.Parse( typeof(Gtk.WrapMode), wrapModeStr ); if (wrapMode == Gtk.WrapMode.Word) { wrapMode = Gtk.WrapMode.WordChar; } WrapMode = wrapMode; } _BufferLines = (int) config["Interface/Notebook/BufferLines"]; #if LOG4NET DateTime start = DateTime.UtcNow; #endif ResizeEmoji(); #if LOG4NET DateTime stop = DateTime.UtcNow; double duration = stop.Subtract(start).TotalMilliseconds; _Logger.Debug("ApplyConfig(): ResizeEmoji()" + " done, took: " + Math.Round(duration) + " ms"); #endif }
public virtual void ApplyConfig(UserConfig config) { Trace.Call(config); if (config == null) { throw new ArgumentNullException("config"); } var theme = new ThemeSettings(config); if (theme.BackgroundColor == null) { ModifyBase(Gtk.StateType.Normal); } else { ModifyBase(Gtk.StateType.Normal, theme.BackgroundColor.Value); } if (theme.ForegroundColor == null) { ModifyText(Gtk.StateType.Normal); } else { ModifyText(Gtk.StateType.Normal, theme.ForegroundColor.Value); } ModifyFont(theme.FontDescription); }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; _Name = _ChatModel.Name; ID = _ChatModel.ID; Name = _Name; MessageTextView tv = new MessageTextView(); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.ShowTimestamps = true; tv.ShowMarkerline = true; tv.Editable = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.MessageAdded += OnMessageTextViewMessageAdded; tv.MessageHighlighted += OnMessageTextViewMessageHighlighted; tv.PopulatePopup += OnMessageTextViewPopulatePopup; _OutputMessageTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Add(_OutputMessageTextView); _OutputScrolledWindow = sw; // popup menu _TabMenu = new Gtk.Menu(); Gtk.ImageMenuItem close_item = new Gtk.ImageMenuItem(Gtk.Stock.Close, null); close_item.Activated += new EventHandler(OnTabMenuCloseActivated); _TabMenu.Append(close_item); _TabMenu.ShowAll(); //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); _TabLabel.Text = _Name; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); _ThemeSettings = new ThemeSettings(); // OPT-TODO: this should use a TaskStack instead of TaskQueue _LastSeenHighlightQueue = new TaskQueue("LastSeenHighlightQueue("+_Name+")"); _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent; _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent; }
public virtual void ApplyConfig(UserConfig config) { Trace.Call(config); if (config == null) { throw new ArgumentNullException("config"); } ThemeSettings = new ThemeSettings(config); }
public virtual void ApplyConfig(UserConfig config) { Trace.Call(config); if (config == null) { throw new ArgumentNullException("config"); } _ThemeSettings = new ThemeSettings(config); _OutputMessageTextView.ApplyConfig(config); }
public ChatView(ChatModel chat) { Trace.Call(chat); _ChatModel = chat; IsAutoScrolling = true; MessageTextView tv = new MessageTextView(); _EndMark = tv.Buffer.CreateMark("end", tv.Buffer.EndIter, false); tv.ShowTimestamps = true; tv.ShowMarkerline = true; tv.Editable = false; tv.CursorVisible = true; tv.WrapMode = Gtk.WrapMode.Char; tv.MessageAdded += OnMessageTextViewMessageAdded; tv.MessageHighlighted += OnMessageTextViewMessageHighlighted; tv.PopulatePopup += OnMessageTextViewPopulatePopup; tv.SizeRequested += delegate { AutoScroll(); }; tv.PersonClicked += OnMessageTextViewPersonClicked; _OutputMessageTextView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); _OutputScrolledWindow = sw; //sw.HscrollbarPolicy = Gtk.PolicyType.Never; sw.HscrollbarPolicy = Gtk.PolicyType.Automatic; sw.VscrollbarPolicy = Gtk.PolicyType.Always; sw.ShadowType = Gtk.ShadowType.In; sw.Vadjustment.ValueChanged += OnVadjustmentValueChanged; sw.Add(_OutputMessageTextView); // popup menu _TabMenu = new Gtk.Menu(); _TabMenu.Shown += OnTabMenuShown; //FocusChild = _OutputTextView; //CanFocus = false; _TabLabel = new Gtk.Label(); TabImage = DefaultTabImage; _TabHBox = new Gtk.HBox(); _TabHBox.PackEnd(new Gtk.Fixed(), true, true, 0); _TabHBox.PackEnd(_TabLabel, false, false, 0); _TabHBox.PackStart(TabImage, false, false, 2); _TabHBox.ShowAll(); _TabEventBox = new Gtk.EventBox(); _TabEventBox.VisibleWindow = false; _TabEventBox.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnTabButtonPress); _TabEventBox.Add(_TabHBox); _TabEventBox.ShowAll(); _ThemeSettings = new ThemeSettings(); // OPT-TODO: this should use a TaskStack instead of TaskQueue _LastSeenHighlightQueue = new TaskQueue("LastSeenHighlightQueue("+ID+")"); _LastSeenHighlightQueue.AbortedEvent += OnLastSeenHighlightQueueAbortedEvent; _LastSeenHighlightQueue.ExceptionEvent += OnLastSeenHighlightQueueExceptionEvent; }
public virtual void ApplyConfig(UserConfig config) { Trace.Call(config); if (config == null) { throw new ArgumentNullException("config"); } ThemeSettings = new ThemeSettings(config); if (ThemeSettings.BackgroundColor == null) { ModifyBase(Gtk.StateType.Normal); } else { ModifyBase(Gtk.StateType.Normal, ThemeSettings.BackgroundColor.Value); } if (ThemeSettings.ForegroundColor == null) { ModifyText(Gtk.StateType.Normal); } else { ModifyText(Gtk.StateType.Normal, ThemeSettings.ForegroundColor.Value); } ModifyFont(ThemeSettings.FontDescription); ActivityColumn.Visible = (bool?) config["Interface/ShowActivityCounter"] ?? true; }