home *** CD-ROM | disk | FTP | other *** search
- class RoundButtonFilter extends ButtonFilter {
- int Xcenter;
- int Ycenter;
- int Yradsq;
- int innerW;
- int innerH;
- int Yrad2sq;
-
- public RoundButtonFilter(boolean var1, int var2, int var3, int var4, int var5) {
- super(var1, var2, var3, var4, var5);
- this.Xcenter = var4 / 2;
- this.Ycenter = var5 / 2;
- this.Yradsq = var5 * var5 / 4;
- this.innerW = var4 - super.border * 2;
- this.innerH = var5 - super.border * 2;
- this.Yrad2sq = this.innerH * this.innerH / 4;
- }
-
- public boolean inside(int var1, int var2) {
- int var3 = Math.abs(this.Ycenter - var2);
- int var4 = (int)(Math.sqrt((double)(this.Yradsq - var3 * var3)) * (double)super.width / (double)super.height);
- return var1 >= this.Xcenter - var4 && var1 < this.Xcenter + var4;
- }
-
- public void buttonRanges(int var1, int[] var2) {
- int var3 = Math.abs(this.Ycenter - var1);
- int var4 = (int)(Math.sqrt((double)(this.Yradsq - var3 * var3)) * (double)super.width / (double)super.height);
- var2[0] = 0;
- var2[1] = this.Xcenter - var4;
- var2[6] = this.Xcenter + var4;
- var2[7] = super.width;
- var2[8] = var2[9] = var1;
- if (var1 < super.border) {
- var2[2] = var2[3] = var2[4] = this.Xcenter;
- var2[5] = var2[6];
- } else if (var1 + super.border >= super.height) {
- var2[2] = var2[1];
- var2[3] = var2[4] = var2[5] = this.Xcenter;
- } else {
- int var5 = (int)(Math.sqrt((double)(this.Yrad2sq - var3 * var3)) * (double)this.innerW / (double)this.innerH);
- var2[3] = this.Xcenter - var5;
- var2[4] = this.Xcenter + var5;
- if (var1 < this.Ycenter) {
- var2[2] = var2[3];
- var2[5] = var2[6];
- } else {
- var2[2] = var2[1];
- var2[5] = var2[4];
- }
- }
- }
-
- public int filterRGB(int var1, int var2, int var3) {
- int[] var9 = ((ButtonFilter)this).getRanges(var2);
-
- int var6;
- for(var6 = 0; var6 < 7 && (var1 < var9[var6] || var1 >= var9[var6 + 1]); ++var6) {
- }
-
- boolean var4;
- int var5;
- switch (var6) {
- case 0:
- case 6:
- default:
- return var3 & 16777215;
- case 1:
- var4 = !super.pressed;
- var5 = super.defpercent;
- break;
- case 2:
- int var11 = var2 - this.Ycenter;
- int var10 = this.Xcenter - var1;
- var5 = (int)((double)(var11 * super.defpercent * 2) / Math.sqrt((double)(var11 * var11 + var10 * var10))) - super.defpercent;
- if (!super.pressed) {
- var5 = -var5;
- }
-
- if (var5 == 0) {
- return var3;
- }
-
- if (var5 < 0) {
- var5 = -var5;
- var4 = false;
- } else {
- var4 = true;
- }
- break;
- case 3:
- if (!super.pressed) {
- return var3 & 16777215;
- }
-
- var4 = false;
- var5 = super.defpercent;
- break;
- case 4:
- int var8 = this.Ycenter - var2;
- int var7 = var1 - this.Xcenter;
- var5 = (int)((double)(var8 * super.defpercent * 2) / Math.sqrt((double)(var8 * var8 + var7 * var7))) - super.defpercent;
- if (super.pressed) {
- var5 = -var5;
- }
-
- if (var5 == 0) {
- return var3;
- }
-
- if (var5 < 0) {
- var5 = -var5;
- var4 = false;
- } else {
- var4 = true;
- }
- break;
- case 5:
- var4 = super.pressed;
- var5 = super.defpercent;
- }
-
- return ((ButtonFilter)this).filterRGB(var3, var4, var5);
- }
- }
-