Android Open Source - DivisionByZero Message Dialog






From Project

Back to project page DivisionByZero.

License

The source code is released under:

Apache License

If you think the Android project DivisionByZero listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.ggstudios.divisionbyzero;
/*from   w ww . ja v a2 s  . c  o m*/
import java.util.ArrayList;
import java.util.List;

import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.MotionEvent;

public class MessageDialog extends BaseDialog {
  private static final float DESIRED_WIDTH = 7f;
  private static final float WIDTH_PERCENT = 0.7f;
  private static final float MARGIN = 0.5f;
  
  private Paint textPaint;
  private Paint hintPaint;
  private String msg;
  private Label lblMsg;
  private Label lblHint;
  private Rect bounds;
  private PictureBox img;
  
  private List<Drawable> drawables = new ArrayList<Drawable>();
  
  private Rectangle bg;
  
  private int imgResId;
  
  private boolean showHint = false;
  private boolean pauseOnShown = true;
  
  private OnDismissListener dismissListener;
  
  public static interface OnDismissListener {
    public void onDismiss();
  }
  
  public MessageDialog() { 
    bounds = new Rect();
    
    textPaint = new Paint();
    textPaint.setAntiAlias(true);
    textPaint.setColor(Color.WHITE);
    textPaint.setTextSize(Core.fm.getFontSize());

    hintPaint = new Paint(textPaint);
    hintPaint.setColor(Color.LTGRAY);
  }
  
  public void setMessage(String msg) {
    this.msg = msg;
  }
  
  public void setOnDismissListener(OnDismissListener listener) {
    dismissListener = listener;
  }
  
  public void setShowHint(boolean b) {
    showHint = b;
  }
  
  public void setImage(int resId) {
    imgResId = resId;
  }
  
  private void updateBounds() {
    bounds.left = 0;
    bounds.top = 0;
    bounds.right = (int) w;
    bounds.bottom = (int) h;
  }
  
  public void build() {
    w = Math.min(Core.canvasWidth * WIDTH_PERCENT, DESIRED_WIDTH * Core.SDP);
    final float margin = MARGIN * Core.SDP;
    
    setBackgroundTexture(R.drawable.panel);
    
    float offX = margin;
    
    if(imgResId != 0) {
      float imgW = Core.SDP * 2f;
      float imgH = imgW;
      img = new PictureBox(margin, margin, imgW, imgH, imgResId);
      
      offX = margin * 2 + imgW;
      
      drawables.add(img);
    }
    
    lblMsg = new Label(offX, margin, textPaint, msg, w - margin - offX);
    
    drawables.add(lblMsg);
    
    if(showHint) {
      lblHint = new Label(0, lblMsg.y + lblMsg.h + textPaint.getTextSize(), hintPaint, "Tap to continue >");
      lblHint.x = w - margin - lblHint.w;
      h = lblMsg.h + textPaint.getTextSize() + lblHint.h + margin * 2;
      
      drawables.add(lblHint);
    } else {
      h = lblMsg.h + margin * 2;
    }
    
    x = (Core.canvasWidth - w) / 2f;
    y = (Core.canvasHeight - h) / 2f;

    bg = new Rectangle(0, 0, Core.canvasWidth, Core.canvasHeight, 0xFF000000);
    bg.transparency = 0.1f;
    
    updateBounds();
    
    super.refresh();
  }
  
  @Override
  public void draw(float offX, float offY) {
    bg.draw(0, 0);
    super.draw(0, 0);
    
    for(Drawable d : drawables)
      d.draw(x, y);
  }
  
  @Override
  public void refresh() {
    super.refresh();
    bg.refresh();
    
    for(Drawable d : drawables)
      d.refresh();
  }
  
  @Override
  public boolean onTouchEvent(int action, float x_, float y_) {
  //  final int x = (int) (Core.originalTouchX - this.x);
  //  final int y = (int) (Core.originalTouchY - this.y);
    if(action == MotionEvent.ACTION_UP) {
      hide();
      return true;
    }
    
    return true;
  }
  
  @Override
  public void show() {
    super.show();
    if(pauseOnShown)
      Core.gu.pause();
  }
  
  @Override
  public void hide() {
    if(dismissListener != null) {
      dismissListener.onDismiss();
    }
    super.hide();
    Core.gu.unpause();
  }

  public void setPauseOnShown(boolean b) {
    pauseOnShown = b;
  }
}




Java Source Code List

com.ggstudios.divisionbyzero.ActivityAbout.java
com.ggstudios.divisionbyzero.ActivityLevelSelection.java
com.ggstudios.divisionbyzero.ActivityMainMenu.java
com.ggstudios.divisionbyzero.ActivitySettings.java
com.ggstudios.divisionbyzero.ActivitySplashScreen.java
com.ggstudios.divisionbyzero.ApplicationMain.java
com.ggstudios.divisionbyzero.BaseActivity.java
com.ggstudios.divisionbyzero.BaseDialog.java
com.ggstudios.divisionbyzero.BulletManager.java
com.ggstudios.divisionbyzero.Bullet.java
com.ggstudios.divisionbyzero.Button.java
com.ggstudios.divisionbyzero.Circle.java
com.ggstudios.divisionbyzero.ClickableCollection.java
com.ggstudios.divisionbyzero.Clickable.java
com.ggstudios.divisionbyzero.ConfirmDialog.java
com.ggstudios.divisionbyzero.Core.java
com.ggstudios.divisionbyzero.CustomGLSurfaceView.java
com.ggstudios.divisionbyzero.DialogManager.java
com.ggstudios.divisionbyzero.DrawableCollection.java
com.ggstudios.divisionbyzero.DrawableString.java
com.ggstudios.divisionbyzero.Drawable.java
com.ggstudios.divisionbyzero.EndDialog.java
com.ggstudios.divisionbyzero.Event.java
com.ggstudios.divisionbyzero.ExplosionGenerator.java
com.ggstudios.divisionbyzero.ExtrasManager.java
com.ggstudios.divisionbyzero.FontManager.java
com.ggstudios.divisionbyzero.GameRenderer.java
com.ggstudios.divisionbyzero.GameUpdater.java
com.ggstudios.divisionbyzero.Game.java
com.ggstudios.divisionbyzero.Grid.java
com.ggstudios.divisionbyzero.Hud.java
com.ggstudios.divisionbyzero.InGameMenu.java
com.ggstudios.divisionbyzero.InfoDialog.java
com.ggstudios.divisionbyzero.Label.java
com.ggstudios.divisionbyzero.LevelManager.java
com.ggstudios.divisionbyzero.LevelMap.java
com.ggstudios.divisionbyzero.LineGuide.java
com.ggstudios.divisionbyzero.MainActivity.java
com.ggstudios.divisionbyzero.Map.java
com.ggstudios.divisionbyzero.MessageDialog.java
com.ggstudios.divisionbyzero.ParticleEngine.java
com.ggstudios.divisionbyzero.PathFinder.java
com.ggstudios.divisionbyzero.PauseMenu.java
com.ggstudios.divisionbyzero.PictureBox.java
com.ggstudios.divisionbyzero.Player.java
com.ggstudios.divisionbyzero.PopupMenu.java
com.ggstudios.divisionbyzero.Rectangle.java
com.ggstudios.divisionbyzero.Shader.java
com.ggstudios.divisionbyzero.SpawnManager.java
com.ggstudios.divisionbyzero.SpriteAnimation.java
com.ggstudios.divisionbyzero.SpriteManager.java
com.ggstudios.divisionbyzero.Sprite.java
com.ggstudios.divisionbyzero.Statbar.java
com.ggstudios.divisionbyzero.StateManager.java
com.ggstudios.divisionbyzero.TargetRectangle.java
com.ggstudios.divisionbyzero.TextureManager.java
com.ggstudios.divisionbyzero.TowerInfoDialog.java
com.ggstudios.divisionbyzero.TowerLibrary.java
com.ggstudios.divisionbyzero.TowerManager.java
com.ggstudios.divisionbyzero.TowerMenu.java
com.ggstudios.divisionbyzero.Tower.java
com.ggstudios.divisionbyzero.UpdatableCollection.java
com.ggstudios.divisionbyzero.Updatable.java
com.ggstudios.divisionbyzero.UpgradeDialog.java
com.ggstudios.divisionbyzero.Utils.java
com.ggstudios.divisionbyzero.VBO.java
com.ggstudios.divisionbyzero.WaveControlDialog.java
com.ggstudios.divisionbyzero.WaveControlHud.java
com.ggstudios.divisionbyzero.ZoomControl.java
com.ggstudios.utils.BitmapUtils.java
com.ggstudios.utils.BufferUtils.java
com.ggstudios.utils.DebugLog.java
com.ggstudios.utils.ShaderUtils.java
com.ggstudios.widget.LevelMapBackground.java
fix.android.opengl.GLES20.java