2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
7 namespace DTXCreator.譜面
\r
9 public class Cチップ : IComparable<Cチップ>
\r
11 public bool bドラッグで選択中;
\r
15 public float f値・浮動小数;
\r
16 public int n移動開始時のレーン番号0to;
\r
17 public int n移動開始時の小節内の位置grid;
\r
18 public int n移動開始時の小節番号0to;
\r
19 public int n読み込み時の解像度 = 0xc0;
\r
21 public int nチャンネル番号00toFF
\r
25 return this._nチャンネル番号00toFF;
\r
29 if( ( value < 0 ) || ( value > 0xff ) )
\r
31 throw new Exception( "値が範囲(0~255)を超えています。-->[" + value + "]" );
\r
33 this._nチャンネル番号00toFF = value;
\r
36 public int nレーン番号0to
\r
40 return this._nレーン番号0to;
\r
46 throw new Exception( "値が範囲を超えています。-->[" + value + "]" );
\r
48 this._nレーン番号0to = value;
\r
55 return this._n位置grid;
\r
59 this._n位置grid = value;
\r
62 public int n値・整数1to1295
\r
66 return this._n値・整数1to1295;
\r
70 if( ( value < 0 ) || ( value > 0x50f ) )
\r
72 throw new Exception( "値が範囲(0~1295)を超えています。-->[" + value + "]" );
\r
74 this._n値・整数1to1295 = value;
\r
77 public static readonly int nチップの高さdot = 9;
\r
79 public int CompareTo( Cチップ other )
\r
81 return ( this.n位置grid - other.n位置grid );
\r
83 public static void tOPENチップを描画する( Graphics g, Rectangle rcチップ描画領域 )
\r
85 t表チップを描画する・本体( g, rcチップ描画領域, Color.White );
\r
86 string str = "O P E N";
\r
87 t表チップを描画する・番号( g, rcチップ描画領域, str );
\r
89 public void tコピーfrom( Cチップ ccコピー元 )
\r
91 this._nチャンネル番号00toFF = ccコピー元._nチャンネル番号00toFF;
\r
92 this._nレーン番号0to = ccコピー元._nレーン番号0to;
\r
93 this._n値・整数1to1295 = ccコピー元._n値・整数1to1295;
\r
94 this.f値・浮動小数 = ccコピー元.f値・浮動小数;
\r
95 this._n位置grid = ccコピー元._n位置grid;
\r
96 this.b裏 = ccコピー元.b裏;
\r
97 this.bドラッグで選択中 = ccコピー元.bドラッグで選択中;
\r
98 this.b確定選択中 = ccコピー元.b確定選択中;
\r
99 this.n読み込み時の解像度 = ccコピー元.n読み込み時の解像度;
\r
100 this.b移動済 = ccコピー元.b移動済;
\r
101 this.n枠外レーン数 = ccコピー元.n枠外レーン数;
\r
102 this.n移動開始時の小節番号0to = ccコピー元.n移動開始時の小節番号0to;
\r
103 this.n移動開始時のレーン番号0to = ccコピー元.n移動開始時のレーン番号0to;
\r
104 this.n移動開始時の小節内の位置grid = ccコピー元.n移動開始時の小節内の位置grid;
\r
106 public static void tチップの周囲の太枠を描画する( Graphics g, Rectangle rcチップ描画領域 )
\r
108 Pen pen = new Pen( Color.White, 2f );
\r
109 g.DrawRectangle( pen, rcチップ描画領域 );
\r
112 public static void t表チップを描画する( Graphics g, Rectangle rcチップ描画領域, int nチップ番号, Color col色 )
\r
114 t表チップを描画する・本体( g, rcチップ描画領域, col色 );
\r
117 string str = C変換.str数値を36進数2桁に変換して返す( nチップ番号 );
\r
118 str = str[ 0 ] + " " + str[ 1 ];
\r
119 t表チップを描画する・番号( g, rcチップ描画領域, str );
\r
122 public static void t表チップを描画する( Graphics g, Rectangle rcチップ描画領域, float fチップ数値, Color col色 )
\r
124 t表チップを描画する・本体( g, rcチップ描画領域, col色 );
\r
127 string str = fチップ数値.ToString();
\r
128 t表チップを描画する・番号( g, rcチップ描画領域, str );
\r
131 public static void t裏チップを描画する( Graphics g, Rectangle rcチップ描画領域, int nチップ番号, Color col色 )
\r
133 t裏チップを描画する・本体( g, rcチップ描画領域, col色 );
\r
136 string str = C変換.str数値を36進数2桁に変換して返す( nチップ番号 );
\r
137 str = str[ 0 ] + " " + str[ 1 ];
\r
138 t裏チップを描画する・番号( g, rcチップ描画領域, str );
\r
141 public static void t裏チップを描画する( Graphics g, Rectangle rcチップ描画領域, float fチップ数値, Color col色 )
\r
143 t裏チップを描画する・本体( g, rcチップ描画領域, col色 );
\r
146 string str = fチップ数値.ToString();
\r
147 t裏チップを描画する・番号( g, rcチップ描画領域, str );
\r
151 protected static Font ftチップ文字用フォント = new Font( "MS Gothic", 8f, FontStyle.Bold );
\r
153 #region [ private ]
\r
154 //-----------------
\r
155 private int _nチャンネル番号00toFF;
\r
156 private int _nレーン番号0to;
\r
157 private int _n位置grid;
\r
158 private int _n値・整数1to1295;
\r
160 private static void t表チップを描画する・番号( Graphics g, Rectangle rcチップ描画領域, string str番号文字列 )
\r
162 StringFormat format = new StringFormat();
\r
163 format.Alignment = StringAlignment.Center;
\r
164 format.LineAlignment = StringAlignment.Near;
\r
165 RectangleF layoutRectangle = new RectangleF();
\r
166 layoutRectangle.X = rcチップ描画領域.X;
\r
167 layoutRectangle.Y = rcチップ描画領域.Y + 1;
\r
168 layoutRectangle.Width = rcチップ描画領域.Width;
\r
169 layoutRectangle.Height = rcチップ描画領域.Height;
\r
170 g.DrawString( str番号文字列, ftチップ文字用フォント, Brushes.Black, layoutRectangle, format );
\r
171 layoutRectangle.X--;
\r
172 layoutRectangle.Y--;
\r
173 g.DrawString( str番号文字列, ftチップ文字用フォント, Brushes.White, layoutRectangle, format );
\r
175 private static void t表チップを描画する・本体( Graphics g, Rectangle rcチップ描画領域, Color col色 )
\r
177 SolidBrush brush = new SolidBrush( Color.FromArgb( 0x80, col色.R, col色.G, col色.B ) );
\r
178 Pen pen = new Pen( Color.FromArgb( 0xff, col色.R, col色.G, col色.B ) );
\r
179 Pen pen2 = new Pen( Color.FromArgb( 0x40, col色.R, col色.G, col色.B ) );
\r
180 g.FillRectangle( brush, rcチップ描画領域 );
\r
181 g.DrawLine( pen, rcチップ描画領域.X, rcチップ描画領域.Y, rcチップ描画領域.Right, rcチップ描画領域.Y );
\r
182 g.DrawLine( pen, rcチップ描画領域.X, rcチップ描画領域.Y, rcチップ描画領域.X, rcチップ描画領域.Bottom );
\r
183 g.DrawLine( pen2, rcチップ描画領域.X, rcチップ描画領域.Bottom, rcチップ描画領域.Right, rcチップ描画領域.Bottom );
\r
184 g.DrawLine( pen2, rcチップ描画領域.Right, rcチップ描画領域.Bottom, rcチップ描画領域.Right, rcチップ描画領域.Y );
\r
189 private static void t裏チップを描画する・番号( Graphics g, Rectangle rcチップ描画領域, string str番号文字列 )
\r
191 StringFormat format = new StringFormat();
\r
192 format.Alignment = StringAlignment.Center;
\r
193 format.LineAlignment = StringAlignment.Near;
\r
194 RectangleF layoutRectangle = new RectangleF();
\r
195 layoutRectangle.X = rcチップ描画領域.X;
\r
196 layoutRectangle.Y = rcチップ描画領域.Y + 1;
\r
197 layoutRectangle.Width = rcチップ描画領域.Width;
\r
198 layoutRectangle.Height = rcチップ描画領域.Height;
\r
199 g.DrawString( str番号文字列, ftチップ文字用フォント, Brushes.Black, layoutRectangle, format );
\r
200 layoutRectangle.X--;
\r
201 layoutRectangle.Y--;
\r
202 g.DrawString( str番号文字列, ftチップ文字用フォント, Brushes.White, layoutRectangle, format );
\r
204 private static void t裏チップを描画する・本体( Graphics g, Rectangle rcチップ描画領域, Color col色 )
\r
206 rcチップ描画領域.Width -= 8;
\r
207 rcチップ描画領域.Height -= 2;
\r
210 SolidBrush brush = new SolidBrush( Color.FromArgb( 80, col色.R, col色.G, col色.B ) );
\r
211 Pen pen = new Pen( Color.FromArgb( 180, col色.R, col色.G, col色.B ) );
\r
212 Pen pen2 = new Pen( Color.FromArgb( 0x2c, col色.R, col色.G, col色.B ) );
\r
213 g.FillRectangle( brush, rcチップ描画領域 );
\r
214 g.DrawLine( pen, rcチップ描画領域.X, rcチップ描画領域.Y, rcチップ描画領域.Right, rcチップ描画領域.Y );
\r
215 g.DrawLine( pen, rcチップ描画領域.X, rcチップ描画領域.Y, rcチップ描画領域.X, rcチップ描画領域.Bottom );
\r
216 g.DrawLine( pen2, rcチップ描画領域.X, rcチップ描画領域.Bottom, rcチップ描画領域.Right, rcチップ描画領域.Bottom );
\r
217 g.DrawLine( pen2, rcチップ描画領域.Right, rcチップ描画領域.Bottom, rcチップ描画領域.Right, rcチップ描画領域.Y );
\r
222 //-----------------
\r