예제 #1
0
        private void PickBrailleForm_Load(object sender, EventArgs e)
        {
            m_ClickController = new CellClickEvent(this);

            brGrid.Redim(4, 16);

            int    row;
            int    col;
            int    brCodeNum = 0;
            string brCodeStr;
            char   brChar;

            for (row = 0; row < brGrid.RowsCount; row++)
            {
                for (col = 0; col < brGrid.ColumnsCount; col++)
                {
                    brCodeStr        = brCodeNum.ToString("X2");
                    brChar           = BrailleFontConverter.ToChar(brCodeStr);
                    brGrid[row, col] = new SourceGrid.Cells.Cell(brChar);
                    brGrid[row, col].AddController(m_ClickController);

                    brCodeNum++;
                }
            }

            brGrid.AutoSizeCells();
        }
예제 #2
0
        private void InitializeGrid()
        {
            if (m_IsInitialized)
            {
                return;
            }

            // 設定 grid 預設的欄寬與列高
            brGrid.DefaultWidth  = 30;
            brGrid.DefaultHeight = 20;

            // 設定 grid 列數與行數。
            int maxCol = m_BrDoc.CellsPerLine;              // brDoc.LongestLine.Words.Count;

            brGrid.Redim(m_BrDoc.Lines.Count * 3 + FixedRows, maxCol + FixedColumns);

            // 設定欄寬最小限制,以免呼叫 AutoSizeView 時,欄寬被縮得太小。
            for (int i = 1; i < brGrid.ColumnsCount; i++)
            {
                brGrid.Columns[i].MinimalWidth = 24;
            }
            brGrid.Columns[0].MinimalWidth = 40;                // 第 0 欄要顯示列號,需要寬些.

            // 標題欄
            if (m_HeaderView == null)
            {
                m_HeaderView      = new SourceGrid.Cells.Views.Header();
                m_HeaderView.Font = new Font(brGrid.Font, FontStyle.Regular);
            }

            if (m_HeaderView2 == null)
            {
                m_HeaderView2 = new SourceGrid.Cells.Views.RowHeader();
                DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader();
                backHeader.BackColor     = Color.Blue;
                m_HeaderView2.Background = backHeader;
                m_HeaderView2.Font       = m_HeaderView.Font;
            }

            CreateFixedArea();

            // Font objects

            if (m_PhonFont == null)
            {
                m_PhonFont = new Font("PMingLiU", DualEditForm.DefaultPhoneticFontSize, FontStyle.Regular, GraphicsUnit.Point, 1);
            }

            if (m_MingFont == null)
            {
                m_MingFont = new Font("Arial Unicode MS", DualEditForm.DefaultTextFontSize, FontStyle.Regular, GraphicsUnit.Point, 0);
                // Note: 原本為新細明體,可是為了顯示英文音標等特殊符號,必須使用 Arial Unicode MS 字型。
            }
            if (m_MingFontCJK == null)
            {
                m_MingFontCJK = new Font("PMingLiU", DualEditForm.DefaultTextFontSize, FontStyle.Regular, GraphicsUnit.Point, 1);
            }

            // view for 點字
            if (m_BrView == null)
            {
                m_BrView              = new SourceGrid.Cells.Views.Cell();
                m_BrView.BackColor    = Color.Snow;
                m_BrView.Font         = new Font("SimBraille", DualEditForm.DefaultBrailleFontSize);
                m_BrView.TrimmingMode = SourceGrid.TrimmingMode.None;
            }

            // view for 明眼字
            if (m_MingView == null)
            {
                m_MingView                  = new SourceGrid.Cells.Views.Cell();
                m_MingView.BackColor        = Color.Snow;
                m_MingView.Font             = m_MingFont;
                m_MingView.ElementText.Font = m_MingFont;
            }

            if (m_MingViewCJK == null)
            {
                m_MingViewCJK                  = new SourceGrid.Cells.Views.Cell();
                m_MingViewCJK.BackColor        = Color.Snow;
                m_MingViewCJK.Font             = m_MingFontCJK;
                m_MingViewCJK.ElementText.Font = m_MingFontCJK;
            }

            // view for 注音符號
            if (m_PhonView == null)
            {
                m_PhonView              = new SourceGrid.Cells.Views.Cell();
                m_PhonView.BackColor    = Color.YellowGreen;
                m_PhonView.Font         = m_PhonFont;
                m_PhonView.TrimmingMode = SourceGrid.TrimmingMode.None;
            }

            // view for 破音字的注音符號
            if (m_PhonView2 == null)
            {
                m_PhonView2              = new SourceGrid.Cells.Views.Cell();
                m_PhonView2.BackColor    = Color.Yellow;
                m_PhonView2.Font         = m_PhonFont;
                m_PhonView2.TrimmingMode = SourceGrid.TrimmingMode.None;
            }
            // view for 容易判斷錯誤的破音字注音符號
            if (m_PhonView3 == null)
            {
                m_PhonView3              = new SourceGrid.Cells.Views.Cell();
                m_PhonView3.BackColor    = Color.Red;
                m_PhonView3.Font         = m_PhonFont;
                m_PhonView3.TrimmingMode = SourceGrid.TrimmingMode.None;
            }

            // 設置 controllers
            if (m_MenuController == null)
            {
                m_MenuController = new PopupMenuController();
                m_MenuController.PopupMenuClick += new SourceGrid.CellContextEventHandler(GridMenu_Click);
            }

            if (m_ClickController == null)
            {
                m_ClickController = new CellClickEvent(this);
            }

            m_IsInitialized = true;
        }