home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
-
- class OCdgTextml extends OCdg {
- private boolean first_crun = true;
- private Font m_font = new Font("Helvetica", 0, 11);
- private int m_def_align = 0;
- private Color m_def_textcolor;
- private Color m_bgcolor;
- private Color m_def_hlcolor;
- private int m_xoffset;
- private boolean m_def_size_extra;
- private int[] m_delay;
- private boolean[] m_size_extra;
- private Font[] m_cur_font;
- private Color[] m_textcolor;
- private String[] m_desc;
- private int[] m_align;
- int[] m_size_pause;
- private int[] link_cords;
- int[] line_coords;
- int[] re_draw;
- int num_links;
- int num_descrips;
- // $FF: renamed from: bo int
- int field_0;
- int i_h;
- // $FF: renamed from: fm java.awt.FontMetrics
- FontMetrics field_1;
- private int hLine;
- private Color indArrowColor;
- private Image indArrow;
- private int aDist;
- private int curPoint;
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_textcolor[this.hLine]);
- this.hLine = -1;
- }
-
- return true;
- }
-
- public void DrawApplet() {
- this.drawScroll();
- if (this.first_crun) {
- this.drawArrow();
- this.setPointer(ACutila.iface.appinfo.cur_spec_index);
- this.showPointer();
- this.first_crun = false;
- }
-
- }
-
- OCdgTextml() {
- this.m_def_textcolor = Color.black;
- this.m_bgcolor = Color.white;
- this.m_def_hlcolor = Color.blue;
- this.m_xoffset = 5;
- this.m_def_size_extra = false;
- this.hLine = -1;
- this.indArrowColor = new Color(204, 0, 0);
- this.aDist = 8;
- this.curPoint = 0;
- }
-
- public void initDefault() {
- String var1 = ((OCdg)this).getParameterDefault("font");
- if (var1 != null) {
- this.m_font = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_font = new Font("Helvetica", 0, 12);
- }
-
- var1 = ((OCdg)this).getParameterDefault("textcolor");
- if (var1 != null) {
- this.m_def_textcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = ((OCdg)this).getParameterDefault("bgcolor");
- if (var1 != null) {
- this.m_bgcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = ((OCdg)this).getParameterDefault("lrmargin");
- if (var1 != null) {
- this.m_xoffset = Integer.parseInt(var1);
- }
-
- var1 = ((OCdg)this).getParameterDefault("hlcolor");
- if (var1 != null) {
- this.m_def_hlcolor = occcolor.ConvertColor(var1);
- }
-
- var1 = ((OCdg)this).getParameterDefault("halign");
- if (var1 != null) {
- this.m_def_align = ACutila.getAlignValue(var1);
- }
-
- }
-
- private void drawArrow() {
- byte var1 = 5;
- byte var2 = 7;
- this.indArrow = ((Component)this).createImage(var1, var2);
- Graphics var3 = this.indArrow.getGraphics();
- var3.setColor(new Color(153, 153, 153));
- var3.fillRect(0, 0, var1, var2);
- var3.setColor(this.indArrowColor);
- int var4 = 0;
- int var5 = 0;
- int var6 = 6;
-
- do {
- var3.drawLine(var4, var5, var4, var5 + var6);
- ++var5;
- ++var4;
- var6 -= 2;
- } while(var6 >= 0);
-
- }
-
- public void initSpecifics() {
- boolean var2 = false;
- this.num_descrips = super.spe_pv.size();
- this.m_cur_font = new Font[this.num_descrips];
- this.m_delay = new int[this.num_descrips];
- this.m_textcolor = new Color[this.num_descrips];
- this.m_desc = new String[this.num_descrips];
- this.m_align = new int[this.num_descrips];
- this.m_size_pause = new int[this.num_descrips];
- this.m_size_extra = new boolean[this.num_descrips];
- this.line_coords = new int[this.num_descrips];
- this.re_draw = new int[this.num_descrips];
-
- for(int var7 = 0; var7 < this.num_descrips; ++var7) {
- String var1 = ((OCdg)this).getParameterSpecific("desc", var7);
- if (var1 != null) {
- this.m_desc[var7] = var1;
- } else {
- this.m_desc[var7] = " ";
- }
-
- var1 = ((OCdg)this).getParameterSpecific("font", var7);
- if (var1 != null) {
- this.m_cur_font[var7] = ocfontc.getFontSD(var1, ",");
- } else {
- this.m_cur_font[var7] = this.m_font;
- }
-
- var1 = ((OCdg)this).getParameterSpecific("halign", var7);
- if (var1 != null) {
- this.m_align[var7] = ACutila.getAlignValue(var1);
- } else {
- this.m_align[var7] = this.m_def_align;
- }
-
- var1 = ((OCdg)this).getParameterSpecific("textcolor", var7);
- if (var1 != null) {
- this.m_textcolor[var7] = occcolor.ConvertColor(var1);
- } else {
- this.m_textcolor[var7] = this.m_def_textcolor;
- }
-
- var1 = ((OCdg)this).getParameterSpecific("sizepause", var7);
- if (var1 != null) {
- this.m_size_pause[var7] = getAutoValue(var1);
- } else {
- this.m_size_pause[var7] = 0;
- }
- }
-
- this.link_cords = new int[this.num_descrips * 3];
- }
-
- public void setPointer(int var1) {
- this.curPoint = var1;
- if (!super.first_run) {
- this.showPointer();
- ((OCdg)this).drawAppOff();
- ((OCdg)this).paintIt();
- }
-
- }
-
- private void drawScroll() {
- Object var1 = null;
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- int var5 = 0;
- boolean var6 = false;
- Image var7 = null;
- Graphics var8 = null;
- int var9 = 0;
-
- do {
- var2 = 0;
-
- for(int var10 = 0; var10 < this.num_descrips; ++var10) {
- if (var9 == 0) {
- this.field_1 = ((Component)this).getFontMetrics(this.m_cur_font[var10]);
- if (this.m_size_pause[var10] == 1) {
- var5 = var2;
- var6 = true;
- } else if (!var6) {
- var5 = var2;
- }
-
- String[] var22 = ocwordw.WrapText(this.m_desc[var10], super.appWidth - this.m_xoffset * 2, this.field_1);
-
- for(int var25 = 0; var25 < var22.length; ++var25) {
- var2 += this.field_1.getHeight();
- }
-
- if (var10 != this.m_desc.length - 1) {
- if (var2 - var5 < super.appHeight && this.m_size_pause[var10] == 2) {
- if (this.m_size_extra[var10]) {
- var2 = var2 + (super.appHeight - (var2 - var5)) + 1 + (var2 - var5);
- } else {
- var2 = var2 + (super.appHeight - (var2 - var5)) + 1;
- }
-
- var6 = false;
- }
- } else {
- this.i_h = var2 + this.field_1.getDescent() + 5;
- double var26 = (double)this.i_h;
- double var13 = (double)super.appHeight;
- int var15 = 0;
- if (var26 / var13 - (double)((int)(var26 / var13)) == (double)0.0F) {
- var15 = (int)(var26 / var13);
- } else {
- var15 = (int)(var26 / var13) + 1;
- }
-
- this.i_h = var15 * super.appHeight;
- if (var15 > 1) {
- this.field_0 = 7;
- } else {
- this.field_0 = 0;
- }
-
- int var16 = super.appWidth + this.field_0;
- int var17 = this.i_h;
- var7 = ((Component)this).createImage(super.appWidth, this.i_h);
- var8 = var7.getGraphics();
- super.off = ((Component)this).createImage(var16 + this.aDist, var17);
- super.g_off = super.off.getGraphics();
- super.g_off.setColor(super.bgColor);
- super.g_off.fillRect(0, 0, var16, var17);
- var8.setColor(this.m_bgcolor);
- var8.fillRect(0, 0, super.appWidth, this.i_h);
- if (var15 > 1) {
- Image var18 = ((Component)this).createImage(this.field_0, this.i_h);
- Graphics var19 = var18.getGraphics();
- var19.setColor(new Color(153, 153, 153));
- var19.fillRect(0, 0, this.field_0, this.i_h);
- var19.setColor(Color.black);
-
- for(int var20 = 0; var20 <= var15 - 1; ++var20) {
- var19.drawLine(2, var20 * super.appHeight, this.field_0 - 1, var20 * super.appHeight);
- }
-
- var19.drawLine(2, var15 * super.appHeight - 1, this.field_0 - 1, var15 * super.appHeight - 1);
- var19.drawLine(2, 0, 2, this.i_h);
- super.g_off.drawImage(var18, super.appWidth + this.aDist, 0, this);
- }
- }
- } else {
- var8.setFont(this.m_cur_font[var10]);
- this.field_1 = var8.getFontMetrics(this.m_cur_font[var10]);
- var3 = var2;
- if (this.m_size_pause[var10] == 1) {
- var5 = var2;
- var6 = true;
- } else if (!var6) {
- var5 = var2;
- }
-
- this.line_coords[var10] = var2 + this.field_1.getDescent() + 1;
- this.re_draw[var10] = var2;
- String[] var21 = ocwordw.WrapText(this.m_desc[var10], super.appWidth - this.m_xoffset * 2, this.field_1);
-
- for(int var11 = 0; var11 < var21.length; ++var11) {
- var2 += this.field_1.getHeight();
- var8.setColor(this.m_textcolor[var10]);
- if (this.m_align[var10] == 1) {
- var8.drawString(var21[var11], (super.appWidth - this.field_1.stringWidth(var21[var11])) / 2, var2);
- } else if (this.m_align[var10] == 0) {
- var8.drawString(var21[var11], this.m_xoffset, var2);
- } else if (this.m_align[var10] == 2) {
- var8.drawString(var21[var11], super.appWidth - this.m_xoffset - this.field_1.stringWidth(var21[var11]), var2);
- }
- }
-
- if (var10 == this.m_desc.length - 1) {
- var2 += this.field_1.getDescent();
- }
-
- this.link_cords[var4 * 3] = var3;
- this.link_cords[var4 * 3 + 1] = var2;
- this.link_cords[var4 * 3 + 2] = var10;
- ++var4;
- if (var10 != this.m_desc.length - 1 && var2 - var5 < super.appHeight && this.m_size_pause[var10] == 2) {
- if (this.m_size_extra[var10]) {
- var2 = var2 + (super.appHeight - (var2 - var5)) + 1 + (var2 - var5);
- } else {
- var2 = var2 + (super.appHeight - (var2 - var5)) + 1;
- }
-
- var6 = false;
- }
- }
- }
-
- ++var9;
- } while(var9 < 2);
-
- super.g_off.drawImage(var7, this.aDist, 0, this);
- }
-
- private synchronized void showPointer() {
- if (this.curPoint >= 0) {
- int var1 = this.link_cords[this.curPoint * 3];
- int var2 = this.link_cords[this.curPoint * 3 + 1] - var1;
- super.g_off.setColor(new Color(153, 153, 153));
- super.g_off.fillRect(0, 0, this.aDist, super.actAppHeight);
- super.g_off.drawImage(this.indArrow, 0, var1 + 7, this);
- int var3 = 0;
- if (super.offimgy + super.scroll_y + var1 >= super.d.height - 5) {
- var3 = -var1;
- if (var2 < super.d.height) {
- var3 = var3 + (super.d.height - var2) - super.sEdge;
- }
-
- ((OCdg)this).setVerticalPagePosition(var3);
- }
-
- if (super.offimgy + super.scroll_y + var1 < 0) {
- ((OCdg)this).setVerticalPagePosition(-var1);
- }
-
- }
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- ((Component)this).requestFocus();
- if (this.hLine > -1) {
- super.postEvent(new Event(this, 9202, new Integer(this.hLine)));
- }
-
- return true;
- }
-
- static int getAutoValue(String var0) {
- if (var0.equalsIgnoreCase("end")) {
- return 2;
- } else if (var0.equalsIgnoreCase("fit")) {
- return 2;
- } else {
- return var0.equalsIgnoreCase("start") ? 1 : 0;
- }
- }
-
- // $FF: renamed from: HL (int, java.awt.Color) void
- private void method_0(int var1, Color var2) {
- super.g_off.setFont(this.m_cur_font[var1]);
- this.field_1 = super.g_off.getFontMetrics(this.m_cur_font[var1]);
- super.g_off.setColor(var2);
- int var3 = this.link_cords[var1 * 3];
- String[] var4 = ocwordw.WrapText(this.m_desc[var1], super.appWidth - this.m_xoffset * 2, this.field_1);
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- var3 += this.field_1.getHeight();
- if (this.m_align[var1] == 1) {
- super.g_off.drawString(var4[var5], this.aDist + (super.appWidth - this.field_1.stringWidth(var4[var5])) / 2, var3);
- } else if (this.m_align[var1] == 0) {
- super.g_off.drawString(var4[var5], this.aDist + this.m_xoffset, var3);
- } else if (this.m_align[var1] == 2) {
- super.g_off.drawString(var4[var5], this.aDist + super.appWidth - this.m_xoffset - this.field_1.stringWidth(var4[var5]), var3);
- }
- }
-
- ((OCdg)this).drawAppOff();
- ((OCdg)this).paintIt();
- }
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- int var4 = super.scroll_x + super.offimgx + this.aDist;
- int var5 = super.scroll_y + super.offimgy;
- if (var2 > var4 && var2 < var4 + super.appWidth && var3 > var5 && var3 < var5 + super.actAppHeight) {
- for(int var6 = 0; var6 < this.num_descrips; ++var6) {
- if (var3 > var5 + this.link_cords[var6 * 3] && var3 < var5 + this.link_cords[var6 * 3 + 1]) {
- int var7 = this.link_cords[var6 * 3 + 2];
- if (var7 != this.hLine) {
- if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_textcolor[this.hLine]);
- this.hLine = -1;
- }
-
- this.method_0(var7, this.m_def_hlcolor);
- }
-
- this.hLine = var7;
- return true;
- }
- }
-
- if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_textcolor[this.hLine]);
- this.hLine = -1;
- }
- } else if (this.hLine != -1) {
- this.method_0(this.hLine, this.m_textcolor[this.hLine]);
- this.hLine = -1;
- }
-
- return true;
- }
- }
-