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(); }