package com.algobase.share.widgets;

import java.util.List;

import android.content.Context;

import android.graphics.Color;
import android.graphics.drawable.Drawable;

import android.view.View;
import android.view.ViewGroup;
import android.view.Gravity;

import android.widget.Spinner;
import android.widget.TextView;
import android.widget.CheckedTextView;
import android.widget.ArrayAdapter;

import com.algobase.share.dialog.*;

public class SpinnerAdapter extends ArrayAdapter<String> {

    Context context = null;
    int style = 0;
    int checkedPos = -1;

    int DipToPixels(float dp)
    { float dpi = context.getResources().getDisplayMetrics().densityDpi;
      return (int)(0.5 + dp * (dpi/160f));
     }



    public SpinnerAdapter(Context ctxt, String items[]) 
    { super(ctxt,android.R.layout.simple_spinner_item,items);
      context = ctxt;
      int r = android.R.layout.simple_spinner_dropdown_item;
      super.setDropDownViewResource(r);
    }

    public SpinnerAdapter(Context ctxt, List<String> L) 
    { super(ctxt,android.R.layout.simple_spinner_item,L);
      context = ctxt;
      int r = android.R.layout.simple_spinner_dropdown_item;
      super.setDropDownViewResource(r);
    }

    public void setStyle(int s) { style = s; }

    public void check(int pos) { checkedPos = pos; }

    @Override
    public TextView getView(int pos, View convertView, ViewGroup parent) 
    { TextView tv = (TextView)super.getView(pos, convertView, parent);
      tv.setTextSize(18);

      if (style == 0 ||
          style == MyDialog.STYLE_HOLO_DARK ||
          style == MyDialog.STYLE_MATERIAL_DARK)
        tv.setTextColor(0xffdddddd);
      else
        tv.setTextColor(Color.BLACK);

      return tv;
    }

    @Override
    public TextView getDropDownView(int pos,View convertView,ViewGroup parent) 
    { 
      //TextView v= (TextView)super.getDropDownView(pos,convertView,parent);
      //CheckedTextView v = new CheckedTextView(context);
      //v.setCheckMarkDrawable(null);

      int d = DipToPixels(10);

      TextView v = new TextView(context);
      v.setPadding(d,d,d,d);
      v.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
      v.setTextSize(17);

      int fg_clr = 0xff000000; 
      int bg_clr = 0xffffffff; 

      if (style == 0) // holo dark
      { bg_clr = 0xff333333;
        fg_clr = 0xffffffff;
       }

      if (checkedPos == pos) 
      { bg_clr = 0xff000077;
        fg_clr = 0xffffffff;
       }

      v.setBackgroundColor(bg_clr);
      v.setTextColor(fg_clr);
      v.setText(getItem(pos));

      return v;
    }

    @Override
    public String getItem(int pos) { return (String)super.getItem(pos); }
    
  }
