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