using System; using Server; using Server.Gumps; using Server.Network; /* ** SimpleNote ** updated 1/3/04 ** ArteGordon ** adds a simple item that displays text messages in a scroll gump. The size can be varied and the note text and text-color can be specified. ** The title of the note and its color can also be set. */ namespace Server.Items { public class SimpleNote : Item { private int m_size = 1; private string m_NoteString; private string m_TitleString; private int m_TextColor = 0x3e8; private int m_TitleColor = 0xef0000; // cyan 0xf70000, black 0x3e8, brown 0xef0000 darkblue 0x7fff [Constructable] public SimpleNote() : base( 0x14EE ) { Name = "A note"; TitleString = "A note"; } public SimpleNote( Serial serial ) : base( serial ) { } [CommandProperty( AccessLevel.GameMaster )] public string NoteString { get{ return m_NoteString; } set { m_NoteString = value; InvalidateProperties();} } [CommandProperty( AccessLevel.GameMaster )] public string TitleString { get{ return m_TitleString; } set { m_TitleString = value; InvalidateProperties();} } [CommandProperty( AccessLevel.GameMaster )] public int Size { get{ return m_size; } set { m_size = value; if(m_size < 1) m_size = 1; InvalidateProperties();} } [CommandProperty( AccessLevel.GameMaster )] public int TextColor { get{ return m_TextColor; } set { m_TextColor = value; InvalidateProperties();} } [CommandProperty( AccessLevel.GameMaster )] public int TitleColor { get{ return m_TitleColor; } set { m_TitleColor = value; InvalidateProperties();} } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version writer.Write( this.m_NoteString ); writer.Write( this.m_TitleString ); writer.Write( this.m_TextColor ); writer.Write( this.m_TitleColor ); writer.Write( this.m_size ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { this.m_NoteString = reader.ReadString(); this.m_TitleString = reader.ReadString(); this.m_TextColor = reader.ReadInt(); this.m_TitleColor = reader.ReadInt(); this.m_size = reader.ReadInt(); } break; } } public override void OnDoubleClick( Mobile from ) { SimpleNoteGump g = new SimpleNoteGump( this ); from.SendGump( g ); } } public class SimpleNoteGump : Gump { private SimpleNote m_Note; public static string HtmlFormat( string text, int color ) { return String.Format( "{1}", color, text); } public SimpleNoteGump( SimpleNote note ) : base( 0, 0 ) { m_Note = note; AddPage( 0 ); AddAlphaRegion( 40, 41, 225, /*371*/70*note.Size ); // scroll top AddImageTiled( 3, 5, 300, 37, 0x820 ); // scroll middle, upper portion AddImageTiled( 19, 41, 263, 70, 0x821 ); for(int i=1;i