Click here to Skip to main content
15,886,199 members
Articles / Desktop Programming / Windows Forms

Task Manager

Rate me:
Please Sign up or sign in to vote.
4.90/5 (105 votes)
1 Jan 2010CPOL4 min read 203.9K   21K   229  
Manage your daily tasks and To-Do list using some exciting features of Windows 7.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TaskManager.Controls
{
    public partial class TextEditor : UserControl
    {

        #region Data Members

        private bool _richMode = false;
        private bool _showToolBar = false;
        
        #endregion

        #region Constructor

        /// <summary>
        /// constructor
        /// </summary>
        public TextEditor()
        {
            InitializeComponent();
        }

        #endregion

        #region Properties

        /// <summary>
        /// 
        /// </summary>
        public bool RichMode
        {
            get
            {
                return _richMode;
            }
            set
            {
                _richMode = value;
                SetMode();
            }
        }

        /// <summary>
        /// get/set show tool bar 
        /// </summary>
        public bool ShowToolBar
        {
            get 
            { 
                return _showToolBar; 
            }
            set 
            { 
                _showToolBar = value;
                SetMode();
            }
        }

        /// <summary>
        /// 
        /// </summary>
        public bool ReadOnly
        {
            get
            {
                return richTextBox1.ReadOnly; 
            }
            set
            {
                richTextBox1.ReadOnly = value;
            }
        }

        /// <summary>
        /// get/set text
        /// </summary>
        public string PlainText
        {
            get
            {
                return richTextBox1.Text;
            }
            set
            {
                richTextBox1.Text = value;
            }
        }

        /// <summary>
        /// get/set ritch text 
        /// </summary>
        public string RtfText
        {
            get
            {

                return richTextBox1.Rtf;
            }
            set
            {
                richTextBox1.Rtf = value;
            }
        }

        /// <summary>
        /// get text
        /// </summary>
        public override string Text
        {
            get
            {
                return (RichMode) ? RtfText : PlainText;
            }
        }

        #endregion

        #region Private

        /// <summary>
        /// initialize text editor
        /// </summary>
        private void InitializeTextEditor()
        {

            // Font list
            //PopulateFontList();

            // Font Size
            PopulateFontSizeList();

            SetMode();
        }

        /// <summary>
        /// set tool bar mode
        /// </summary>
        private void SetMode()
        {

            toolStrip1.Visible = (RichMode && ShowToolBar);
        }

        /// <summary>
        /// populate font drop down list
        /// </summary>
        private void PopulateFontList()
        {
            tsFontSize.Items.Clear();


            foreach (FontFamily font in FontFamily.Families)
            {
                tsFontSize.Items.Add(font.Name);
            }

            tsFontSize.Text = richTextBox1.SelectionFont.Name;
        }

        /// <summary>
        /// populate font size list
        /// </summary>
        private void PopulateFontSizeList()
        {
            int[] sizeList = { 8, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72 };
            tsFontSize.Items.Clear();

            //for (int i = 8; i <= 48; i++)
            foreach (int i in sizeList)
            {
                tsFontSize.Items.Add(i.ToString());
            }

            tsFontSize.Text = ((int)richTextBox1.SelectionFont.Size).ToString();


        }

        /// <summary>
        /// toggle font style
        /// </summary>
        /// <param name="fontStyle">font style</param>
        private void ToggleStyle(FontStyle fontStyle)
        {
            FontStyle selectedStyle = richTextBox1.SelectionFont.Style;



            int n = (int)(selectedStyle & fontStyle);
            if (n > 0)
            {
                selectedStyle = selectedStyle & GetStyleExcluding(fontStyle);
            }
            else
            {
                selectedStyle = selectedStyle | fontStyle;
            }


            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, selectedStyle);
        }

        /// <summary>
        /// get font style excluding font style passed in parameter.
        /// </summary>
        /// <param name="fontStyle">font style for excluding</param>
        /// <returns>font style</returns>
        private FontStyle GetStyleExcluding(FontStyle fontStyle)
        {

            FontStyle styleToReturn = FontStyle.Regular;
            foreach (FontStyle style in Enum.GetValues(typeof(FontStyle)))
            {
                if (style != fontStyle)
                {
                    styleToReturn = styleToReturn | style;
                }
            }

            return styleToReturn;
        }

        #endregion

        #region Events

        private void TextEditor_Load(object sender, EventArgs e)
        {
            InitializeTextEditor();
        }

        #region Tool Box Event

        private void tsBold_Click(object sender, EventArgs e)
        {

            ToggleStyle(FontStyle.Bold);

        }

        private void tsUnderLine_Click(object sender, EventArgs e)
        {
            ToggleStyle(FontStyle.Underline);
        }

        private void tsItalic_Click(object sender, EventArgs e)
        {
            ToggleStyle(FontStyle.Italic);

        }

        private void tsStrikeOut_Click(object sender, EventArgs e)
        {
            ToggleStyle(FontStyle.Strikeout);
        }

        private void tsForeColor_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.SelectionColor = colorDialog1.Color;
            }
        }

        private void tsBackColor_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.SelectionBackColor = colorDialog1.Color;
            }
        }

        private void tsOrderList_Click(object sender, EventArgs e)
        {

        }

        private void tsUnOrderList_Click(object sender, EventArgs e)
        {
            richTextBox1.SelectionBullet = !richTextBox1.SelectionBullet;
        }

        private void tsFontSize_TextChanged(object sender, EventArgs e)
        {
            richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont.FontFamily, Convert.ToInt32(tsFontSize.Text), richTextBox1.SelectionFont.Style);
        }


        #endregion


        #endregion

    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Chief Technology Officer
Pakistan Pakistan
Passion and positive dedication is essential part of success. I believe on hardworking and sharing knowledge with others. I always try to be a better than I am and think positive for positive result.

My Blogs

My Linked-In Profile

Comments and Discussions