Mercurial > dwindows
comparison android/DWindows.kt @ 2580:473eb9ff3f04
Android: Implement dw_container_set_stripe() and center the images in the rows.
Also switch to using jlong (Long) types for passing the colors internally.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 23 May 2021 02:27:12 +0000 |
parents | 68ee9a89e0f0 |
children | 9dea42f27b0a |
comparison
equal
deleted
inserted
replaced
2579:68ee9a89e0f0 | 2580:473eb9ff3f04 |
---|---|
619 { | 619 { |
620 private var context = c | 620 private var context = c |
621 var model = DWContainerModel() | 621 var model = DWContainerModel() |
622 var selectedItem: Int = -1 | 622 var selectedItem: Int = -1 |
623 var simpleMode: Boolean = true | 623 var simpleMode: Boolean = true |
624 var oddColor: Int? = null | |
625 var evenColor: Int? = null | |
624 | 626 |
625 override fun getCount(): Int { | 627 override fun getCount(): Int { |
626 return model.numberOfRows() | 628 return model.numberOfRows() |
627 } | 629 } |
628 | 630 |
658 val content = model.getRowAndColumn(position, i) | 660 val content = model.getRowAndColumn(position, i) |
659 | 661 |
660 // Image | 662 // Image |
661 if((model.getColumnType(i) and 1) != 0) { | 663 if((model.getColumnType(i) and 1) != 0) { |
662 val imageview = ImageView(context) | 664 val imageview = ImageView(context) |
665 val params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, | |
666 LinearLayout.LayoutParams.WRAP_CONTENT) | |
667 params.gravity = Gravity.CENTER | |
668 imageview.layoutParams = params | |
663 imageview.id = View.generateViewId() | 669 imageview.id = View.generateViewId() |
664 imageview.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, | |
665 LinearLayout.LayoutParams.WRAP_CONTENT) | |
666 if (content is Drawable) { | 670 if (content is Drawable) { |
667 imageview.setImageDrawable(content) | 671 imageview.setImageDrawable(content) |
668 } | 672 } |
669 rowView.addView(imageview) | 673 rowView.addView(imageview) |
670 } else { | 674 } else { |
671 // Everything else id displayed as text | 675 // Everything else id displayed as text |
672 val textview = TextView(context) | 676 val textview = TextView(context) |
677 val params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, | |
678 LinearLayout.LayoutParams.WRAP_CONTENT) | |
679 params.gravity = Gravity.CENTER | |
680 textview.layoutParams = params | |
673 textview.id = View.generateViewId() | 681 textview.id = View.generateViewId() |
674 textview.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, | |
675 LinearLayout.LayoutParams.WRAP_CONTENT) | |
676 if (content is String) { | 682 if (content is String) { |
677 textview.text = content | 683 textview.text = content |
678 } else if(content is Int) { | 684 } else if(content is Int) { |
679 textview.text = content.toString() | 685 textview.text = content.toString() |
680 } | 686 } |
705 } else if (content is Int) { | 711 } else if (content is Int) { |
706 textview.text = content.toString() | 712 textview.text = content.toString() |
707 } | 713 } |
708 } | 714 } |
709 } | 715 } |
716 } | |
717 } | |
718 // Handle row stripe | |
719 if (position % 2 == 0) { | |
720 if(evenColor != null) { | |
721 rowView.setBackgroundColor(evenColor!!) | |
722 } | |
723 } else { | |
724 if(oddColor != null) { | |
725 rowView.setBackgroundColor(oddColor!!) | |
710 } | 726 } |
711 } | 727 } |
712 return rowView | 728 return rowView |
713 } | 729 } |
714 } | 730 } |
2074 } | 2090 } |
2075 } | 2091 } |
2076 return cont | 2092 return cont |
2077 } | 2093 } |
2078 | 2094 |
2095 fun containerSetStripe(cont: ListView, oddcolor: Long, evencolor: Long) | |
2096 { | |
2097 waitOnUiThread { | |
2098 val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter | |
2099 | |
2100 if(oddcolor == -1L) { | |
2101 adapter.oddColor = null | |
2102 } else if(evencolor == -2L) { | |
2103 if(darkMode == 1) { | |
2104 adapter.oddColor = Color.rgb(100, 100, 100) | |
2105 } else { | |
2106 adapter.oddColor = Color.rgb(230, 230, 230) | |
2107 } | |
2108 } else { | |
2109 adapter.oddColor = colorFromDW(oddcolor) | |
2110 } | |
2111 if(evencolor == -1L || evencolor == -2L) { | |
2112 adapter.evenColor = null | |
2113 } else { | |
2114 adapter.evenColor = colorFromDW(evencolor) | |
2115 } | |
2116 } | |
2117 } | |
2118 | |
2079 fun containerGetTitleStart(cont: ListView, flags: Int): String? | 2119 fun containerGetTitleStart(cont: ListView, flags: Int): String? |
2080 { | 2120 { |
2081 var retval: String? = null | 2121 var retval: String? = null |
2082 | 2122 |
2083 waitOnUiThread { | 2123 waitOnUiThread { |
2806 } | 2846 } |
2807 } | 2847 } |
2808 return retval | 2848 return retval |
2809 } | 2849 } |
2810 | 2850 |
2811 fun drawPoint(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, fgColor: Int, bgColor: Int) | 2851 fun drawPoint(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, fgColor: Long, bgColor: Long) |
2812 { | 2852 { |
2813 waitOnUiThread { | 2853 waitOnUiThread { |
2814 var canvas: Canvas? = null | 2854 var canvas: Canvas? = null |
2815 | 2855 |
2816 if(render != null) { | 2856 if(render != null) { |
2824 canvas.drawPoint(x.toFloat(), y.toFloat(), Paint()) | 2864 canvas.drawPoint(x.toFloat(), y.toFloat(), Paint()) |
2825 } | 2865 } |
2826 } | 2866 } |
2827 } | 2867 } |
2828 | 2868 |
2829 fun drawLine(render: DWRender?, bitmap: Bitmap?, x1: Int, y1: Int, x2: Int, y2: Int, fgColor: Int, bgColor: Int) | 2869 fun drawLine(render: DWRender?, bitmap: Bitmap?, x1: Int, y1: Int, x2: Int, y2: Int, fgColor: Long, bgColor: Long) |
2830 { | 2870 { |
2831 waitOnUiThread { | 2871 waitOnUiThread { |
2832 var canvas: Canvas? = null | 2872 var canvas: Canvas? = null |
2833 | 2873 |
2834 if(render != null) { | 2874 if(render != null) { |
2884 } | 2924 } |
2885 return dimensions | 2925 return dimensions |
2886 } | 2926 } |
2887 | 2927 |
2888 fun drawText(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, text:String, typeface: Typeface?, | 2928 fun drawText(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, text:String, typeface: Typeface?, |
2889 fontsize: Int, window: View?, fgColor: Int, bgColor: Int) | 2929 fontsize: Int, window: View?, fgColor: Long, bgColor: Long) |
2890 { | 2930 { |
2891 waitOnUiThread { | 2931 waitOnUiThread { |
2892 var canvas: Canvas? = null | 2932 var canvas: Canvas? = null |
2893 | 2933 |
2894 if(render != null && render.cachedCanvas != null) { | 2934 if(render != null && render.cachedCanvas != null) { |
2941 canvas.drawText(text, x.toFloat(), y.toFloat() + textheight.toFloat(), paint) | 2981 canvas.drawText(text, x.toFloat(), y.toFloat() + textheight.toFloat(), paint) |
2942 } | 2982 } |
2943 } | 2983 } |
2944 } | 2984 } |
2945 | 2985 |
2946 fun drawRect(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, width: Int, height: Int, fgColor: Int, bgColor: Int) | 2986 fun drawRect(render: DWRender?, bitmap: Bitmap?, x: Int, y: Int, width: Int, height: Int, fgColor: Long, bgColor: Long) |
2947 { | 2987 { |
2948 waitOnUiThread { | 2988 waitOnUiThread { |
2949 var canvas: Canvas? = null | 2989 var canvas: Canvas? = null |
2950 | 2990 |
2951 if(render != null) { | 2991 if(render != null) { |
2962 } | 3002 } |
2963 } | 3003 } |
2964 } | 3004 } |
2965 | 3005 |
2966 fun drawPolygon(render: DWRender?, bitmap: Bitmap?, flags: Int, npoints: Int, | 3006 fun drawPolygon(render: DWRender?, bitmap: Bitmap?, flags: Int, npoints: Int, |
2967 x: IntArray, y: IntArray, fgColor: Int, bgColor: Int) | 3007 x: IntArray, y: IntArray, fgColor: Long, bgColor: Long) |
2968 { | 3008 { |
2969 // Create a path with all our points | 3009 // Create a path with all our points |
2970 val path = Path() | 3010 val path = Path() |
2971 | 3011 |
2972 path.moveTo(x[0].toFloat(), y[0].toFloat()) | 3012 path.moveTo(x[0].toFloat(), y[0].toFloat()) |
3001 } | 3041 } |
3002 } | 3042 } |
3003 } | 3043 } |
3004 | 3044 |
3005 fun drawArc(render: DWRender?, bitmap: Bitmap?, flags: Int, xorigin: Int, yorigin: Int, | 3045 fun drawArc(render: DWRender?, bitmap: Bitmap?, flags: Int, xorigin: Int, yorigin: Int, |
3006 x1: Int, y1: Int, x2: Int, y2: Int, fgColor: Int, bgColor: Int) | 3046 x1: Int, y1: Int, x2: Int, y2: Int, fgColor: Long, bgColor: Long) |
3007 { | 3047 { |
3008 waitOnUiThread { | 3048 waitOnUiThread { |
3009 var canvas: Canvas? = null | 3049 var canvas: Canvas? = null |
3010 | 3050 |
3011 if(render != null) { | 3051 if(render != null) { |
3065 } | 3105 } |
3066 } | 3106 } |
3067 } | 3107 } |
3068 } | 3108 } |
3069 | 3109 |
3070 fun colorSet(alpha: Int, red: Int, green: Int, blue: Int) | 3110 fun colorFromDW(color: Long): Int |
3071 { | 3111 { |
3072 waitOnUiThread { | 3112 val red: Int = (color and 0x000000FF).toInt() |
3073 if(alpha != 0) { | 3113 val green: Int = ((color and 0x0000FF00) shr 8).toInt() |
3074 paint.color = Color.argb(alpha, red, green, blue) | 3114 val blue: Int = ((color and 0x00FF0000) shr 16).toInt() |
3075 } else { | 3115 |
3076 paint.color = Color.rgb(red, green, blue) | 3116 return Color.rgb(red, green, blue) |
3077 } | 3117 } |
3078 } | 3118 |
3079 } | 3119 fun colorsSet(fgColor: Long, bgColor: Long) |
3080 | 3120 { |
3081 fun bgColorSet(alpha: Int, red: Int, green: Int, blue: Int) | 3121 waitOnUiThread { |
3082 { | 3122 paint.color = colorFromDW(fgColor) |
3083 if(alpha != 0) { | 3123 this.bgcolor = colorFromDW(bgColor) |
3084 this.bgcolor = Color.argb(alpha, red, green, blue) | 3124 } |
3085 } else { | |
3086 this.bgcolor = Color.rgb(red, green, blue) | |
3087 } | |
3088 } | |
3089 | |
3090 fun colorsSet(fgColor: Int, bgColor: Int) | |
3091 { | |
3092 val fgRed: Int = (fgColor and 0x000000FF) | |
3093 val fgGreen: Int = (fgColor and 0x0000FF00) shr 8 | |
3094 val fgBlue: Int = (fgColor and 0x00FF0000) shr 16 | |
3095 val bgRed: Int = (bgColor and 0x000000FF) | |
3096 val bgGreen: Int = (bgColor and 0x0000FF00) shr 8 | |
3097 val bgBlue: Int = (bgColor and 0x00FF0000) shr 16 | |
3098 | |
3099 paint.color = Color.rgb(fgRed, fgGreen, fgBlue) | |
3100 this.bgcolor = Color.rgb(bgRed, bgGreen, bgBlue) | |
3101 } | 3125 } |
3102 | 3126 |
3103 fun timerConnect(interval: Long, sigfunc: Long, data: Long): Timer | 3127 fun timerConnect(interval: Long, sigfunc: Long, data: Long): Timer |
3104 { | 3128 { |
3105 // creating timer task, timer | 3129 // creating timer task, timer |