package v2.simpleUi; import v2.simpleUi.uiDecoration.UiDecoratable; import v2.simpleUi.uiDecoration.UiDecorator; import android.content.Context; import android.graphics.Bitmap; import android.view.Gravity; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class M_InfoText implements ModifierInterface, UiDecoratable { private String myText; private Bitmap myIcon; private int myIconId; private float myTextSize; private UiDecorator myDecorator; private LinearLayout container; public M_InfoText(String text) { this(null, text); } public M_InfoText(Bitmap icon, String text) { myIcon = icon; myText = text; } public M_InfoText(int iconId, String text) { myIconId = iconId; myText = text; } public M_InfoText(int iconId, String text, float manualTextSize) { this(iconId, text); myTextSize = manualTextSize; } @Override public View getView(Context context) { int bottomAndTopPadding = 4; int textPadding = 7; int iconPadding = 10; container = new LinearLayout(context); container.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP); container.setPadding(0, bottomAndTopPadding, 0, bottomAndTopPadding); ImageView i = null; if (myIcon != null || myIconId != 0) { i = new ImageView(context); i.setPadding(0, iconPadding, iconPadding, iconPadding); if (myIcon != null) { i.setImageBitmap(myIcon); } else if (myIconId != 0) { i.setImageResource(myIconId); } container.addView(i); } TextView t = new TextView(context); t.setText(myText); t.setPadding(textPadding, textPadding, textPadding, textPadding); container.addView(t); if (myTextSize != 0) t.setTextSize(myTextSize); if (myDecorator != null) { int level = myDecorator.getCurrentLevel(); if (i != null) myDecorator.decorate(context, i, level + 1, UiDecorator.TYPE_ICON); myDecorator.decorate(context, t, level + 1, UiDecorator.TYPE_INFO_TEXT); } return container; } @Override public boolean assignNewDecorator(UiDecorator decorator) { myDecorator = decorator; return true; } @Override public boolean save() { return true; } public void hide() { if (container != null) { container.setVisibility(View.GONE); } } }