Mercurial > dwindows
diff android/DWindows.kt @ 2556:d2d8c66ad062
Android: Initial container implementation... getting a NullPointerException crash in dwtest...
But I wanted to get this code committed while I work on it more.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 16 May 2021 22:41:50 +0000 |
parents | d7d163d70763 |
children | 756331246f94 |
line wrap: on
line diff
--- a/android/DWindows.kt Sun May 16 19:39:34 2021 +0000 +++ b/android/DWindows.kt Sun May 16 22:41:50 2021 +0000 @@ -11,7 +11,6 @@ import android.content.DialogInterface import android.content.pm.ActivityInfo import android.content.res.Configuration -import android.content.res.Resources import android.graphics.* import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable @@ -226,7 +225,7 @@ android.R.layout.simple_list_item_1, list ) ) - setOnItemClickListener(this) + onItemClickListener = this } override fun onItemClick(parent: AdapterView<*>?, view: View, position: Int, id: Long) { @@ -474,7 +473,10 @@ fun numberOfRows(): Int { - return data.size / columns.size + if(columns.size > 0) { + return data.size / columns.size + } + return 0 } fun getColumnType(column: Int): Int @@ -517,13 +519,16 @@ data.clear() } - fun addRows(count: Int) + fun addRows(count: Int): Long { + var startRow: Long = numberOfRows().toLong() + for(i in 0 until (count * columns.size)) { // Fill in with nulls to be set later data.add(null) } + return startRow } fun clear() @@ -582,6 +587,7 @@ set.connect(imageview.id, ConstraintSet.LEFT, textview.id, ConstraintSet.RIGHT) set.applyTo(rowView) + // TODO: Add code to optionally add other columns return rowView } } @@ -746,7 +752,7 @@ if(menuitem.id == cid) { // Handle DW_MIS_ENABLED/DISABLED if((state and (1 or (1 shl 1))) != 0) { - var enabled: Boolean = false + var enabled = false // Handle DW_MIS_ENABLED if ((state and 1) != 0) { @@ -761,7 +767,7 @@ // Handle DW_MIS_CHECKED/UNCHECKED if((state and ((1 shl 2) or (1 shl 3))) != 0) { - var checked: Boolean = false + var checked = false // Handle DW_MIS_CHECKED if ((state and (1 shl 2)) != 0) { @@ -1880,6 +1886,92 @@ return combobox } + fun containerNew(cid: Int, multi: Int): ListView? + { + var cont: ListView? = null + + waitOnUiThread { + var dataArrayMap = SimpleArrayMap<String, Long>() + + cont = ListView(this) + cont!!.tag = dataArrayMap + cont!!.id = cid + cont!!.adapter = DWContainerAdapter(this) + if(multi != 0) { + cont!!.choiceMode = ListView.CHOICE_MODE_MULTIPLE; + } + } + return cont + } + + fun containerAddColumn(cont: ListView, title: String, flags: Int) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.addColumn(title, flags) + } + } + + fun containerAlloc(cont: ListView, rowcount: Int): ListView + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + val rowStart = adapter.model.addRows(rowcount) + + windowSetData(cont, "_dw_rowstart", rowStart) + } + return cont + } + + fun containerChangeItemString(cont: ListView, column: Int, row: Int, text: String) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.setRowAndColumn(row, column, text) + } + } + + fun containerChangeItemIcon(cont: ListView, column: Int, row: Int, icon: Drawable) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.setRowAndColumn(row, column, icon) + } + } + + fun containerChangeItemInt(cont: ListView, column: Int, row: Int, num: Int) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.setRowAndColumn(row, column, num) + } + } + + fun containerGetColumnType(cont: ListView, column: Int): Int + { + var type: Int = 0 + + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + type = adapter.model.getColumnType(column) + } + return type + } + + fun containerClear(cont: ListView) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.clear() + } + } + fun listBoxNew(cid: Int, multi: Int): DWListBox? { var listbox: DWListBox? = null