80 lines
2.1 KiB
C#
80 lines
2.1 KiB
C#
using Server.Gumps;
|
|
using Server.Network;
|
|
|
|
namespace Server.Items
|
|
{
|
|
public class MetallicHuePicker : Gump
|
|
{
|
|
public delegate void MetallicHuePickerCallback( Mobile from, object state, int hue );
|
|
|
|
private Mobile m_From;
|
|
private MetallicHuePickerCallback m_Callback;
|
|
private object m_State;
|
|
|
|
public void Render()
|
|
{
|
|
AddPage( 0 );
|
|
|
|
AddBackground( 0, 0, 450, 450, 0x13BE );
|
|
AddBackground( 10, 10, 430, 430, 0xBB8 );
|
|
|
|
AddHtmlLocalized( 55, 400, 200, 25, 1011036, false, false ); // OKAY
|
|
|
|
AddButton( 20, 400, 4005, 4007, 1, GumpButtonType.Reply, 0 );
|
|
AddButton( 200, 400, 4005, 4007, 2, GumpButtonType.Reply, 0 );
|
|
AddLabel( 235, 400, 0, "DEFAULT" );
|
|
|
|
AddHtmlLocalized( 55, 25, 200, 25, 1150063, false, false ); // Base/Shadow Color
|
|
AddHtmlLocalized( 260, 25, 200, 25, 1150064, false, false ); // Highlight Color
|
|
|
|
for( int row = 0; row < 13; row++ )
|
|
{
|
|
AddButton( 30, ( 65 + ( row * 25 ) ), 0x1467, 0x1468, row + 1, GumpButtonType.Page, row + 1 );
|
|
AddItem( 50, ( 65 + ( row * 25 ) ), 0x1412, 2501 + ( row * 12 ) + ( ( row == 12 ) ? 6 : 0 ) );
|
|
}
|
|
|
|
for( int page = 1; page < 14; page++ )
|
|
{
|
|
AddPage( page );
|
|
|
|
for( int row = 0; row < 12; row++ )
|
|
{
|
|
int hue = ( 2501 + ( ( page == 13 ) ? 6 : 0 ) + ( row + ( 12 * ( page - 1 ) ) ) ); /* OSI just had to skip 6 unused hues, didnt they */
|
|
AddRadio( 260, ( 65 + ( row * 25 ) ), 0xd2, 0xd3, false, hue );
|
|
AddItem( 280, ( 65 + ( row * 25 ) ), 0x1412, hue );
|
|
}
|
|
}
|
|
}
|
|
|
|
public MetallicHuePicker( Mobile from, MetallicHuePickerCallback callback, object state )
|
|
: base( 450, 450 )
|
|
{
|
|
m_From = from;
|
|
m_Callback = callback;
|
|
m_State = state;
|
|
|
|
Render();
|
|
}
|
|
|
|
public override void OnResponse( NetState sender, RelayInfo info )
|
|
{
|
|
switch( info.ButtonID )
|
|
{
|
|
case 1: // Okay
|
|
{
|
|
if ( info.Switches.Length > 0 )
|
|
{
|
|
m_Callback( m_From, m_State, info.Switches[ 0 ] );
|
|
}
|
|
break;
|
|
}
|
|
case 2: // Default
|
|
{
|
|
m_Callback( m_From, m_State, 0 );
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|