private void addItem(Item item) {
      ItemButton slot = new ItemButton(item);
      slot.setRect(0, pos, width, ItemButton.HEIGHT);
      add(slot);

      pos += slot.height() + 1;
    }
  public WndBlacksmith(Blacksmith troll, Hero hero) {

    super();

    IconTitle titlebar = new IconTitle();
    titlebar.icon(troll.sprite());
    titlebar.label(Utils.capitalize(troll.name));
    titlebar.setRect(0, 0, WIDTH, 0);
    add(titlebar);

    BitmapTextMultiline message = PixelScene.createMultiline(TXT_PROMPT, 6);
    message.maxWidth = WIDTH;
    message.measure();
    message.y = titlebar.bottom() + GAP;
    add(message);

    btnItem1 =
        new ItemButton() {
          @Override
          protected void onClick() {
            btnPressed = btnItem1;
            GameScene.selectItem(itemSelector, WndBag.Mode.UPGRADEABLE, TXT_SELECT);
          }
        };
    btnItem1.setRect(
        (WIDTH - BTN_GAP) / 2 - BTN_SIZE,
        message.y + message.height() + BTN_GAP,
        BTN_SIZE,
        BTN_SIZE);
    add(btnItem1);

    btnItem2 =
        new ItemButton() {
          @Override
          protected void onClick() {
            btnPressed = btnItem2;
            GameScene.selectItem(itemSelector, WndBag.Mode.UPGRADEABLE, TXT_SELECT);
          }
        };
    btnItem2.setRect(btnItem1.right() + BTN_GAP, btnItem1.top(), BTN_SIZE, BTN_SIZE);
    add(btnItem2);

    btnReforge =
        new RedButton(TXT_REFORGE) {
          @Override
          protected void onClick() {
            Blacksmith.upgrade(btnItem1.item, btnItem2.item);
            hide();
          }
        };
    btnReforge.enable(false);
    btnReforge.setRect(0, btnItem1.bottom() + BTN_GAP, WIDTH, 20);
    add(btnReforge);

    resize(WIDTH, (int) btnReforge.bottom());
  }
예제 #3
0
 void setChecked(boolean checked) {
   if (mUseText) {
     mCheckBox.setChecked(checked);
   } else {
     mButton.setBackgroundColor(checked ? 0x99333333 /* Color.DKGRAY */ : Color.BLACK);
   }
 }
예제 #4
0
 void setOnClickListener(OnClickListener listener) {
   if (mUseText) {
     mCheckBox.setOnClickListener(listener);
     // mButton.setOnClickListener( listener );
   } else {
     mButton.setOnClickListener(listener);
   }
 }
        @Override
        public void onSelect(Item item) {
          if (item != null) {
            btnPressed.item(item);

            if (btnItem1.item != null && btnItem2.item != null) {
              String result = Blacksmith.verify(btnItem1.item, btnItem2.item);
              if (result != null) {
                GameScene.show(new WndMessage(result));
                btnReforge.enable(false);
              } else {
                btnReforge.enable(true);
              }
            }
          }
        }
예제 #6
0
  public ItemSymbol(
      Context context,
      IItemPicker dialog,
      int type,
      int index,
      SymbolInterface symbol,
      boolean use_text) {
    mType = type;
    mIndex = index;
    mSymbol = symbol;
    mUseText = use_text;

    if (mType == DrawingActivity.SYMBOL_POINT) {
      sx *= 1.5f; // 2.0f;
      sy *= 1.5f; // 2.0f;
    } else { // if ( mType == DrawingActivity.SYMBOL_AREA )
      sx *= 2.2f;
      sy *= 1.7f;
    }
    // Log.v( TopoDroidApp.TAG, "Item " + mType + "/" + mIndex + " " + mSymbol.getName() );

    LinearLayout ll = new LinearLayout(context);
    // ll.setOrientation( LinearLayout.HORIZONTAL );
    int lw = LinearLayout.LayoutParams.WRAP_CONTENT;
    int lh = LinearLayout.LayoutParams.WRAP_CONTENT;
    LinearLayout.LayoutParams lllp = new LinearLayout.LayoutParams(lh, lw);
    if (!mUseText) {
      lllp.gravity = 0x03; // left
    } else {
      mCheckBox = new CheckBox(context);
      mCheckBox.setChecked(false);
      ll.addView(mCheckBox, lllp);
    }

    mButton = new ItemButton(context, mSymbol.getPaint(), mSymbol.getPath(), sx, sy);
    ll.addView(mButton, lllp);

    if (mUseText) {
      mTextView = new TextView(context);
      // mTextView.setBackgroundColor( Color.BLACK );
      mTextView.setText(mSymbol.getName());
      ll.addView(mTextView, new LinearLayout.LayoutParams(lh, lw));
    } else {
      mButton.setClickable(true);
    }

    // FIXME
    // if ( mType == DrawingActivity.SYMBOL_POINT ) {
    //   SymbolPoint point = (SymbolPoint) mSymbol;
    //   if ( point.isOrientable() ) {
    //     Button btn = new Button( context );
    //     btn.setBackgroundResource( R.drawable.ic_turn );
    //     ll.addView( btn, new LinearLayout.LayoutParams(lh,lw) );
    //   }
    // }

    mView = ll;

    // if ( mSymbol.isOrientable() ) {
    //   mView.setOnTouchListener( new OnTouchListener()
    //   {
    //     private float x_old=0f;

    //     @Override
    //     public boolean onTouch(View v, MotionEvent event) {
    //       int action = event.getAction();
    //       int actionCode = action & MotionEvent.ACTION_MASK;
    //       if ( actionCode == MotionEvent.ACTION_DOWN ) {
    //         x_old = event.getX(0);
    //       } else if ( actionCode == MotionEvent.ACTION_MOVE ) {
    //         float x = event.getX(0);
    //         float delta_x = x - x_old;
    //         x_old = x;
    //         notifyListener( delta_x );
    //       }
    //       return true;
    //     }
    //   });
    // }
  }
예제 #7
0
 void setAngle(float angle) {
   // Log.v("DistoX", "item symbol set angle " + angle );
   mSymbol.setAngle(angle);
   mButton.resetPath(mSymbol.getPath(), sx, sy);
   mView.invalidate();
 }
예제 #8
0
 void rotate(float dx) {
   // Log.v( TopoDroidApp.TAG, "rotate " + dx );
   mSymbol.rotate(dx);
   mButton.resetPath(mSymbol.getPath(), sx, sy);
   mView.invalidate();
 }