Exemple #1
0
        void IZMachineIO.SetTextStyle(TextStyle style)
        {
            Style glkStyle;

            switch (style)
            {
            case TextStyle.Roman:
                glkStyle = Style.Normal;
                Glk.garglk_set_reversevideo(false);
                break;

            case TextStyle.Reverse:
                Glk.garglk_set_reversevideo(true);
                return;

            case TextStyle.Bold:
                switch (lastStyle)
                {
                case Style.Normal:
                    glkStyle = Style.Subheader;         // prop bold
                    break;

                case Style.Emphasized:
                    glkStyle = Style.Alert;         // prop bold+italic
                    break;

                case Style.Preformatted:
                    glkStyle = Style.Header;         // fixed bold
                    break;

                case Style.Note:
                    glkStyle = Style.User1;         // fixed bold+italic
                    break;

                default:
                    return;
                }
                break;

            case TextStyle.Italic:
                switch (lastStyle)
                {
                case Style.Normal:
                    glkStyle = Style.Emphasized;         // prop italic
                    break;

                case Style.Subheader:
                    glkStyle = Style.Alert;         // prop bold+italic
                    break;

                case Style.Preformatted:
                    glkStyle = Style.Normal;         // fixed italic
                    break;

                case Style.Header:
                    glkStyle = Style.User1;         // fixed bold+italic
                    break;

                default:
                    return;
                }
                break;

            case TextStyle.FixedPitch:
                switch (lastStyle)
                {
                case Style.Normal:
                    glkStyle = Style.Preformatted;         // fixed roman
                    break;

                case Style.Subheader:
                    glkStyle = Style.Header;         // fixed bold
                    break;

                case Style.Emphasized:
                    glkStyle = Style.Note;         // fixed italic
                    break;

                case Style.Alert:
                    glkStyle = Style.User1;         // fixed bold+italic
                    break;

                default:
                    return;
                }
                break;

            default:
                return;
            }

            lastStyle = glkStyle;
            RefreshTextStyle();
        }